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

error on form submit if no second parameter

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

它抛出错误。

Message: in_array() expects parameter 2 to be array, null given Filename: user/Users_groups.php Line Number: 250

我知道没有第二个参数。 $this->session->userdata('modify')

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语句前的空值替换为空数组:

可以像这样使用三元运算符:

$array = (is_array($this->session->userdata('modify'))) 
    ? $this->session->userdata('modify') 
    : Array()

如果是数组,它将使用 'modify' 数组,否则将传递一个空数组

我还会检查 array_search() 函数,因为它可以与 NULL 进行比较,如果设置了不规则参数,则返回 NULL。

5.3.0 As with all internal PHP functions as of 5.3.0, array_search() returns NULL if invalid parameters are passed to it.