检查null并在php中分配

时间:2012-10-22 07:06:29

标签: php ternary-operator

  

可能重复:
  Where can I read about conditionals done with ? and :

我想在不使用if else或三元运算符的情况下执行以下操作:

如果$_GET['a']不为空,则设置$a= $_GET['a'],否则将其值设置为"default"

我试过了$a= $_GET['a'] || "default"。但它不起作用。 我记得在代码示例中看到过这样的内容,但我现在不记得了。

3 个答案:

答案 0 :(得分:1)

我认为如果 这是你最好的选择,那就是三元组。

在这种情况下,我会使用isset检查 - 来确定密钥是否已设置且不为空:

$a = isset($_GET['a']) ? $_GET['a'] : "default"

或者运算符||不能像在PHP中一样使用null,但是您可能已经在JavaScript中看到它可以用来将值设置为第一个非错误结果:

e.g

var a = get['a'] || 'default';

答案 1 :(得分:0)

答案 2 :(得分:0)

嗯,这里的人们似乎并不打算这么晚才读完整个问题。

你写的sintax适用于其他一些语言,但显然不适用于php。我认为如果您要在页面上大量使用这种验证,您应该坚持使用三元运算符或为其编写函数。

function GET($v, $default)
{
    return !isset($_GET[$v]) || empty($_GET[$v]) ? $default : $_GET[$v];
}

$a = GET("a", "default");