PHP

PHP 三項演算子の使い方

2015/07/25

「三項演算子」の使い方です。

下記が三項演算子の書き方です。

条件 ? 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 ;
?>

» 実行結果

-PHP