php 的數據強制類型轉換和默認類型轉換

php 的數據強制類型轉換和默認類型轉換
有幾個月開發經驗的朋友,都知道php屬於弱類型語言,即不會強制開發者使用數據時指定其數據類型。
下面個人總結一下,php對數據類型的處理方式。

一。先說強制類型轉換(也可理解成手動類型轉換或指定數據類型):

       PHP強制數據類型轉換有三種轉換方式:

       1.用強制類型關健字
        •(int)、(integer):轉換成整形
        •(float)、(double)、(real):轉換成浮點型
        •(string):轉換成字符串
        •(bool)、(boolean):轉換成布爾類型
        •(array):轉換成數組
        •(object):轉換成對象 
        •(binary):字節碼
        
        示例:
        |$num1=3.14;   
        |$num2=(int)$num1;   
        |var_dump($num1); //輸出float(3.14)   
        |var_dump($num2); //輸出int(3)    

       2.類型轉換函數
        intval()、floatval()、strval() 、settype(mixed var,string type) 
        示例:
        |$str="123.9abc";   
        |$int=intval($str);     //轉換後數值:123   
        |$float=floatval($str); //轉換後數值:123.9   
        |$str=strval($float);   //轉換後字符串:"123.9" 
        |$num4=12.8;   
        |$flg=settype($num4,"int");   
        |var_dump($flg);  //輸出bool(true)   
        |var_dump($num4); //輸出int(12)

二。再說默認類型轉換,規則:
    +號,自動按數字運算。
    .號,自動按字符串運算.
        示例:
        |$i=1;
        |$a=$i.'a'; //結果1a
        |$c=$i+'a';//結果1
        |0==“abc"; //結果是true , 因爲"abc”按轉成數字參加比對

    值的類型確定數據類型
        $foo = "0"; // $foo is a string (ASCII 48)
        $foo++; // $foo is the string "1" (ASCII 49)
        $foo += 1; // $foo is now an integer (2)
        $foo = $foo + 1.3; // $foo is now a double (3.3)
        $foo = 5 + "10 Little Piggies"; // $foo is a double (15),因爲後面的“10。。。”轉成數據類型是10
        $foo = 5 + "10 Small Pigs"; // $foo is an integer (15)
    int,float,doblue 之間就長運算。
        $foo = 1+1.34 ; // $foo 是float 
    
    
三。類型相關的其它函數:
    gettype 獲得變量類型
    settype 指定變量類型
    get_resource_type 獲得資源類型

四。有絕對的必要了解一下運算符優先級
    最高優先級爲一元運算符new , [ ] , ! , ~ , ++ , -- , 類型轉換
        接下來是二元算術運算符* , / , % , + , - , 字符串連接符. 
        再接下來是二元位運算符 << , >>
        再接下來是比較操作符符< , > , <= , >= , == , !=(<>) , === , !==
        再接下來是位運算符和邏輯運算符& , ^ , | , && , ||
        再接下來是三目運算符?:
    再接下來是函數調用
        再接下來是賦值操作符= , += , -= , *= , /= , .= , %= , &= , |= , ^= , ~= , <<= , >>=
        再接下來是and , xor , or,(這個我比較鬱悶的,書的前面寫了and和&&,or和||只是表達形式不一樣,但是這裏很明顯優先級是不一樣)
        最後是一個列表分隔符,
發佈了41 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章