您好,登錄后才能下訂單哦!
之前做項目時遇到一個問題,代碼大致如下:
switch($a){ case $a >=1000 && $a <5000: echo "vip1"; break; case $a >=5000 && $a <=10000: echo "vip2"; break; default: echo "vipx";
如果$a >0 沒問題,當$a =0的時候,問題就來了,程序會輸出: vip1;
后來查了下,應該是這樣的:
PHP 中switch 的功能是:選擇執行某個代碼塊;其工作原理如下:
1.對表達式(一般是變量)進行一次性計算;
2.用變量的值與switch結構中 case 的值進行比較;
3.如果變量值與case的值相等,則執行與該 case 關聯的代碼;
4.代碼執行完后,break 語句阻止代碼跳入下一個 case 中繼續執行;
5.如果沒有 與之匹配的case條件,則執行 default中的代碼;
實例代碼:
也就是當$a =0的時候,第一個case先運算一次,$a >=1000 && $a <5000 當然是false;然后 0與false比較,這是就為true了,所以返回了“vip1”;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。