>  기사  >  백엔드 개발  >  PHP에서 intval()과 (int)를 구별하는 방법

PHP에서 intval()과 (int)를 구별하는 방법

autoload
autoload원래의
2021-04-02 12:27:462833검색

이 글에서는 주로 intval() 유형 변환과 (int)의 강제 유형 변환의 기능 및 정의를 몇 가지 예와 함께 비교하여 둘을 구별합니다. 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

    1.intval() 함수
구문:🎜rrreee
  • 🎜 value정수🎜🎜로 변환할 수량 값입니다. 🎜 base는 변환에 사용되는 기수입니다(입력하지 않으면 기본값은 10진수입니다)🎜🎜
  • 🎜 반환 값: int 유형 변수🎜🎜 ul>🎜 추신: value가 문자열이 아닌 경우 base 는 작동하지 않습니다. 🎜🎜 예:🎜rrreee🎜(int) 캐스트
    🎜🎜데모: 🎜rrreee🎜3. 요약:🎜
    1. 🎜 boolean을 접할 때 intintval() 함수의 강제 변환이 다릅니다. int, floatarray는 일관성이 있습니다(각 유형별로 표시되는 최대값을 초과하지 않음). 🎜🎜
    2. 🎜 intval()매개변수가 문자열인 경우 문자열에서 숫자가 아닌 첫 번째 문자 앞에 있는 숫자 문자열이 나타내는 정수 값을 반환합니다. 문자열의 첫 번째 문자가 '-'인 경우 두 번째 문자부터 계산이 시작됩니다. 매개변수가 점으로 구분된 숫자인 경우 반올림된 값이 반환됩니다. 🎜🎜
    3. 🎜 int 유형의 최대값은 2147483647입니다. 일반적으로 유형 변환 시 이 최대값을 초과하면 최대값이 표시됩니다. (int)code>는 -1609564160을 표시합니다. 🎜🎜🎜

위 내용은 PHP에서 intval()과 (int)를 구별하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.