Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Arten von Casts gibt es in PHP?

Welche Arten von Casts gibt es in PHP?

coldplay.xixi
coldplay.xixiOriginal
2020-07-22 10:29:313025Durchsuche

Zu den erzwungenen Konvertierungstypen von PHP gehören: 1. In einen Ganzzahltyp konvertieren; 3. In einen Gleitkommatyp konvertieren; 6. In einen Array konvertieren; Objekt.

Welche Arten von Casts gibt es in PHP?

PHP-Zwangstypen sind:

Typzwang in PHP ist dem in C: in der Variablen sehr ähnlich Der zu konvertierenden Angabe wird der in Klammern eingeschlossene Zieltyp vorangestellt.

Die zulässigen Umwandlungen sind:

  • (int),(integer) – In Ganzzahl konvertieren

  • (bool ), (boolean) – Konvertieren in einen booleschen Typ

  • (float), (double), (real) – Konvertieren in einen Gleitkommatyp

  • ( string)                                                                                                                                         -In Objekt konvertieren

  • Beachten Sie, dass Leerzeichen und Tabulatoren innerhalb der Klammern zulässig sind

  • Sie können auch settype (gemischte Variable, Zeichenfolgentyp) verwenden, um die Konvertierung zu erzwingen.
  • 1. Konvertierung in einen Booleschen Wert erzwingen (bool)|(boolean)

Um einen Wert explizit in einen Booleschen Wert umzuwandeln, verwenden Sie (bool) oder (boolean), um die Konvertierung zu erzwingen . In vielen Fällen ist eine Umwandlung jedoch nicht erforderlich, da der Wert automatisch konvertiert wird, wenn ein Operator, eine Funktion oder eine Flusssteuerung einen booleschen Parameter erfordert.

Bei der Konvertierung in boolesche Werte gelten die folgenden Werte als FALSCH:

Boolescher Wert FALSCHGanzzahliger Wert 0 (Null)

Gleitkommawert 0,0 (Null)

Leerzeichenfolge und Zeichenfolge „0“

Array ohne Mitgliedsvariablen

Objekt ohne Zellen (nur PHP 4)

Spezieller Typ NULL (einschließlich noch nicht gesetzter Variablen)

Alle anderen Werte gelten als TRUE (einschließlich aller Ressourcen).

<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>

2. Konvertierung in Ganzzahl (int)|(integer) erzwingen

Um einen Wert explizit in eine Ganzzahl umzuwandeln, verwenden Sie (int) oder (integer) Cast. In den meisten Fällen ist eine Umwandlung jedoch nicht erforderlich, da der Wert automatisch konvertiert wird, wenn ein Operator, eine Funktion oder eine Flusssteuerung einen ganzzahligen Parameter erfordert. Sie können auch die Funktion intval() verwenden, um einen Wert in einen Ganzzahltyp umzuwandeln.

a. Konvertieren von bool

b. Konvertieren von Gleitkommazahl, Rundung, außerhalb des Bereichs, das Ergebnis ist unsicherc. Konvertieren von String in Numerisch

d. Konvertieren Sie zuerst von anderen Typen in einen Bool-Wert und dann

Erzwingen Sie niemals einen unbekannten Bruch in eine ganze Zahl, da dies manchmal zu unerwarteten Ergebnissen führen kann.

<?php
echo (int) ( (0.1+0.7) * 10 ); // 显示 7
?>
$str = "123.456abc7"; // (int)123
echo (int)$str;
$str = "abc123.456";   // (int)0
$str = true;           // (int)1
$str = false;          // (int)0

3. Konvertierung in Gleitkommatyp (int)|(double)|(real)|doubleval()|floatval()|intval()

erzwingen Genauigkeit: 0,12345678901234 // Sowohl Double als auch Real sind gleich

Die fehlende Parameterzeichenfolge der Daten wird in einen numerischen Wert umgewandelt

4 to string (string) |strval()

kann einen Wert mithilfe des (string)-Tags oder der Funktion

in einen String konvertieren. Wenn ein Ausdruck eine Zeichenfolge erfordert, erfolgt die Konvertierung der Zeichenfolge automatisch im Rahmen des Ausdrucks. Zum Beispiel bei der Verwendung der Funktionen

oder

oder beim Vergleich eines Variablenwerts mit einer Zeichenfolge.

Der boolesche Wert TRUE wird in die Zeichenfolge „1“ umgewandelt, während der Wert FALSE als „“ (d. h. die leere Zeichenfolge) dargestellt wird. Auf diese Weise können Sie nach Belieben zwischen Booleschen Werten und Zeichenfolgen vergleichen.

