3

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

isset($items['blog']) ? unset($items['blog']) : NULL;

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

4

4 回答 4

5

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

只需使用它就可以了,无需做出决定:

unset($items['blog']);
于 2012-05-07T01:15:35.620 回答
2

错误说,T_UNSET(即Docs令牌unset)在该行是意外的。这意味着你不能把它放在那里。就这样。删除它,你很好:

unset($items['blog']);

这与三元运算符 btw 没有太大关系,并且正如代码示例所示,无论如何您都不需要该运算符unset

如果你非常喜欢三元运算符,你可以评估 unset:

isset($items['blog']) ? eval('unset($items[\'blog\'])') : NULL;

但这不是一个严肃的建议,因为不是很直接。

于 2012-05-07T01:41:53.007 回答
1

@Bryan 指出,三元运算符中没有对语言结构的函数调用。由于这里根本不涉及返回值,因此只需执行以下操作:

unset($items['blog']);

无需事先检查该值是否已设置。如果不是,unset根本不会做任何事情。

于 2012-05-07T01:19:58.207 回答
0

只是关于基准问题的建议:仅当您必须在视图中或确实需要一行代码时才使用三元语法;因此 if else 运算符要快得多

于 2012-05-07T02:20:14.730 回答