Maison  >  Article  >  développement back-end  >  Quels types de casts existe-t-il en php ?

Quels types de casts existe-t-il en php ?

coldplay.xixi
coldplay.xixioriginal
2020-07-22 10:29:312974parcourir

Les types de conversion forcée PHP incluent : 1. Convertir en type entier ; 2. Convertir en type booléen ; 3. Convertir en type à virgule flottante ; 4. Convertir en chaîne ; objet.

Quels types de casts existe-t-il en php ?

Les types de coercition PHP sont :

La coercition de type en PHP est très similaire à celle en C: dans La variable à convertir est précédé du type de cible entre parenthèses.

Les conversions autorisées sont :

  • (int),(integer) - Convertir en entier

  • (bool ),( boolean) - Convertir en type booléen

  • (float), (double), (real) - Convertir en type à virgule flottante

  • (string )                                                                                                                                                   -Convertir en objet

  • Notez que les espaces et les tabulations sont autorisés entre crochets

  • Vous pouvez également utiliser settype (var mixte, type de chaîne) pour forcer la conversion.
  • 1. Forcer la conversion en booléen (bool)|(boolean)

Pour convertir explicitement une valeur en booléen, utilisez (bool) ou (boolean) pour forcer la conversion. Mais dans de nombreux cas, la conversion n'est pas nécessaire car lorsqu'un opérateur, une fonction ou un contrôle de flux nécessite un paramètre booléen, la valeur est automatiquement convertie.

Lorsqu'elles sont converties en booléen, les valeurs suivantes sont considérées comme FAUX :

Booléen FAUXValeur entière 0 (zéro)

Valeur à virgule flottante 0,0 (zéro)

Chaîne vide et chaîne "0"

Tableau sans variable membre

Objet sans cellules (PHP 4 uniquement)

Type spécial NULL (y compris les variables non encore définies)

Toutes les autres valeurs sont considérées comme VRAIES (y compris les ressources).

<?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. Forcer la conversion en entier (int)|(integer)

Pour convertir explicitement une valeur en entier, utilisez (int) ou (integer) Cast. Cependant, dans la plupart des cas, la conversion n'est pas nécessaire car lorsqu'un opérateur, une fonction ou un contrôle de flux nécessite un paramètre entier, la valeur est automatiquement convertie. Vous pouvez également utiliser la fonction intval() pour convertir une valeur en type entier.

a. Convertir à partir de bool

b. Convertir à partir d'un nombre à virgule flottante Arrondi, hors plage, le résultat est incertainc.

d. Convertissez d'abord d'autres types en valeur booléenne, puis convertissez

Ne forcez jamais une fraction inconnue en un entier, car cela peut parfois conduire à des résultats inattendus.

<?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. Forcer la conversion en type à virgule flottante (int)|(double)|(real)|doubleval()|floatval()|intval()

Précision : 0,12345678901234 // Le double et le réel sont identiques

La chaîne de paramètres manquante des données est convertie en valeur numérique

Conversion forcée. to string (string) |strval()

peut convertir une valeur en chaîne à l'aide de la balise (string) ou de la fonction

. Lorsqu'une expression nécessite une chaîne, la conversion de la chaîne se fait automatiquement dans le cadre de l'expression. Par exemple lors de l'utilisation des fonctions

ou

, ou lors de la comparaison d'une valeur de variable à une chaîne.

La valeur booléenne VRAI sera convertie en chaîne "1", tandis que la valeur FAUX sera représentée par "" (c'est-à-dire la chaîne vide). Cela vous permet de comparer à volonté les booléens et les chaînes.

strval()echo()print()Lorsque des valeurs entières ou à virgule flottante sont converties en chaînes, la chaîne est constituée de caractères numériques représentant ces valeurs (les nombres à virgule flottante contiennent également une partie exposant).

  • Le tableau sera converti en chaîne "Array", de sorte que le contenu du tableau ne peut pas être affiché via les fonctions echo() ou print(). Voir ci-dessous pour plus de conseils.

  • L'objet sera converti en chaîne "Object". Si vous devez imprimer les variables membres de l'objet à des fins de débogage, veuillez lire ci-dessous. Si vous souhaitez obtenir le nom de la classe à laquelle l'objet est attaché, utilisez la fonction get_class(). Depuis PHP 5, vous pouvez utiliser la méthode __toString() le cas échéant.

  • Les types de ressources sont toujours convertis en chaînes au format "Resource id #1", où 1 est l'identifiant unique attribué à la ressource par PHP au moment de l'exécution. Si vous souhaitez obtenir le type d'une ressource, utilisez la fonction get_resource_type().

  • NULL sera converti en une chaîne vide.

  • Comme indiqué ci-dessus, l'impression d'un tableau, d'un objet ou d'une ressource ne fournit aucune information utile sur les valeurs elles-mêmes. Voir les fonctions

    et
  • , ce sont de meilleures façons d'imprimer les valeurs pour le débogage.
  • Peut convertir les valeurs PHP en chaînes pour les stocker de manière permanente. Cette méthode est appelée sérialisation et peut être réalisée à l'aide de la fonction serialize(). Si vous avez configuré la prise en charge de WDDX lors de l'installation de PHP, vous pouvez également sérialiser les valeurs PHP dans des structures XML.

    5. Convertir en tableau

    Pour tout type : entier, virgule flottante, chaîne, booléen et ressource, si une valeur est convertie Pour un tableau, vous obtiendrez un tableau avec un seul élément (son indice est 0), qui est la valeur de ce scalaire.

    Si un objet est converti en tableau, les éléments du tableau résultant sont des attributs (variables membres) de l'objet, et leurs noms de clés sont des noms de variables membres.

    Si vous convertissez une valeur NULL en tableau, vous obtiendrez un tableau vide.

    6. Convertir en objet (objet)

    Si vous convertissez un objet en objet, il ne changera en aucun cas.

    Si une valeur de tout autre type est convertie en objet, une instance de la classe intégrée stdClass sera créée.

    Si la valeur est NULL, la nouvelle instance est vide. La conversion d'un tableau en objet fera que les clés deviendront des noms de propriété avec les valeurs correspondantes.

    Pour toute autre valeur, la variable membre nommée scalaire contiendra la valeur

    Convertir en ressource (ne peut pas être convertie)

    En raison de. Les variables de type de ressource contiennent des handles spéciaux pour les fichiers ouverts, les connexions à la base de données, les zones de canevas graphique, etc., de sorte que d'autres types de valeurs ne peuvent pas être convertis en ressources.

    Remarque

    • Les formulaires HTML ne transmettent pas d'entiers, de nombres à virgule flottante ou de valeurs booléennes, ils transmettent uniquement des chaînes. Pour vérifier si une chaîne est un nombre, vous pouvez utiliser la fonction is_numeric().

    • Lorsque la variable $x n'est pas définie, une utilisation telle que if ($x) entraînera une erreur de niveau E_NOTICE. Par conséquent, vous pouvez envisager d'utiliser vide

    Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise

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