私はSymfonyのframwork(version 4)のコードに飛び込みましたが、このコードの平和を見つけました:
$env = $_SERVER['APP_ENV'] ?? 'dev';
これが実際に何をするのかはよくわかりませんが、次のように展開されると思います。
$env = $_SERVER['APP_ENV'] != null ? $_SERVER['APP_ENV'] : 'dev';
または多分:
$env = isset($_SERVER['APP_ENV']) ? $_SERVER['APP_ENV'] : 'dev';
誰かが主題について何か正確さを持っていますか?
編集:
質問に回答したすべての人々に:ありがとうございます私の質問に否定的なマークを付けたすべての人々に/似たような質問があるので( PHP三項演算子vs null合体演算子 ):
どちらの質問も非常によく似ています。しかし誰もが "??"と想像するのは難しいです。合体演算子と呼ばれます。
それ以外の場合は、公式文書で簡単に見つけることができます。
http://php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op
しかし、この機能がphp 7で追加されたことを知らない人のためには、もっとタイプするのが普通です:
"php ??演算子"または "php二重疑問符演算子"
そして、これが私の質問に付加価値がある理由です。
私はあなたにお願いします、お願いします、あなたの否定的なフィードバックを再考してください。ありがとう
よろしく、エピシログ
これはphp 7.0で追加された "null合体演算子"です。仕組みの定義は次のとおりです。
最初のオペランドが存在し、それがNULLでない場合は、その最初のオペランドを返します。それ以外の場合は2番目のオペランドを返します。
つまり、便利な演算子では実際にはisset()
だけです。
これら2つは同等です:
$foo = $bar ?? 'something';
$foo = isset($bar) ? $bar : 'something';
ドキュメンテーション: http://php.net/manual/en/language.operators.comparison.php#language.operators.comparison.coalesce
新しいPHP7の機能のリストで: http://php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op
$myVar = $someVar ?? 42;
と同等です:
$myVar = isset($someVar) ? $someVar : 42;
$x = $y ?? 'dev'
yが設定されている場合はx = yの短縮形、そうでない場合はx = 'dev'
もあります
$x = $y =="SOMETHING" ? 10 : 20
yが 'SOMETHING'に等しい場合はx = 10、そうでない場合はx = 20