【发布时间】:2012-01-20 05:46:26
【问题描述】:
我在 PHP 中有以下单例类。
class CounterBalance{
private static $instance;
private $counterBalance;
private function __construct(){
$this->counterBalance = mt_rand(1, 4);
}
// Getter method for creating/returning the single instance of this class
public final static function getInstance() {
if(!self::$instance) {
self::$instance = new CounterBalance();
echo "CounterBalance constructed <br/>";
}
return self::$instance;
}
public function getCounterBalanceValue() {
return $this->counterBalance;
}
}
但是在课堂上当我做类似的事情时
CounterBalance::getInstance()->getCounterBalanceValue();
在同一个 php 页面上,它可以正常工作。但它不能跨页面正常工作。当我在随后的 php 页面中执行相同的函数调用时,我得到了多个 CounterBalance 实例。
谁能解释一下为什么会这样。
提前致谢。
【问题讨论】:
标签: php web-applications singleton