📘

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

2022/11/20に公開約800字

NULL合体演算子 とは

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

if( $hoge ?? 'hogehoge' ){ // $hogeが未定義だったら、'hogehoge'が代入される
  // 処理
}

?? ←これが、 NULL合体演算子 です。
変数 ?? デフォルト値 という文法です。

基本的な使い方は、変数の初期化です

下のコードでは、 $_POST['name'] が未設定だと、名無しさん が設定されます。

$name = $_POST['name'] ?? '名無しさん';

NULL合体演算子 が登場する前は、isset() を使って、変数が存在するか確認しないとエラーになりました。下のコードは、Form の method が GET だと、エラーになります。

$name = $_POST['name'];

昔のPHPでは、issetを使って、連想配列にキーが存在するか確認する必要がありました。

if( isset($_POST['name']) ){
    $name = $_POST['name'];
}else{
    $name = '';
}

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

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

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

Discussion

ログインするとコメントできます