要在全局中保证读取到的值唯一,使用单例模式是较好的选择,实现代码:
class Config
{
// 声明$instance为私有静态类型,用于保存当前类实例化后的对象
private static $instance = null;
// 数据库连接句柄
private $config = array();
// 这是获取当前类对象的唯一方式
public static function getInstance()
{
// 检查对象是否已经存在,不存在则实例化后保存到$instance属性
if(self::$instance == null) {
self::$instance = new self();
}
return self::$instance;
}
// 设置配置项
public function setConfig($key, $value)
{
$this->config[$key] = $value;
}
// 获取配置项
public function getConfig($key)
{
return $this->config[$key];
}
// 声明为私有方法,禁止外部程序使用new实例化,只能在内部new
private function __construct(){}
// 声明成私有方法,禁止克隆对象
private function __clone(){}
// 声明成私有方法,禁止重建对象
private function __wakeup(){}
}
客户端使用:
$config = Config::getInstance();
$config->setConfig('name', 'www.awaimai.com');
echo $config->getConfig('name');
这样在代码中写入和读取的就是统一的内容了。