-2

可能重复:
我在哪里可以阅读有关使用 完成的条件?和 :

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

if$_GET['a']不为 null 然后设置$a= $_GET['a']else 将其值设置为"default"

我试过了$a= $_GET['a'] || "default"。但它不起作用。我记得在代码示例中看到过类似的东西,但我现在想不起来了。

4

3 回答 3

2

我认为三元 if你最好的选择。

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

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

or 运算符||不能像 PHP 中那样进行空合并,但您可能已经在 J​​avaScript 中看到它,它可用于为第一个非 false 结果设置值:

例如

var a = get['a'] || 'default';
于 2012-10-22T07:17:13.520 回答
0

请参阅http://davidwalsh.name/php-ternary-examples中的此 PHP 速记 if/else(三元)信息

并且

http://davidwalsh.name/learning-ternary-operators-tips-tricks

于 2012-10-22T07:14:10.250 回答
0

好吧,这里的人似乎没有费心阅读整个问题。

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

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

$a = GET("a", "default");
于 2012-10-22T07:26:23.180 回答