gpt4 book ai didi

javascript - 消息: count(): Parameter must be an array or an object that implements Countable in codeigniter model

转载 作者:行者123 更新时间:2023-11-29 09:33:46 24 4
gpt4 key购买 nike

我有模型查询,但收到错误消息:count(): 参数必须是在某些系统中实现 Countable 的数组或对象,并且在某些系统中其工作正常。这是查询我遇到了问题。

     public function getChatPlanProvidersInfoById($planId) {
$providersArr = array();
$this->db->select('ppm.price as plan_price, ppm.offer_start, ppm.offer_end, ppm.validity_period, pipm.provider_id, pipm.provider_group_id');
$this->db->from('chatinstance_provider_mapping pipm');
$this->db->join('chatplan_instance ppm', 'ppm.id = pipm.chatplan_instance_id');
$this->db->where('pipm.chatplan_instance_id', $planId);
$query = $this->db->get();
if ($query->num_rows() > 0) {
$providersInfo = $query->result();
if (count($providersInfo) > 0) {
$providersArr['offerInfo'] = array('offer_start' => $providersInfo[0]->offer_start, 'offer_end' => $providersInfo[0]->offer_end, 'valid_period' => $providersInfo[0]->validity_period);
$providersArr['plan_price'] = $providersInfo[0]->plan_price;
foreach ($providersInfo as $provider) {
if (!empty($provider->provider_id)) {
$pInfo = $this->getProviderInfoById($provider->provider_id);
$providersArr['providerInfo'][] = $pInfo;
} else if (!empty($provider->provider_group_id)) {
$pInfo = $this->getProviderGroupInfoById($provider->provider_group_id);
if (count($pInfo) > 0) {
$providersArr['providerInfo'][] = $pInfo;
} else {
$providersArr['providerInfo'][] = array();
}
}
}
}
}
return $providersArr;
}

在此 if 条件 count($pInfo) 中出现错误

                   if (count($pInfo) > 0) {
$providersArr['providerInfo'][] = $pInfo;
} else {
$providersArr['providerInfo'][] = array();
}

最佳答案

它在您的系统上运行的原因可能是您使用的是PHP版本5.6<7.2

与版本 7.2 一样,如果将 nullfalse 传递给 count(),您将收到警告

$data[5]  = 7;
var_dump(count($data)); // It will return 1


var_dump(count(null)); // It will give Warning: count(): Parameter must be an array or an object that implements Countable in...

var_dump(count(false)); // It will give Warning: count(): Parameter must be an array or an object that implements Countable in...

所以在你的情况

您应该在传递给 count() 之前检查 $pInfo,如下所示

if ($pInfo && count($pInfo) > 0) {...

关于javascript - 消息: count(): Parameter must be an array or an object that implements Countable in codeigniter model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58134306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com