「三項演算子」の使い方です。
下記が三項演算子の書き方です。
条件 ? trueの場合に返す値 : falseの場合に返す値;
三項演算子を使用することで、下記のような一番簡単なif elseを一行で書くことができます。
<?php $x = 10; if($x == 10){ echo "変数xは10です。"; }else{ echo "変数xは10ではありません。"; } ?>
上記を三項演算子にすると下記になります。
<?php $x = 10; echo $x == 10 ? "変数xは10です。" : "変数xは10ではありません。"; ?>
ifの{}内のように、処理を行うのではなく、「値を返す」ということに注意してください。
三項演算子の中でechoを使うことは出来ませんので、下記のようにするとエラーになります。
<?php $x = 10; $x == 10 ? echo "変数xは10です。" : echo "変数xは10ではありません。"; ?>
返ってきた値を変数に入れて使うのが一般的かもしれません。
<?php $x = 10; $y = $x == 10 ? "変数xは10です。" : "変数xは10ではありません。"; echo $y; ?>
三項演算子の中で代入や計算等を行うことは出来ます。
下記は、$xと$yを比べて大きい値から小さい値を引いた値を$zに加算代入したものをechoで表示するまでを一行で行っています。
<?php $x = 10; $y = 15; $z = 20; echo $z += $x < $y ? $y - $x : $x - $y ; ?>