空数组输出结果

Empty array output result

我希望你能帮助找出我在以下代码中出错的地方:

    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() 函数时 - 它只显示 "Array"

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

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

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

调试。

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

echo implode( ', ', $output);

谢谢。

all it displays is "Array"

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

差异见此处:

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


尝试回显数组也会在您的日志中生成 "Notice",例如:

PHP Notice: Array to string conversion

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


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