简单的代码说明

时间:2018-04-24 15:57:06

标签: php ternary-operator

这是:

$_GET['value'] = isset($_GET['value']) ? $_GET['value'] : '';

同样如下:

$_GET['value'] = isset($_GET['value']) ? $_GET['value'] : false;

或者最好先做一次?这段代码还有其他变种吗? 谢谢你的建议!

1 个答案:

答案 0 :(得分:1)

不。他们不是一回事。

如果未设置value GET参数,则第一个将返回空字符串,如果已设置,则返回参数。

如果未设置参数,则第二个将返回false。

所以你要更改原来的$_GET数组,这不是一个好主意。

另一种语法是null coalesce运算符(??),可以将代码转换为:

$variable = $_GET['value'] ?? ''; //or false, if you want to stick with the boolean.

??运算符基本上在左表达式上运行isset()并返回truthy表达式的第一个出现。

如果您需要检查空字符串,则应使用empty代替isset