Maison  >  Article  >  développement back-end  >  Conversion automatique du type de données d'apprentissage PHP

Conversion automatique du type de données d'apprentissage PHP

PHPz
PHPzoriginal
2023-03-20 15:34:012250parcourir

En développement, PHP, en tant que langage typé dynamiquement, a une très grande flexibilité pour les types de données variables, il n'est donc pas nécessaire de spécifier le type de données lors de l'écriture, mais son type est déterminé en fonction de l'affectation au moment de l'exécution. Cela offre aux programmeurs une grande commodité, mais cela peut parfois entraîner certains problèmes, tels qu'une conversion de type incorrecte. PHP fournit de nombreuses fonctions de conversion de type et certaines fonctions de jugement de type. Cet article présentera quelques méthodes et problèmes courants de conversion de type PHP.

1. Type fort et type faible

Les variables PHP ont deux types : le type fort et le type faible. Un typage fort signifie que le type d'une variable est relativement fixe et ne peut pas être modifié à volonté une fois défini. Par exemple, en Java, si vous définissez une variable entière, vous ne pouvez lui transmettre que des données entières. Tout autre type de données provoquera une erreur de compilation. Un typage faible signifie que le type de la variable n'est pas fixe et peut être modifié dynamiquement. Par exemple, en PHP, vous pouvez définir une variable de type chaîne et lui attribuer directement une variable entière au moment de l'exécution.

2. Conversion de type forcée

PHP fournit certaines fonctions pour implémenter la conversion de type forcée. Les règles de dénomination de ces fonctions sont toutes nommées sous la forme "(type qui doit être converti en) (variable qui doit être convertie). converti)" , comme (int)$var, $str, (float)$var, etc. Ci-dessous, nous présentons quelques fonctions de conversion de conversion couramment utilisées.

a (bool) ou (boolean)

(boolean)$var ou (bool)$var peut convertir une variable en type booléen. Parmi elles, pour une valeur non booléenne, elle sera convertie en valeur booléenne. Les règles de conversion sont les suivantes :

  • 0, 0.0, "", "0", "false" et "null" seront toutes. être converti en booléen false.
  • Les autres valeurs seront converties en booléen vrai.

b (int) ou (integer)

(integer)$var ou (int)$var peut convertir une variable en entier. Pour une valeur non entière, elle sera convertie en entier autant que possible. Les règles de conversion sont les suivantes :

  • Le nombre à virgule flottante sera forcé d'être converti en entier, et la partie entière sera tronquée. .
  • Les chaînes seront converties en entiers. Si la chaîne ne commence pas par un nombre, elle sera convertie en 0.
  • La valeur booléenne true sera convertie en 1 et false sera convertie en 0.
  • Les tableaux et les objets ne peuvent pas être convertis en entiers, ils seront convertis en 1.

c.(float) ou (double)

(double)$var ou (float)$var peut convertir une variable en type à virgule flottante. Pour une valeur non flottante, elle sera convertie autant que possible en type flottant. Les règles de conversion sont les suivantes :

  • S'il s'agit d'un entier, il sera converti directement en virgule flottante. taper.
  • S'il s'agit d'une chaîne, elle sera convertie en nombre à virgule flottante. Si la chaîne ne commence pas par un nombre, elle sera convertie en 0.
  • La valeur booléenne true sera convertie en 1,0 et false sera convertie en 0,0.
  • Les tableaux et les objets ne peuvent pas être convertis en nombres à virgule flottante, ils seront convertis en 1.0.

d.(string)

(string)$var peut convertir une variable en chaîne. Les règles de conversion sont les suivantes :

  • S'il s'agit d'un type numérique, elle est convertie directement en chaîne.
  • S'il s'agit d'un type booléen, la valeur booléenne true sera convertie en chaîne "1", et false sera convertie en chaîne vide "".
  • S'il s'agit d'un tableau, il sera converti en chaîne "Array".
  • S'il s'agit d'un objet, il sera converti en chaîne "Objet".
  • null sera converti en chaîne vide "".

e (array)

(array)$var peut convertir une variable en tableau $var doit être un objet ou une chaîne séparée par des virgules. Les règles de conversion sont les suivantes :

  • L'objet sera converti en un tableau contenant les propriétés et méthodes de l'objet.
  • La chaîne délimitée sera convertie en un tableau indexé numériquement, chaque élément est une valeur non nulle séparée par le délimiteur.

f.(object)

(object)$var peut convertir une variable en objet. $var doit être un tableau ou un objet. Si $var est un tableau, il sera converti en un objet standard vide (stdClass).

3. Conversion de type automatique

En tant que langage de type dynamique, PHP détermine et convertit automatiquement les types de variables. Jetons un coup d'œil à quelques règles de conversion automatique de type.

a.Ajout d'entiers et de types à virgule flottante

En PHP, lors de l'ajout d'entiers et de types à virgule flottante, les entiers seront automatiquement convertis en types à virgule flottante puis ajoutés.

b. Ajout de chaînes et de types numériques

En PHP, lors de l'ajout de chaînes et de types numériques, les chaînes seront converties en types numériques puis ajoutées.

c. Conversions de tableaux et d'objets

Lors de la conversion d'un tableau ou d'un objet en un autre type, ils sont convertis en un tableau standard vide ou un objet standard.

d. Ajout de types booléens et numériques aux chaînes

En PHP, lors de l'ajout de types booléens et numériques aux chaînes, ils seront convertis en types de chaîne puis ajoutés.

4. Détection de type

PHP fournit certaines fonctions de détection de type qui peuvent être utilisées pour déterminer le type d'une variable. Ci-dessous, nous présentons quelques fonctions de détection de type couramment utilisées.

a.is_bool()

is_bool($var) est utilisé pour déterminer si une variable est de type booléen. Si c'est le cas, elle renvoie vrai, sinon elle renvoie faux.

b. is_object()

is_object($var) est utilisé pour déterminer si une variable est un objet. Si tel est le cas, elle renvoie vrai, sinon elle renvoie faux.

c.is_array()

is_array($var) est utilisé pour déterminer si une variable est un tableau. Si c'est le cas, elle renvoie vrai, sinon elle renvoie faux.

d. is_string()

is_string($var) est utilisé pour déterminer si une variable est une chaîne. Si c'est le cas, elle renvoie vrai, sinon elle renvoie faux.

e.is_numeric()

is_numeric($var) est utilisé pour déterminer si une variable est numérique. Si c'est le cas, elle renvoie vrai, sinon elle renvoie faux.

5. Résumé

Cet article présente la conversion de type et la détection de type en PHP, y compris les règles de conversion de type forcée et de conversion de type automatique ainsi que certaines fonctions de détection de type. En développement, l'utilisation de la fonction de conversion de type et de la fonction de détection de type correctes peut efficacement éviter les problèmes causés par la conversion de type. Dans le même temps, lors de la conception d'un programme, vous devez également prêter attention aux contraintes des types de variables afin de réduire l'impact négatif des caractéristiques de type faibles sur le programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn