Les variables en PHP (Le plus important)

Informatique et espace mémoire

Un langage informatique est surtout utile pour stocker temporairement différents types d'informations pour réaliser des opérations et traitements. Durant l’exécution de votre script, vous allez devoir stocker dans la mémoire du serveur des informations pour les traiter, les comparer, les modifier, les envoyer au client, dans une base de données...
C'est le cœur de tout système informatique.

Une fois votre script terminé, le moteur PHP libère l'ensemble des espaces mémoires réservés et donc toutes les variables disparaissent. Nous verrons plus tard comment faire pour les garder en mémoire quelques temps (Base de données, Session, Cookies, Fichiers).

La mémoire d'un serveur est comme un immense parking avec de nombreuse places de stationnement disponibles ou occupées.
Pour éviter d'utiliser toute la mémoire du serveur lors de l'utilisation de votre programme, le script va réserver de la mémoire en fonction des besoins de stockage.
Pour cela, il faut réserver et vérouiller une plage d'adresses mémoire (nombres de places de stationnement).
Il faut donc savoir à l'avance le nombre de places que l'on aura besoin pour stocker un type d'information.

Exemple "imagé" de réservation d'espace mémoire en fonction du type de valeur :

Comme il serait trop compliqué d'indiquer des adresses mémoires pour chaque besoin, les langages informatiques permettent de réserver des espaces mémoires avec de simples mots (variables) souvent préfixés d'un caractère spécial (le signe '$' pour PHP : $prenom) ou avec une déclaration par un mot clé ('var' en JS : var prenom).

Dans certains langages très structurés comme C, JAVA... il faut obligatoirement indiquer le type d'information que la variable va contenir (nombre de places de parking). Elle ne pourra ensuite que contenir ce type de valeur sous peine de générer une erreur.

Le typage des variables PHP

La force de PHP (qui peut aussi être une faiblesse), c'est qu'il n'est pas du tout nécessaire d'indiquer ce que va contenir une variable (typage). Vous n’êtes même pas obligé de la déclarer en avance (a priori) et peut être créée à la volée quand vous allez en avoir besoin dans votre script.
Quand vous avez besoin de stocker une information en mémoire vous déclarez une variable $maVariable; et vous ajoutez la valeur dedans $maVariable = 'mon texte';. PHP va détecter automatiquement le type de valeur que vous allez affecter et faire la réservation automatique de l'espace mémoire nécessaire (ça c'est vraiment top !).
C'est ce que l'on appelle le transtypage automatique.
PHP adapte en temps réel le typage de la variable en fonction de la valeur affectée. Le typage peut changer plusieurs fois durant le cycle de vie de la variable.

Pour en savoir plus sur le transtypage automatique de PHP c'est ici :
https://www.php.net/manual/fr/language.types.type-juggling.php

Déclarer une variable PHP et affecter une valeur

Pour déclarer une variable en PHP on utilise le préfixe '$' suivit d'un nom (sans espace).

$maVariable

Le nommage des variables PHP

Le nom est sensible à la casse. C'est dire que $foo, $Foo et $FOO sont des variables différentes pour PHP.
Les noms de variables suivent des règles de nommage bien définies.
Un nom de variable valide doit commencer par une lettre ou un souligné (_) et rien d'autres, suivi de lettres, chiffres ou soulignés.
Elles ne peuvent pas commencer par un chiffre et aucun caractère spécial n'est autorisé (!:;,?.% etc.) ni les espaces.

Affecter une valeur à une variable

Pour affecter une valeur à une variable PHP on utilise le signe '=' suivit de la valeur à ajouter.

$maVariable = 'ma valeur' ; 

Bien sur vous pouvez toujours forcer un typage de la donnée pour une variable à l'aide de l'instruction
settype()

Les types de variables en PHP

Voici une liste des types qu'une variable PHP peut posséder.


[Type Bool]      $variable = true;              //Assigne la valeur TRUE ou FALSE
[Type Int]       $variable = 1234;              //Assigne un nombre décimal 
[Type Float]     $variable = 1.23456789;        //Assigne un nombre à virgule flottante
[Type String]    $variable = 'chaîne simple';   //Assigne une chaîne de caractères 
[Type Array]     $variable = array('case1' => 'hello','case2' => 'world'); //Assigne un tableau 
[Type Objet]     $variable = new client();      //Assigne un objet de type client 
[Type Ressource] $ressource;                    //Une ressource représente un fichier ouvert, une connexion à une base de données, une image, etc.,   
[Type NULL]      $variable = NULL;              //Représente une variable sans valeur. NULL est la seule valeur possible du type null. 

Il est parfois intéressant de vérifier ou de comparer le type d'une ou plusieurs variables avant de faire un traitement.

Pour connaître le type d'une variable on utilise la fonction «gettype() » :
https://www.php.net/manual/fr/types.comparisons.php

Liste des opérateurs de comparaison de type :
https://www.php.net/manual/fr/types.comparisons.php

Afficher du texte dans le navigateur

La fonction echo()

Affiche dans le navigateur la chaine de caractères placée entre les simples cotes sans interpréter le code PHP.

<?php echo 'monTexte'; ?>

Si vous avez besoin d'afficher le contenu d'une variable PHP dans un texte alors il faut placer votre chaine de caractères entre des doubles cotes.
La fonction echo() va alors interpreter les variables PHP.
Le contenu de la variable $maVariable sera donc affichée dans le texte.

<?php $maVariable = 'Hello word !';
echo "mon texte : $maVariable"; ?>
echo dispose aussi d'une version courte, où vous pouvez faire suivre la balise PHP ouvrante d'un signe égal (=). Les instructions suivantes sont équivalentes :
<?php echo 'mon texte';?>
Sans l'instruction "echo".
<?='mon texte';?>

print_r() : affiche le contenu d'une variable

Affiche des informations à propos d'une variable, de manière à ce qu'elle soit lisible.
print_r($maVariable);

La fonction var_dump() : ideal pour le debug

Pour affiche les informations structurées d'une variable, y compris son type et sa valeur il faut utiliser la fonction var_dump().
Les tableaux et les objets sont explorés récursivement, avec des indentations, pour mettre en valeur leur structure.

var_dump($maVariable);

La fonction var_dump() est idéal pour le débugage en PHP en affichant tout ce qui se passe dans un tableau, objet...
Toutes les infos sur var_dump ici : https://www.php.net/manual/fr/function.var-dump.php

Exercices

Exercice 1 : Afficher une variable PHP contenant le chiffre 43 en utilisant var_dump().

Exercice 2 : Afficher une variable PHP contenant un tableau de prénoms.

Exercice 3 : quelles variables ont un nom qui n'est pas valide.
$foo, $_foo, $fo_o, $fo-o, $FOO, $foo!, $2foo, $foo2

Exercice 4 : Afficher une variable PHP contenant un tableau de prénoms.

Exercice 5 : Completer le code ci-dessous pour calculer le volume d'une piece.

<?php
   $largeur = 10;
   $hauteur = 15;
   $profondeur = 5;
   $volume = //ecrire votre code ici;
   echo 'Le volume est de '.$volume.' m3.';
   ?>

Exercice 6 : Completer le code ci-dessous pour calculer une réduction sur un prix.

<?php
   $prix = 156;
   $reduction = 25; //Reduction en pourcentage
   $newPrice = //ecrire votre code ici
   echo 'Ancien prix :'  //completer la ligne pour affiche l'ancien prix ici
   echo 'Nouveau prix :'.$newPrice.' €.';
   ?>