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

PHPWeakReferenceクラス


はじめに

弱参照を使用すると、オブジェクトの破棄を妨げないオブジェクトへの参照を保持できます。キャッシュのような構造の実装は、弱参照によって実行できます。

弱参照は、ガベージコレクターによるオブジェクトの収集を妨げないことを除いて、通常の参照と似ています。そのオブジェクトへの強い参照が見つからない場合、そのオブジェクトはすぐにメモリから削除されます。このようにして、メモリの問題なしに、キャッシュの利点のほとんどを実装することができます。

弱参照 クラスはPHP7.4で導入されました。このバージョンの前は、同じ効果が weakrefによって得られていました 拡大。 WeakReferenceクラスの構造は次のとおりです

構文

WeakReference {
   /* Methods */
   public __construct ( void )
   public static create ( object $referent ) : WeakReference
   public get ( void ) : ?object
}

メソッド

public WeakReference ::__construct(void) —WeakReferenceクラスのインスタンス化を禁止します。ファクトリメソッドWeakReference::create()を使用してインスタンス化できます。

public static WeakReference ::create(object $ referent):WeakReference —新しいWeakReferenceを作成します。

public WeakReference ::get(void):?object —弱く参照されているオブジェクトを取得します。オブジェクトがすでに破棄されている場合は、NULLが返されます。

ジェネレーターの例

次の例には、myclassのオブジェクトがあります。 弱参照 そのオブジェクトへの1つの参照を示しています。その後、オブジェクトは設定解除されます。これで、WeakReferenceは NULLを返します

<?php
class myclass{
   function Hello(){
      echo "Hello";
   }
}
$obj = new myclass();
$ref = WeakReference::create($obj);
var_dump($ref->get());
unset($obj);
var_dump($ref->get());
?>

出力

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

object(myclass)#1 (0) {
}
NULL

  1. C#のOrderedDictionaryクラス

    OrderedDictionaryクラスは、キーまたはインデックスからアクセスできるキーと値のペアのコレクションを表します。 OrderedDictionaryクラスのプロパティは次のとおりです- Sr.no プロパティと説明 1 カウント OrderedDictionaryコレクションに含まれるキーと値のペアの数を取得します。 2 IsReadOnly OrderedDictionaryコレクションが読み取り専用かどうかを示す値を取得します。 3 アイテム[Int32] 指定されたインデックスの値を取得または設定します。

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

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