为了账号安全,请及时绑定邮箱和手机立即绑定

为什么PHP调试器找不到此对象更改?

为什么PHP调试器找不到此对象更改?

PHP
呼啦一阵风 2021-04-26 17:50:10
我试图跟踪对PHP对象进行更改的位置,并且调试器无法进入发生代码的位置。我正在遍历具有三个分配的构造函数。  public function __construct(DataDefinitionInterface $definition, $name = NULL, TypedDataInterface $parent = NULL) {    $this->definition = $definition;    $this->parent = $parent;    $this->name = $name;  }在完成这三个分配中的第二个分配之后,第四个属性(由层次结构中的另一个类定义)已从空数组更改为具有单个元素的数组。该对象具有魔术getter和setter,但此处未调用它们。调试器不会进入对该parent属性的赋值,也不会达到上的断点__set()。最后一点是适当的,因为那些魔术方法仅对未声明或不可访问的parent属性起作用,并且该属性protected在构造函数上方声明,并且该对象始终可以访问其自己的属性。在那些情况下(软件中的其他地方),魔术方法(PHP文档中古朴的语言中的“替代”)被使用了。 调用后,调试器将愉快地介入。调试器如何可能无法进入一条语句,该语句显然要比简单的分配做更多的工作?我在Ubuntu 18.04.1上的Apache 2.4.29下运行PHP 7.2.10,在X调试2.6.0的VSCode 1.33.1中进行调试。正在调试的代码来自Drupal 8.7.0-dev。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信