十二月 2018
« 四月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

[PHP] switch 可能會犯的錯誤

這是在寫專題的時候所遇到的問題
當 switch 裡面傳入了一個未定義的變數,並執行以下程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
< ?php
    switch ( $foo )
    {
    case 0:
        echo 'case 0';
        break;
    case 1:
        echo 'case 1';
        break;
    default:
        echo 'case default';
    }
?>

最後程式會顯示 “case 0

另外,以下變數也會有一樣的結果:

1
2
    $foo = "";
    $foo = NULL;

如果要讓未賦值的變數跳掉 default 項,就必須將程式碼改成:

1
2
    case 0:    // 原始程式碼
    case "0":  // 加上雙引號

這樣程式執行時,就會正確的跳到 default

2 comments to [PHP] switch 可能會犯的錯誤

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>