【PHP】ifとswitchの違い

PHPにおけるif文とswitch文の違いの説明です。

if

マニュアルはこちら→PHP:if - Manual

if文はtrueになればif文内に入ります。

またAND、ORで複数の条件を入れられます。

「==」曖昧な比較が可能です。

「===」厳密な比較が可能です。

比較表で確認出来ます→PHP:PHP型の比較表

if文の場合は複数の条件も入れることが出来ます。


switch

マニュアルはこちら→PHP:switch - Manual

switchは常に曖昧な比較を行います。

可読性が大幅に向上します。

「break」をあえてしない作りが出来る。

<?php
switch($beer)
{
    case 'ツボルグ';
    case 'カールスバーグ';
    case 'ハイネケン';
        echo 'いいっすねぇ';
    break;
    default;
        echo 'ほかのを選んでみませんか?';
    break;
}

速度の違い

if文の「==」、「===」、switch文使用して速度比較を行っています。

思っていた以上にswitch文の速度が早かったです。

それでも1000万回繰り返しての速度の違いなので誤差です。


まとめ

私は結構switch文を使用します。

複雑な条件式がないので可読性の向上も行えます。

ただし曖昧な比較なので先に必要なら型チェックをするようにしてください。

初めて気づきましたが曖昧な比較の方が型チェックがないから早くてさらにswitchの方が構造のせいか早いですね。


0 件のコメント :

コメントを投稿