我試圖跟蹤對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 回答
- 0 關注
- 159 瀏覽
添加回答
舉報
0/150
提交
取消