2015-04-02 88 views
1

我希望你能帮助查明我在下面的代码犯错误:空数组输出结果

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(); ?> 

认证部分正常工作,因为我还输出令牌和其他一些变量,但是当我回声仪()函数 - 它显示的是“阵列”

如果您没有注意到,我在JSON/API领域非常环保,而且我的PHP技能最多只会生锈。所以我希望任何指标都能让我更接近解决这个问题。谢谢!

+0

那是因为返回值是一个数组!你不能回显数组。如果你只是想查看它的内容以进行调试,那么用户'var_dump($ output);' – Steve 2015-04-02 10:27:53

+0

非常感谢,现在我觉得它是这样的。 似乎很好地处理了输出的var_dump,并且假设我正在调试时是正确的。再次,非常感谢! – Mark 2015-04-02 10:39:16

回答

0

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

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

调试。

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

echo implode(', ', $output); 

感谢。

+0

感谢您为我拼写! – Mark 2015-04-02 12:35:48

0

所有它显示为 “阵列”

当试图echo(或print)的阵列,PHP将简单地显示单词 “阵列”。
这是因为回显和打印不是设计为通过显示其键和值的数组运行。它们只是输出“标量”类型,而数组则是“复合”类型。

看到这里的区别:

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


试图呼应阵列也将产生一个 “通知”,在你的日志,如:

PHP的通知:数组字符串转换

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


要显示的阵列,使用print_r()var_dump()

+0

感谢您的解释,我认为这足以运行php调试,将来更多的时候会参考错误日志! – Mark 2015-04-02 12:35:34