ホームページ >バックエンド開発 >PHPチュートリアル >効率的な条件付きロジックのために入れ子になった三項演算子を構造化するには?

効率的な条件付きロジックのために入れ子になった三項演算子を構造化するには?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 10:50:03818ブラウズ

How to Structure Nested Ternary Operators for Efficient Conditional Logic?

ネストされた三項演算子の使用

条件文を効率化するために、三項演算子をネストする必要が生じる場合があります。ただし、例が示すように、これを達成するのは難しい場合があります:

<code class="php">isset($_POST['selectedTemplate'])?$_POST['selectedTemplate']:isset($_GET['selectedTemplate'])?$_GET['selectedTemplate']:0</code>

これを修正するには、式全体を括弧で囲むことが重要です:

<code class="php">$selectedTemplate = isset($_POST['selectedTemplate'])
                  ? $_POST['selectedTemplate']
                  : (
                       isset($_GET['selectedTemplate'])
                       ? $_GET['selectedTemplate']
                       : 0
                  );</code>

あるいは、改善するには可読性とメンテナンス性を考慮して、if/else ステートメントの利用を検討してください:

<code class="php">$selectedTemplate = 0;

if (isset($_POST['selectedTemplate'])) {
    $selectedTemplate = $_POST['selectedTemplate'];
} elseif (isset($_GET['selectedTemplate'])) {
    $selectedTemplate = $_GET['selectedTemplate'];
}</code>

ただし、簡素化と POST メソッドと GET メソッドの両方との互換性を考慮すると、次の解決策の方が適切である可能性があります:

<code class="php">$selectedTemplate = isset($_REQUEST['selectedTemplate'])
                  ? $_REQUEST['selectedTemplate']
                  : 0;</code>

以上が効率的な条件付きロジックのために入れ子になった三項演算子を構造化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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