首頁 >後端開發 >php教程 >PHP的回傳引用和局部靜態變數

PHP的回傳引用和局部靜態變數

*文
*文原創
2017-12-28 10:24:381097瀏覽

本文主要介紹了了解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(&#39;a&#39;);  
$b = & aa(&#39;b&#39;);  
   
$a2 = & aa(&#39;a&#39;);  
$b2 = & aa(&#39;b&#39;);  
   
echo $a === $a2 ? &#39;$a和$a2是同一个实例化对象<br/>&#39; : &#39;&#39;;  
echo $b === $b2 ? &#39;$b和$b2是同一个实例化对象&#39; : &#39;&#39;;

#相關推薦:

php 引用(&)用法

php 引用賦值詳解

php 靜態變數的初始化實例詳解

以上是PHP的回傳引用和局部靜態變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn