ホームページ >バックエンド開発 >PHPチュートリアル >PHP の Nullsafe オペレーターは条件付きプロパティ アクセスを簡素化できますか?

PHP の Nullsafe オペレーターは条件付きプロパティ アクセスを簡素化できますか?

DDD
DDDオリジナル
2024-12-22 13:07:11442ブラウズ

Can PHP's Nullsafe Operator Simplify Conditional Property Access?

条件付きナビゲーションに PHP の Nullsafe 演算子を利用する

PHP 開発者は、null の可能性があるオブジェクトのプロパティまたはメソッドにアクセスする必要がある状況によく遭遇します。 。従来、目的の値に安全にアクセスするには、面倒な null チェックと三項演算子のネストが必要でした。ただし、PHP 8 の導入により、null セーフ演算子 (-?) によりコードの可読性が向上し、そのような操作に関連する冗長性が軽減されます。

質問:

は安全なナビゲーションを使用して次のコードを記述する簡潔な方法があります演算子?

echo $data->getMyObject() != null ? $data->getMyObject()->getName() : '';

答え:

PHP バージョン 8 以降では、null セーフ演算子 (-?) を null 合体演算子と組み合わせて利用できます。 (??) このタスクを完了するには。結果のコードでは、構文が大幅に簡素化されます。

echo $data->getMyObject()->getName() ?? '';

-? を使用することで、 null セーフ演算子。左側が null の場合、演算子の連鎖は事実上壊れます。これにより null が返され、null 合体演算子がデフォルト値を空の文字列に置き換えることができます。

Nullsafe 演算子 (-?) について

null セーフ演算子では、次のことが可能になります。プログラマは、特定の時点でプロパティまたはメソッド呼び出しのチェーンを選択的に終了できます。オブジェクトの内部を検査または操作する演算子は、次のようなチェーンの一部とみなされます。

  • 配列アクセス ([])
  • プロパティ アクセス (->)
    * Nullsafe プロパティ アクセス (?->)
    *静的プロパティ アクセス (::)
    *メソッド呼び出し(->)
    *Nullsafe メソッド呼び出し (?->>)
    *静的メソッド呼び出し (::)

例:

次のコードを考えてみましょう:

$string = $data?->getObject()->getName() . " after";

$data が null の場合、このコードは次と同等になります:

$string = null . " after";

これは、文字列連結演算子がチェーンの一部ではなく、短絡されていないためです。

null セーフ演算子を利用することで、PHP 開発者は条件付きナビゲーション シナリオで null 値を効果的に処理し、コードの読みやすさと簡潔さを向上させることができます。

以上がPHP の Nullsafe オペレーターは条件付きプロパティ アクセスを簡素化できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。