我收到“通知:未定义的属性:stdClass”

时间:2019-11-26 02:21:26

标签: php

我正在尝试从Wikipedia API获取一些数据,但是我收到此消息。

这是上面的HTML格式小的PHP脚本:

PRESENTATION

所以我得到:

  

注意:未定义的属性:stdClass :: $ extract in   第18行的C:\ xampp \ htdocs \ wiki \ index.php

1 个答案:

答案 0 :(得分:0)

您的$api_url有问题。最后是.redirects=true,实际上应该是?redirects=true

此外,当您使用->时,确实在PHP中使用类,这意味着您试图访问对象的属性或函数。因此,您要访问对象$ data的属性query,然后访问对象pages的{​​{1}},然后访问对象$data->query的{​​{1}},然后访问$pageId $data->query->pages的对象。

如果由于某种原因它不具有您要获取的属性,则会看到该通知。

我强烈建议您确定要接收的结构,以确保您无需检查此结构的其他部分是否存在以及不存在时该怎么做。

如果您确定extractor是结构中唯一在某些情况下可能不存在的部分,则可以检查该属性是否首先存在,然后执行某些操作(如果不存在)。

$data->query->pages->$pageId

有关extractor函数的更多信息 https://www.php.net/manual/en/function.isset.php