Chapitre Ii Variables, Constantes, Types Et Expressions
Chapitre Ii Variables, Constantes, Types Et Expressions
Chapitre Ii Variables, Constantes, Types Et Expressions
1-2. Sa valeur
C'est l'information qu'elle contient, qui peut changer.
Exemple : 15.
I-2 Variable dynamique
Les variables peuvent aussi être définies dynamiquement, c’est-à-dire que leur nom est
contenu dans une variable dont la valeur peut changer en cours de script. En écrivant le
code suivant :
$a="IdClasse";
$$a="IDA2";
NgazKof Page 1 sur 13
PHP
nous créons une variable nommée "IdClasse" (équivalente à $IdClasse ) et dont la valeur
est "IDA2" . Si nous voulons utiliser le contenu de la variable dynamique dans une
chaîne, nous devons écrire la syntaxe ${$a} pour obtenir la chaîne "IDA2" . Par
exemple, le code qui suit :
echo "$a est ${$a}";
affiche : "IdClasse est IDA2" .
boolean isset($var)
retourne la valeur FALSE si la variable $var existe mais n’est pas initialisée ou si elle a
la valeur NULL, et la valeur TRUE si elle a une valeur quelconque. Il peut y avoir
plusieurs paramètres dans cette fonction mais ils doivent tous répondre à cette même
condition pour que la fonction retourne la valeur TRUE.
boolean empty(expression)
retourne la valeur TRUE si l’expression passée en paramètre n’est pas initialisée, a une
des valeurs suivantes : 0 , NULL , FALSE , la chaîne "0" , ou est un tableau vide, et la
valeur FALSE si elle a une quelconque autre valeur.
Notez que l’expression peut être quelconque, comme une fonction par exemple.
L’exemple suivant illustre les différences subtiles entre ces deux fonctions :
<?php
$a=null;
If (isset($a))
{echo "\$a existe déjà<br />";}
else {echo "\$a n'existe pas<br />";}
if (empty($a))
{echo "\$a est vide <br />";}
else
{echo "\$a a la valeur $a<br />";}
//Affiche "$a n'existe pas" et "$a est vide"
$b=0;
If (isset($b))
{echo "\$b existe déjà<br />";}
else
{echo "\$b n'existe pas<br />";}
if (empty($b))
{echo "\$b est vide <br />";}
else
{echo "\$b a la valeur $b<br />";}
//Affiche "$b existe déjà" et "$b est vide"
$c=1;
If (isset($c))
{echo "\$c existe déjà<br />";}
else
{echo "\$c n'existe pas<br />";}
if (empty($c))
{echo "\$c est vide <br />";}
else
{echo "\$c a la valeur $c<br />";}
//Affiche "$c existe déjà" et "$c a la valeur 1"
?>
Pour la variable $a qui a la valeur NULL, isset() retourne également FALSE et empty()
TRUE. Pour $, qui a la valeur 0, isset() permet de détecter l’existence de cette variable
bien que empty() la déclare vide. Il en irait de même si $b était une chaîne vide.
Pour une valeur numérique affectée à la variable $c, les deux fonctions retournent
TRUE.
I-5- Affectation
$mavar1="Paris";
$mavar2="Lyon";
$mavar2 = &$mavar1;
$mavar1="Nantes";
la variable $mavar2 devient un alias de la variable $mavar1, et les modifications opérées
sur $mavar1 sont répercutées sur $mavar2.
Lorsque vous utilisez ce type d’affectation, il est important de ne pas oublier ses effets
en cours de script car chacune de ces deux variables change de valeur de manière sous-
jacente chaque fois que vous intervenez sur l’autre, sans que la modification soit
explicitement écrite.
Opérateur Désignation
+= $x += $y équivaut à $x = $x + $y
-= $x -= $y équivaut à $x = $x - $y
*= $x *= $y équivaut à $x = $x * $y
différent de 0.
%= $x %= $y équivaut à $x = $x % $y
$x .= $y équivaut à $x = $x . $y
.=
$y peut être une expression littérale dont la valeur est une
chaîne de caractères.
Dans cet exemple, vous attribuez la valeur valeur_cte à la constante nommée nom_cte ,
dont le nom doit être contenu dans une chaîne de caractères délimitée par des
guillemets.
Elle retourne TRUE si la constante nommée nom_cte existe et FALSE sinon. Cette
vérification peut être utile, car il est impossible de déclarer deux constantes de même
nom.
<?php
Le tableau 2-3 définit quelques constantes utiles à connaître. Si, par curiosité, vous
voulez afficher l’ensemble des constantes existantes, vous pouvez écrire le code suivant
:
<?php
print_r(get_defined_constants());
?>
Vous obtenez une liste impressionnante, dont un grand nombre des valeurs sont des
entiers.
– Type null.
Vous verrez dans les sections suivantes de quelle manière vous pouvez définir des
variables pour qu’elles aient un des types ci-dessus.
L’opérateur d’incrémentation appliqué à une chaîne, par exemple, peut donner des
résultats curieux.
La principale fonction permettant de déterminer le type d’une valeur est gettype() , dont
la syntaxe est la suivante :
string gettype($mavar)
Les fonctions suivantes permettent de vérifier si une variable est d’un type précis :
• is_integer($var) ou is_int($var)
• is_double($var)
• is_string($var)
• is_bool($var)
• is_array($var)
• is_object($var)
• is_resource($var)
• is_null($var)
Elles retournent la valeur booléenne TRUE si la variable est du type recherché et FALSE
dans le cas contraire.
Pour convertir une variable d’un type dans un autre, utilisez la syntaxe suivante :
Exemple
$var=3.5 ;
$var1=(integer)$var ; // affichera 3
5-2. Le modulo
Le modulo représente le reste de la division entière. On utilise le symbole %.
Code : PHP
<?php
$nombre = 10 % 5; // $nombre prend la valeur 0 car la division tombe juste
?>
Opérateur Description
Teste l’égalité de deux valeurs.
L’expression $a == $b vaut TRUE si la valeur de $a est égale à
celle de $b et FALSE dans le cas contraire :
$a = 345;
$b = "345";
==
$c = ($a==$b);
$c est un booléen qui vaut TRUE car dans un contexte de
comparaison numérique, la chaîne "345" est évaluée comme le
nombre 345. Si $b="345 éléphants" nous obtenons le même
résultat.
Opérateur Description
Teste l’inégalité de deux valeurs.
!= ou <> L’expression $a != $b vaut TRUE si la valeur de $a est
différente de celle de $b et FALSE dans le cas contraire.
Teste l’identité des valeurs et des types de deux expressions.
L’expression $a === $b vaut TRUE si la valeur de $a est égale
à celle de $b et que $a et $b sont du même type. Elle vaut
FALSE dans le cas contraire :
=== $a = 345;
$b = "345";
$c = ($a===$b);
$c est un booléen qui vaut FALSE car si les valeurs sont égales,
les types sont différents (integer et string).
Teste la non-identité de deux expressions.
L’expression $a !== $b vaut TRUE si la valeur de $a est
différente de celle de $b ou si $a et $b sont d’un type différent.
Dans le cas contraire, elle vaut FALSE :
!== $a = 345;
$b = "345";
$c = ($a!==$b);
$c est un booléen qui vaut TRUE car si les valeurs sont égales,
les types sont différents (integer et string).
< Teste si le premier opérande est strictement inférieur au second.
<= Teste si le premier opérande est inférieur ou égal au second.
Teste si le premier opérande est strictement supérieur au
>
second.
>= Teste si le premier opérande est supérieur ou égal au second.
Avec $a<=>$b , retourne -1 , 0 ou 1 respectivement si $a<$b ,
<=>
$a=$b ou $a>$b ( $a et $b peuvent être des chaînes).
Opérateur Description
Teste si l’un au moins des opérandes a la valeur TRUE :
OR
$a = true;
Opérateur Description
$b = false;
$c = false;
$d = ($a OR $b);//$d vaut TRUE.
$e = ($b OR $c); //$e vaut FALSE.
|| Équivaut à l’opérateur OR mais n’a pas la même priorité.
Teste si un et un seul des opérandes a la valeur TRUE :
$a = true;
$b = true;
XOR
$c = false;
$d = ($a XOR $b); //$d vaut FALSE.
$e = ($b XOR $c); //$e vaut TRUE.
Teste si les deux opérandes valent TRUE en même temps :
$a = true;
$b = true;
AND
$c = false;
$d = ($a AND $b); //$d vaut TRUE.
$e = ($b AND $c); //$e vaut FALSE.
&& Équivaut à l’opérateur AND mais n’a pas la même priorité.
Opérateur unaire de négation, qui inverse la valeur de l’opérande :
$a = TRUE;
! $b = FALSE;
$d = !$a; //$d vaut FALSE.
$e = !$b; //$e vaut TRUE.