了解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调用mysql存储过程
Feb 14 PHP
php下通过IP获取地理位置的代码(小偷程序)
Jun 09 PHP
PHP调用JAVA的WebService简单实例
Mar 11 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
Sep 27 PHP
php从数组中随机选择若干不重复元素的方法
Mar 14 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
ThinkPHP中session函数详解
Sep 14 PHP
PHP实现简易计算器功能
Aug 28 PHP
PHP与Perl之间知识点区别整理
Mar 19 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
nodejs实现日志读取、日志查找及日志刷新的方法分析
2019/05/20 NodeJs
JS中的模糊查询功能
2019/12/08 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
对python中UDP,socket的使用详解
2019/08/22 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
Python箱型图处理离群点的例子
2019/12/09 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
车间调度岗位职责
2013/11/30 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
婚宴领导致辞
2015/07/28 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript