簡體   English   中英

PHP 如何在內部訪問屬性?

[英]How does PHP access properties internally?

跟進本文檔: https://www.php.net/manual/en/language.oop5.references.php

PHP OOP 的重點之一就是“對象默認通過引用傳遞”。 這並不完全正確。

在 PHP 中,object 變量不包含 object 本身作為值。 它只包含一個 object 標識符,它允許 object 訪問器找到實際的 object。

這實際上是如何工作的? 例如,在 C++ 中,箭頭運算符似乎隱式地取消引用指針,然后訪問屬性,就像在 object 變量本身上訪問它們時一樣。

這就是我的意思:

obj->prop
(*obj).prop // equivalent to line above

這看起來很干凈。 在這兩種情況下,該屬性都稱為對象變量地址和屬性偏移量的總和。

但這在 PHP 中是如何工作的? 文檔建議指針不存儲 memory 地址,而是存儲“對象標識符”。 Is accessing properties in PHP a highly abstracted process or does it resolve the object-identifier for the memory address and then access it in a similar way to C++ / Java / etc.?

這是一個高度抽象的過程,語法上的相似性並不表示代碼“失敗”到像 C/C++ 一樣工作。 您可以深入研究代碼以了解它在幕后是如何工作的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM