为什么@unset会出现解析错误?

dyn*_*mic 6 php parsing

为什么不能@在调用时隐藏操作员的错误unset?以下结果导致解析错误:

@unset($myvar);
Run Code Online (Sandbox Code Playgroud)

mfo*_*nda 10

@操作仅适用于表达,而且unset是一个语言结构,不是一个函数.有关更多信息,请参见手册页:

注意:@ -operator仅适用于表达式.一个简单的经验法则是:如果你可以获取某些东西的值,你可以在它前面添加@运算符.例如,您可以将它添加到变量,函数和include()调用,常量等等.您不能将它添加到函数或类定义或条件结构(如if和foreach等)之前.


Sel*_*aek 5

您可以通过在函数/语句前加上@来隐藏错误.然而,unset是一种语言结构,因此它不支持@ -rule.

好处是unset()永远不会失败,即使变量不存在,所以这不应该是必要的.

正如夜间骇客所提到的,使用@是非常糟糕的做法.


Ham*_*ish 4

错误抑制运算符仅适用于表达式:

unset是一种语言构造而不是函数,因此@无法使用。