ログイン



?:演算子

PHP5.3では、?:演算子が導入された。この演算子は、3項演算子(A?B:C)のBの部分を省略した形で、Aが真の場合はAを、Aが偽の場合はCを返す。

偽となる値は以下の通り

値が入力されていない場合に、デフォルト値をセットする場合に便利な関数だ。

使用例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$name = "php6";
echo $name ?: "noname";
#実行結果
#php6

$name = "";
echo $name ?: "noname";
#実行結果
#noname

unset($name);
echo $name ?: "noname";
#実行結果
#noname

このように、値が設定されていれば設定されている値を、値が設定されていない場合は?:演算子の右側に書かれた値を返す。上記と同じプログラムを、?:演算子ではなく、三項演算子を使うと以下のようになる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$name = "php6";
echo $name ? $name : "noname";
#実行結果
#php6

$name = "";
echo $name ? $name : "noname";
#実行結果
#noname

unset($name);
echo $name ? $name : "noname";
#実行結果
#noname

三項演算子を使っても全く同じ処理を実装できるが、?:演算子を使うことで少しだけ式が単純になる。このように、無くても全く同じ処理を実装できるが、記述を分かりやすくする(簡潔にする)目的で導入された構文をシンタックスシュガーと呼ぶ。

One Response to “?:演算子”

  1. ?:演算子 より:

    […] ?:演算子のページを追加した。PHP5.3から導入された演算子だ。敢えてこの演算子を使う必要はないが、運用環境にPHP5.3以降を使うことが決定しているシステムであれば、こんな演算子をつかってプログラミングするのも良いだろう。 […]

Leave a Reply