PHP引用的&理解
什麼是引用?
php的引用可以理解為變數的別名,由於php的變數名是儲存在符號表(symbol table)中的,變數內容是儲存在堆中,引用就是用符號表中的不同符號(symbol)名稱訪問同一儲存內容,和Unix檔案系統中的hardlink是一個概念,比如:
php
$a = 1;
$b = &$a; //$a與$b指向同一內容
$b = 2;
echo $b; //2
echo $a; //2
引用傳遞
如果想要在函式修改一個變數的值,可以透過引用傳遞將變數傳遞給函式,如下:
function test(&$var)
{
$var++;
}
$a = 1;
test(&$a);
echo $a; //結果為2
注意在函式呼叫中沒有引用符號,只有在函式定義中有。在php5.6.27版本函式呼叫使用引用符號,會導致:”( ! ) Fatal error: Call-time pass-by-reference has been removed”
引用返回
引用返回用在想用函式找到引用應該繫結在哪一個變數上!
class foo {
public $value = 42;
public function &getValue() {
return $this->value;
}
}
$obj = new foo;
$myValue1 = &$obj->getValue(); //使用&符號,返回是一個引用
$myValue2 = $obj->getValue(); //沒有使用&符號
$obj->value = 2;
echo $myValue1.'
'; //2
echo $myValue2.'
'; //42
Note:和引數傳遞不同,這裡必須在函式定義和函式呼叫兩個地方使用“&”引用符號–指出返回的是一個引用,而不是通常的一個複製,同樣也指出 $myValue1 是作為引用的繫結,而不是通常的賦值。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3349/viewspace-2804568/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- php 傳值與傳引用的理解(通俗易懂)PHP
- 理解Java的強引用、軟引用、弱引用和虛引用Java
- 【JVM】如何理解強引用、軟引用、弱引用、虛引用?JVM
- PHP中物件的引用傳遞PHP物件
- 一篇搞懂 PHP 的引用PHP
- 強引用、軟引用、弱引用、幻象引用再不理解就晚了
- java的引用:用C++/C的引用和指標去理解JavaC++指標
- 3. PHP 引用解惑PHP
- PHP引用的一個面試題PHP面試題
- PHP 類多次引用報錯PHP
- PHP物件導向之&引用PHP物件
- PHP的引用計數是什麼意思?PHP
- PHP的垃圾回收機制-引用計數PHP
- 深入理解Java的分級引用模型Java模型
- PHP 閉包的理解PHP
- php函式引用傳遞引數的方法PHP函式
- 關於引用(python中的偽指標)的理解Python指標
- 從JDK原始碼理解java引用JDK原始碼Java
- 十分鐘理解Java中的弱引用Java
- php-多型的理解PHP多型
- PHP socket 的簡單理解PHP
- PHP 的 strtotime 的原理解析PHP
- Spring的3級快取和迴圈引用的理解Spring快取
- PHP 引用詳解 - 踩坑與妙用PHP
- php中物件是引用型別嗎?PHP物件型別
- 正確理解 PHP 的過載PHP
- 理解php物件注入PHP物件
- PHP-pfm 理解PHP
- Java的強引用、軟引用、弱引用、虛引用Java
- 怎麼理解php的中介軟體PHP
- 理解 PHP 8 中的 Attributes (註解)PHP
- 轉載:我所理解的 PHP TraitPHPAI
- php查詢演算法的理解PHP演算法
- PHP 單例模式理解PHP單例模式
- PHP單例模式理解PHP單例模式
- java中多型的理解——父類引用指向子類物件Java多型物件
- java的強引用、軟引用、弱引用、幻象引用,引用佇列總結Java佇列
- Java/Android中的強引用、軟引用、弱引用、虛引用JavaAndroid