php - 为什么我可以在 PHP 中访问深度克隆类中的私有属性?
问题描述
对于我正在做的事情,这实际上很好,但我想知道我如何能够访问深度克隆的私有属性$this
。就因为我还在同一个班吗?
class Handler
{
/** private property **/
private $stuff;
/** deep clone **/
public function __clone()
{
$this->stuff = clone $this->stuff;
}
/** able to access private property **/
public function handle()
{
$handler = clone $this;
var_dump($handler->stuff);
}
}
根据我对深度克隆的理解,我正在内存中创建一个完全独立的对象或“条目”,因此$handler
它$stuff
并没有在内存中的同一位置引用。即使stuff
是私人的,我仍然从var_dump()
.
我在Zend Stratigility第 77 行发现了这个概念。
解决方案
推荐阅读
- php - php转换多维数组
- java - 在设备上安装两个类似的 Unity 应用程序时出错
- java - 如何使用 Java 根据列名而不是列索引将特定列从一个 CSV 文件传输到另一个 CSV
- c# - 如何在 catia v6 宏中捕获事件
- ios - 对象返回空描述
- c# - DynamicExpresso.SetFunction 不适用于方法重载
- cordova - 即使在 ionic/cordova 中也能捕获按下的“下一步”按钮
- node.js - 在猫鼬中多次添加相同产品时如何更新购物车
- javascript - 替换数组的多个元素同时保持它们的位置
- oracle - 在 Oracle DB 中运行存储过程并使用批处理脚本运行它