如何在PHP内部访问属性?
P粉518799557
P粉518799557 2023-09-05 18:50:40
0
1
435

在这份文档的基础上进行跟进:https://www.php.net/manual/en/language.oop5.references.php

PHP面向对象编程的一个关键点经常被提到的是“对象默认通过引用传递”。这并不完全正确。

在PHP中,对象变量并不包含对象本身作为值。它只包含一个对象标识符,该标识符允许对象访问器找到实际的对象。

这实际上是如何工作的呢?例如,在C++中,箭头操作符似乎会隐式地解引用指针,然后像在对象变量本身上访问属性时一样访问属性。

我是这样理解的:

obj->prop (*obj).prop // 等同于上面的行

这看起来非常简洁。在这两种情况下,属性的调用都是对象变量地址与属性偏移量之和。

但是在PHP中,这是如何工作的呢? 文档建议指针并不存储内存地址,而是一个“对象标识符”。在PHP中访问属性是一个高度抽象的过程,还是会将对象标识符解析为内存地址,然后以类似于C++ / Java等方式访问它?

P粉518799557
P粉518799557

全部回复 (1)
P粉600845163

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

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!