エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

三項演算子(x ? y : z)はこわくないヨ。便利だヨ【797日目】

三項演算子アンチパターン

三項演算子』でずっと思ってるのが、
三項演算子のネストとかで『クソコードだー』ってネタにされすぎたせいで、

『よくわからないけど三項演算子は悪だ!』
三項演算子使うのはアンチパターン!』

みたいに言う人いて悲しい(´・ω・`)

代入とかで使うと、めっちゃ見やすくなりますよね……?

なので書いてみた

ということで、こうすると見やすくない?みたいなのを書いてみました。

いろいろ反論あるかもですが、多くを語るよりコードで示してみます。

■before

if ($flag) {
    return "x";
}

return "y";

■after

return $flag ? "x" : "y";
return $flag
    ? "x"
    : "y";

■before

if ($user->role != "user") {
    $name = $user->name;
} else {
    $name = "default";
}

■after

$name = $user->role != "user" ? $user->name : "default";
$name = $user->role != "user" 
    ? $user->name
    : "default";