ホームページ  >  記事  >  バックエンド開発  >  PHPクロージャクラス

PHPクロージャクラス

王林
王林転載
2023-08-19 11:01:17837ブラウズ

PHPクロージャクラス

はじめに

匿名関数 (ラムダとも呼ばれる) は、クラス Closure のオブジェクトを返します。このクラスには、匿名関数をさらに制御する追加のメソッドがいくつかあります。

Syntax

Closure {
   /* Methods */
   private __construct ( void )
   public static bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] ) : Closure
   public bindTo ( object $newthis [, mixed $newscope = "static" ] ) : Closure
   public call ( object $newthis [, mixed $... ] ) : mixed
   public static fromCallable ( callable $callable ) : Closure
}

Method

private Closure::__construct (void) — このメソッドは、Closure クラスのインスタンス化を無効にするためにのみ使用されます。このクラスのオブジェクトは、匿名関数によって作成されます。

public static Closure::bind ( Closure $closure , object $newthis [,mixed $newscope = "static" ] ) − Closure — 特定のバインディング オブジェクトとクラス スコープを使用してコピーします。 。このメソッドは Closure::bindTo() の静的バージョンです。

public Closure::bindTo ( object $newthis [,mixed $newscope = "static" ] ) - Closure — 新しいバインディング オブジェクトとクラス スコープを使用してクロージャをコピーします。本体とバインド変数は同じですが、オブジェクトと新しいクラス スコープが異なる新しい匿名関数を作成して返します。

public Closure::call ( object $newthis [,mixed $... ] ) −mixed — クロージャーを一時的に newthis にバインドし、任意の引数を指定して呼び出します。

クロージャの例

オンライン デモンストレーション

<?php
class A {
   public $nm;
   function __construct($x){
      $this->nm=$x;
   }
}
// Using call method
$hello = function() {
   return "Hello " . $this->nm;
};
echo $hello->call(new A("Amar")). "";;
// using bind method
$sayhello = $hello->bindTo(new A("Amar"),&#39;A&#39;);
echo $sayhello();
?>

出力

上記のプログラムは次の出力を表示します

Hello Amar
Hello Amar

以上がPHPクロージャクラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。