Im Verlauf der PHP-Entwicklung werden wir auf jeden Fall feststellen, dass der empfangene Datentyp sich von dem gewünschten Datentyp unterscheidet. In diesem Fall können wir verwenden PHP hat eine Typkonvertierung. Heute werden wir über die Typkonvertierung in PHP sprechen.
In Ganzzahlen und Gleitkommazahlen konvertieren
Zu den Typen, die in Ganzzahlen konvertiert werden können, gehören nur Gleitkommazahlen, boolesche Werte, Zeichenfolgen und Ressourcen. Arrays und Objekte können nicht in den numerischen Typ konvertiert werden.
Bei der Konvertierung in Gleitkommazahlen werden andere Werte zunächst in Ganzzahlen konvertiert (unter der Voraussetzung, dass sie konvertiert werden können), außer dass es eigene Regeln für die Konvertierung von Zeichenfolgen in Gleitkommazahlen gibt in ganze Zahlen) und dann in eine Gleitkommazahl konvertiert.
Bei der Konvertierung von einer Gleitkommazahl in eine Ganzzahl wird diese abgerundet (der Dezimalteil wird verworfen). Wenn die Gleitkommazahl außerhalb des Ganzzahlbereichs liegt, ist das Ergebnis undefiniert, da die Genauigkeit nicht ausreicht, um ein exaktes Ganzzahlergebnis zu liefern. In diesem Fall gibt es keine Warnung, nicht einmal eine Benachrichtigung!
Ab PHP 7.0.0 sind NaN und Infinity bei der Konvertierung in eine Ganzzahl nicht mehr undefiniert oder plattformabhängig, sondern werden zu Null.
Beim Konvertieren einer Zeichenfolge (unterstützt nur Dezimalzahlen) in eine Ganzzahl wird vom ersten Zeichen bis zum Ende der Zeichenfolge nach zulässigen Ganzzahlzeichen gesucht oder auf ein nicht ganzzahliges Zeichen gestoßen und die gefundenen Zeichen konvertiert in ganze Zahlen umgewandelt werden. Wenn keine zulässigen Zeichen vorhanden sind, ist das Ergebnis 0.
Beim Konvertieren einer Zeichenfolge in eine Gleitkommazahl wird nach zulässigen Gleitkommazeichen vom ersten Zeichen bis zum Ende der Zeichenfolge gesucht oder auf ein Nicht-Gleitkommazeichen gestoßen und die gefundenen Zeichen in Gleitkommazahlen umgewandelt Wenn es keine zulässige Gleitkommazahl gibt, ist das Ergebnis 0.
Wenn die Zeichenfolge kein „.“, „e“ oder „E“ enthält und ihr numerischer Wert im Bereich von Ganzzahlen liegt (definiert durch PHP_INT_MAX), wird die Zeichenfolge als Ganzzahlwert behandelt. In allen anderen Fällen wird der Wert als Float behandelt.
Der Anfang der Zeichenfolge bestimmt ihren Wert. Wenn die Zeichenfolge mit einem zulässigen numerischen Wert beginnt, wird dieser numerische Wert verwendet. Andernfalls ist sein Wert 0 (Null). Zulässige Werte bestehen aus einem optionalen Vorzeichen, gefolgt von einer oder mehreren Ziffern (ggf. mit Dezimalpunkt) und einem optionalen Exponententeil. Der Exponententeil besteht aus „e“ oder „E“, gefolgt von einer oder mehreren Ziffern.
echo 0+"0xff","\n"; // 0 echo 0+"2.33","\n"; // 2.33 echo 0+"033","\n"; // 33 echo 0+"2e3","\n"; // 2000
null -> 0 true -> 1 false -> 0
Beim Konvertieren einer Ressource in eine Ganzzahl ist das Ergebnis die eindeutige Ressourcennummer, die der Ressource von der PHP-Laufzeit zugewiesen wird.
In String konvertieren
true -> "1" false -> "" null -> ""
Ganzzahl oder Gleitkommazahl in String konvertieren, den Wert direkt in einen String darstellen (dezimal, Dezimal). Punktform)
Wenn das Array in eine Zeichenfolge konvertiert wird, ist das Ergebnis „Array“
Wenn das Objekt in eine Zeichenfolge konvertiert wird, ist das Ergebnis „Objekt“
Ressourcenkonvertierungszeichenfolge, eine Zeichenfolge wie „Ressourcen-ID#1“
wird in einen booleschen Wert
<🎜 konvertiert >
Wenn andere Werte in boolesche Werte konvertiert werden, werden nur die folgenden Werte in „falsch“ konvertiert und alle anderen werden in „wahr“ konvertiert: Ganzzahl 0Gleitkommazahl 0,0String „0“String „“Leeres Array (keine Elemente)Leeres Objekt (keine Mitglieder) NULL (einschließlich noch nicht festgelegter Variablen) SimpleXML-Objekt, generiert aus leeren Tags
in Array konvertiert
Wenn Ganzzahlen, Gleitkommazahlen, boolesche Werte und Zeichenfolgen in Arrays umgewandelt werden, wird ein neues Array erhalten. Das Array hat nur ein Element, also den Wert des Das Element ist die entsprechende Ganzzahl, Gleitkommazahl, der boolesche Wert oder die entsprechende Zeichenfolge. Beim Konvertieren von Null in ein Array ist das Ergebnis ein leeres Array:
echo var_dump((array)null); //array(0) { }
Konvertierung anzeigen
1 . Sie können vor der Variablen einen Umwandlungsoperator hinzufügen:(int)(integer) (float)(double)(real) (bool)(boolean) (string) (array) (object)
$var = true; settype($var, "integer"); var_dump($var); // int(1)
$var = "0xff"; $num = intval($var, 16); var_dump($var); // string(4) "0xff" var_dump($num); // int(255)
Die Parameter der Funktion können nur Skalartypen sein, wie z. B. Ganzzahlen, Gleitkommazahlen, boolesche Werte und Zeichenfolgen. Kann nicht mit Arrays oder Objekten verwendet werden.
Die Parameter der Funktion strval() können nur Skalartypen sein, z. B. Ganzzahlen, Gleitkommazahlen, boolesche Werte und Zeichenfolgen. Kann nicht mit Arrays oder Objekten verwendet werden.
Unter welchen Umständen wird keine implizite Konvertierung durchgeführt
Beide Operanden des arithmetischen Operators werden konvertiert ein numerischer Typ.
Beide Operanden des String-Verkettungsoperators werden in den String-Typ konvertiert.
In einem Ausdruck, der eine Zeichenfolge erfordert, wird diese automatisch in eine Zeichenfolge umgewandelt. Diese Konvertierung erfolgt beispielsweise bei der Verwendung der Funktionen echo oder print oder beim Vergleich einer Variablen mit einem String.
Das Obige ist der gesamte Inhalt der Typkonvertierung in PHP. Ich hoffe, dass er für alle hilfreich ist. Weitere Informationen finden Sie auf dieser Website.
Verwandte Empfehlungen:
Diskriminierung der PHP-Typkonvertierung
Eine Analyse von Interviewfragen und -antworten für die PHP-Typkonvertierung
Das obige ist der detaillierte Inhalt vonTypkonvertierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!