非常に実用的な演算子が PHP7 に追加されました: null 合体演算子です。この演算子を使用すると、コード内の論理判断を簡素化し、コードをより簡潔で読みやすくすることができます。
従来の論理判断は通常、三項演算子または if-else ステートメントを使用して実装されます。たとえば、変数の値を取得する場合、変数が存在する場合はその変数の値が使用され、それ以外の場合はデフォルト値が使用されます。 PHP7 より前は、次のようなコードを作成することがありました。
$value = isset($variable) ? $variable : $default;
このようなコードは扱いにくく、十分に直感的ではありません。 null 結合演算子を使用すると、コードをより簡潔かつ明確にすることができます:
$value = $variable ?? $default;
null 結合演算子を使用します。$variable が存在し、null でない場合は、$variable の値が使用され、それ以外の場合は、$ の値が使用されます。デフォルトが使用されます。この 1 行のコードで十分なので、コードの複雑さが大幅に軽減されます。
null 合体演算子は、論理的な判断を簡素化するだけでなく、配列内の値を取得するためにも使用できます。たとえば、配列内のキーに対応する値を取得したい場合、キーが存在する場合はその値を使用し、そうでない場合はデフォルト値を使用します。 PHP7 より前では、次のようなコードを書くことができました。
$value = isset($array['key']) ? $array['key'] : $default;
また、null 合体演算子を使用すると、次のように書くことができます。
$value = $array['key'] ?? $default;
同様に、このようなコードはより簡潔で明確です。
null マージ演算子を複数のネストで使用して、複雑な論理判断と値の要件を満たすことができます。たとえば、オブジェクトの属性値を取得したいのですが、その属性が存在しない可能性や、オブジェクト自体が存在しない可能性があります。 PHP7 より前では、次のようなコードを記述する必要がある場合があります:
$value = (isset($object) && isset($object->attribute)) ? $object->attribute : $default;
現在は、これを次のように単純化できます:
$value = $object->attribute ?? $default;
もちろん、ネストされたロジックがより複雑な場合は、依然として次のことを行う必要があります。従来の if-else ステートメントを使用して処理します。
null 合体演算子は、変数が存在するか空であるかではなく、変数が null かどうかだけを判断することに注意してください。変数が存在するか空であるかを判断したいだけの場合でも、 isset() 関数または empty() 関数を使用する必要があります。
要約すると、PHP7 の新しい null 合体演算子により、コード内の論理判断が大幅に簡素化され、コードがより簡潔で読みやすくなります。ただし、使用する場合は、不要なエラーを避けるために、使用シナリオとオペレーターの制限に注意する必要があります。
以上がPHP7 の新しい null 合体演算子: コードの論理判断を簡略化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。