了解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加速 eAccelerator配置和使用指南
Jun 05 PHP
Windows下XDebug 手工配置与使用说明
Jul 11 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
PHP SEO优化之URL优化方法
Apr 21 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
PHP 中常量的知识整理
Apr 14 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 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中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
2009/09/05 PHP
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
热点新闻滚动特效的js代码
2013/08/17 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
2017/04/08 jQuery
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Java及python正则表达式详解
2017/12/27 Python
深入浅析python 中的匿名函数
2018/05/21 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
详解Scrapy Redis入门实战
2020/11/18 Python
css3使网页、图片变成灰色兼容大多数浏览器
2014/07/02 HTML / CSS
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
营销团队口号
2014/06/06 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
逃课检讨书
2015/01/26 职场文书
碧霞祠导游词
2015/02/09 职场文书
少先队工作总结2015
2015/05/13 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