web-dev-qa-db-ja.com

PHP構文質問:疑問符とコロンの意味は何ですか?

可能性のある複製:
PHP構文のクイック質問

return $add_review ? FALSE : $arg;

疑問符とコロンはどういう意味ですか?

ありがとう

62
Petkun

これはPHP 三項演算子 (条件演算子とも呼ばれます)-第1オペランドがtrueの場合、第2オペランドとして評価され、それ以外の場合は第3オペランドとして評価されます。

式で使用できる「if」ステートメントと考えてください。ある条件に依存する簡潔な割り当てを行うのに非常に役立ちます。

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

これの簡略版もあります(PHP 5.3以降)。中間のオペランドは省略できます。演算子は、真の場合は第1オペランド、それ以外の場合は第3オペランドとして評価されます。例:

$result = $x ?: 'default';

つまり、$ _ GETまたは$ _POST変数を使用する場合、上記のコードは未定義のインデックス通知をスローし、issetまたは null合体演算子を使用して、より長いバージョンを使用する必要がないことを言及する価値があります PHP7で導入されました:

$param = $_GET['param'] ?? 'default';
133
Paul Dixon

If-else演算子の三項形式です。上記のステートメントは基本的に次のようになります。

if ($add_review) then {
    return FALSE; //$add_review evaluated as True
} else {
    return $arg //$add_review evaluated as False
}

PHPの三項演算の詳細については、こちらを参照してください。 http://www.addedbytes.com/php/ternary-conditionals/

17
Cristian Ivascu