为什么在php中不允许使用\ empty和\ isset

时间:2018-05-23 10:34:14

标签: php

AFAIK emptyisset普通 函数。当我尝试以下操作时,我得到解析错误

if (\empty($array)) {
   // .....
}
  

PHP Parse错误:语法错误,意外'空' (T_EMPTY),期待

中的标识符(T_STRING)

这对我来说很奇怪,因为其他函数http://php.net/manual/en/ref.var.php,例如\is_array\is_null\is_object\strpos等......允许反斜杠。

为什么这些(至少)两个功能不同?

1 个答案:

答案 0 :(得分:6)

  

AFAIK emptyisset普通 函数。

他们不是。它们是语言构造,您可以将其视为 keywords 。如果他们按照正常的职能规则行事,他们就无法做他们正在做的事情。 isset($foo)总是会触发有关未定义变量的错误,因为PHP会在将其值传递给函数$foo之前尝试解析变量isset。这显然违背了那些语言结构应该做的事情。