php ??(クエスチョンマーク2個)演算子の使い方

phpでクエスチョンマーク(??)を2個利用した「Null合体演算子」の使い方をサンプルコード使って記述してます。
環境
- OS windows10 pro 64bit
- PHP 7.4.5
※windows10に PHP のインストールはこちら
Null合体演算子 使い方
クエスチョンマーク(??)を2つを使ったNull合体演算子を、実際にコードを記述して実行してみます。
<?php
$test_1 = NULL;
$msg_1 = $test_1 ?? 'val';
// 中身を確認
echo "msg_1の値は:".$msg_1;
$test_2 = 'hello world';
$msg_2 = $test_2 ?? 'val';
// 中身を確認
echo "<br>";
echo "msg_2の値は:".$msg_2;
?>
実行結果は下記となり、nullの判定をissetを使用せずにコードを書くことが可能になります。

次にNull合体演算子の少し便利な使い方を記述します。
下記のコードのように値がなければ、次の値を確認するといったような使い方も可能となります。
<?php
$a = [0=>'c#',1=>'php',4=>'java'];
$b = [2=>'python',6=>'ruby'];
$c = [3=>'react', 5=>'vue'];
$mix = [];
for ($i=0; $i<=6; $i++) {
$mix[$i] = $a[$i] ?? $b[$i] ?? $c[$i];
}
echo('<pre>');
var_dump($mix);
cho('</pre>');
?>
実行結果は下記となり、$aになければ $b $bになければ$cといった具合に値が代入されます。

このように Null合体演算子を使えば、下記のようなif文を使用しなくて済むようになります。
if (isset($test_1)) {
$msg_1 = $test_1;
} else {
$msg_1 = 'val';
}
また上記、if文をクエスチョンマークを2つ使った「Null合体演算子」を使うと
初めに記述したコードのように、下記となります。
$msg_1 = $test_1 ?? 'val';
-
前の記事
Nuxt.js ライブラリ「trading-vue-js」をインストールしてJSONツリービューアを実装する 2020.05.10
-
次の記事
composer require maatwebsite/excel時にエラー「To enable extensions, verify that they are enabled in your .ini files:」が発生した場合の対処法 2020.05.11
コメントを書く