注意:在函数内部检查时未定义索引

时间:2017-11-10 06:43:13

标签: php

这是功能:

function is_set($var, $placeholder = null){
    if(isset($var)){
        return $var;
    } else {
        return $placeholder;
    }
}

if($_SERVER['REQUEST_METHOD'] === 'POST')
{
    is_set($_POST['freq'], '');
}

返回" 注意:未定义索引:freq in ... "

虽然这段代码效果很好:

echo isset($_POST['freq']) ? $_POST['freq'] : '';

为什么会这样?

1 个答案:

答案 0 :(得分:1)

您尝试访问的第一个 keys(0)= “bh” keys(1) = “as” 和检查变量可用。 你试着在检查变量是否存在之前传递print_r($_POST);进行验证。 如果执行命中$_POST['freq'])而没有poast参数'freq',则会触发异常。 尝试一些像

这样的事情
is_set($_POST['freq']);

或将整个 if(!empty($_POST['freq'])){ is_set($_POST['freq']); } 传递给is_set函数并在那里验证变量。