我正在嘗試創建一個動態導航類。使用PHP的單例模式
class myApp_Helper_Breadcrum{
protected $navigationArray=array();
private static $_instance = null;
public static function getInstance()
{
if (!isset(self::$_instance)) {
self::$_instance = new self();
}
return self::$_instance;
}
private function __construct() {
$this->navigationArray = array();
}
public function popin($popInElement){
array_push($this->navigationArray,$popInElement);
}
public function displayLinks()
{
//print array
}
}
在自舉我下面
$nlinks=myApp_Helper_Breadcrum::getInstance();
Zend_Registry::set('nlinks',$nlinks);
現在在我的控制,我呼籲如下
$nlinks= Zend_Registry::get('nlinks');
$nlinks->popin('Home');
$nlinks->displayLinks();
的問題是,即使這個類是單身的構造又被稱爲並再次讓我的數組初始化。我試圖實現的目標是在瀏覽網站時繼續推送導航數組中的項目。
任何想法爲什麼它是這樣的在ZF?
好吧,那很奇怪。當然,'__construct'不應該是公共的,但即使按照圖示設置,它也不應該在那裏被調用。你可以把它變成「private」嗎?並且在它被調用的地方得到確切的行(和錯誤)? – raina77ow
我改變它爲私人,但沒有..沒有錯誤。數組被重新初始化,因此無法跟蹤值,每次我調用$ nlinks-> displayLinks()函數時,只有1個數組項。 ..這不是預期的產出。我認爲它應該能夠存儲已被推送的數組值。任何更多的建議,看看... – user269867
單身人士是邪惡的 – dynamic