PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPクロージャクラス


はじめに

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

構文

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
}

メソッド

プライベートクロージャー::__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")). "\n";;
// using bind method
$sayhello = $hello->bindTo(new A("Amar"),'A');
echo $sayhello();
?>

出力

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

Hello Amar
Hello Amar

  1. C#のオブジェクトクラス

    Objectクラスは、C#のすべてのクラスの基本クラスです。 C#では次のメソッドがあります。 Sr.No メソッドと説明 1 Equals(Object) 指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判別します。 2 Equals(Object、Object、 指定されたオブジェクトインスタンスが等しいと見なされるかどうかを決定します。 3 Finalize() オブジェクトがリソースを解放しようとすることを許可します 4 GetHashCode() デフォルトのハッシュ関数。 5

  2. C#のスタッククラス

    スタッククラスは、後入れ先出しのオブジェクトのコレクションを表します。アイテムへの後入れ先出しアクセスが必要な場合に使用されます。 以下はStackクラスのプロパティです- カウント- スタック内の要素の数を取得します。 以下はStackクラスのメソッドです- Sr.No。 メソッドと説明 1 public virtual void Clear(); スタックからすべての要素を削除します。 2 public virtual bool contains(object obj); 要素がスタックにあるかどうかを判別します。 3