Generalites sur les variables

I. Concept

 

A. Les différents types de variables

B. Nommage des variables

 

II. Variables scalaires

 

III. Les tableaux

 

A. Les tableaux à une dimension

B.Les tableaux multidimensionnels

IV. La portée des variables

 

V. Les constantes

 

A. Constantes définies par le programmeur

B. Constantes déclarées dans PHP

 

VI. Les variables d’environnement

 

VII. Conversions des types de variables

I. Concept

Une variable est une donnée utilisable et modifiable durant l'exécution d'un script. Elle est toujours précédée du signe dollars
Pour assigner une valeur à une variable, on utilise le signe =. Comme dans tous les langages il est judicieux de  choisir le nom de ces variables en fonction des données quelles contiennent, afin de les repérer rapidement.

A. Les différents types de variables

Les données contenues dans ces variables sont de deux types :


B. Nommage des variables

Avec PHP, les noms de variables doivent répondre à certains critères:

Nom de variable correct Nom de variable incorrect Raison
$Variable $Nom de Variable comporte des espaces
$Nom_De_Variable $123Nom_De_Variable commence par un chiffre
$nom_de_variable $AGE_Form@tions caractère spécial @
$nom_de_variable_123 $Nom-de-variable signe - interdit
$nom_de_variable nom_de_variable ne commence pas par $

Rq: Les noms de variables sont sensibles à la casse (le langage PHP fait la différence entre un nom en majuscule et un nom en minuscules), il faut donc veiller à utiliser des noms comportant la même casse! Toutefois, les noms de fonctions font exception à cette règle...


II. Variables scalaires

La langage PHP propose trois types de variables scalaires:

En PHP, il est inutile de déclarer une variable ou de spécifier son type. PHP, lors de son initialisation, le fait automatiquement.

Instruction Type de la variable
$Variable = 0; entier
$Variable = 12; entier
$Variable = 0.0; réel
$Variable = 12.0; réel
$Variable = "0.0"; chaîne
$Variable = "Bonjour"; chaîne

Il existe des caractères repérés par un code ASCII spécial permettant d'effectuer des opérations particulières. Ces caractères peuvent être représentés plus simplement en langage PHP grâce au caractère \ suivi d'une lettre, qui précise qu'il s'agit d'un caractère de contrôle:

Caractère Description
\" guillemet
\\ barre oblique inverse (antislash)
\r retour chariot
\n retour à la ligne
\t tabulation

