当我提交表单时,如果第二个参数为空。
会抛出错误。
消息:in_array()期望参数2为数组,给定为null 文件名:user / Users_groups.php行号:250
我知道没有第二个参数。 $这 - >会话而>用户数据( '修改')
if (!in_array('user/users_groups', $this->session->userdata('modify'))) {
$this->error['warning'] = 'You do not have permission to modify';
}
如果没有第二个参数$this->session->userdata('modify')
但仍然有那段代码。
答案 0 :(得分:1)
首先尝试检查参数是否有效:
<?php
if(is_array($this->session->userdata('modify')) && !empty($this->session->userdata('modify')))
{
if (!in_array('user/users_groups', $this->session->userdata('modify')))
{
$this->error['warning'] = 'You do not have permission to modify';
}
}else{/* handle errors */}
?>
答案 1 :(得分:1)
在if语句之前用空数组替换null值:
可以使用这样的三元运算符:
$array = (is_array($this->session->userdata('modify')))
? $this->session->userdata('modify')
: Array()
如果它是一个数组,它将使用'modify'数组,否则将传递一个空数组
答案 2 :(得分:0)
我还会检查array_search()函数,因为如果设置了不规则参数,它可以与NULL进行比较。