了解PHP的返回引用和局部静态变量


Posted in PHP onJune 04, 2015

先阅读手册
==========
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & : 

<?php  

function &returns_reference()  

{  

    $someref = 0;  

    return $someref;  

}  

   

$newref = &returns_reference();//相当于 $newref = &$someref;  

?>

有关引用的更多信息, 请查看引用的解释。

在来看一段很多开源代码喜欢用的单例注册模式

class a{}  

class b{}  

function & aa($name)  

{  

    static $class = array(); //局部静态变量 不随方法的执行结束而消失 而是坚持到整个源程序结束时才结束生命周期  

    if(!$class[$name])       //所以 此处的声明/初始化语句 只在首次声明时起作用  

    {                        //之后再调用此方法时, 静态变量不再重新初始化value  

        $class[$name] = new $name();  

    }  

    return $class[$name];  

}  

$a = & aa('a');  

$b = & aa('b');  

   

$a2 = & aa('a');  

$b2 = & aa('b');  

   

echo $a === $a2 ? '$a和$a2是同一个实例化对象<br/>' : '';  

echo $b === $b2 ? '$b和$b2是同一个实例化对象' : '';
PHP 相关文章推荐
IIS下配置Php+Mysql+zend的图文教程
Dec 08 PHP
不错的PHP学习之php4与php5之间会穿梭一点点感悟
May 03 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
php类的定义与继承用法实例
Jul 07 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 PHP
利用ajax+php实现商品价格计算
Mar 31 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 #PHP
php实现将上传word文件转为html的方法
Jun 03 #PHP
php 类自动载入的方法
Jun 03 #PHP
php操作memcache缓存方法分享
Jun 03 #PHP
php操作redis缓存方法分享
Jun 03 #PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 #PHP
php使用GD实现颜色渐变实例
Jun 02 #PHP
You might like
PHP中路径问题的解决方案
2006/10/09 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
php中关于换行的实例写法
2019/09/26 PHP
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
Python操作串口的方法
2015/06/17 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
python手写均值滤波
2020/02/19 Python
Python 没有main函数的原因
2020/07/10 Python
Python如何合并多个字典或映射
2020/07/24 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Python获取android设备cpu和内存占用情况
2020/11/15 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
零件设计自荐信范文
2013/11/27 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
股权投资意向书
2014/04/01 职场文书
工地质量标语
2014/06/12 职场文书
生物科学专业自荐书
2014/06/20 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
预备党员转正意见
2015/06/01 职场文书
爱国影片观后感
2015/06/18 职场文书