Php 试图获得财产';用户';非对象

Php 试图获得财产';用户';非对象,php,json,Php,Json,我有两个错误: 注意:试图在第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中获取非对象的属性“users” 警告:第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中为foreach()提供的参数无效 我在努力: $json = json_decode(file_get_contents('https://www.instagram.com/web/search/topsearch/?qu

我有两个错误: 注意:试图在第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中获取非对象的属性“users”

警告:第5行的/Applications/MAMP/htdocs/ig_stats/jsontest.php中为foreach()提供的参数无效

我在努力:

$json = json_decode(file_get_contents('https://www.instagram.com/web/search/topsearch/?query=lol'));

foreach($json->users as $item)
{
    if($item->user->username == "lol")
    {
        echo $item->full_name;
    }
}
我只想从“用户”lol获取“全名”数据。 但我不知道如何才能找到它:/


有人能给我一个提示或解决方案吗?

我不确定是否有一个不能迭代对象的版本,但如果是这样,您可以通过将
TRUE
传递到
json\u decode()
将响应用作数组,如下所示:

$json = file_get_contents('https://www.instagram.com/web/search/topsearch/?query=lol');
$json = json_decode($json, TRUE);

foreach($json['users'] as $item)
{
    if($item['user']['username'] == "lol")
    {
        echo $item['user']['full_name'];
    }
}
您可能希望调试代码,请确保
$json
包含一个对象,因为您的代码对我来说运行良好,这就是我尝试的:

$json = file_get_contents('https://www.instagram.com/web/search/topsearch/?query=lol');
$json = json_decode($json);

foreach($json->users as $item)
{
    if($item->user->username === 'lol'){
        echo $item->user->full_name; // You forgot the user part    
    }
}

两个都打印了
LOL

@Jeff这是一个对象,他没有将
TRUE
传递给
json\u decode()
的第二个参数。是的,我瞎拍的太快了……我的错你的PHP版本是什么?你的代码对我来说很好(PHP7),我不能重现那个错误!但是
$item->full\u name
应该是
$item->user->full\u name
。(也适用于旧版本)@Mehdi我知道。但是由于显示的代码没有产生显示的错误,因此有可能隐藏了一些相关的代码。谢谢!这两种方法对我都很管用。我已经在去第二个的路上了,但没有正确地完成:)