了解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 相关文章推荐
模仿OSO的论坛(四)
Oct 09 PHP
火车头采集器3.0采集图文教程
Mar 17 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 PHP
探讨各种PHP字符串函数的总结分析
Jun 05 PHP
php中JSON的使用与转换
Jan 14 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
php异常处理方法实例汇总
Jun 24 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
php7性能提升的原因详解
Oct 13 PHP
php中用unset销毁变量并释放内存
May 10 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
电脑硬件及电脑配置知识大全
2020/03/17 数码科技
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP生成plist数据的方法
2015/06/16 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
utf8的编码算法 转载
2006/12/27 Javascript
短信提示使用 特效
2007/01/19 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
2018/05/29 Python
Python List cmp()知识点总结
2019/02/18 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
使用python绘制温度变化雷达图
2019/10/18 Python
Python关于反射的实例代码分享
2020/02/20 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
如何设置Java的运行环境
2013/04/05 面试题
Prototype如何实现页面局部定时刷新
2013/08/06 面试题
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS