首頁  >  文章  >  後端開發  >  php中int和intval有什麼差別

php中int和intval有什麼差別

WBOY
WBOY原創
2022-07-27 16:30:573069瀏覽

php中int與intval的差別:1、int是指Integer整數型,intval是指用來取得變數整數值的函數;2、int的強制轉換與intval函數在超出各種型別顯示的最大值時,intval如果參數是字串,則傳回字串中第一個不是數字的字元之前的數字字串所代表的整數值,int型別有指定的最大值。

php中int和intval有什麼差別

本文操作環境:Windows10系統、PHP8.1版、Dell G3電腦

php中int與intval有何不同

intval() 函數用來取得變數的整數值。

intval() 函數透過使用指定的進位 base 轉換(預設為十進位),傳回變數 var 的 integer 數值。 intval() 不能用於 object,否則會產生 E_NOTICE 錯誤並傳回 1。

php裡int是指Integer整數

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
?>

(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>";                   
?>

小結:

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

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

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

推薦學習:《PHP影片教學

以上是php中int和intval有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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