I understand the singleton pattern, but I don't understand the following syntax:
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() ); } Why every time we call DatabaseConnection::get() we could ge the same singleton object? Because the code read from me will like:
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 Then how the get() function could always return a same object?
I am new to Php, most of the syntax to me will read like java, please any one could explain this to me?
Also is there any instructions/tutorial that I could read for understanding more syntax sugar like:
$array_object[] = $added_item
$array_object[] = $added_item, it just adds$added_itemto the next available index of the$array_objectarray ;) Though if you're interested in where you can find out similar stuff, I usually just check php.net/manual/enstatic $db = null;outside of theget()method, I think that would work just fine as it's only set to null the once. Maybe that's what you meant?