この記事では主にPHPでのシングルトンクラスの書き方の例を紹介していますので、必要な方は参考にしてください
。PHPの単一インスタンスクラスは、データ交換やメモリ節約の点で依然として非常に意味があります。簡単な例を書きます。
クラス 1、単一インスタンス クラス自体:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
クラスUTIL { プライベート静的 $instance; パブリック関数 get() { if (!self::$instance) { self::$instance = 新しい UTIL(); } self::$instance を返す; } パブリック $number = 10; パブリック関数の変更($num) { $this->number += $num; } パブリック関数 getNum() { $this->番号を返す; } } |
カテゴリ 2、前述の単一インスタンス クラスを使用するアプリケーション クラス:
?
1 2 3 4 5 6 7 8 9 10 11 12 |
クラスシングルレア{ プライベート $numInst; 関数 __construct() { $this->numInst = UTIL::get(); } パブリック関数の変更($num) { $this->numInst->change($num); } パブリック関数 getNum() { return $this->numInst->getNum(); } } |
カテゴリー3、類似タイプ2:
?
1 2 3 4 5 6 7 8 9 10 11 12 |
クラスシングルブ{ プライベート $numInst; 関数 __construct() { $this->numInst = UTIL::get(); } パブリック関数の変更($num) { $this->numInst->change($num); } パブリック関数 getNum() { return $this->numInst->getNum(); } } |
最後の場所は電話です:
?
1 2 3 4 5 6 7 8 |
$instA = 新しい SINGLEA(); $instA->change(100); var_dump('1 つが変更されました: '); var_dump($instA->getNum()); $instB = 新しい SINGLEB(); $instB->change(-510); var_dump('SINGLEB が変更されました: '); var_dump($instB->getNum()); |
最終的な表示結果:
?
1 2 3 4 |
文字列'単一が変更されました: ' (長さ=17) int110 文字列'SINGLEBが変更されました: ' (長さ=17) int-400 |