Heim  >  Artikel  >  Backend-Entwicklung  >  Automatische Konvertierung von PHP-Lerndatentypen

Automatische Konvertierung von PHP-Lerndatentypen

PHPz
PHPzOriginal
2023-03-20 15:34:012243Durchsuche

In der Entwicklung verfügt PHP als dynamisch typisierte Sprache über eine sehr hohe Flexibilität für variable Datentypen, sodass beim Schreiben kein Datentyp angegeben werden muss, sondern sein Typ anhand der Zuweisung zur Laufzeit bestimmt wird. Dies bietet Programmierern großen Komfort, kann jedoch manchmal auch zu Problemen führen, z. B. zu einer falschen Typkonvertierung. PHP bietet viele Typkonvertierungsfunktionen und einige Typbeurteilungsfunktionen. In diesem Artikel werden einige häufige Methoden und Probleme der PHP-Typkonvertierung vorgestellt.

1. Starker Typ und schwacher Typ

PHP-Variablen haben zwei Typen: starken Typ und schwachen Typ. Starke Typisierung bedeutet, dass der Typ einer Variablen relativ fest ist und nach der Definition nicht mehr beliebig geändert werden kann. Wenn Sie beispielsweise in Java eine Ganzzahlvariable definieren, können Sie ihr nur Ganzzahldaten übergeben. Jeder andere Datentyp führt zu einem Kompilierungsfehler. Schwache Typisierung bedeutet, dass der Typ der Variablen nicht festgelegt ist und dynamisch geändert werden kann. Beispielsweise können Sie in PHP eine Variable vom Typ String definieren und ihr zur Laufzeit direkt eine Integer-Variable zuweisen.

2. Erzwungene Typkonvertierung

PHP bietet einige Funktionen zum Implementieren der erzwungenen Typkonvertierung. Die Benennungsregeln dieser Funktionen werden alle in der Form „(Typ, in den konvertiert werden muss)“ (Variable, in die konvertiert werden muss) benannt konvertiert)“, wie zum Beispiel (int)$var, $str, (float)$var usw. Lassen Sie uns einige häufig verwendete Cast-Konvertierungsfunktionen vorstellen.

a. (bool) oder (boolean)

(boolean)$var oder (bool)$var kann eine Variable in einen booleschen Typ konvertieren. Unter anderem wird ein nicht-boolescher Wert in einen booleschen Wert umgewandelt:

  • 0, 0,0, „“, „0“, „false“ und „null“. in Boolean false umgewandelt werden.
  • Andere Werte werden in den booleschen Wert true umgewandelt.

b (int) oder (integer)

(integer)$var oder (int)$var kann eine Variable in eine Ganzzahl umwandeln. Für einen nicht ganzzahligen Wert wird er so weit wie möglich in eine ganze Zahl konvertiert. Die Konvertierungsregeln lauten wie folgt:

  • Die Konvertierung der Gleitkommazahl wird in eine ganze Zahl erzwungen, und der ganzzahlige Teil wird abgeschnitten .
  • Strings werden in Ganzzahlen umgewandelt. Wenn die Zeichenfolge nicht mit einer Zahl beginnt, wird sie in 0 umgewandelt.
  • Der boolesche Wert true wird in 1 konvertiert und false wird in 0 konvertiert.
  • Arrays und Objekte können nicht in Ganzzahlen konvertiert werden, sie werden in 1 konvertiert.

c (float) oder (double)

(double)$var oder (float)$var kann eine Variable in einen Gleitkommatyp konvertieren. Für einen Nicht-Gleitkommawert wird er so weit wie möglich in einen Gleitkommatyp konvertiert. Die Konvertierungsregeln lauten wie folgt:

  • Wenn es sich um eine Ganzzahl handelt, wird er direkt in einen Gleitkommawert konvertiert Typ.
  • Wenn es sich um eine Zeichenfolge handelt, wird sie in eine Gleitkommazahl umgewandelt. Wenn die Zeichenfolge nicht mit einer Zahl beginnt, wird sie in 0 umgewandelt.
  • Der boolesche Wert true wird in 1,0 konvertiert und false wird in 0,0 konvertiert.
  • Arrays und Objekte können nicht in Gleitkommazahlen konvertiert werden, sie werden in 1.0 konvertiert.

d (string)

(string)$var kann eine Variable in einen String konvertieren. Die Konvertierungsregeln lauten wie folgt:

  • Wenn es sich um einen numerischen Typ handelt, wird er direkt in einen String konvertiert.
  • Wenn es sich um einen booleschen Typ handelt, wird der boolesche Wert „true“ in die Zeichenfolge „1“ und der Wert „false“ in die leere Zeichenfolge „“ umgewandelt.
  • Wenn es sich um ein Array handelt, wird es in die Zeichenfolge „Array“ konvertiert.
  • Wenn es sich um ein Objekt handelt, wird es in die Zeichenfolge „Objekt“ umgewandelt.
  • null wird in die leere Zeichenfolge „“ umgewandelt.

e (Array)

(Array)$var kann eine Variable in ein Array konvertieren. $var muss ein Objekt oder eine durch Kommas getrennte Zeichenfolge sein. Die Konvertierungsregeln lauten wie folgt:

  • Das Objekt wird in ein Array konvertiert, das die Eigenschaften und Methoden des Objekts enthält.
  • Die durch Trennzeichen getrennte Zeichenfolge wird in ein numerisch indiziertes Array umgewandelt. Jedes Element ist ein durch das Trennzeichen getrennter Wert ungleich Null.

f (Objekt)

(Objekt)$var kann eine Variable in ein Objekt umwandeln. $var muss ein Array oder ein Objekt sein. Wenn $var ein Array ist, wird es in ein leeres Standardobjekt (stdClass) konvertiert.

3. Automatische Typkonvertierung

Als dynamische Typsprache ermittelt und konvertiert PHP automatisch Variablentypen. Werfen wir einen Blick auf einige Regeln für die automatische Typkonvertierung.

a. Hinzufügen von Ganzzahlen und Gleitkommatypen

In PHP werden beim Hinzufügen von Ganzzahlen und Gleitkommatypen die Ganzzahlen automatisch in Gleitkommatypen konvertiert und dann hinzugefügt.

b. Hinzufügen von Zeichenfolgen und numerischen Typen

In PHP werden beim Hinzufügen von Zeichenfolgen und numerischen Typen die Zeichenfolgen in numerische Typen umgewandelt und dann hinzugefügt.

c. Array- und Objektkonvertierungen

Beim Konvertieren eines Arrays oder Objekts in einen anderen Typ werden diese in ein leeres Standardarray oder Standardobjekt konvertiert.

d. Hinzufügen von booleschen und numerischen Typen zu Strings

Wenn Sie in PHP boolesche und numerische Typen zu Strings hinzufügen, werden diese in String-Typen konvertiert und dann hinzugefügt.

4. Typerkennung

PHP bietet einige Typerkennungsfunktionen, mit denen der Typ einer Variablen bestimmt werden kann. Im Folgenden stellen wir einige häufig verwendete Typerkennungsfunktionen vor.

a. is_bool()

is_bool($var) wird verwendet, um zu bestimmen, ob eine Variable vom booleschen Typ ist. Wenn ja, gibt sie true zurück, andernfalls gibt sie false zurück.

b. is_object()

is_object($var) wird verwendet, um zu bestimmen, ob eine Variable ein Objekt ist. Wenn ja, gibt sie true zurück, andernfalls gibt sie false zurück.

c. is_array()

is_array($var) wird verwendet, um zu bestimmen, ob eine Variable ein Array ist. Wenn ja, gibt es true zurück, andernfalls gibt es false zurück.

d. is_string()

is_string($var) wird verwendet, um zu bestimmen, ob eine Variable ein String ist. Wenn ja, gibt sie true zurück, andernfalls gibt sie false zurück.

e. is_numeric()

is_numeric($var) wird verwendet, um zu bestimmen, ob eine Variable numerisch ist. Wenn ja, gibt sie true zurück, andernfalls gibt sie false zurück.

5. Zusammenfassung

Dieser Artikel stellt die Typkonvertierung und Typerkennung in PHP vor, einschließlich Regeln für die erzwungene Typkonvertierung und die automatische Typkonvertierung sowie einige Typerkennungsfunktionen. In der Entwicklung können durch die Verwendung der richtigen Typkonvertierungsfunktion und Typerkennungsfunktion Probleme durch Typkonvertierung wirksam vermieden werden. Gleichzeitig sollten Sie beim Entwerfen eines Programms auch auf die Einschränkungen des Variablentyps achten, um die negativen Auswirkungen schwacher Typmerkmale auf das Programm zu verringern.

Das obige ist der detaillierte Inhalt vonAutomatische Konvertierung von PHP-Lerndatentypen. 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