strval()echo()print()Wenn Ganzzahl- oder Gleitkommawerte in Zeichenfolgen umgewandelt werden, besteht die Zeichenfolge aus numerischen Zeichen, die diese Werte darstellen (Gleitkommazahlen enthalten auch einen Exponententeil).

  • Das Array wird in die Zeichenfolge „Array“ konvertiert, sodass der Inhalt des Arrays nicht über die Funktionen echo() oder print() ausgegeben werden kann. Weitere Tipps finden Sie weiter unten.

  • Das Objekt wird in die Zeichenfolge „Objekt“ konvertiert. Wenn Sie die Mitgliedsvariablen des Objekts zu Debugzwecken ausdrucken müssen, lesen Sie bitte unten. Wenn Sie den Namen der Klasse erhalten möchten, an die das Objekt angehängt ist, verwenden Sie die Funktion get_class(). Seit PHP 5 können Sie bei Bedarf die Methode __toString() verwenden.

  • Ressourcentypen werden immer in Zeichenfolgen im Format „Ressourcen-ID #1“ konvertiert, wobei 1 die eindeutige Kennung ist, die PHP zur Laufzeit der Ressource zuweist. Wenn Sie den Typ einer Ressource ermitteln möchten, verwenden Sie die Funktion get_resource_type().

  • NULL wird in eine leere Zeichenfolge umgewandelt.

  • Wie oben gezeigt, liefert das Ausdrucken eines Arrays, Objekts oder einer Ressource keine nützlichen Informationen über die Werte selbst. Siehe Funktionen

    und
  • . Dies sind bessere Möglichkeiten, Werte zum Debuggen auszudrucken.
  • Kann PHP-Werte in Strings umwandeln, um sie dauerhaft zu speichern. Diese Methode wird Serialisierung genannt und kann mit der Funktion serialize() durchgeführt werden. Wenn Sie bei der Installation von PHP die WDDX-Unterstützung eingerichtet haben, können Sie PHP-Werte auch in XML-Strukturen serialisieren.

    5. In Array umwandeln

    Für jeden Typ: Ganzzahl, Gleitkomma, Zeichenfolge, Boolescher Wert und Ressource. Wenn ein Wert in ein Array konvertiert wird, erhalten Sie ein Array mit nur einem Element (sein Index ist 0), das den Wert dieses Skalars darstellt.

    Wenn ein Objekt in ein Array konvertiert wird, sind die Elemente des resultierenden Arrays Attribute (Mitgliedsvariablen) des Objekts und ihre Schlüsselnamen sind Mitgliedsvariablennamen.

    Wenn Sie einen NULL-Wert in ein Array konvertieren, erhalten Sie ein leeres Array.

    6. In Objekt (Objekt) konvertieren

    Wenn Sie ein Objekt in ein Objekt umwandeln, ändert es sich in keiner Weise.

    Wenn ein Wert eines anderen Typs in ein Objekt konvertiert wird, wird eine Instanz der integrierten Klasse stdClass erstellt.

    Wenn der Wert NULL ist, ist die neue Instanz leer. Durch die Konvertierung eines Arrays in ein Objekt werden die Schlüssel zu Eigenschaftsnamen mit entsprechenden Werten.

    Für jeden anderen Wert enthält die Mitgliedsvariable namens „scalar“ den Wert

    7 In Ressource konvertieren (kann nicht konvertiert werden)

    Aufgrund Ressourcentypvariablen enthalten spezielle Handles für geöffnete Dateien, Datenbankverbindungen, Grafik-Canvas-Bereiche usw., sodass andere Wertetypen nicht in Ressourcen umgewandelt werden können.

    Hinweis

    • HTML-Formulare übergeben keine Ganzzahlen, Gleitkommazahlen oder booleschen Werte, sondern nur Zeichenfolgen. Um zu überprüfen, ob eine Zeichenfolge eine Zahl ist, können Sie die Funktion is_numeric() verwenden.

    • Wenn die Variable $x nicht definiert ist, führt die Verwendung wie if ($x) zu einem Fehler der Ebene E_NOTICE. Daher können Sie die Verwendung leer in Betracht ziehen

    Verwandte Lernempfehlungen: PHP-Programmierung vom Einstieg bis zur Beherrschung

Das obige ist der detaillierte Inhalt vonWelche Arten von Casts gibt es 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