版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012314976/article/details/75215744
代码
<?php
/**
* Created by PhpStorm.
* User: zhangyoulun
* Date: 2017/7/13
* Time: 20:02
*/
class Yaf_Registry
{
protected static $_instance = null;
protected $_entries = null;
private function __construct(){}
private function __clone(){}
/**
* 根据name获取value,如果为空则返回null
*
* @param $name
* @return mixed|null
*/
public static function get($name)
{
if(key_exists($name, self::getInstance()->_entries)){
return self::getInstance()->_entries[$name];
}
return null;
}
/**
* 查看是否存在键为name的值
*
* @param $name
* @return bool
*/
public static function has($name)
{
return key_exists($name, self::getInstance()->_entries);
}
/**
* 设置$name=>$value
*
* @param $name
* @param $value
* @return true
*/
public static function set($name, $value)
{
self::getInstance()->_entries[$name] = $value;
return true;
}
/**
* 删除键为$name的值
*
* @param $name
* @return true
*/
public static function del($name)
{
unset(self::getInstance()->_entries[$name]);
return true;
}
private static function getInstance()
{
if(!self::$_instance instanceof self){
self::$_instance = new self();
self::$_instance->_entries = [];
}
return self::$_instance;
}
}
测试
<?php
require '../src/Yaf_Registry.php';
Yaf_Registry::set('aaa', 111);
Yaf_Registry::set('bbb', (object)[]);
var_dump(Yaf_Registry::get('aaa'));
var_dump(Yaf_Registry::has('aaa'));
var_dump(Yaf_Registry::del('aaa'));
var_dump(Yaf_Registry::has('aaa'));
var_dump(Yaf_Registry::get('aaa'));
var_dump(Yaf_Registry::get('bbb'));
输出
int(111)
bool(true)
bool(true)
bool(false)
NULL
object(stdClass)#2 (0) {
}