了解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 相关文章推荐
基于mysql的论坛(6)
Oct 09 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
php定时执行任务设置详解
Feb 06 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
PHP中$_SERVER使用说明
Jul 05 PHP
关于PHP开发的9条建议
Jul 27 PHP
php实现smarty模板无限极分类的方法
Dec 07 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
PHP抽象类基本用法示例
Dec 28 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原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
jQuery 注意事项 与原因分析
2009/04/24 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
js模拟select下拉菜单控件的代码
2013/05/08 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
深入理解Python单元测试unittest的使用示例
2017/11/18 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
安全责任书范本
2014/04/15 职场文书
三严三实学习心得体会
2014/10/13 职场文书
写给女朋友的保证书
2015/05/09 职场文书
《去年的树》教学反思
2016/02/18 职场文书
python实现简单倒计时功能
2021/04/21 Python
Java8中接口的新特性使用指南
2021/11/01 Java/Android