参数必须是数组还是实现了Countable的对象?

Posted

技术标签:

【中文标题】参数必须是数组还是实现了Countable的对象?【英文标题】:Parameter must be an array or an object that implements Countable? 【发布时间】:2019-09-21 12:00:16 【问题描述】:

我有这个返回错误的代码:

$response = curl_exec($client);

$result = json_decode($response);

$output = '';

if(count($result) > 0)



foreach($result as $row)



$output .= '

<tr>

<td>'.$row->name.'</td>

<td>'.$row->url.'</td>

错误

【问题讨论】:

【参考方案1】:

您的代码首先有一些语法错误,您可以在此之前解决它。我猜你 $result 可能是一个数组。然后,您可以在 if 中添加 is_array 来为您检查。

$response = curl_exec($client);
$result = json_decode($response, true);
$output = '';

if (count($result) > 0 && is_array($result)) 
    foreach ($result as $row) 
        $output .= '<tr><td>' . $row->name . '</td><td>' . $row->url . '</td></tr>';
    
else
    die("Sorry! Result is not an array!");

这也是一个常见的错误。您可能会查看一些类似的帖子,例如 this post,其中解释了该错误。

【讨论】:

您能解释一下您对 OP 代码的改进吗,Emma?您如何验证代码不再抛出与问题中相同的错误?

以上是关于参数必须是数组还是实现了Countable的对象?的主要内容,如果未能解决你的问题,请参考以下文章

参数必须是数组或实现了 Countable 的对象

PayPal sizeof():参数必须是数组或者实现了Countable的对象

搜索框count():参数必须是数组或者实现了Countable的对象

PHP count():参数必须是数组或者实现了Countable的对象

Guzzle Error count():参数必须是数组或者实现了Countable的对象

laravel : count(): 参数必须是数组或实现 Countable 的对象