首頁  >  文章  >  後端開發  >  如何區分PHP中intval()與(int)

如何區分PHP中intval()與(int)

autoload
autoload原創
2021-04-02 12:27:462845瀏覽

    本文主要針對intval()型別轉換、(int)的強制型別轉換在功能、定義上的差異做了一些範例比較,對兩者進行區分。

1.intval()函數

語法:

intval ( mixed $value , int $base = 10 ) : int
  • # #   

    value為要轉換成 integer 的數量值

  •     

    base為轉換所使用的進位(不填預設為10進位)

  •     傳回值:

    int型變數

 PS:除非 

value  是一個字串,否則 base 不會運​​作。

 

範例:

<?php
echo intval(42)."<br>";                      // 42
echo intval(4.2)."<br>";                     // 4
echo intval(&#39;42&#39;)."<br>";                    // 42
echo intval(&#39;+42&#39;)."<br>";                   // 42
echo intval(&#39;-42&#39;)."<br>";                   // -42
echo intval(042)."<br>";                     // 34
echo intval(&#39;042&#39;)."<br>";                   // 42
echo intval(1e10)."<br>";                    // 1410065408
echo intval(&#39;1e10&#39;)."<br>";                  // 1
echo intval(0x1A)."<br>";                    // 26
echo intval(42000000)."<br>";                // 42000000
echo intval(420000000000000000000)."<br>";   // 0
echo intval(&#39;420000000000000000000&#39;)."<br>"; // 2147483647
echo intval(42, 8)."<br>";                   // 42
echo intval(&#39;42&#39;, 8)."<br>";                 // 34
echo intval(array())."<br>";                 // 0
echo intval(array(&#39;foo&#39;, &#39;bar&#39;))."<br>";     // 1
echo intval(false)."<br>";                   // 0
echo intval(true)."<br>";                    // 1
?>

#2.(int)強制轉換

示範:

<?php
echo (int)42;     // 42
echo "<br>";
echo (int)4.2;    // 4
echo "<br>";                   
echo (int)&#39;42&#39;;   // 42
echo "<br>";                    
echo (int)&#39;+42&#39;;  // 42
echo "<br>";                  
echo (int)&#39;-42&#39;;  // -42
echo "<br>";                 
echo (int)042;    //  34
echo "<br>";                    
echo (int)&#39;042&#39;;  // 42
echo "<br>";                  
echo (int)1e10;   // 1410065408
echo "<br>";                    
echo (int)&#39;1e10&#39;; //2147483647
echo "<br>";                
echo (int)0x1A;   // 26
echo "<br>";                    
echo (int)42000000;// 42000000
echo "<br>";                
echo (int)420000000000000000000;  //-1609564160
echo "<br>"; 
echo (int)&#39;420000000000000000000&#39;; //2147483647
echo "<br>";

/*echo intval(42, 8)."<br>";                   
echo intval(&#39;42&#39;, 8)."<br>";              */
/*int的强制转换不是函数,所以无法实现*/  
                
echo (int)array();// 0
echo "<br>";                 
echo (int)array(&#39;foo&#39;, &#39;bar&#39;);//1
echo "<br>";     
echo (int)false;   //0
echo "<br>";              
echo (int)true;    //1
echo "<br>";                   
?>

3.小結:

  1.  

    int的強制轉換與 intval()函數在面對booleanintfloatarray時兩者保持一致(不超出各種類型顯示的最大值)。

  2.  

    intval()如果參數是字串,則傳回字串中第一個不是數字的字元之前的數字字串所代表的整數值。如果字串第一個是‘-',則從第二個開始算起。如果參數是符點數,則傳回他取整之後的值。

  3.  int 類型最大值為 2147483647一般在型別轉換時 如果超過這個最大值就以最大值顯示,( int)則顯示-1609564160

  4. #

以上是如何區分PHP中intval()與(int)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn