ホームページ >バックエンド開発 >PHPチュートリアル >予期しない結果を避けるために、PHP でネストされた三項演算子を正しく実装するにはどうすればよいですか?

予期しない結果を避けるために、PHP でネストされた三項演算子を正しく実装するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-16 21:38:21408ブラウズ

How Can I Correctly Implement Nested Ternary Operators in PHP to Avoid Unexpected Results?

PHP のネストされた三項演算子: パズルは解決されました

ネストされた三項演算子は、PHP で条件付きで値を割り当てるための簡潔かつ強力な方法を提供します。ただし、複数の演算子を使用する場合は、適切な構文が重要になります。

問題

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

$province = 7;
$Myprovince = (
($province == 6) ? "city-1" :
($province == 7) ? "city-2" :
($province == 8) ? "city-3" :
($province == 30) ? "city-4" : "out of borders"
);

意図しているにもかかわらず州の値に基づいて都市を選択すると、コードはすべての $Myprovince に "city-4" を割り当てます。

解決策

問題は括弧がないことにあります。正しい評価を保証するには、各三項演算子を適切にネストする必要があります。以下の更新されたコードは問題を修正します。

$province = 7;
$Myprovince = (
($province == 6) ? "city-1" :
  (($province == 7) ? "city-2" :
   (($province == 8) ? "city-3" :
    (($province == 30) ? "city-4" : "out of borders")))
);

仕組み

最も内側の三項演算子は条件 ($province == 8) を評価し、「city」を割り当てます。 true の場合は -3"、false の場合は次の演算子に進みます。

中央の三項演算子は次のことを確認します。 $province は 7 に等しく、true の場合は「city-2」を割り当て、または次の演算子に進みます。

最後に、最も外側の三項演算子が条件 ($province == 6) を評価し、「city-1」を割り当てます。 " true の場合、または残りのオプションに進み、最終的に $province が 30 の場合は "city-4"、それ以外の場合は "out of borders" を割り当てます。

以上が予期しない結果を避けるために、PHP でネストされた三項演算子を正しく実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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