Discrimination de la conversion du type de données PHP

怪我咯
Libérer: 2023-03-10 20:06:01
original
1330 Les gens l'ont consulté

PHP ne nécessite pas (ni ne prend en charge) de définitions de type explicites dans les définitions de variables ; le type de variable est déterminé en fonction du contexte dans lequel la variable est utilisée. En d'autres termes, si vous attribuez une valeur de chaîne à la variable $var, $var devient une chaîne. Si vous attribuez un entier à $var, il devient un entier.

Un exemple de conversion automatique de type de PHP est l'opérateur d'addition "+". Si un opérande est float , alors tous les opérandes sont traités comme float et le résultat est également float . Sinon, les opérandes sont interprétés comme des entiers et le résultat est également un entier. Notez que cela ne change pas les types des opérandes eux-mêmes ; seule la façon dont les opérandes sont évalués et le type de l'expression elle-même est modifié.

<?php
$foo  =  "0" ;   // $foo 是字符串 (ASCII 48)
$foo  +=  2 ;    // $foo 现在是一个整数 (2)
$foo  =  $foo  +  1.3 ;   // $foo 现在是一个浮点数 (3.3)
$foo  =  5  +  "10 Little Piggies" ;  // $foo 是整数 (15)
$foo  =  5  +  "10 Small Pigs" ;      // $foo 是整数 (15)
?>
Copier après la connexion

Si les deux exemples ci-dessus semblent bizarres, consultez Conversion de chaînes en nombres.

Si vous souhaitez forcer l'évaluation d'une variable comme un certain type, consultez la section Type Coercition. Si vous souhaitez modifier le type d'une variable, consultez settype().

Si vous souhaitez tester l'un des exemples de cette section, vous pouvez utiliser la fonction var_dump().

Remarque :

Le comportement de la conversion automatique en tableau n'est actuellement pas défini.

De plus, puisque PHP prend en charge l'accès aux indices de chaîne en utilisant la même syntaxe que les indices de tableau, l'exemple suivant est valide dans toutes les versions de PHP :

<?php
$a     =  &#39;car&#39; ;  // $a is a string
$a [ 0 ] =  &#39;b&#39; ;    // $a is still a string
echo  $a ;        // bar
?>
Copier après la connexion

Type cast

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

<?php
$foo  =  10 ;    // $foo is an integer
$bar  = (boolean)  $foo ;    // $bar is a boolean
?>
Copier après la connexion

Les conversions autorisées sont :

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

  • ( bool), (boolean) - Convertir en Boolean boolean

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

  • (string) - Convertir en chaîne string

  • (array) - Convertir en tableau tableau

  • ( object) - Convertir en objet objet

  • (non défini) - Convertir en NULL (PHP 5)

(binaire) Convertir et conversion de préfixe b le support était nouveau pour PHP 5.2.1.

Notez que les espaces et les tabulations sont autorisés entre parenthèses, les deux exemples suivants ont donc la même fonctionnalité :

<?php
$foo  = (int)  $bar ;
$foo  = ( int )  $bar ;
?>
Copier après la connexion

Convertir les chaînes littérales et les variables en chaînes binaires :

<?php
$binary  = (binary) $string ;
$binary  =  b"binary string" ;
?>
Copier après la connexion

Remarque :

Au lieu de convertir la variable en chaîne, vous pouvez la placer entre guillemets :

<?php
$foo  =  10 ;             // $foo 是一个整数
$str  =  " $foo " ;         // $str 是一个字符串
$fst  = (string)  $foo ;  // $fst 也是一个字符串

// 输出 "they are the same"
if ( $fst  ===  $str ) {
    echo  "they are the same" ;
}
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!