了解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 相关文章推荐
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
PHP开发中常用的8个小技巧
Aug 27 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
PHP数组实例总结与说明
Aug 23 PHP
解析php下载远程图片函数 可伪造来路
Jun 25 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
Feb 18 PHP
php使用PDO操作MySQL数据库实例
Dec 30 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
PHP基于socket实现客户端和服务端通讯功能
Jul 13 PHP
php实现socket推送技术的示例
Dec 20 PHP
PHP利用递归函数实现无限级分类的方法
Mar 22 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
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
开源的javascript项目Kissy介绍
2014/11/28 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
js添加事件的通用方法推荐
2016/05/15 Javascript
Json解析的方法小结
2016/06/22 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
微信小程序 this和that详解及简单实例
2017/02/13 Javascript
javascript实现非常简单的小数取整功能示例
2017/06/13 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
js实现点击按钮复制文本功能
2020/07/20 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
Python操作Access数据库基本步骤分析
2016/09/19 Python
获取python文件扩展名和文件名方法
2018/02/02 Python
python设置环境变量的原因和方法
2019/06/24 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
边城读书笔记
2015/06/29 职场文书
2019公司管理制度
2019/04/19 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript
pytorch--之halfTensor的使用详解
2021/05/24 Python