【发布时间】:2012-10-11 23:15:18
【问题描述】:
我想在不使用 if else 或三元运算符的情况下执行以下操作:
如果$_GET['a'] 不为空,则设置$a= $_GET['a'],否则将其值设置为"default"。
我试过$a= $_GET['a'] || "default"。但它不起作用。
我记得在代码示例中看到过类似的东西,但我现在想不起来了。
【问题讨论】:
-
一个简单的谷歌搜索会给你php.net/manual/en/function.is-null.php
-
他说他不想要三元运算符
-
然后只需使用 if 或真正了解运算符。它们被记录在案。
(NULL !== $a = $_GET['a']) || $a = "default";。这是微不足道的材料。 -
虽然我不太确定我是否理解 OP 试图实现的目标,但我很确定他没有问“如何确定变量是否包含 null”,并明确表示他 DIDN '不想使用三元运算符...
-
从 PHP 5.3 开始,可以使用更短的三元运算符版本,因此您可以编写:
$a= @$_GET['a'] ?: "default";- 这几乎等同于 javascript 中的a = something || 'default';(除了它可能会引发 E_NOTICE错误,因此我添加了@)。从 PHP7 开始,您可以使用完全等效的空合并运算符:$a= $_GET['a'] ?? "default";
标签: php ternary-operator