我注意到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