了解PHP的返回引用和局部静态变量

 更新时间:2015年06月04日 11:10:06   投稿:junjie  
这篇文章主要介绍了了解PHP的返回引用和局部静态变量,返回引用一般的写法是方法名前加&,局部静态变量也有很妙用,需要的朋友可以参考下

先阅读手册
==========
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符 & : 

复制代码 代码如下:

<?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 文本文件的读取效率

    一直鼓捣着想把博客的首页存在文件里,结果存在文件里,博客更新时再重新将内容再次写入到这个文件。所以刚才测试了三种读取文本的常规方法
    2012-02-02
  • PHP基于SPL实现的迭代器模式示例

    PHP基于SPL实现的迭代器模式示例

    这篇文章主要介绍了PHP基于SPL实现的迭代器模式,简单描述了迭代器模式的概念、原理并结合实例形式分析了php使用SPL实现迭代器模式的相关操作技巧与注意事项,需要的朋友可以参考下
    2018-04-04
  • php 实现账号不能同时登陆的方法分析【当其它地方登陆时,当前账号失效】

    php 实现账号不能同时登陆的方法分析【当其它地方登陆时,当前账号失效】

    这篇文章主要介绍了php 实现账号不能同时登陆的方法,结合实例形式分析了PHP基于session实现当其它地方登陆时,当前账号失效的相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • php小偷相关截取函数备忘

    php小偷相关截取函数备忘

    php小偷相关截取函数备忘,需要的朋友可以参考下。
    2010-11-11
  • php实现mysql备份恢复分卷处理的方法

    php实现mysql备份恢复分卷处理的方法

    这篇文章主要介绍了php实现mysql备份恢复分卷处理的方法,包括完整的MySQL备份恢复类文件及用法实例,注释包含了详尽的用法说明,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • PHP实现微信公众号企业号自定义菜单接口示例

    PHP实现微信公众号企业号自定义菜单接口示例

    这篇文章主要介绍了PHP实现微信公众号企业号自定义菜单接口,结合实例形式分析了php自定义微信菜单类及微信接口相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • php求今天、昨天、明天时间戳的简单实现方法

    php求今天、昨天、明天时间戳的简单实现方法

    这篇文章主要介绍了php求今天、昨天、明天时间戳的方法,实例分析了strtotime函数的常见使用技巧,非常简单实用,需要的朋友可以参考下
    2016-07-07
  • 学习PHP session的传递方式

    学习PHP session的传递方式

    在cookie关闭的情况下,如何让我们的用户体验做的更好,session的传递方式学习是很重要的,让一个数据能在多个页面中传递,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • PHP空值检测函数与方法汇总

    PHP空值检测函数与方法汇总

    PHP是一种宽松类型的编程语言,在函数中对传入的参数值的“类型”以及”值是否为空或者NULL“进行检查是不可缺少的步骤。
    2017-11-11
  • 深思 PHP 数组遍历的差异(array_diff 的实现)

    深思 PHP 数组遍历的差异(array_diff 的实现)

    还是部门无聊的考题,不过这次考的是 PHP 的能力。题目如下: 给你两个分别有 5000 个元素的数组,计算他们的差集 -- 说白了也就是用 PHP 和你认为最好的算法实现 array_diff 的算法。初次接到这个题目,我发现这非常的简单,于是按照以往的经验“随便”写了一个:
    2008-03-03

最新评论