重複の可能性:
PHP の Coalesce 関数?
これが通常何と呼ばれているかはわかりませんが、タイトルが十分に伝わることを願っています. 私が持っているのは、いくつかの変数がnullである可能性がある少数の変数です。
私はやってみたいです:
$a = $b || $c || $d;
$a が最終的に = になる場所は、最初の非 null 変数です。
重複の可能性:
PHP の Coalesce 関数?
これが通常何と呼ばれているかはわかりませんが、タイトルが十分に伝わることを願っています. 私が持っているのは、いくつかの変数がnullである可能性がある少数の変数です。
私はやってみたいです:
$a = $b || $c || $d;
$a が最終的に = になる場所は、最初の非 null 変数です。
私の知る限り、PHPはJavaScriptと同じようにこれをサポートしていません。
ただし、次のようなことはできます。
$a = $b ? $b : ($c ? $c : $d);
より一般的な解決策:
function fallthrough($arr) {
//$arr should be an array of possible values. The first non-null value is returned
do $a = array_shift($arr);
while($a === null && $arr);
return $a;
}
<?php
$a = 0;
$b = false;
$c = true; //should become this
$d = '1';
$e = $a ?: $b ?: $c ?: $d;
var_dump($e);
//bool(true)
//should be '1' if order is different
$e = $a ?: $b ?: $d ?: $c;
var_dump($e);
//string(1) "1"
...しかし?:
、ちょっと新しいので、同僚/仲間のコーダーを混乱させるでしょう。
それは不可能だと思います。他のもっと面倒な方法を使わなければならないと思います。つまり、変数の配列を作成し、null以外の値が見つかるまでそれを繰り返し、次のようにループを中断します。
$vars = array("b" => $b, "c" => $c, "d" => $d);
foreach($vars as $var) {
if($var != null) {
$a = $var;
break;
}
}
さて、ここで言う他のいくつかの答えのように、これを書く簡単な方法を使うことができますが、読みやすいコードを書くことも重要です。上記のコードはかなり読みやすいです。