[PHP] if文を一行で記述する

スポンサーリンク

PHPでif文を一行で記述する方法を紹介します。
if文を使うケースと、三項演算子を使うケース、 最後に一行で記述しない方が良いケースを説明します。

if文を一行で記述


if ($a == 1) $b = 10;

// 1行でない場合
if ($a == 1) {
	$b = 10;
}

else句がない場合は、上のように{}を省略して一行で記述することができます。

else句がある場合でも一行で記述したい場合は、 if文ではなく「三項演算子」を使って記述します。

三項演算子を使って一行で記述


// 三項演算子
$b = ($a == 1) ? 10 : 20; 

echo $b;  // 10

// i行でない場合
if ($a == 1) {
	$b = 10;
} else {
	$b = 20;
}

一行に省略しない方が良いケース

何でも一行に省略すればいいという訳ではありません。
次のように条件文が長い場合や、 処理文が長い場合は可読性の点から一行にしないことをおすすめします。


$hogehoge = 11;

// 次のように条件文や処理文が長い場合は、一行にしない
if ($hogehoge == 10 || $hogehoge == 20 || $hogehoge == 30 ) {
	$re = file_get_contents("test.text", FILE_SKIP_EMPTY_LINES);
}

// 一行にすると見にくい
if ($hogehoge == 10 || $hogehoge == 20 || $hogehoge == 30 ) $re = file_get_contents("test.text", FILE_SKIP_EMPTY_LINES);