摘要:中的對象傳遞然后說一下之后的默認情況下的對象是通過引用傳遞的這件事情。如此時,其實表示的并不是是的引用,和可以說是沒什么關系的,有關系的是實例化類得到的對象。
首先引發這篇博文的是來源于這篇帖子:https://segmentfault.com/q/10...
經過了思考之后,我決定把回答思考變成博客做一下記錄,如有不對之處,歡迎指正。
指針與引用首先,引用和指針是不一樣的,指針在C語言里的概念是表示變量的地址;
引用在PHP里是表示變量2是變量1的別名,如:
$a = "hello"; $b = &$a;
此時可以說$b就是$a,$a就是$b;是同一個東西,比如你英文名叫 Steven,中文名叫 二狗子,不管叫啥,都是你。
PHP中的對象傳遞然后說一下PHP5之后的“默認情況下PHP的對象是通過引用傳遞的這件事情。
如:
class Obj() { public $o = "hello"; } $a = new Obj(); $b = $a; $c = &$a;
此時,$b=$a其實表示的并不是$b是$a的引用,$a 和 $b可以說是沒什么關系的,有關系的是實例化Obj類得到的對象。
也就是說,此時$a和$b都是實例化Obj后得到的對象,而$b=$a唯一產生的是$b從$a這里得到了實例化Obj后的引用;
然后看$c = &$a
此時是$c是$a的引用,也就是說$c就是$a;
假設:
unset($b); unset($c);
那么unset($b)只是刪除了實例化Obj后得到的對象的一次引用計數,
unset($c)則刪除了$a和$b(因為兩個表示同一個東西);
同樣的,假設:
$a->o = "test"; echo $b->o; // string "test"
雖然說$a和$b"沒什么關系",但是與實例化后的對象有關系,也就是$a改變的是實例化后的對象的數據,而$b的調用也是調用了這個對象的數據,所以從一定層面上看起來其實是有關系的。
再一個假設這樣說還不明白的話,從我們web的業務邏輯來看。
用戶A和用戶B都登陸了網站,用戶A改變了存儲評論的數據表的數據,用戶B假設去取這條數據,則用戶B獲取到就是修改后的數據,而其實用戶A和用戶B是沒什么關系的。
而引用其實類似于用戶A同時在手機端和電腦端登陸,然后改變了評論數據表的數據,不管是在手機端還是在電腦端重新獲取數據都是修改過的,但是實際上就是一個人。
引用計數我文中提到了一個引用計數的名詞,這里又涉及到PHP中的另外一個問題,就是PHP的引用計數,這個可以參考PHP官方的文檔,我覺得已經很詳細了:
http://php.net/manual/zh/feat...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/25636.html
摘要:作為開發中應用最廣泛的開源腳本語言,憑借庫類豐富,使用簡單,安全等特點,成為和等互聯網巨頭和全球超過網站的主要開發語言,然而性能問題是一直以來飽受詬病的,來自開發組的高馳濤同學將為我們帶來他對性能優化方面的思考和建議。 PHP作為Web開發中應用最廣泛的開源腳本語言,憑借庫類豐富,使用簡單,安全等特點,成為Facebook和BAT等互聯網巨頭和全球超過70%網站的主要開發語言,然而性能...
摘要:一測試工具壓力測試工具是針對的性能測試工具,可以只安裝工具。顯示版本號并退出。用戶名和密碼由一個隔開,并以編碼形式發送。參考并發數問題思考與工作原理和優化漏洞調大的并發連接數調的等。 一、測試工具: Apache 壓力測試工具ab ab是針對apache的性能測試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安...
摘要:一測試工具壓力測試工具是針對的性能測試工具,可以只安裝工具。顯示版本號并退出。用戶名和密碼由一個隔開,并以編碼形式發送。參考并發數問題思考與工作原理和優化漏洞調大的并發連接數調的等。 一、測試工具: Apache 壓力測試工具ab ab是針對apache的性能測試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安...
摘要:總結垃圾回收機制以的引用計數機制為基礎以前只有該機制同時使用根緩沖區機制,當發現有存在循環引用的時,就會把其投入到根緩沖區,當根緩沖區達到配置文件中的指定數量后,就會進行垃圾回收,以此解決循環引用導致的內存泄漏問題開始引入該機制 php垃圾回收機制,對于PHPer來說是一個不陌生但是又不是很熟悉的內容。那么php是怎么實現對不需要的內存進行回收的呢? php變量的內部存儲結構 首先還是...
摘要:中基礎中的三大坑,遍歷,引用機制,數組。今天我們在講講中的一些奇怪現象。本文適合有一定基礎的。運行流程共用一個結構體開始遍歷數組,進行判斷,拷貝數組是一個新的結構體,操作的是新的結構體。那么遍歷數組時,全程與原數組無關。 PHP中基礎中的三大坑,foreach遍歷,引用機制&,數組。 今天我們在講講foreach中的一些奇怪現象。 在講解之前,可以先看看我其他相關的文章,屬于同一個大的...
閱讀 951·2021-09-27 13:36
閱讀 907·2021-09-08 09:35
閱讀 1077·2021-08-12 13:25
閱讀 1447·2019-08-29 16:52
閱讀 2918·2019-08-29 15:12
閱讀 2737·2019-08-29 14:17
閱讀 2625·2019-08-26 13:57
閱讀 1022·2019-08-26 13:51