Variables

Tout au long d'une page, nous avons besoin de stocker des informations (nom, prénom, âge, date de naissance...) afin de les réutiliser plus loin.

Ces données sont stockées dans des variables.

Ces variables correspondent à des cases dans la mémoire RAM de l'ordinateur, elles englobent plusieurs informations :

  • Une adresse : &1000

  • Un nom : âge

  • Un contenu : 18

  • Un type : nombre

Adresse :

L'adresse correspond à l'emplacement physique de la variable dans la mémoire de l'ordinateur.

Nom :

Plutôt que d'appeler une variable par son adresse, on lui donne un nom afin de simplifier son utilisation.

Contenu :

Le contenu d'une variable peut être un nombre, un caractère, un mot, un tableau...

Type :

Une variable possède un type en fonction de ce qu'elle contient (des entiers, des réels, des caractères...).

En fonction de son type l'encodage n'est pas le même, il occupe plus ou moins de place.

DéfinitionAdresse

En PHP on ne gère pas l'adresse machine des variables.

DéfinitionNom, Type, Contenu

En PHP, les variables sont précédées d'un $.

Il est à noter que PHP est sensible à la casse. C'est à dire que les noms $variable et $Variable, font référence à deux variables différentes.

Restrictions sur l'écriture des variables :

  • elles ne doivent pas contenir d'espace,

  • elles ne doivent comporter que des lettres, des chiffres ou "_",

  • le premier caractère doit être une lettre ou "_", majuscules et minuscules sont permises. Majuscules et minuscules sont différenciées.

Le type des variables n'est pas déclaré, il est automatiquement créé en fonction du contenu qu'on lui affecte (l'action de remplir une variable s'appelle l'affectation).

1
$age = 3; // la variable $nombre sera de type numérique
2
$nom = "Dupont"; // la variable $nom sera de type chaîne de caractères
3
echo $age; // affiche 3
4
echo $nom; // affiche Dupont

DéfinitionVariables dynamiques

On peut créer des variables dynamiquement à partir du contenu d'une variable.

1
$a = "prenom";
2
$$a = "Jean"; // création de la variable $prenom
3
// deux façons de les utiliser
4
echo $$a; // affiche "Jean"
5
echo $prenom; // affiche "Jean"

DéfinitionConstante

Comme leur nom l'indique, les constantes ne peuvent pas changer de contenu.

Ce qui permet d'être sûr du contenu de certaines données lors de la programmation.

De plus, les constantes sont accessibles à l'intérieur des fonctions (elles sont globales).

Le nom des constantes n'est pas précédé de $. Il faut les définir comme suit :

1
define('MA_CONSTANTE', 'son contenu'); 
2
echo MA_CONSTANTE; // affiche "son contenu"

On peut aussi vérifier qu'une constante existe avec la fonction defined.

1
echo defined('MA_CONSTANTE'); // affiche TRUE ou FALSE

Par convention, les constantes sont écrites en majuscule.

ComplémentBooléen

Le mot-clé TRUE désigne un booléen vrai et le mot-clé FALSE désigne un booléen faux.

Attention, ces mots-clés sont insensibles à la casse, tous ces exemples sont identiques. :

1
$test = TRUE;
2
$test = true;
3
$test = TrUe;

PHP considère certaines informations comme fausses.

Tous ces cas sont considérés comme false :

1
0
2
0.0
3
""
4
"0"
5
NULL
6
un tableau vide

ComplémentConversion

Malgré que ce soit inutile dans la plupart des cas, PHP permet de forcer le type d'une variable.

1
$a = "1" ; //$a est le caractère 1
2
$nombre = (int) $a ; // $nombre est l'entier 1

Exemples de types :

1
(int)   : entier
2
(bool)  : booléen
3
(float) : nombre à virgule
4
(string): chaine de caractères
5
(array) : tableau
6
(object): objet

Remarque :

1
$somme = "1" + "2" ; // $somme vaut 3
2
echo $somme; // affiche 3

DéfinitionDébogage

Pour afficher le contenu d'une variable (lors d'un débogage) , vous pouvez utiliser la fonction var_dump :

1
$nom = "Dupont";
2
var_dump($nom);
3
// affiche les informations sur la variable $nom
4
// string(6) "Dupont"

AttentionPortée des variables

La fabrication d'une page de votre site peut être réalisée à partir de plusieurs fichiers (voir Factorisation). Chaque fichier peut accéder aux variables définies dans un fichier précédent.

Mais ces variables disparaissent de la mémoire, lors de la création d'une nouvelle page.