【问题标题】:PHP-Twitch don't get varsPHP-Twitch 没有 vars
【发布时间】:2014-10-15 07:59:06
【问题描述】:
<?php
    $json = file_get_contents("https://api.twitch.tv/kraken/streams");
    $elements = json_decode($json,true);
    foreach ($elements as $element) {
        $channel = get_object_vars($element);
        print_r(array_keys($channel));
    }
?>

错误:

get_object_vars() 期望参数 1 是对象,数组在 /home/xzer123/public_html/tw1.php 第 10 行给出

array_keys() 期望参数 1 是数组,在第 11 行的 /home/xzer123/public_html/tw1.php 中给出 null

怎么了?

【问题讨论】:

  • 它告诉你,$element 是一个数组,而不是一个对象。这是真的。

标签: php twitch


【解决方案1】:

json_decode 的第二个参数指定您希望结果为数组。

将其更改为false,或者您可以将其删除,因为它默认为false

get_object_vars 期望传递一个对象而不是数组。

【讨论】:

  • 谢谢我得到了一个数组,但这是什么意思?我如何使用它?在代码中
  • 尝试调用print_r($elements),您将了解 Twitch API 返回给您的内容。
  • Array ( [0] => self [1] => next [2] => features [3] => summary [4] => follow ) 但我不知道如何使用它-- 回声 $element->self; ?
  • 这取决于你想要做什么。不过我建议你阅读一些 PHP 教程。
  • 我需要取数组的值,是从api解析出来的,php学不好..
【解决方案2】:

要将内容提取为数组而不是对象,您可以使用此代码,首先将json_decode第二个参数的结果设置为true,然后您将获得多维数组。

<?php
    $json = file_get_contents("https://api.twitch.tv/kraken/streams");
    $elements = json_decode($json,true);

    foreach ($elements['streams'] as $element) {

        print_r(array_keys($element));
    }
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多