0

シングルトン パターンは理解できますが、次の構文は理解できません。

    public static function get()
    {
      static $db = null;
      if ( $db == null )
        $db = new DatabaseConnection();
      return $db;
    }
    private function __construct()
    {
      $dsn = 'mysql://root:password@localhost/photos';
      $this->_handle =& DB::Connect( $dsn, array() );
    }

DatabaseConnection::get() を呼び出すたびに、同じシングルトン オブジェクトを取得できるのはなぜですか? 私から読み取ったコードは次のようになります。

    static $db = null; //set $db object to be null
    if($db==null)  // $db is null at the moment every time because we just set it to be null
      // call the private constructor every time we call get() *
      $db = new DatabaseConnection();  
    return $db;  // return the created 

では、get() 関数はどのようにして常に同じオブジェクトを返すことができるのでしょうか?

私は PHP を初めて使用します。ほとんどの構文は Java のように読めます。誰か説明してください。

また、次のような構文シュガーを理解するために読むことができる指示/チュートリアルはありますか?

       $array_object[] = $added_item
4

1 に答える 1

1

クラス内でこれを試してください:

private static $db;

public static function get(){
    if(!self::$db){

         self::$db = new DatabaseConnection();

     }

    return self::$db;
}
于 2013-07-19T01:34:05.220 に答える