Heim  >  Artikel  >  php教程  >  Die Verwendung und der Unterschied zwischen der Konvertierung intval() und (int) unter PHP

Die Verwendung und der Unterschied zwischen der Konvertierung intval() und (int) unter PHP

黄舟
黄舟Original
2016-12-13 13:03:021315Durchsuche

<?php 
echo "<br/>数值强制转换:"; 
$string="2a"; 
$string1=intval($string); 
echo &#39;$string1的值:&#39;.$string1.&#39;$string2的值:&#39;;//单引号不会输出变量,将原样输出 
$string2=(int)($string); 
echo $string2 
?>

Kann nicht im Handbuch gefunden werden.
Das steht auch im Handbuch: Zitat:
int intval (mixed $var [, int $base ] )
Gibt den ganzzahligen Wert der Variablen var unter Verwendung einer bestimmten Basiskonvertierung zurück (Standard ist Dezimalzahl). Wenn es nur diesen Unterschied gibt, verwende ich gerne (int), um mit Dezimalstellen umzugehen. Ist das eine gute Wahl?
Es gibt keinen Unterschied, im Allgemeinen wird (int) verwendet, und es gibt Float, String, Array usw.

intval(), wenn der Parameter ein String ist, der erste im String Ist keine Zahl, wird zurückgegeben. Das Zeichen vor der numerischen Zeichenfolge stellt den ganzzahligen Wert dar. Wenn das erste Zeichen in der Zeichenfolge „-“ ist, beginnt die Zählung ab dem zweiten Zeichen.

Wenn der Parameter eine Punktzahl ist, wird der gerundete Wert zurückgegeben.

Natürlich liegt der von intval() zurückgegebene Wert innerhalb des Bereichs, der durch einen 4-Byte-Wert dargestellt werden kann (-2147483648~2147483647). Werte, die diesen Bereich überschreiten, werden durch Grenzwerte ersetzt.

Beispiel: intval("A")=0; intval(12.3223)=12; intval("1123Asdfka3243")=1123;
int();
Beispiel:
$a=0.13;
$b=(int)$a;

$a=0.99;
$b=(int)$a; //$b=0;

$a=1.01;
$b=(int)$a;

$a=1.99;
$b=(int)$a; //$b=1;

PHP-String konvertiert in int

Manchmal: Was Wichtig ist, dass es einen Wert für die Variable im int-Format gibt. Wenn Ihr Besucher beispielsweise das Formular mit dem Altersfeld ausfüllt, sollte dies ein int sein. Allerdings in $ _POST-Array, Sie erhalten es als String.
Das Konvertieren von PHP-Strings in Int ist einfach. Wir müssen Ihren Variablentyp vor dem Casting verwenden. Sie müssen also (INT) verwenden. Hier ist ein Beispiel dafür:

<?php 
$str = "10"; 
$num = (int)$str;?>

Wenn Sie überprüfen möchten, ob der Code WIRKLICH funktioniert, können wir den ===-Operator verwenden. Dieser Operator prüft nicht nur den Wert, sondern auch den Typ. Ein solcher Code sollte wie folgt aussehen:

<?php 
$str = "10"; 
$num = (int)$str; 
if ($str === 10) echo "String"; 
if ($num === 10) echo "Integer"; 
?>

Es ist auch ein Problem offen. Was passiert, wenn unsere Zeichenfolge nicht nur eine Folge von Zahlen ist? Ich meine, es gibt noch andere Zeichen in der Zeichenfolge. In diesem Fall versucht der Konvertierungsvorgang das Beste und kann die Zeichenfolge konvertieren, wenn nur Leerzeichen vorhanden sind und nach dem numerischen Wert keine gültigen Zeichen vorhanden sind. So funktioniert es:

„10“ – > 10
„10“ – > 10
“10test“ – >

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn