Heim > Artikel > Backend-Entwicklung > Wie man in PHP zwischen intval() und (int) unterscheidet
Dieser Artikel vergleicht hauptsächlich die Funktionen und Definitionen der Typkonvertierung von intval()
und der erzwungenen Typkonvertierung von (int)
mit einigen Beispielen, um zwischen den beiden zu unterscheiden. 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('42')."<br>"; // 42 echo intval('+42')."<br>"; // 42 echo intval('-42')."<br>"; // -42 echo intval(042)."<br>"; // 34 echo intval('042')."<br>"; // 42 echo intval(1e10)."<br>"; // 1410065408 echo intval('1e10')."<br>"; // 1 echo intval(0x1A)."<br>"; // 26 echo intval(42000000)."<br>"; // 42000000 echo intval(420000000000000000000)."<br>"; // 0 echo intval('420000000000000000000')."<br>"; // 2147483647 echo intval(42, 8)."<br>"; // 42 echo intval('42', 8)."<br>"; // 34 echo intval(array())."<br>"; // 0 echo intval(array('foo', 'bar'))."<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)'42'; // 42 echo "<br>"; echo (int)'+42'; // 42 echo "<br>"; echo (int)'-42'; // -42 echo "<br>"; echo (int)042; // 34 echo "<br>"; echo (int)'042'; // 42 echo "<br>"; echo (int)1e10; // 1410065408 echo "<br>"; echo (int)'1e10'; //2147483647 echo "<br>"; echo (int)0x1A; // 26 echo "<br>"; echo (int)42000000;// 42000000 echo "<br>"; echo (int)420000000000000000000; //-1609564160 echo "<br>"; echo (int)'420000000000000000000'; //2147483647 echo "<br>"; /*echo intval(42, 8)."<br>"; echo intval('42', 8)."<br>"; */ /*int的强制转换不是函数,所以无法实现*/ echo (int)array();// 0 echo "<br>"; echo (int)array('foo', 'bar');//1 echo "<br>"; echo (int)false; //0 echo "<br>"; echo (int)true; //1 echo "<br>"; ?>
3.小结:
int
的强制转换与intval()
函数在面对boolean
、int
、float
、array
时两者保持一致(不超出各种类型显示的最大值)。
intval()
如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。如果字符串第一个是‘-',则从第二个开始算起。如果参数是符点数,则返回他取整之后的值。
int
类型最大值为 2147483647
一般在类型转换时 如果超过这个最大值 就按最大值显示,(int)
则显示-1609564160
value
ist der Mengenwert, der in integer
🎜🎜 konvertiert werden soll 🎜 base
ist die für die Konvertierung verwendete Basis (Standard ist Dezimalzahl, wenn nicht ausgefüllt)🎜🎜int
🎜🎜 ul>🎜 PS: Sofern value
kein String ist, funktioniert base
nicht. 🎜🎜 Beispiel:🎜rrreee🎜2. (int) cast int
und der Funktion intval()
ist unterschiedlich, wenn er mit boolean
konfrontiert wird. int
, float
und array
sind konsistent (überschreiten Sie nicht den von jedem Typ angezeigten Maximalwert). 🎜🎜intval()
Wenn der Parameter eine Zeichenfolge ist, wird der ganzzahlige Wert zurückgegeben, der durch die Ziffernfolge vor dem ersten Zeichen in der Zeichenfolge dargestellt wird, das keine Ziffer ist. Wenn das erste Zeichen in der Zeichenfolge „-“ ist, beginnt die Zählung ab dem zweiten Zeichen. Wenn der Parameter eine gepunktete Zahl ist, wird der gerundete Wert zurückgegeben. 🎜🎜 Der Maximalwert des Typs int
ist 2147483647
Wenn dieser Maximalwert während der Typkonvertierung überschritten wird, wird im Allgemeinen der Maximalwert angezeigt, (int)code> zeigt -1609564160
an. 🎜🎜🎜Das obige ist der detaillierte Inhalt vonWie man in PHP zwischen intval() und (int) unterscheidet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!