了解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 相关文章推荐
js下函数般调用正则的方法附代码
Jun 22 PHP
PHP 事件机制(2)
Mar 23 PHP
php生成二维码的几种方式整理及使用实例
Jun 03 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
解析在PHP中使用全局变量的几种方法
Jun 24 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
php打开远程文件的方法和风险及解决方法
Nov 12 PHP
ucenter通信原理分析
Jan 09 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
Yii使用技巧大汇总
Dec 29 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 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 进度条函数的简单实例
2017/09/19 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
jquery+css实现的红色线条横向二级菜单效果
2015/08/22 Javascript
jQuery数据类型小结(14个)
2016/01/08 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
python获取标准北京时间的方法
2015/03/24 Python
python中私有函数调用方法解密
2016/04/29 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
python append、extend与insert的区别
2016/10/13 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
python3.7.0的安装步骤
2018/08/27 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
2019/08/10 Python
Python API自动化框架总结
2019/11/12 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
python如何求圆的面积
2020/07/01 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
python 实现有道翻译功能
2021/02/26 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
大学生村官考核材料
2014/05/23 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
教师师德工作总结2015
2015/07/22 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
python基础详解之if循环语句
2021/04/24 Python
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