我注意到PHP中的關鍵字static
根本就不是static
。PHP靜態不是那麼靜態
比方說Elmo
是我的單身:
class Elmo
{
private static $instance;
private function __construct()
{
echo 'Elmo says constructor\n';
}
public static function getInstance()
{
if (!isset(self::$instance))
self::$instance = new Elmo();
return self::$instance;
}
public function boo()
{
echo 'Elmo says boo!\n';
}
}
而下面的文件只是一個普通的.php
腳本。
<?php
Elmo::getInstance()->boo();
Elmo::getInstance()->boo();
// Output:
// Elmo says constructor
// Elmo says boo!
// Elmo says boo!
?>
重新構建每個新頁面Elmo
。爲什麼後續頁面沒有以下輸出?
<?php
// Output:
// Elmo says boo!
// Elmo says boo!
?>
我希望有人能夠在這方面給我啓發,謝謝!
這就是你不想在PHP中使用Singletons的原因之一。當沒有共享的應用程序內存時,這是毫無意義的。請參閱http://stackoverflow.com/questions/4595964/who-needs-singletons/4596323#4596323 – Gordon 2011-02-12 09:12:07
static!== persistent – 2011-02-12 10:37:28