私が持っている場合
return recordsAffected > 0;
どちらかを返すか、true
またはfalse
置く必要がありreturn recordsAffected > 0 ? true : false
ますか?
私が持っている場合
return recordsAffected > 0;
どちらかを返すか、true
またはfalse
置く必要がありreturn recordsAffected > 0 ? true : false
ますか?
その必要はありません。主な理由は、1 つではなく 2 つの操作になることです。1 つ目は比較、2 つ目は値の選択です。また、各条件演算子 (三項も含む)がパフォーマンスに影響することにも言及したいと思います。
短いテスト:
<?php
header('Content-Type: text/plain; charset=utf-8');
$start = microtime(true);
for($i = 1; $j = 1, $i <= 10000000; $i++){
($i == $j);
}
$end = microtime(true);
echo 'Not ternary: ', $end - $start, PHP_EOL;
$start = microtime(true);
for($i = 1; $j = 1, $i <= 10000000; $i++){
($i == $j ? true : false);
}
$end = microtime(true);
echo 'Ternary: ', $end - $start, PHP_EOL;
?>
その結果です。
もちろんその必要はありません。の意図とセマンティクス
return recordsAffected > 0;
は完全に明らかです。これは、コードを読むすべてのまともなプログラマーに当てはまるはずです。
return recordsAffected > 0 ? true : false;
せいぜい冗長ですが、さらに進んで有害と呼びます。2 番目のスニペットはステートメントに何も追加しませんが、複雑さだけを追加します。いつもこのようなコードを書いていないのであれば (まともなプログラマーはほとんど書かないと思います)、2 番目のステートメントの意味を理解するのに少なくとも 2 回はかかるでしょう。意味的に等しい解決策が 2 つある場合は、常に最も明確な解決策に固執する必要があります。みたいなことを書く人はいないだろう
if(recordsAffected > 0 ? true : false)
{
}