2

1 つ以上の変数の存在に応じて変数の値を設定するにはどうすればよいでしょうか? これは機能しますが、PHPにこれの「省略形」バージョンがあるかどうかを知りたいです:

if (isset($a)) { $x=$a; } elseif (isset($b)) { $x=$b; } 

全体像が必要な場合は、$x に $_REQUEST['a'] または $_GET['a'] のいずれかが存在する値を指定する必要があります。

EDIT : 三項演算子は 2 つの変数に対してトリックを実行します。機能を 2 つ以上拡張できますか? 例

if (isset($a)) { $x=$a; } elseif (isset($b)) { $x=$b; } else { $x=$c; }
4

5 に答える 5

2

三項演算子は、使い方を誤るとすぐに読めなくなると思います。そこで、別の考え方を提案させてください。

$x=$c;  // default
if (isset($b)) $x=$b;
if (isset($a)) $x=$a;

または:

function first_set($array,$default=null){
    foreach($array as $e) if isset($e) return $e;
    return $default;
}

$x=first_set(array($a,$b),$c);
于 2013-05-24T10:59:07.803 に答える
1

これを試すことができます:

$x = ($a) ?: $b; // if you are using 5.3+

$x = ($a) ? $a : $b; // if >PHP5.3
于 2013-05-24T10:37:40.590 に答える