我错过了什么吗?还是我误解了这个概念?
根据我目前对 Registry 设计模式的理解,文件 test.php 应该打印名称“MIH406”,但它没有!为什么?
首先我访问了 index.php 页面,然后我访问了 test.php 页面。
它是这样工作的吗?
我想了解 Registry 背后的概念,无论它被认为是好是坏,所以请不要在这里重新讨论这种模式的好坏,谢谢。
注意:我正在使用 Ubuntu 和 LAMP 在我的电脑下对其进行测试
这是我的简单实现:
索引.php
<?php
require_once "registry.php";
Registry::getInstance()->set("name", "MIH1406");
?>
测试.php
<?php
require_once "registry.php";
echo Registry::getInstance()->get("name");
?>
注册表.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()
{
}
}
?>