亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP里 switch case條件語句的問題

PHP里 switch case條件語句的問題

PHP
呼如林 2019-03-14 10:10:53
<?php $a = "abc"; switch ($a) {case 0: echo "a 為 0";break;case "cdaf": echo "a 為 cdaf";break;case "abc": echo "a 為 abc";break;default:echo "a 什么都不是";break;}?>為什么輸出的結果是a為0而不是a為abc?這個0有什么玄機呢?
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

這個問題應該從PHP作為動態腳本語言說起:
動態語言的變量類型是隨存儲的變量而變化的,即變量類型是根據具體環境而進行變化的。

字符串"abc",從樓主的意思來看可能指確切字符串,但是對于PHP存儲的時候它是不能確定的,因為隨著語義的變化,其所起的作用也會變化

第一個case 0:,PHP腳本將常量0翻譯為確切的整數,與字符串比較大小時,需要將字符串轉換為整數。PHP腳本會將字符串abc,從十進制(默認)轉換為數字,但是abc很明顯不能代表十進制數,即轉換失敗,則PHP將結果置為0,如果將字符串表示為"0xabc",那么PHP腳本能夠發現0x標識,將abc作為十六進制轉換,所以能夠得到abc標識的十六進制整數。

如果樓主學過C,可以做一個簡單比較:
C中的case必須是數字常量,而不能是字符串,就因為C是變量類型確定的,運行時不能將確定的變量按語義隨意轉換。而PHP可以,因為PHP語言是動態的,變量類型是動態的。

或者從PHP的例子中學習:
如果一個文件將111111字符串(不是數字)存儲到文件,然后從文件直接讀取到變量$a,如下語法就可以將$a作為整數計算:
0+$a



查看完整回答
反對 回復 2019-03-20
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

你所輸出地是字符串,你直接把
case 0:
echo "a 為 0";
break;
這句給刪掉,因為你所定義的是字符串,不能用數字的

查看完整回答
反對 回復 2019-03-20
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

PHP 中switch 的功能是:選擇執行某個代碼塊;其工作原理如下:

  1.對表達式(一般是變量)進行一次性計算;

  2.用變量的值與switch結構中 case 的值進行比較;

  3.如果變量值與case的值相等,則執行與該 case 關聯的代碼;

  4.代碼執行完后,break 語句阻止代碼跳入下一個 case 中繼續執行;

  5.如果沒有 與之匹配的case條件,則執行 default中的代碼;

  實例代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<?php 

    //星期

    $week=2;

     

    //對星期進行匹配,輸出對應的語句。

    switch ($week){

        case 1:

            echo "今天是周一,上班......";

            break;

        case 2:

            echo "今天是周二,上班......";

            break;

        case 3:

            echo "今天是周三,上班......";

            break;

        case 4:

            echo "今天是周四,上班......";

            break;

        case 5:

            echo "今天是周五,上班......";

            break;

        default:

            echo "哈哈,今天是周末!!";

    }

     

    //今天是周二,上班......

?>


 


查看完整回答
反對 回復 2019-03-20
  • 3 回答
  • 0 關注
  • 850 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號