PHP:打印未定义的变量而不发出警告

Dis*_*oat 3 php variables warnings undefined

我只是想知道是否有一种快速的方法来回应未定义的变量而不会收到警告?(我可以更改错误报告级别,但我不想.)我到目前为止最小的是:

isset($variable)?$variable:''

我出于以下几个原因不喜欢这个:

  • 它有点"罗嗦"而复杂
  • $variable 重复
  • 空白字符串的回声总是让我烦恼.
  • 我的变量名可能会更长,例如 $arrayvar['parameter']

Era*_*rin 13

您可以使用错误抑制运算符 @ 运行它.

echo @$variable;
Run Code Online (Sandbox Code Playgroud)

但是,最好不要忽略未设置的变量.未设置的变量可能表示脚本存在逻辑错误,最好确保在使用前设置所有变量.


Tom*_*igh 9

你可以使用从这里取得的ifsetor()示例:

function ifsetor(&$variable, $default = null) {
    if (isset($variable)) {
        $tmp = $variable;
    } else {
        $tmp = $default;
    }
    return $tmp;
}
Run Code Online (Sandbox Code Playgroud)

例如:

echo ifsetor($variable);
echo ifsetor($variable, 'default');
Run Code Online (Sandbox Code Playgroud)

这不会生成通知,因为变量是通过引用传递的.