Heim  >  Artikel  >  Backend-Entwicklung  >  Typkonvertierung in PHP

Typkonvertierung in PHP

韦小宝
韦小宝Original
2018-05-14 14:38:557372Durchsuche

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

Wenn andere Werte in boolesche Werte konvertiert werden, werden nur die folgenden Werte in „falsch“ konvertiert und alle anderen werden in „wahr“ konvertiert:

Ganzzahl 0

Gleitkommazahl 0,0

String „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)
Diese Methode ändert nicht den Datentyp der Variablen, sondern nur den Datentyp des Ausdrucks.

2. Verwenden Sie die Funktion settype(var, type)

$var = true;  
settype($var, "integer");  
var_dump($var);  // int(1)
Es ist ersichtlich, dass der Typ und der Wert der Variablen geändert wurden

3 intval()/floatval ()/boolval()/strval() Funktionsreihe

Beachten Sie, dass diese Funktionen den Wert der Variablen nicht ändern

$var = "0xff";  
$num = intval($var, 16);  
var_dump($var);  // string(4) "0xff"  
var_dump($num);  // int(255)
Wenn der erste Parameter von Da die Funktion intval() ein String ist, können Sie einen optionalen zweiten Parameter angeben, um die Basis des Werts im String anzugeben. Wenn dieser Parameter nicht angegeben wird, wird er standardmäßig dezimal verarbeitet. Wenn der Parameter als 0 angegeben ist, wird er automatisch in Form einer Zeichenfolge ermittelt (beginnend mit 0x ist hexadezimal ...)

intval() kann nicht verwendet werden. Objekttyp

Diese Funktion gibt einen konvertierten Ganzzahlwert zurück. Wenn die Konvertierung fehlschlägt, wird 0 zurückgegeben. Wenn der Parameter ein Array ist, gibt ein nicht leeres Array 1 zurück Array gibt 0 zurück.

boolval() Ruft den booleschen Wert des Parameters ab.

floatval()

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

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!

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
Vorheriger Artikel:PHP Heredoc und NowdocNächster Artikel:PHP Heredoc und Nowdoc