PHP Null Coalescing Operatorの使い方5選:エラーから解放される方法

PHPのNull Coalescing Operatorを示すサンプルコードPHP
この記事は約4分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

PHP Null Coalescing Operatorとは、PHP 7.0から導入された新しい演算子です。

この演算子を使用すると、エラーを防ぎつつ、簡潔なコードを書くことができます。

特に、値が設定されていない可能性のある変数を扱う際に大変便利です。

基本的に、Null Coalescing Operator(??)は、指定された変数がnullまたは未設定の場合に、デフォルトの値を返す機能を持っています。

つまり、この演算子を使用することで、変数がnullであるかどうかを確認しながら、同時にその変数またはデフォルト値を取得することができます。

●PHP Null Coalescing Operatorの基本的な使い方

Null Coalescing Operatorの基本的な使い方を次に示します。

○サンプルコード1:Null Coalescing Operatorの基本形

このサンプルコードでは、変数$varの値がnullまたは未設定の場合、’デフォルト値’が$valueに設定されます。

<?php
$value = $var ?? 'デフォルト値';
?>

○サンプルコード2:連続したNull Coalescing Operatorの使用

このサンプルコードでは、$var1と$var2の両方がnullまたは未設定の場合、’デフォルト値’が$valueに設定されます。

$var1がnullまたは未設定でなければ、その値が$valueに設定され、$var1がnullまたは未設定で、$var2がnullまたは未設定でなければ、$var2の値が$valueに設定されます。

<?php
$value = $var1 ?? $var2 ?? 'デフォルト値';
?>

●PHP Null Coalescing Operatorの応用例

次に、Null Coalescing Operatorの応用例を示します。

○サンプルコード3:Null Coalescing Operatorを配列と組み合わせる

このサンプルコードでは、配列$arrayに’key’というキーが存在し、その値がnullでなければ、その値が$valueに設定されます。

‘key’というキーが存在しない場合や、その値がnullの場合は、’デフォルト値’が$valueに設定されます。

<?php
$value = $array['key'] ?? 'デフォルト値';
?>

○サンプルコード4:Null Coalescing Operatorを関数のデフォルト値として使う

このサンプルコードでは、関数exampleにパラメータ$paramが渡されていない場合や、$paramがnullの場合、’デフォルト値’が$valueに設定されます。

<?php
function example($param = null) {
    $value = $param ?? 'デフォルト値';
    // 何かの処理
}
?>

○サンプルコード5:Null Coalescing Operatorを使ったフォームデータの処理

このサンプルコードでは、POSTされたデータに’username’というキーが存在し、その値がnullでなければ、その値が$usernameに設定されます。

‘username’というキーが存在しない場合や、その値がnullの場合は、’ゲスト’が$usernameに設定されます。

<?php
$username = $_POST['username'] ?? 'ゲスト';
?>

このサンプルコードでは、POSTされたデータに’username’というキーが存在し、その値がnullでなければ、その値が$usernameに設定されます。

‘username’というキーが存在しない場合や、その値がnullの場合は、’ゲスト’が$usernameに設定されます。

●PHP Null Coalescing Operatorの注意点と対処法

Null Coalescing Operatorを使う際の注意点として、isset関数との違いを理解することが重要です。

Null Coalescing Operatorはisset関数と同様に変数が設定されているかを確認しますが、isset関数は変数がnullである場合にfalseを返すのに対し、Null Coalescing Operatorは変数がnullであってもエラーを返さず、右側の値を返します。

したがって、Null Coalescing Operatorを使用する際には、変数が本当にnullであるのか、それとも未設定であるのかを理解することが重要です。

まとめ

PHPのNull Coalescing Operatorは、エラーを防ぎつつ簡潔なコードを書くための強力なツールです。

特に、値が設定されていない可能性のある変数を扱う際には、この演算子を活用することでコードの可読性と保守性を高めることができます。

ただし、この演算子の挙動を正しく理解し、注意点を把握することが重要です。

この記事を通じて、Null Coalescing Operatorの使い方を理解し、より効率的なコーディングができることを願っています。