空数组输出结果
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()
我希望你能帮助找出我在以下代码中出错的地方:
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()