【问题标题】:Getting this errors in codeigniter [closed]在codeigniter中出现此错误[关闭]
【发布时间】:2026-02-10 09:40:01
【问题描述】:

遇到 PHP 错误

严重性:警告

消息: in_array() 期望参数 2 是数组,给定布尔值

文件名: models/main_model.php

行号: 1386

第 1386 行是:

$pcode_id=$this->get_postcode_id($value);
$myarr=unserialize($in_search);
if(in_array($pcode_id,$myarr)) // line 1386
{
    return $myarr;
}
else
{
    return false;
}

结果仍然显示,但出现错误。

【问题讨论】:

  • 您没有收到错误消息的哪一部分?当函数需要一个数组参数时,你的 $myarr 是一个布尔值。所以改为传递一个数组。
  • 人们不得不重复 PHP 生成的错误所说的相同事情的那个尴尬时刻。

标签: php arrays codeigniter


【解决方案1】:

显然 $myarr 在某些时候不是一个数组......你可以 var_dump($myarr);并运行你的代码,看看它在什么时候不是一个数组。

但在尝试 in_array 之前,您应该先检查 $myarr 是否为数组。

if (is_array($myarr) && in_array($pcode_id, $myarr)) {
  return $myarr;
}
else {
  return false;
}

【讨论】:

  • 感谢您的回答与我的更正一致。
【解决方案2】:

您的 myarr 变量不是数组。这意味着您在unserialize 方法中抛出的字符串实际上不是serialized array

【讨论】:

  • myarr 有时作为数组传递,因为表单发送一个或多个值,因此它被序列化。但你的回答帮助我指明了正确的方向。
最近更新 更多