📘

PHPの便利技:NULL合体演算子

2022/11/20に公開

NULL合体演算子 とは

NULL合体演算子 は、PHP7から導入されました。
目的は、変数が未定義だった場合、デフォルト値を与えます。
↓のように書きます。

(変数1= (変数2?? (デフォルト値);

?? ←これが、 NULL合体演算子 です。
具体的な書き方は↓のようになります。

// フォームの送信で、GETやPOSTが未送信だった場合のエラー対応によく使います
$flag = $_GET['flag'] ?? 1;

NULL合体演算子 を使わない場合、上記のコードは以下のように書く必要があります。

if( isset($_GET['flag']) ){ // issetで、GETに値が存在するか確認
    $flag = $_GET['flag'];  // フォームが送信されていたので代入
}else{
    $flag = 1;             // フォームが送信されていなければデフォルト値を代入
}

関数やクラスが NULL を返した場合にデフォルト値を設定したい

関数やクラスが返すデフォルト値を設定するなどの使い方もあります。

switch( Config::Get('environment') ?? 'production' ){
    case 'production':
        break;
    case 'staging':
    case 'develop':
        var_dump($_SERVER);
        break;
}

Discussion