- Introduction
- Variables dynamiques
- Références
- Types de données
Introduction
Une variable sert à stocker des données temporaires. C'est à dire que ces données seront perdues entre
deux appels du script.
En PHP, la syntaxe des variables est très étendue, car elle est inpirée de plusieurs langages, notament
du Perl et du C.
Ainsi, les Perliens ne seront pas dépaysés, puisqu'en PHP, les variables débutent par le symbole $
(dollars). Les noms des variables peuvent être composés des lettres de l'alphabet, de nombres, et du caractère
de soulignement.
Voici des noms de variables corrects :
$i
$premier_passage
$telephone1
$telephone2
Pour affecter une valeur à une variable, on utilise l'opérateur = (égal).
Le PHP est un langage non typé. Il n'y a donc pas de déclaration de type comme il peut y en avoir en C.
Il suffit d'indiquer la variable, et de lui affecter une valeur :
$password = "jamesbond007";
print $password;
Cette exemple affiche :
jamesbond007
On peut aussi affecter la valeur d'une variable à une autre variable :
$var1 = "JO";
$var2 = $var1;
print $var2;
Cela affiche :
JO
On peut aussi affecter une même valeur à plusieurs variables d'un seul coup, comme en C :
$var1 = $var2 = $var3 = "Waza";
echo $var1, $var2, $var3;
Résultat :
WazaWazaWaza
Variables dynamiques
En C, on entend par variable dynamique (ou plutôt par tableau dynamique), une variable qui peut avoir une
taille modifiable dans le temps.
En PHP, le dynamisme des variables n'a pas le même sens. Il s'agit en fait de pouvoir jouer avec les noms des
variables.
En effet, regarder cet exemple :
$citation = "T'es comme le H de Hawai, tu sers à rien :-)";
print ${"citation"};
Résultat :
T'es comme le H de Hawai, tu sers à rien :-)
En peut faire encore plus fort :
$citation = "T'es comme le H de Hawai, tu sers à rien :-)";
$var = "citation";
print $$var;
Cela nous donne encore :
T'es comme le H de Hawai, tu sers à rien :-)
Ou encore mieux :
$citation = "T'es comme le H de Hawai, tu sers à rien :-)";
$var = "citation";
$finalement = "var";
print $$$finalement;
Nous pourrions multiplier les exemples à l'infini (ou presque : ça dépend de la memoire et de la place disponible
sur la pile de votre machine).
Vu comme ça, cela peut paraitre inutile. Mais il peut y avoir quelques applications interessantes, notament
avec l'utilisation de boucles.
Références
Le PHP permet d'établir des références entre variables. Cela peut paraitre similaire aux pointeurs du C,
mais il y a quelques petites différences. En fait, comme il est écrit dans le manuel officiel de PHP, "les
références sont des alias dans la table des symboles. Le nom de la variable et son contenu ont des noms
différents, ce qui fait que l'on peut donner plusieurs noms au même contenu."
Pour établir une référence, on utilise l'opérateur & (et commercial, ou esperluette :-) devant la variable.
Ainsi :
$hello = "Hello";
$bonjour = "Bonjour";
echo $hello, $bonjour, "<br>";
$hello = &$bonjour;
echo $hello, $bonjour, "<br>";
$hello = "Buenos Dias";
echo $hello, $bonjour, "<br>";
$hello = "Guten Tag";
echo $hello, $bonjour, "<br>";
Résultat :
HelloBonjour
BonjourBonjour
Buenos DiasBuenos Dias
Guten TagGuten Tag
On se rend compte qu'après la ligne $hello = &$bonjour;, on peut utiliser soit la variable $hello,
soit la variable $bonjour, cela revient au même : elles désignent le même contenu.
Cela peut sembler inutile, mais lorsque nous étudierons les fonctions, cela sera plus parlant.
Types de données
Bien que le PHP soit non typé, les données ont cependant des types. Ainsi, on distinguera 8 de "8",
4 de 4.00.
Il existe 6 types de données :
Les types de données dans PHP
|
Type
|
Description
|
Exemple
|
|
integer
|
Nombres entiers
|
8
|
|
string
|
Chaînes de caractères
|
"8"
|
|
double
|
Nombre à virgules flottante (nombres décimaux)
|
8.00
|
|
boolean
|
Valeur logique, soit true, soit false
|
true
|
|
array
|
Tableaux
|
array(1, 2, 3);
|
|
integer
|
Nombres entiers
|
8
|
|
object
|
Objets
|
class myclass {};
new myclass();
|
Nous étudierons les types boolean, array et object plus loin.
Pour connaitre le type d'une donnée, on utilise la fonction gettype(). Cette fonction ne prend
qu'un seul argument qui doit être la variable ou la donnée à tester.
Voici un exemple :
class myclass {};
echo gettype(8), "<br>",
gettype("8"), "<br>",
gettype(8.00), "<br>",
gettype(true), "<br>",
gettype(array()), "<br>";
gettype(myclass()), "<br>";
Ce qui nous donne :
integer
string
double
boolean
array
object
Note : on a utilisé la fonction echo sur plusieurs lignes, ce qui est possible et simplifie
les choses.
On peut aussi modifier le type d'une variable. En C, on appelle ceci le casting.
Pour modifier le type de la variable lui même, on utilise la fonction settype(). Voici la syntaxe de
cette fonction, d'après le manuel PHP :
int settype(mixed var, string type)
Le premier argument, var, peut être de n'importe quel type (c'est le but). Le deuxième argument
doit être une chaîne de caractères representant le type dans lequel convertir la variable. La fonction renvoi
true si l'opération de transtypage a été réussie, sinon false.
Exemple :
$pi = 3.141592654858;
echo $pi, "<br>";
settype($pi, "integer");
echo $pi, "<br>";
Résultat :
3.14159265458
3
On peut aussi modifier le type à l'aide de la syntaxe suivante :
$var = (type) $var
On place le type entre parenthèses (sans guillemets) devant la variable.
Ainsi :
$var = 3.14159265458;
$new = (integer) $var;
echo $new;
|