【问题标题】:Empty array output result空数组输出结果
【发布时间】:2015-04-02 10:24:06
【问题描述】:

希望您能帮助找出我在以下代码中的错误之处:

    public function yee() {

    $json = array();
    $params = array(
                'token'             => $this->_token,
                'receiver_name'         => 'Test Name',

                'sender_city'           => 'copenhagen',
                'sender_country'        => 'DK',
                'order_id'              => 150
            );

    $ch = curl_init();      
    $query = http_build_query($params);

        curl_setopt($ch, CURLOPT_URL, self::API_ENDPOINT . '/' . 'shipments/imported_shipment');
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $query);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            $output = curl_exec ($ch);
            $http_code = curl_getinfo( $ch, CURLINFO_HTTP_CODE);
            curl_close ($ch);

            $output = json_decode($output, true);

            if ($http_code != 200){
                if(is_array($output['message'])){
                        $json['error'] = $output['message'];
                }else{
                        $json['error'] = $output['message'];
                }
            } else {
                $json['error'] = "Import Successully";
            } 
    return $output;
        }
    }

我的 class.php 文件中有这个,还有几行进行身份验证。

然后我尝试在初始化后调用该函数:

$testObject->yee();
echo $testObject->yee(); ?>

身份验证部分工作正常,因为我还输出令牌和其他一些变量,但是当我回显 yee() 函数时 - 它显示的只是“数组”

如果您没有注意到,我在 JSON/API 领域非常熟悉,我的 PHP 技能充其量只是生疏。所以我希望任何和所有的指针都能让我更接近解决这个问题。谢谢!

【问题讨论】:

  • 那是因为返回值是一个数组!你不能回显一个数组。如果你只是想查看它的内容进行调试,那么用户var_dump($output);
  • 非常感谢,现在我这么想是有道理的。似乎与输出的 var_dump 一起工作正常,并且假设我正在调试是正确的。再次,非常感谢!

标签: php json api curl


【解决方案1】:

我想你已经从史蒂夫的评论中得到了这个想法。你只是不能回显一个数组。 请使用,

var_dump($output);
//or
print_r($output);

调试。

或者,如果您只想坚持echo, 试试:

echo implode( ', ', $output);

谢谢。

【讨论】:

  • 感谢您为我拼写出来!
【解决方案2】:

它只显示“数组”

当您尝试echo(或print)一个数组时,PHP 将简单地显示单词“Array”。
这是因为 echo 和 print 并非设计为通过显示其键和值的数组运行。它们只是输出“标量”类型,而数组是“复合”类型。

请参阅此处了解差异:

http://php.net/manual/en/language.types.intro.php


试图回显一个数组也会在你的日志中产生一个“通知”,例如:

PHP注意事项:数组到字符串的转换

作为开发人员查看您的 PHP 错误日志非常重要,因为这是 PHP 的 反馈 告诉您它发现的可能有问题的事情,并且此通知会告诉您问题 - 即使只是搜索 Stack 和 Google 的起点。


要显示数组,请使用print_r()var_dump()

【讨论】:

  • 谢谢你的解释,我觉得用php debug就够了,以后会经常参考错误日志!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 2017-06-07
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
  • 2016-02-25
相关资源
最近更新 更多