还有另一种写这样的方法吗?
$var2 = ($var1) ? $var1 : 'bar';
实施例..
$var1 = 'foo';
$var2 = ($var1) ? $var1 : 'bar';
echo $var2; //Outputs foo
$var1 = false;
$var2 = ($var1) ? $var1 : 'bar';
echo $var2; //Outputs bar
我希望
$var2 = $var1 || 'bar';
会起作用,因为我之前认为我已经看过了,但事实并非如此。有什么想法吗?
谢谢!
答案 0 :(得分:4)
$var2 = $var1 ?: 'bar';
PHP 5.3以来的新功能。 http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary
答案 1 :(得分:1)
几乎正确。自PHP 5.3(我相信)以来,有一个新的结构:
<?php
$foo = false;
$foo = $foo ?: 'bar';
echo $foo; // $foo is now "bar".
答案 2 :(得分:-2)
PHP 5.3之前没有。
如果与5.3之前版本的PHP的兼容性很重要,我建议制作一个方法;
function b($a, $b) { return $a?$a:$b; }
B表示最佳,也是短暂的。
用法:
echo b($username, "Not logged in");