0
我錯過了什麼嗎?或者我誤解了這個概念?爲什麼我的註冊表模式實施不起作用?
從我目前對Registry的設計模式的理解來看,文件test.php應該打印名字「MIH406」,但它沒有!爲什麼?
首先我訪問了index.php頁面,然後我訪問了test.php頁面。
這樣工作嗎?
我想了解註冊表背後的概念,無論它被認爲是好的還是壞的,所以請不要在這裏重新討論關於這種模式有多好或多壞的討論,謝謝。
注:
的index.php
<?php
require_once "registry.php";
Registry::getInstance()->set("name", "MIH1406");
?>
test.php的
<?php
require_once "registry.php";
echo Registry::getInstance()->get("name");
?>
:我在我的電腦與Ubuntu和LAMP
這是我簡單的實現下測試它
registry.php
<?php
class Registry
{
private static $_instance = null;
private $_registry = array();
public static function getInstance()
{
if(self::$_instance == null)
{
self::$_instance = new Registry();
}
return self::$_instance;
}
public function set($key, $value)
{
$this->_registry[$key] = $value;
}
public function get($key, $default = null)
{
if(!isset($this->_registry[$key]))
{
return $default;
}
return $this->_registry[$key];
}
private function __construct()
{
}
private function __clone()
{
}
}
?>
那不是我的問題。我認爲還有另一個問題,或者我誤解了這個概念? – malhobayyeb
它適用於我,如果它在一個文件中,更改後的代碼。單獨運行第一個index.php,然後test.php將不起作用,它不在同一個會話中。你只需要運行test.php,它應該包含index.php –
這是我關心的問題,我必須在同一個會話中使用它嗎?!從你的回答,是的,我必須! – malhobayyeb