ネストされた三項演算子の使用 [重複] 質問する

ネストされた三項演算子の使用 [重複] 質問する

isset()以下のようにネストされた形式で使用しようとしています:

isset($_POST['selectedTemplate'])?$_POST['selectedTemplate']:isset($_GET['selectedTemplate'])?$_GET['selectedTemplate']:0

しかし、何かが足りないようです。誰かやり方を教えてもらえませんか?

ベストアンサー1

括弧で囲みます:

$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;

おすすめ記事