搜尋

首頁  >  問答  >  主體

如何在PHP內部存取屬性?

<p>在這份文件的基礎上跟進:https://www.php.net/manual/en/language.oop5.references.php</p> <blockquote> <p>PHP物件導向程式設計的一個關鍵點經常被提及的是「物件預設透過引用傳遞」。這並不完全正確。 </p> </blockquote> <blockquote> <p>在PHP中,物件變數並不包含物件本身作為值。它只包含一個物件標識符,該標識符允許物件存取器找到實際的物件。 </p> </blockquote> <p>這實際上是如何運作的呢?例如,在C 中,箭頭操作符似乎會隱式地解引用指針,然後像在物件變數本身上存取屬性時一樣存取屬性。 </p> <p>我是這樣理解的:</p> <pre class="brush:php;toolbar:false;">obj->prop (*obj).prop // 等同於上面的行</pre> <p>這看起來非常簡潔。在這兩種情況下,屬性的呼叫都是物件變數位址與屬性偏移量總和。 </p> <p>但是在PHP中,這是如何運作的呢? 文件建議指標並不會儲存記憶體位址,而是一個「物件標識符」。在PHP中存取屬性是一個高度抽象的過程,還是會將物件標識符解析為記憶體位址,然後以類似於C / Java等方式存取它? </p>
P粉518799557P粉518799557481 天前627

全部回覆(1)我來回復

  • P粉600845163

    P粉6008451632023-09-06 11:33:11

    這是一個高度抽象的過程,語法的相似並不意味著程式碼會像C/C 那樣「掉入」工作。你可以深入程式碼來看看它在底層是如何運作的。

    回覆
    0
  • 取消回覆