代码

<?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) {}

用PHP写Yaf:Yaf_Registry类相关推荐

  1. Controller类的方法上的RequestMapping一定要写在Controller类里吗?

    使用Spring Cloud做项目的同学会使用Feign这个组件进行远程服务的调用,Feign这个组件采用模板的方式,有着优雅的代码书写规范.核心原理对Feign等相关注解进行解析,并提取信息,在Sp ...

  2. 写一个ArrayList类的动态代理类

    动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实,代理对象对客户隐藏了实际对象.动态代理可以对请求进行其他的一些处理,在不允许直接访问某些类,或需要对访问做一些特殊处理等,这时候可以考虑 ...

  3. Day14作业 三、编程题 写一个Student类,属性:名字,年龄,分数,班级 (注意分包)

    三.编程题 写一个Student类,属性:名字,年龄,分数,班级 (注意分包) 写一个测试类:创建一个集合,里面装6个学生(有三个班级class01,class02,class03) 例如:list. ...

  4. php 编写mysql,自己写的MySQL类

    自己写的MySQL类 ---------- php debug ---------- Server=localhost;DataBase=mysql;UserID=root;PassWord=1234 ...

  5. C# 写的棋牌类游戏(全源码)。

    C# 写的棋牌类游戏(全源码) http://d.namipan.com/d/b47c1bb0ed558e95c85313ba845e57ddad98b70568aa6704 有兴趣的开发者可以下载看 ...

  6. T5 根据派生类写出基类(Java) (10分)

    6-1 根据派生类写出基类(Java) (10分) 裁判测试程序样例中展示的是一段定义基类People.派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试 ...

  7. PTA 6-2 根据派生类写出基类(Java)

    6-2 根据派生类写出基类(Java) 裁判测试程序样例中展示的是一段定义基类People.派生类Student以及测试两个类的相关Java代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行 ...

  8. 写出一个类People,并由该类做基类派生出子类Employee和Teacher

    写出一个类People,并由该类做基类派生出子类Employee和Teacher.其中People 类具有name.age两个保护成员变量,分别为String类型.整型,且具有公有的getAge成员函 ...

  9. java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...

    原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...

  10. 转载几篇别人写的皮肤类控件的技术文章

    转载几篇别人写的皮肤类控件的技术文章 原连接:http://blog.sina.com.cn/s/blog_4c3538470100ezhu.html 实现控件的透明背景 很多情况下,我们需要控件 的 ...

最新文章

  1. 迅雷“星域”打通最后一公里重新定义CDN
  2. 个人代码库のC#千千静听 - 桌面歌词 (功能模拟)
  3. TomcatNginx源码笔记分析
  4. iview table后端分页 多选 翻页选中回显
  5. 怎样把java项目转换成web项目_Eclipse中将Java项目转换成Web项目的方法
  6. jupyter一直*_不用下载安装,你的机器人可以直接在浏览器里跳舞丨Jupyter-ROS
  7. c# 正则表达式对网页进行有效内容抽取
  8. JS 实现图层模式覆盖效果
  9. 频域处理:傅里叶变换及小波变换
  10. 网易微专业大数据工程师
  11. cadence软件打开报错“计算机中丢失cdsCommon.dll”的解决办法
  12. 统计模型——贝叶斯统计模型,负二项分布
  13. Java开源工具库使用之Apache commons-lang3
  14. 计算机启动进入不了桌面图标,电脑开机后,进到桌面图标都没有开始也点不开 win10...
  15. ▲ Android自定义方框EditText注册验证码
  16. 有哪些科研人员看文献必用的软件?
  17. 广播单播组播的知识总结与分享
  18. 项目成本管理之挣值管理公式计算
  19. 一些有意思的网页前端设计
  20. 网站是怎么了,一直http/1.1 302 found 浏览器假死了一样

热门文章

  1. spark sortBy sortByKey实战详解
  2. Ubuntu20.04安装OpenCV3.4.15
  3. python中 是什么运算_“是”运算符在Python中做了什么?
  4. error installing service: 拒绝访问。 (5)_CentOS7x86_64安装Tomcat8.5手册
  5. react根据中文获取拼音_学前家长建议收藏:你要的「趣味拼音课」来了
  6. Excel精度问题。
  7. postman传数组参数
  8. 兼具颜值与智慧 华为Mate 10 Pro体验图赏
  9. Prometheus 架构 - 每天5分钟玩转 Docker 容器技术(83)
  10. 《HTML与CSS入门经典(第8版)》——第2章 发布Web内容2.1 创建用于本章的示例文件...