入れ子になった三項演算子に括弧が必要なのはなぜですか?

Barbara Streisand
リリース: 2024-11-04 09:04:30
オリジナル
623 人が閲覧しました

Why Do I Need Parentheses for Nested Ternary Operators?

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

プログラミングの領域では、ネストされた三項演算子は、簡潔な条件文を作成するための貴重なツールとなります。ただし、それらを実装するのは難しい場合があります。ユーザーが最近遭遇した課題の 1 つは、ネストされた形式で isset() を利用することでした。

isset($_POST['selectedTemplate'])?$_POST['selectedTemplate']:isset($_GET['selectedTemplate'])?$_GET['selectedTemplate']:0
ログイン後にコピー

ユーザーはこの式の問題に直面し、プログラミング コミュニティに支援を求めました。浮かび上がった解決策を詳しく見てみましょう:

ネストされた三項演算子が正しく機能するには、それらを括弧で囲む必要があります。これにより、式が意図した順序で評価されることが保証されます。修正されたコードは次のとおりです。

$selectedTemplate = isset($_POST['selectedTemplate'])
                  ? $_POST['selectedTemplate']
                  : (
                       isset($_GET['selectedTemplate'])
                       ? $_GET['selectedTemplate']
                       : 0
                  );
ログイン後にコピー

ただし、保守性と明確性を向上させるには、if/else ステートメントを使用することをお勧めします。

$selectTemplate = 0;

if (isset($_POST['selectedTemplate'])) {
    $selectTemplate = $_POST['selectedTemplate'];
} elseif (isset($_GET['selectedTemplate'])) {
    $selectTemplate = $_GET['selectedTemplate'];
}
ログイン後にコピー

最後に、単純さと簡単さのために、 $_REQUEST:

$selectedTemplate = isset($_REQUEST['selectedTemplate'])
                  ? $_REQUEST['selectedTemplate']
                  : 0;
ログイン後にコピー

最終的にはアプローチの選択を忘れないでください。アプリケーションの特定の要件によって異なります。コーディングを楽しんでください。三項が完璧にネストされますように!

以上が入れ子になった三項演算子に括弧が必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!