PHP5 的對象賦值機(jī)制介紹
更新時間:2011年08月02日 22:10:42 作者:
看到PHP設(shè)計(jì)模式中值對象模式中的例題,對于結(jié)果總感到有點(diǎn)疑惑?;仡^看了下PHP5的對象賦值才真正清楚。
復(fù)制代碼 代碼如下:
<?php
class SimpleClass{
public $var = 'a default value';
public function displayVar() {
echo $this->var;
}
}
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var = '$assigned will have this value';
$instance = null; // $instance and $reference become null var_dump($instance);var_dump($reference);var_dump($assigned);
var_dump($instance);
var_dump($assigned);
var_dump($reference);
?>
php5 改寫了OOP底層。當(dāng)類生成一個實(shí)例(對象)的時候,返回值$instance并不是對象本身,而只是對象的一個id(或者資源句柄),所以,當(dāng)$instance被賦值給$assigned的時候,$assigned也指向了這個對象,這有點(diǎn)像普通變量的引用(&)操作。所以,當(dāng)對$instance初始化的時候,$assigned也被初始化了。但是,當(dāng)$instance被銷毀(=null)的時候,因?yàn)閷?yīng)的對象還有一個句柄存在($assigned),所以對象并不會被銷毀,析構(gòu)函數(shù)也不會被觸發(fā)。結(jié)果,var_dump($assigned)是對象的值,而$instance已經(jīng)是空句柄,顯示null。$reference因?yàn)榕c$instance有類似普通變量間的引用關(guān)系,所以也成為空句柄,顯示 null。
相關(guān)文章
利用PHP判斷是手機(jī)移動端還是PC端訪問的函數(shù)示例
在平常工作開發(fā)中,我們通常需要開發(fā)出PC端和移動端兩個不同的系統(tǒng),從而根據(jù)訪問端的不同進(jìn)入到不同的操作界面中。下面這篇文章主要給大家介紹了關(guān)于利用PHP判斷是手機(jī)移動端還是PC端訪問的函數(shù)的相關(guān)資料,需要的朋友可以參考下。2017-12-12
PHP批量上傳圖片的具體實(shí)現(xiàn)方法介紹.
這篇文章主要介紹了PHP批量上傳圖片的具體實(shí)現(xiàn)方法。需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02
自己寫的兼容低于PHP 5.5版本的array_column()函數(shù)
這篇文章主要介紹了自己寫的兼容低于PHP 5.5版本的array_column()函數(shù),array_column是PHP 5.5新增函數(shù),有時在低版本中也可能要用到,需要的朋友可以參考下2014-10-10
PHP請求遠(yuǎn)程地址設(shè)置超時時間的解決方法
下面小編就為大家?guī)硪黄狿HP請求遠(yuǎn)程地址設(shè)置超時時間的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10
php常用數(shù)組函數(shù)實(shí)例小結(jié)
這篇文章主要介紹了php常用數(shù)組函數(shù),結(jié)合實(shí)例形式總結(jié)分析了php常用數(shù)組函數(shù)array_merge、array_slice及array_map的功能與使用技巧,需要的朋友可以參考下2016-12-12
PHP下ajax跨域的解決方案之window.name實(shí)例分析
這篇文章主要介紹了PHP下ajax跨域的解決方案之window.name,結(jié)合實(shí)例形式分析PHP ajax跨域的解決方案window.name基本原理、操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-03-03
兼容性最強(qiáng)的PHP生成縮略圖的函數(shù)代碼(修改版)
寫通用性程序考慮兼容性是很頭痛的事情,關(guān)于用PHP生成縮略圖的代碼很多,不過能完全兼容gd1.6和gd2.x,并能保證縮圖清晰性的代碼幾乎沒有,我把我以前的代碼改了一下,就能實(shí)現(xiàn)了。2011-01-01
解析PHP SPL標(biāo)準(zhǔn)庫的用法(遍歷目錄,查找固定條件的文件)
本篇文章是對PHP中SPL標(biāo)準(zhǔn)庫的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

