了解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 相关文章推荐
php 中include()与require()的对比
Oct 09 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
PHP源代码数组统计count分析
Aug 02 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
详解php中 === 的使用
Oct 24 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
Apr 03 PHP
详解php框架Yaf路由重写
Jun 20 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 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
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
基于jQuery的遍历同id元素 并响应事件的代码
2012/06/14 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
jQuery实现移动端滑块拖动选择数字效果
2015/12/24 Javascript
详解BootStrap中Affix控件的使用及保持布局的美观的方法
2016/07/08 Javascript
简单学习vue指令directive
2016/11/03 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
vue路由 遍历生成复数router-link的例子
2019/10/30 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python3 处理JSON的实例详解
2017/10/29 Python
深入理解python中函数传递参数是值传递还是引用传递
2017/11/07 Python
Python列表切片常用操作实例解析
2020/03/10 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
使用OpenCV对车道进行实时检测的实现示例代码
2020/06/19 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
团代会主持词
2014/04/02 职场文书
教师产假请假条
2014/04/10 职场文书
护理专业自荐书
2014/06/04 职场文书
销售团队激励口号
2014/06/06 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
行政处罚告知书
2015/07/01 职场文书
会计做账心得体会
2016/01/22 职场文书
Golang中异常处理机制详解
2021/06/08 Golang