php 三項演算子を使用してif文を1行で記述する

  • 作成日 2020.12.03
  • php
php 三項演算子を使用してif文を1行で記述する

phpで、三項演算子を使用してif文を1行で記述するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

三項演算子使い方

if文で記述された以下のコードを、

<?php

$x = 1;

if ($x == 1) {
    $x = 0;
} else {
    $x = 1;
}

echo $x; // 0

三項演算子を使用して記述すると、1行で記述することが可能です。
パフォーマンスも基本的に三項演算子の方がいいです。

<?php

$x = 1;

($x == 1) ? $x = 0 : $x = 1;

echo $x; // 0

構文は以下となります。ifは文ですが、三項演算子は式となります。

条件式 ? Trueの時の処理 : Falseの時の処理

式なので、以下のような使用方法が可能です。

<?php

$bool = TRUE;

('hoge'.($bool?'1':'2'))();

function hoge1(){ echo "hoge1";}
function hoge2(){ echo "hoge2";}
// hoge1