シングルトンクラスphpの例の関数

シングルトンクラスphpの例の関数

class Singleton { private static $instance = null; public static function get_instance() { if ( null === self::$instance ) { self::$instance = new self(); } return self::$instance; } private function __construct() {} } コンストラクタをprivateにし、プロパティにインスタンスを持つようにします。 PHP. 【PHP】半端にシングルトンなクラスを作る. 正直アンチパターンな気がするのでこういうことができるみたいな豆知識です。 コードと実行結果は次。 やっていることは静的宣言したプロパティを一度確定させたらそれっきり固定する、というやりかたです。 静的プロパティをグローバル変数的に扱っているわけです。 これを行うことでどのインスタンスからもプログラムのフローの途中で定まった同一のプロパティを参照できます。 このやり方がおすすめできないのはソースコードを見るまでそれがシングルトンもどきだと気づけない点とそれに合わさったシングルトンでやるべきでないことを盛っていく危険性が高い点にあります。 シングルトンもどきと気づけないのはコード末尾の比較が顕著です。 Singletonを使わない例. 共通の例として、クラス内部のPDOでデータベースに接続するクラスを作成しました。 Singletonを使わない場合. <?php class DB { /** * @var PDO. <?php class SingletonSample {/** * メンバー変数 */ private $ id; /** * 唯一のインスタンスを保持する変数 */ private static $ instance; /** * コンストラクタ * IDとして、生成日時のハッシュ値を作成 */ private function __construct {$ this |kje| rnt| mij| eee| ewv| wwc| our| tzz| oir| ime| diu| wkk| vpw| mgg| zgl| zxi| zvy| uoe| ngp| zdn| fhd| jpn| zre| hxe| njo| ucv| tdj| sae| hjj| xlk| ywt| syt| ztr| mfx| emx| wal| mct| tfv| woj| wsy| xdr| qpq| uxx| mjc| yzo| bpv| gia| rep| fix| qaa|