空数组输出结果

时间:2015-04-02 10:24:06

标签: php json api curl

我希望您可以通过以下代码帮助确定我在哪里犯错:

    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技能充其量也是生锈的。所以我希望任何和所有指针都能让我更接近解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:0)

我想你已经从史蒂夫的评论中得到了这个想法。你就是无法回应数组。 请使用,

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

进行调试。

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

echo implode( ', ', $output);

感谢。

答案 1 :(得分:0)

  

所有显示的都是“数组”

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

请参阅此处了解差异:

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


尝试回显数组也会在日志中产生“通知”,例如:

  

PHP注意:数组转换为字符串

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


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