首頁 >後端開發 >php教程 >php5 PHP5 的物件賦值機制介紹

php5 PHP5 的物件賦值機制介紹

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-07-29 08:46:21798瀏覽

複製程式碼 程式碼如下:


class SimpleClass{
public $var = 'a default value';
public function playVar() { sdefault value';
.
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var = '$assigned will have this value';
$instance = null // $instance = null; and $reference become null var_dump($instance);var_dump($reference);var_dump($assigned);
var_dump($instance);
var_dump($assigned);
var_instance);
var_dump($assigned);
var_instance);
var_dump($assigned);
var_instance);

var_dump($assigned);
var_instance); php5 改寫了OOP底層。當類別產生一個實例(物件)的時候,傳回值$instance並不是物件本身,而只是物件的一個id(或資源句柄),所以,當$instance被賦值給$assigned的時候,$assigned也指向了這個對象,這有點像是普通變數的引用(&)操作。所以,當對$instance初始化的時候,$assigned也被初始化了。但是,當$instance被銷毀(=null)的時候,因為對應的物件還有一個句柄存在($assigned),所以物件並不會被銷毀,析構函數也不會被觸發。結果,var_dump($assigned)是物件的值,而$instance已經是空句柄,顯示null。 $reference因為與$instance有類似普通變數間的引用關係,所以也成為空句柄,顯示 null。

以上就介紹了php5 PHP5 的物件賦值機制介紹,包含了php5方面的內容,希望對PHP教學有興趣的朋友有幫助。

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