了解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 相关文章推荐
域名查询代码公布
Oct 09 PHP
php fckeditor 调用的函数
Jun 21 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
利用中国天气预报接口实现简单天气预报
Jan 20 PHP
PHP加Nginx实现动态裁剪图片方案
Mar 10 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
php使用curl打开https网站的方法
Jun 17 PHP
PHP生成短网址方法汇总
Jul 12 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 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
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
Javascript调用C#代码
2011/01/17 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
JavaScript适配器模式详解
2017/10/19 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
vue实现购物车的监听
2020/04/20 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
10分钟学会js处理json的常用方法
2020/12/06 Javascript
简单的Python的curses库使用教程
2015/04/11 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
Python函数和模块的使用总结
2019/05/20 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python数据可视化:箱线图多种库画法
2019/11/06 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
普通简短的个人自我评价
2014/02/15 职场文书
校园元旦活动总结
2014/07/09 职场文书
社区娱乐活动方案
2014/08/21 职场文书
初婚初育证明范本
2014/11/24 职场文书
公司承诺书格式范文
2015/04/28 职场文书
安全生产学习心得体会
2016/01/18 职场文书