Les conversions de type :

Conversion automatique par PHP :

Les conversions automatiques de type de variables sont une conséquence du typage faible et dynamique offert par PHP. En effet, PHP convertit automatiquement les types afin qu’ils correspondent à ce qu’il attend. Par exemple, si on compare des données de types différents, PHP va convertir les données afin qu’elles aient le même type.

Ces conversions obéissent à certaines règles :

  • Texte Nombre : si 1er caractère est 1 chiffre, alors conversion directe

De texte vers nombre: si le premier caractère d’une chaîne est un nombre, la chaîne est convertie directement (le point, l’exposant et le signe négatif seront convertis). Si la suite de la chaîne n’est plus un nombre, PHP ne l’interprète pas, et l’ignore. Une chaîne qui ne contient pas de nombre et qui est convertie en nombre contiendra la valeur 0.

  • booléen : valeur fausse: FALSE, NULL, chaîne vide, 0, “0”, tableau vide, objet sans champ. Sinon valeur vraie.

Vers booléen : tous les types peuvent être convertis en booléens, suivant la valeur qu’ils possèdent. Sont considérées comme des valeurs fausses: les constantes FALSE et NULL, une chaîne de caractères vide, le nombre 0, la chaîne “0”, un tableau vide, un objet avec aucun champ défini; toutes les autres valeurs sont considérées comme « vraies ». De booléen vers entier: vrai deviendra 1; faux deviendra 0.

  • Texte : TRUE devient “1”; NULL, FALSE, 0 convertis en “” (pas en “0”)‏

Vers texte : les nombres entiers pourront être convertis en texte, sans difficultés. La constante TRUE sera converti en entier « 1 ». NULL, FALSE ou les nombres nuls seront convertis en une chaîne vide (pas en « 0 »). Les tableaux, objets ou ressources afficheront leur type.

Cet exemple permet de tester quelques cas de conversions. Demandez-vous ce que peut bien afficher ce script.

<?php

$a = "3" + 1;
echo '"3" + 1 = ' . $a . "<br>";

$a = "bonjour" + 1;
echo '"bonjour" + 1 = ' . $a . "<br>";

$a = "1 petit canard" + 2;
echo '"1 petit canard" + 2 = ' . $a . "<br>";

$a = TRUE;
echo 'TRUE = '. $a . ".<br>";

$a = FALSE;
echo 'FALSE = '. $a . ".<br>";

?>

Les conversions par type :

Conversion forcée :

  • ( type ) $var
  • settype( $var , ‘type’);
  • intval( $var ) : convertit en entier
  • strval( $var ) : convertit en string
  • floatval( $var ), doubleval( $var )‏

Les conversions forcées sont également possibles en PHP.

Cet exemple permet de tester quelques cas de conversions. Demandez-vous ce que peut bien afficher ce script.

<?php

$a = "3" + 1;

echo '"3" + 1 : ' . gettype($a) . ", " .$a . "<br>";

$a = (string) $a;

echo 'integer -> string : ' . gettype($a) . ", " .$a . "<br>";

$a = settype($a, 'boolean');

echo 'string -> boolean : ' . gettype($a) . ", " .$a . "<br>";

$a = intval($a);

echo 'string -> integer : ' . gettype($a) . ", " .$a . "<br>";

?>

Table des Matières

Sujet précédent

Les tableaux

Sujet suivant

Les opérations

Cette page