我希望您可以通过以下代码帮助确定我在哪里犯错:
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技能充其量也是生锈的。所以我希望任何和所有指针都能让我更接近解决这个问题。谢谢!
答案 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()