先閱讀手冊
==========
從函數返回一個引用,必須在函數聲明和指派返回值給一個變量時都使用引用操作符 & :
例子 17-13. 由函數返回一個引用
有關引用的更多信息, 請查看引用的解釋。
在來看一段很多開源代碼喜歡用的單例注冊模式 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是同一個實例化對象
' : ''; echo $b === $b2 ? '$b和$b2是同一個實例化對象' : '';
本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴
本文系統來源:php中文網