5 php conditional conditional-operator
我想将变量设置为值,但仅在条件为真时才设置.
而不是做以下事情:
if($myarray["foo"]==$bar){
$variablename=$myarray["foo"];
}
Run Code Online (Sandbox Code Playgroud)
如果变量名很长,或者它可能涉及数组,这可能会很长,当我想要做的很简单时 - 如果条件为真则设置一个值.
我想使用条件运算符,如下所示:
$variablename=($myarray["foo"]=="bar")? $myarray["foo"]......
Run Code Online (Sandbox Code Playgroud)
但这失败了,因为如果语句为false,我根本不想设置变量.
基本上,我要做的是让第一个例子更短.也许条件运算符不是这样的...
有没有人有什么建议?
IMO,缩短代码样本的最佳方法是:
if($myarray["foo"] == $bar)
$variablename = $myarray["foo"];
Run Code Online (Sandbox Code Playgroud)
仅供参考,您询问的运营商名称不是"三元运营商",而是条件运营商.
既然你问,一种你可以实际使用条件运算符来做你所要求的方法是:
$myarray['foo'] == $bar ? $variablename = $myarray['foo'] : null;
Run Code Online (Sandbox Code Playgroud)
但这有些可怕的丑陋和非常难以维护.
在 false 情况下将变量设置为其自身:
$variablename=($myarray["foo"]=="bar")? $myarray["foo"] : $variablename
Run Code Online (Sandbox Code Playgroud)