如果没有第二个参数,表单提交时出错


error on form submit if no second parameter

当我提交表单时,如果第二个参数为空。

它抛出错误

消息: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。