为什么unset()在PHP三元运算符中不起作用

Mer*_*ick 3 php ternary-operator unset

所以这有一个问题,但我对此视而不见.即使在阅读了两次文档之后(PHP比较运算符)

isset($items['blog']) ? unset($items['blog']) : NULL;
Run Code Online (Sandbox Code Playgroud)

解析错误:语法错误,意外T_UNSET

Bry*_*yan 5

您不能在三元操作中使用unset,因为它不是可以操作的表达式.它是一种语言结构(如issetecho),不能放在那里.

只需使用它就可以了,不需要做出任何决定:

unset($items['blog']);
Run Code Online (Sandbox Code Playgroud)

  • 事实并非如此.您可以在三元运算符中运行函数:http://codepad.org/X5bDeXwb (3认同)
  • 另外一点,您实际上甚至不需要if语句.unset($ items ['blog'])如果密钥不存在则不会返回错误,这可能是你最好的选择:) (2认同)