1. ホーム
  2. php

[解決済み] PHPの構文に関する質問です。クエスチョンマークとコロンは何を意味するのですか?重複

2023-07-21 03:02:53

質問

重複の可能性があります。

クイックPHP構文の質問

return $add_review ? FALSE : $arg;

クエスチョンマークとコロンはどういう意味ですか?

ありがとうございます。

どのように解決するのですか?

これは、PHPの 三項演算子 (条件演算子としても知られています) - もし最初のオペランドが真と評価されれば、2番目のオペランドとして評価し、そうでなければ3番目のオペランドとして評価します。

三項演算子は、式の中で使用できる "if" 文のようなものだと考えてください。例えば、ある条件に依存する簡潔な代入を行う際に非常に有用である場合があります。

$param = isset($_GET['param']) ? $_GET['param'] : 'default';

これの短縮版もあります (PHP 5.3 以降)。真ん中のオペランドを省略することができます。演算子は、それが真であれば最初のオペランドとして評価され、 そうでなければ第3のオペランドとして評価されます。たとえば

$result = $x ?: 'default';

上記のコードで変数 $_GET や $_POST を使用した場合、未定義のインデックスが投げられることに注意してください。 isset または NULL合体演算子 で、これは PHP7 で導入されました。

$param = $_GET['param'] ?? 'default';