因此存在问题,但我对此视而不见。 即使在阅读了两次文档(PHP Comparison Operators)
之后isset($items['blog']) ? unset($items['blog']) : NULL;
解析错误:语法错误,意外T_UNSET
答案 0 :(得分:5)
您不能在三元操作中使用unset,因为它不是可以操作的表达式。它是一种语言结构(如isset
和echo
),不能放在那里。
只要使用它就可以了,不需要做出任何决定:
unset($items['blog']);
答案 1 :(得分:1)
@Bryan指出,没有函数调用三元运算符中的语言结构。由于这里根本没有涉及返回值,只需:
unset($items['blog']);
无需事先检查是否设置了值。如果不是,unset
根本不会做任何事情。
答案 2 :(得分:1)
错误说明T_UNSET
(unset
的{{3}})在该行意外发生。这意味着你不能把它放在那里。就这样。删除它,你很好:
unset($items['blog']);
这与三元运算符btw。没有太大关系,正如代码示例所示,无论如何都不需要unset
的运算符。
如果你非常喜欢三元运算符,你可以评估未设置的:
isset($items['blog']) ? eval('unset($items[\'blog\'])') : NULL;
但这不是一个严肃的建议,因为不是很直截了当。
答案 3 :(得分:0)
只是关于基准问题的建议:只需要在视图中使用三元语法,或者如果你真的需要一个行代码;因此if else运算符要快得多