web-dev-qa-db-ja.com

PHP省略三項演算子 "?:"予期しない解析エラー ":"

いくつかの古いPHPファイルを新しいサーバーにアップロードしたところ、3項式の省略演算で解析エラー(予期しない「:」)が発生しています。例:

$y = $x ?: "Some default";

phpのバージョンは5.2.16です。コードはこれらの省略形?:で散らかされているので、変更する前に、私が使用していないので誰かがこれについて何か知っているかどうかを確認したいと思いましたPHP forしばらく。

31
Paul Kersey

これはPHP 5.3以降でのみ利用可能です

(expr1)? (expr2):(expr3)expr1が[〜#〜] true [〜#〜]と評価された場合、expr2と評価され、かつexpr1が[〜#〜] false [〜#〜]に評価される場合のexpr3。

PHP 5.3なので、三項演算子の中間部分を省略することが可能です。式expr1?:expr3は、expr1が[〜#〜] true [〜#〜]、それ以外の場合はexpr3。1

詳細は この例 を参照してください。

またはもっと便利ですが、コメントに注意してください: http://www.php.net/manual/en/control-structures.if.php#10206


1http://php.net/manual/en/language.operators.comparison.php

60
azat