En effet, certains de ces caractères ne pourraient pas être représentés autrement (un retour à la ligne ne peut pas être représenté à l'écran). D'autre part, les caractères \ et " ne peuvent pas faire partie en tant que tel d'une chaîne de caractère, pour des raisons évidente d'ambiguïté...

<?
$nom = "HAREL";
$prenom = "Yvon";
echo "\$nom : ", $nom,  "<br>";
echo "\$prenom : ", $prenom;
?>

III.      Les tableaux

Les tableaux ou matrices enregistrent des valeurs dans des listes. L'accès aux éléments du tableau se fait par un index, qui peut être une valeur numérique (des entiers de préférence) ou textuelle, on parle aussi de clé. Les clés ou index dans un même tableau doivent être uniques. Les éléments du tableau peuvent prendre des valeurs numériques, textuelles ou encore tableaux (on parle alors de tableau multidimensionnel) et même d'objets.

Comme pour les variables, PHP peut déclarer les tableaux à la volée lors de leurs initialisations.

A.  Les tableaux à une dimension

Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes à gérer. Heureusement, PHP propose des structures de données permettant de stocker l'ensemble de ces données dans une "variable commune". Ainsi, pour accéder à ces valeurs il suffit de parcourir la variable de type complexe composée de "variables" de type simple.

Les tableaux stockent des données sous forme de liste. Les données contenues dans la liste sont accessibles grâce à un index (un numéro représentant l'élément de la liste). Contrairement à des langages tels que le langage C, il est possible de stocker des éléments de types différents dans un même tableau.

Ainsi, pour désigner un élément de tableau, il suffit de faire suivre au nom du tableau l'indice de l'élément entre crochets:

$Tableau[0] = 12;
$Tableau[1] = "HY";

Avec PHP, il n'est pas nécessaire de préciser la valeur de l'index lorsque l'on veut remplir un tableau, car il assigne la valeur 0 au premier élément (si le tableau est vide) et incrémente les indices suivants. De cette façon, il est facile de remplir un tableau avec des valeurs. Le code précédent est équivalent à:

$Tableau[ ] = 12;
$Tableau[ ] = "HY";

L'indexation d'un tableau se réalise aussi automatiquement avec PHP, avec la fonction interne array().

Ici l'index sera créé automatiquement à partir de zéro

<?
$tab = array("blanc","bleu","marron","noir","rouge","vert");
print $tab[2];
?>

Ici en utilisant l'opérateur =>, l'index sera créé automatiquement à partir de un

<?
$tab = array(1 =>"blanc","bleu","marron","noir","rougev,"vert");
print $tab[2];
?>

    Compter les jours de la semaine

<?
$jour = array("lun","mar","mer","jeu","ven","sam","dim");
print 'Nbr de jours de la semaine : '.count($jour);
?>


B.   Les tableaux multidimensionnels

Un tableau à simple dimension accepte comme valeur d'élément n'importe quel type de données. Un élément peut ainsi prendre comme valeur un autre tableau, c'est un tableau multidimensionnel. On peut alors créer un tableau d'autant de lignes et de colonnes que l'on souhaite. PHP autorise aussi l'usage de différents types de données au sein d'un même tableau, à chaque ligne peut correspondre un nombre de colonnes différent, une ligne peut n'avoir aucune colonne ou encore contenir un objet.

L'indexation d'un tableau se fait en utilisant deux fois les crochets, le premier couple de crochets pour les lignes et le deuxième pour les colonnes.

$Tableau[0][0] = 12;
$Tableau[0][1] = "HY";
$Tableau[1][0] = 1245.652;
$Tableau[1][1] = "Au revoir";

<?
$tab = array("couleur" => array("blanc","Bleu","marron","noir")
"diametre" => array("0,6","6,3","3,5"));
print 'La couleur du câble est '. $tab["couleur"][2]").'<br>';
print 'Le diamètre '. $tab["diamètre"][1]);
?>

IV. La portée des variables 

Selon l'endroit où on déclare une variable, celle-ci pourra être accessible (visible) de partout dans le code ou bien que dans une portion confinée de celui-ci (à l'intérieur d'une fonction par exemple), on parle de portée (ou visibilité) d'une variable.

Passage de variable(s) entre les scripts

La solution la plus courante et la plus simple consiste à transmettre les variables dans l'URL sous la forme normalisée:

http://mon_url.fr/mon_beau_script.php3?variable1=valeur1&variable2=valeur&...&variableN=valeurN

Depuis la version 4.x de PHP, par défaut, les variables $variable1, $variable2, ... $variableN ne sont plus définies. Il faut donc utiliser à la place les tableaux $_GET, $_POST ou depuis la version 4.0.6 $_REQUEST.

Autrement dit, là oû avant en appelant : script.php?toto=1 il était possible d'utiliser directement la variable $toto (qui valait 1) il faut maintenant par exemple commencer par affecter $toto=$_GET['toto']; pour que $toto soit disponible.

Lorsqu'une variable est déclarée dans le code même, c'est-à-dire à l'extérieur de toute fonction ou de tout bloc d'instruction, elle est accessible de partout dans le code (n'importe quelle fonction du programme peut faire appel à cette variable). On parle alors de variable globale

Lorsque l'on déclare une variable à l'intérieur d'un bloc d'instructions (entre des accolades), sa portée se confine à l'intérieur du bloc dans lequel elle est déclarée.

Une variable déclarée au début du code, c'est-à-dire avant tout bloc de donnée, sera globale, on pourra alors les utiliser à partir de n'importe quel bloc d'instruction

Une variable déclarée à l'intérieur d'un bloc d'instructions (dans une fonction ou une boucle par exemple) aura une portée limitée à ce seul bloc d'instruction, c'est-à-dire qu'elle est inutilisable ailleurs, on parle alors de variable locale

D'une manière générale il est préférable de donner des noms différents aux variables locales et globales pour des raisons de lisibilité et de compréhension du code...

Pour utiliser des variables globales dans une fonction, il faut déclarer ces variables dans la fonction voulue : (on peut aussi utiliser la variable globale tableau)

$Global["nom_de_la_variable_globale font-style:normal'>"])
function Partage(){ //La notion de fonction est vue plus loin dans le document
global $Data ;
}
Partage();
$Data = "donnée"

Pour utiliser une variable locale dans une autre fonction ou dans le script principal, il faut renvoyer la variable en fin de fonction à l'appel d'une autre fonction :

function Partage(){
$Data = "donnée";
Principale($Data); //Appel de la fonction Principale avec comme argument la valeur de la variable $data
}
Partage();

Pour conserver la valeur d'une variable locale entre les différentes exécutions d'une fonction, il faut déclarer cette variable comme statique :

function Partage(){
static $Data = "donnée";
}
Partage();

V.          Les constantes

A. Constantes définies par le programmeur

Comme les variables, elles possèdent une valeur et s'utilisent n'importe où. A la différence près qu'elles sont prédéfinies par la fonction define(), qu'elles ne sont pas précédées du signe $ et  ne peuvent pas être interpolées. Elles sont regroupées dans un seul fichier qui est ensuite intégré au script par la fonction require(). Leur portée est, contrairement aux variables, totale. L'avantage est qu'elles peuvent être modifiées sans modifier le script où elles sont utilisées, ce qui permet la mise au point de script aisément.

<?
Define ("HOTE", "localhost");
echo "Machine local : ", HOTE;
?>

Par principe on utilise les lettres capitales.


B. Constantes déclarées dans PHP:

Constantes prédéfinies Observations
PHP_VERSION Version du moteur PHP
TRUE Vaut 1
FALSE Vaut 0
PHP_OS Version du système d'exploitation
E_ERROR
E_WARNING
E_NOTICE
E_PARSE
E_ALL
Utilisées avec la fonction error_reporting
M_PI Valeur de pi
__FILE__ Revoient le nom de fichier
__LINE__ Revoient le numéro de ligne

<?
echo "Nom : ", __FILE__, "<br>";
echo "Ligne : ", __LINE__, "<br>";
echo "Version PHP : ",PHP_VERSION, "<br>";
echo "OS : ",PHP_OS;
?>

VI. Les variables d'environnement

Plusieurs variables d'environnement sont créées automatiquement par PHP, celles-ci sont utilisables de la même façon que les variables classiques.

Pour visualiser le listing des variables d'environnement 


VII.  Conversions des types de variables

Il est possible de convertir le type d'une variable par la fonction Settype( ), ainsi on peut affecter les types:

String pour les chaînes,
Double pour les nombres décimaux,
Integer pour les nombres entiers,
Array pour les tableaux ,
Object pour les objets.

Settype($Data,"double");

Dans ce cas la valeur de la donnée contenue dans $Data sera convertie, cela peut être gênant dans certains cas car on tronque éventuellement la donnée (45,2 kilos converti en double, la donnée vaudra 45,2).

Une autre possibilité est offerte par PHP, avec les fonctions:

strval() pour les chaînes,
doubleval() pour les nombres décimaux,
interval( ) pour les nombres entiers.

Cela permet d'utiliser la valeur de la variable qui nous intéresse sans convertir la donnée.

$Data = "45,2 kilos"
Print(interval($Data)) ; On affichera à l'écran 45 cependant $Data vaudra toujours 45,2 kilos