我想在不使用if else或三元运算符的情况下执行以下操作:
如果$_GET['a']
不为空,则设置$a= $_GET['a']
,否则将其值设置为"default"
。
我试过了$a= $_GET['a'] || "default"
。但它不起作用。
我记得在代码示例中看到过这样的内容,但我现在不记得了。
答案 0 :(得分:1)
我认为如果 这是你最好的选择,那就是三元组。
在这种情况下,我会使用isset检查 - 来确定密钥是否已设置且不为空:
$a = isset($_GET['a']) ? $_GET['a'] : "default"
或者运算符||
不能像在PHP中一样使用null,但是您可能已经在JavaScript中看到它可以用来将值设置为第一个非错误结果:
e.g
var a = get['a'] || 'default';
答案 1 :(得分:0)
请参阅http://davidwalsh.name/php-ternary-examples
中的这个PHP简写if / else(三元)信息以及
http://davidwalsh.name/learning-ternary-operators-tips-tricks
答案 2 :(得分:0)
嗯,这里的人们似乎并不打算这么晚才读完整个问题。
你写的sintax适用于其他一些语言,但显然不适用于php。我认为如果您要在页面上大量使用这种验证,您应该坚持使用三元运算符或为其编写函数。
function GET($v, $default)
{
return !isset($_GET[$v]) || empty($_GET[$v]) ? $default : $_GET[$v];
}
$a = GET("a", "default");