了解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递归创建和删除文件夹的代码小结
Apr 13 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
php面向对象编程self和static的区别
May 08 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
php array_reverse 以相反的顺序返回数组实例代码
Apr 11 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
用PHP将数据导入到Foxmail
2006/10/09 PHP
PHP 加密与解密的斗争
2009/04/17 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
微信小程序 加载 app-service.js 错误解决方法
2016/10/12 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
Javascript实现找不同色块的游戏
2017/07/17 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
python 网络编程常用代码段
2016/08/28 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
python时间日期操作方法实例小结
2020/02/06 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
物流经理自我评价
2013/09/23 职场文书
优秀团员事迹材料1500字
2014/08/31 职场文书
政风行风整改方案
2014/10/25 职场文书
助学感谢信范文
2015/01/21 职场文书
街道社区活动报告
2015/02/05 职场文书
初中美术教学反思
2016/02/17 职场文书