国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

關(guān)于PHP5后“默認(rèn)情況下對象是通過引用傳遞的”思考

hosition / 3152人閱讀

摘要:中的對象傳遞然后說一下之后的默認(rèn)情況下的對象是通過引用傳遞的這件事情。如此時,其實(shí)表示的并不是是的引用,和可以說是沒什么關(guān)系的,有關(guān)系的是實(shí)例化類得到的對象。

首先引發(fā)這篇博文的是來源于這篇帖子:https://segmentfault.com/q/10...

經(jīng)過了思考之后,我決定把回答思考變成博客做一下記錄,如有不對之處,歡迎指正。

指針與引用

首先,引用和指針是不一樣的,指針在C語言里的概念是表示變量的地址;

引用在PHP里是表示變量2是變量1的別名,如:

$a = "hello";
$b = &$a;

此時可以說$b就是$a,$a就是$b;是同一個東西,比如你英文名叫 Steven,中文名叫 二狗子,不管叫啥,都是你。

PHP中的對象傳遞

然后說一下PHP5之后的“默認(rèn)情況下PHP的對象是通過引用傳遞的這件事情。
如:

class Obj() {
    public $o = "hello";
}
$a = new Obj();
$b = $a;
$c = &$a;

此時,$b=$a其實(shí)表示的并不是$b$a的引用,$a$b可以說是沒什么關(guān)系的,有關(guān)系的是實(shí)例化Obj類得到的對象。
也就是說,此時$a和$b都是實(shí)例化Obj后得到的對象,而$b=$a唯一產(chǎn)生的是$b$a這里得到了實(shí)例化Obj后的引用;
然后看$c = &$a
此時是$c$a的引用,也就是說$c就是$a
假設(shè):

unset($b);
unset($c);

那么unset($b)只是刪除了實(shí)例化Obj后得到的對象的一次引用計數(shù),
unset($c)則刪除了$a$b(因為兩個表示同一個東西);

同樣的,假設(shè):

$a->o = "test";
echo $b->o; // string "test"

雖然說$a和$b"沒什么關(guān)系",但是與實(shí)例化后的對象有關(guān)系,也就是$a改變的是實(shí)例化后的對象的數(shù)據(jù),而$b的調(diào)用也是調(diào)用了這個對象的數(shù)據(jù),所以從一定層面上看起來其實(shí)是有關(guān)系的。

再一個假設(shè)這樣說還不明白的話,從我們web的業(yè)務(wù)邏輯來看。

用戶A和用戶B都登陸了網(wǎng)站,用戶A改變了存儲評論的數(shù)據(jù)表的數(shù)據(jù),用戶B假設(shè)去取這條數(shù)據(jù),則用戶B獲取到就是修改后的數(shù)據(jù),而其實(shí)用戶A和用戶B是沒什么關(guān)系的。

而引用其實(shí)類似于用戶A同時在手機(jī)端和電腦端登陸,然后改變了評論數(shù)據(jù)表的數(shù)據(jù),不管是在手機(jī)端還是在電腦端重新獲取數(shù)據(jù)都是修改過的,但是實(shí)際上就是一個人。

引用計數(shù)

我文中提到了一個引用計數(shù)的名詞,這里又涉及到PHP中的另外一個問題,就是PHP的引用計數(shù),這個可以參考PHP官方的文檔,我覺得已經(jīng)很詳細(xì)了:
http://php.net/manual/zh/feat...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25636.html

相關(guān)文章

  • 如何讓PHP性能問題不再飽受詬病

    摘要:作為開發(fā)中應(yīng)用最廣泛的開源腳本語言,憑借庫類豐富,使用簡單,安全等特點(diǎn),成為和等互聯(lián)網(wǎng)巨頭和全球超過網(wǎng)站的主要開發(fā)語言,然而性能問題是一直以來飽受詬病的,來自開發(fā)組的高馳濤同學(xué)將為我們帶來他對性能優(yōu)化方面的思考和建議。 PHP作為Web開發(fā)中應(yīng)用最廣泛的開源腳本語言,憑借庫類豐富,使用簡單,安全等特點(diǎn),成為Facebook和BAT等互聯(lián)網(wǎng)巨頭和全球超過70%網(wǎng)站的主要開發(fā)語言,然而性能...

    warnerwu 評論0 收藏0
  • php + nginx 網(wǎng)站并發(fā)壓力測試及優(yōu)化

    摘要:一測試工具壓力測試工具是針對的性能測試工具,可以只安裝工具。顯示版本號并退出。用戶名和密碼由一個隔開,并以編碼形式發(fā)送。參考并發(fā)數(shù)問題思考與工作原理和優(yōu)化漏洞調(diào)大的并發(fā)連接數(shù)調(diào)的等。 一、測試工具: Apache 壓力測試工具ab ab是針對apache的性能測試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安...

    Soarkey 評論0 收藏0
  • php + nginx 網(wǎng)站并發(fā)壓力測試及優(yōu)化

    摘要:一測試工具壓力測試工具是針對的性能測試工具,可以只安裝工具。顯示版本號并退出。用戶名和密碼由一個隔開,并以編碼形式發(fā)送。參考并發(fā)數(shù)問題思考與工作原理和優(yōu)化漏洞調(diào)大的并發(fā)連接數(shù)調(diào)的等。 一、測試工具: Apache 壓力測試工具ab ab是針對apache的性能測試工具,可以只安裝ab工具。 ubuntu安裝ab apt-get install apache2-utils centos安...

    yeyan1996 評論0 收藏0
  • php底層原理之垃圾回收機(jī)制

    摘要:總結(jié)垃圾回收機(jī)制以的引用計數(shù)機(jī)制為基礎(chǔ)以前只有該機(jī)制同時使用根緩沖區(qū)機(jī)制,當(dāng)發(fā)現(xiàn)有存在循環(huán)引用的時,就會把其投入到根緩沖區(qū),當(dāng)根緩沖區(qū)達(dá)到配置文件中的指定數(shù)量后,就會進(jìn)行垃圾回收,以此解決循環(huán)引用導(dǎo)致的內(nèi)存泄漏問題開始引入該機(jī)制 php垃圾回收機(jī)制,對于PHPer來說是一個不陌生但是又不是很熟悉的內(nèi)容。那么php是怎么實(shí)現(xiàn)對不需要的內(nèi)存進(jìn)行回收的呢? php變量的內(nèi)部存儲結(jié)構(gòu) 首先還是...

    light 評論0 收藏0
  • foreach遍歷過程中奇怪現(xiàn)象(PHP5

    摘要:中基礎(chǔ)中的三大坑,遍歷,引用機(jī)制,數(shù)組。今天我們在講講中的一些奇怪現(xiàn)象。本文適合有一定基礎(chǔ)的。運(yùn)行流程共用一個結(jié)構(gòu)體開始遍歷數(shù)組,進(jìn)行判斷,拷貝數(shù)組是一個新的結(jié)構(gòu)體,操作的是新的結(jié)構(gòu)體。那么遍歷數(shù)組時,全程與原數(shù)組無關(guān)。 PHP中基礎(chǔ)中的三大坑,foreach遍歷,引用機(jī)制&,數(shù)組。 今天我們在講講foreach中的一些奇怪現(xiàn)象。 在講解之前,可以先看看我其他相關(guān)的文章,屬于同一個大的...

    kgbook 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<