搜索

首页  >  问答  >  正文

如何在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粉518799557480 天前626

全部回复(1)我来回复

  • P粉600845163

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

    这是一个高度抽象的过程,语法的相似并不意味着代码会像C/C++那样“掉入”工作。你可以深入代码来看看它在底层是如何工作的。

    回复
    0
  • 取消回复