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

PHP の Nullsafe オペレーターはネストされたプロパティへのアクセスを簡素化できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-14 04:58:09302ブラウズ

Can PHP's Nullsafe Operator Simplify Nested Property Access?

PHP での Nullsafe 演算子の紹介

nullsafe 演算子 (?->) を使用すると、開発者はオブジェクトのプロパティに安全にアクセスするコードを作成でき、明示的な null チェックを必要としないメソッド。これにより、コードが簡素化され、特に複雑なオブジェクト階層での読みやすさが向上します。

Query

nullsafe 演算子を使用して次のステートメントを書き換えることはできますか?

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

答え

からPHP 8 以降では、nullsafe 演算子を null 合体演算子 (?) と組み合わせて利用して、目的の動作を実現できます。

解決策

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

->演算子は、null 値に遭遇すると一連の演算子を切断し、実質的に null を返し、式を終了します。

  • 配列アクセス ([])、プロパティ アクセス (->)、nullsafe プロパティ アクセス (?->) など、オブジェクトのプロパティを検査したりメソッドを呼び出したりする演算子はチェーンの一部とみなされます。 、静的プロパティ アクセス (::)、メソッド呼び出し (->)、nullsafe メソッド呼び出し (?->)、および静的メソッド呼び出し(::)

さらに、チェーン内の後続の演算子がチェーンの一部とみなされない場合 (たとえば、以下の例の連結演算子)、それらは短絡されません:

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

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

$string = null . " after";

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

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