IT二刀流にはプロモーションが含まれています。

PHPのNull合体演算子の使い方

子猫パンチ

PHPのNull合体演算子(??)は論理演算子の1つです。

Null合体演算子(??)は、もし第一オペランドが非nullの値であればそれを返し、そうでない場合は第二オペランドを返します。

Null合体演算子

Null合体演算子(??)を利用することで、代入する値がnullかundefined(未定義)の場合は違う値を代入することができます。

これを使用することで、デフォルト値を設定するなどの使い方ができます。

Null合体演算子(??)は0や””(空文字)は有効値と判定します。

あくまで、未定義かnullの場合に第二オペランドを返します。

$first = $_GET['user'] ?? 'nobody';
var_dump($first); // string(6) "nobody"

$str;
$second = $str ?? 'nobody';
var_dump($second); // string(6) "nobody"

$str = null;
$third = $str ?? 'nobody';
var_dump($third); // string(6) "nobody"

$str = 0;
$fourth = $str ?? 'nobody';
var_dump($fourth); // int(0)  0は有効値として評価される

$str = 'abc';
$fifth = $str ?? 'nobody';
var_dump($fifth); // string(6) "abc"

$str = "";
$sixth = $str ?? 'nobody';
var_dump($sixth); // string(0) ""  空文字も有効値として評価される

$str1;
$str2 = null;
$seventh = $str1 ?? $str2 ?? 'nobody';
var_dump($seventh); // string(6) "nobody"

デフォルト値としての使用

デフォルト値を埋める際にisset()と三項演算子を使用することが多いと思います。

Null合体演算子(??)を利用すれば代入処理が簡素になります。

下記の2つの処理は同じ結果になります。

$_GET['user'] = 'user1';  // GETリクエスト想定

$first = isset($_GET['user']) ? $_GET['user'] : 'nobody';
var_dump($first); // string(5) "user1"

$first = $_GET['user'] ?? 'nobody';
var_dump($first); // string(5) "user1"

まとめ

PHPのNull合体演算子(??)はPHP 7.0から使用することができます。

PHP 5系では使用できないので注意が必要です。

余談ですが「Null合体演算子」ってなんか言いたくなりますよね。

ITエンジニアの転職

いまITエンジニアの需要は急拡大しています。
ITエンジニアの経験があれば好条件で転職することも難しくありません。

ゲーム業界の転職ならマイナビクリエイター

☆ 支援ご協力のお願い ☆

この記事が「役に立った」と感じたら

投げ銭の「OFUSEで応援」で支援して頂けたら励みになります!

OFUSEのやり方(説明)

関連記事
記事特集