当我提交表单时,如果第二个参数为空。
它抛出错误
消息: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')
,当用户或我试图提交表单时,有没有办法让它停止抛出错误
但仍然有那个代码。
首先尝试检查参数是否有效:
<?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 */}
?>
在if语句之前用空数组替换null值:
可以使用这样的三元运算符:
$array = (is_array($this->session->userdata('modify')))
? $this->session->userdata('modify')
: Array()
如果它是一个数组,它将使用"modify"数组,否则将传递一个空数组
我也会检查array_search()函数,因为它可以与NULL进行比较,如果设置了不规则的参数,就会返回NULL。
5.3.0与5.3.0中的所有内部PHP函数一样,如果传递了无效参数,array_search()将返回NULL。