ホームページ  >  記事  >  バックエンド開発  >  php7 に 2 つの新しい演算子「?->」と「??」が追加されました。

php7 に 2 つの新しい演算子「?->」と「??」が追加されました。

PHPz
PHPzオリジナル
2023-03-21 15:49:521667ブラウズ

PHP7 がリリースされた後、重要な変更点は強力な型チェックが強化されたことであることに誰もが気づきました。この変更は、変数が定義される前に参照するなどの多くの間違いを避けるのに役立つため、非常に有益です。

以前の PHP バージョンでは、変数を定義していない場合、それを直接使用すると Unknown variable エラーが発生しました。ただし、PHP7 では、いくつかの新機能を使用してこの問題を回避できます。

これらの新機能には、?->?? という 2 つの新しい演算子が含まれています。それぞれ 2 つの異なるタイプの問題を解決できます。

?->Operator

以前の PHP バージョンでは、isset 関数を使用して変数が定義されているかどうかを判断できました。ただし、これは単一の変数に対してのみ機能します。オブジェクトのプロパティが定義されているかどうかを確認する必要がある場合は、複雑なコードを使用してこのタスクを実行する必要があります。

PHP7 では、?-> 演算子を使用して、オブジェクトのプロパティが定義されているかどうかを確認できます。この演算子は、プロパティの受信側が null、false、または未定義の変数の場合にのみ null を返し、それ以外の場合はプロパティの値を返します。このようにして、プロパティが定義される前にそのプロパティを使用することを回避できるため、未定義変数エラーを回避できます。

<?php
$obj = null;
$value = $obj?->property;
?>

上記のコードでは、$obj が null の場合、$value は null に設定され、それ以外の場合、$value は $obj の property 属性の値に設定されます。

??演算子

もう 1 つの非常に便利な新機能は、??演算子です。この演算子を使用すると、変数が定義されているかどうかを確認し、定義されていない場合はデフォルト値を設定できます。

以前の PHP バージョンでは、通常、このタスクを完了するために三項演算子を使用していました:

<?php
$variable = isset($variable) ? $variable : &#39;default value&#39;;
?>

PHP7 では、?? 演算子を使用して上記のコードを置き換えることができます。 $variable が定義されている場合、$variable は $result に割り当てられ、それ以外の場合、$result にはデフォルト値が割り当てられます。

<?php
$variable = null;
$result = $variable ?? "default value";
?>

上記のコードでは、$variable が null であるため、$result は「デフォルト値」に設定されます。

概要

これら 2 つの新しい演算子により、未定義変数エラーを非常に効果的に回避でき、コードがより明確になり、保守が容易になります。それらを使用するときは、その使用法と制限事項に注意する必要があります。

以上がphp7 に 2 つの新しい演算子「?->」と「??」が追加されました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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