4.2 Les types
4 Référence
Manuel PHP
. Introduction . Booléens . Entiers . Les nombres à virgule flottante . Les chaînes de caractères . Les tableaux . Les objets . Ressources . La valeur NULL . Pseudo-types utilisés dans cette documentation ->Définition du type
|
4.2.11 Définition du type
PHP
ne nécessite pas de déclaration explicite
du type d'une variable. Le type d'une variable est
déterminé par le contexte d'utilisation.
Par exemple, si vous assignez une chaîne de caractères
à la variable
var
, var devient une
chaîne de caractère. Si vous assignez un nombre
entier à
var
, elle devient un entier.
Un exemple de convertisseur automatique de type est l'opérateur
'+'. Si un des opérandes est de type double, alors tous les
opérandes sont évalués comme des variables de
type double et le résultat est de type double. Sinon, tous
les opérandes sont évalués comme des variables
de type entier et le résultat sera du type entier. Il est
à noter que cela NE CHANGE PAS le type des opérandes.
Le seul changement est la manière dont les opérandes
sont évaluées.
Conversion automatique |
<?php $foo = "0"; // $foo est une chaîne de caractères (ASCII 48) $foo += 2; // $foo est maintenant du type entier (2) $foo = $foo + 1.3; // $foo est maintenant du type double (3.3) $foo = 5 + "10 Petits cochons"; // $foo est du type entier (15) $foo = 5 + "10 cochonnets"; // $foo est du type entier (15) ?>
|
Si les deux derniers exemples vous semblent obscurs ou si vous
voulez forcer une variable a être évaluée
avec un certain type, reportez-vous au paragraphe Conversion de
type ci-dessous. Si vous voulez changer le type d'une variable,
intéressez-vous à aux fonctions de
conversion de chaînes .
Si vous voulez forcer le type d'une variable, vous pouvez
vous reporter à la section
transtypage . Si
vous voulez changer le type d'une variable, utilisez
settype
.
Pour tester les exemples de cette section, il suffit d'en faire
un copier/coller, et d'insérer les lignes dans un script
PHP
.
Exploitation des exemples |
<?php echo "\$foo==$foo; le type est " . gettype( $foo ) . "<br>\n"; ?>
|
Note |
Le comportement de la conversion automatique est actuellement
indéfinie.
Conversion automatique indéfinie |
<?php $a = "1"; // $a est une chaîne $a[0] = "f"; // Mais que sont les index de chaîne? ?>
|
Etant donné que
PHP
supporte l'indexation de chaîne avec des
offsets identiques à celles des tableaux, l'exemple ci-dessus
conduit à un problème : est ce que
$a
est un tableau,
dont le premier élément est "
f
", ou bien est ce que
"f" est le premier élément de la chaîne de
caractères
$a
?
Les versions courantes de
PHP
interprète la seconde assignation
comme un index de chaîne, et donc
$a
devient
"
f
", et le
résultat de cette conversion automatique doit être considéré comme
indéfini.
PHP
4 a introduit la syntaxe avec les accolades pour
accéder aux caractères d'une chaîne. Utilisez plutôt le code
ci-dessous :
Conversion automatique indéfinie(2) |
<?php $a = "abc"; // $a est une chaîne $a{1} = "f"; // $a vaut maintenant "afc" ?>
|
Voyez la section Accès aux caractères d'une chaîne
pour plus de détails.
|
Sommaire :
|