繁体   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