首頁 > 後端開發 > php教程 > php物件和引用

php物件和引用

伊谢尔伦
發布: 2016-11-23 13:49:15
原創
983 人瀏覽過

在php5 的物件程式設計經常提到的一個關鍵點是「預設情況下物件是透過引用傳遞的」。但其實這不是完全正確的。下面透過一些例子來說明。

php的引用是別名,就是兩個不同的變數名字指向相同的內容。在php5,一個物件變數已經不再保存整個物件的值。只是保存一個標識符來存取真正的物件內容。 當物件作為參數傳遞,作為結果返回,或者賦值給另一個變量,另外一個變量跟原來的不是引用的關係,只是他們都保存著同一個標識符的拷貝,這個標識符指向同一個對象的真正內容。

Example #1 引用與物件

<?php
    class A {
        public $foo = 1;
    }
    $a = new A;
    $b = $a; // $a ,$b都是同一个标识符的拷贝
    // ($a) = ($b) = <id>
    $b->foo = 2;
    echo $a->foo."\n";
    $c = new A;
    $d = &$c; // $c ,$d是引用
    // ($c,$d) = <id>
    $d->foo = 2;
    echo $c->foo."\n";
    $e = new A;
    function foo($obj) {
        // ($obj) = ($e) = <id>
        $obj->foo = 2;
    }
    foo($e);
    echo $e->foo."\n";
?>
登入後複製

以上程式會輸出:

2
2
2
登入後複製


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板