1

このようなものを書く別の方法はありますか?

$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';

私は以前にそれを見たと思ったのでうまくいくでしょうが、そうではありませんでした。何か案は?

ありがとう!

4

3 に答える 3

4
$var2 = $var1 ?: 'bar';

PHP5.3以降の新機能。http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary

于 2012-09-13T14:38:16.227 に答える
1

ほぼ正しい。PHP 5.3以降(私は信じています)、新しい構成があります:

<?php
$foo = false;
$foo = $foo ?: 'bar';

echo $foo; // $foo is now "bar".
于 2012-09-13T14:39:09.793 に答える
-2

PHP5.3より前のものはありません。

5.3より前のバージョンのPHPとの互換性が重要な場合は、メソッドを作成することをお勧めします。

function b($a, $b) { return $a?$a:$b; }

最高のB、そして短い。

使用法:

echo b($username, "Not logged in");
于 2012-09-13T14:37:37.497 に答える