80

重複の可能性:
簡単な php 構文の質問

return $add_review ? FALSE : $arg;

疑問符とコロンの意味.

ありがとう

4

2 に答える 2

163

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

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

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

これの簡略版もあります (PHP 5.3 以降)。中間オペランドは省略できます。演算子は、真の場合は最初のオペランドとして評価され、そうでない場合は 3 番目のオペランドとして評価されます。例えば:

$result = $x ?: 'default';

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

$param = $_GET['param'] ?? 'default';
于 2009-08-14T09:27:43.260 に答える
19

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

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/ を参照してください。

于 2009-08-14T09:34:33.013 に答える