Vous êtes ici : Accueil > Archives > Tutoriels > PHP > Les variables

< Retour

Les variables

mise(s) à jour : 23.01.2005, 12.11.2004

Ce qu'il faut savoir sur les variables :

- Nom

Toute variable doit avoir un nom, précédé du caractère '$' (dollar).
L'alphabet supporté par le PHP englobe les caractères ASCII et le trait de soulignement / underscore (le caractère _), mais aussi, et contrairement à certains langages de programmation, les caractères accentués et diacritiques (les signes de ponctuations et certains caractères spéciaux). Personnellement, je vous déconseille les accents dans les noms de variables...

Attention !!! Attention ! On ne peut pas faire commencer un nom de variable par un numéro.

Les noms de variables sont sensibles à la casse (écriture en majuscules ou minuscules). Ainsi, $variable, $Variable et $VARIABLE sont trois variables distinctes...

- Déclaration et typage

Les variables PHP non ni besoin d'être déclarées, ni même d'être typées ! C'est au moment de l'affectation de sa valeur que le type se défini automatiquement.
Une même variable peut ainsi contenir successivement un nombre, une chaîne de caractères, un objet, un tableau, sans générer d'erreurs au moment de changer de contenu.

- Affectation d'une valeur

Pour affecter une valeur à une variable, il suffit d'utiliser le caractère =, voir les exemples ci-après :

<?php
$nombre = 1;
// ou encore
$texte = "valeur texte";
?>

<?php
// en utilisant la concaténation :
$variable = "pour écrire du texte long, "
. "et en plusieurs fois, "
. "mais sur plusieurs lignes...";
?>

Attention !!! Attention ! Il ne faut pas confondre l'affectation, qui se fait avec avec un seul caractère égal, et les tests d'égalités qui peuvent se faire à l'aide de doubles (voire de triples) caractères égal.

Vous remarquerez dans l'exemple ci-dessus que toutes les lignes ne sont par terminées par un point-virgule comme à leur habitude, c'est parce que la concaténation suppose qu'il y a une seule instruction, même si elle prend plusieurs lignes.
N'oubliez pas non plus de mettre des espaces en fin ou en début de ligne pour ne pas avoir les différents morceaux collés ensembles...

<?php
// en plusieurs fois, par implémentation :
$variable = "Voici le début de ma phrase.";
$variable .= "Et en voici la suite !";
?>

Faites bien attention à ne pas oublier le point devant le égal à partir de la deuxième ligne, sinon votre variable ne prendra que le dernier élément présenté !

Attention !!! Attention ! Depuis les versions récentes de PHP, certains raccourcis de programmateurs fainéants ne sont plus tolérés. Vous ne pouvez désormais plus utiliser directement
<?php $variable .= "valeur"; ?>
si $variable n'a pas fait l'objet d'une affectation initiale avec une ligne
<?php $variable = NULL; ?>
ou
<?php $variable = ""; ?>
Il faut désormais faire les choses dans l'ordre, on effecte un contenu à une variable, puis on concatène une valeur ou un contenu supplémentaire.


- Autres moyens d'affecter une ou des valeurs

Elles concernent les tableaux et les variables multidimensionnelles, leurs syntaxes sont différentes dans le sens ou elles utilisent des index et/ou des noms, exemples :

<?php
// on affecte la variable par ordre croissant des index...
$variable[0] = "chaine a";
$variable[1] = "chaine b";
$variable[2] = "chaine c";

// ... et on l'affiche par ordre décroissant des index.
echo $variable[2] . "<br />";
echo $variable[1] . "<br />";
echo $variable[0] . "<br />";
?>

Cet exemple donne ce résultat :

chaine c<br />chaine b<br />chaine a<br />

<?php
/* Affectation d'une personne... */
$personne[0]["nom"] = "Pierre";
$personne[0]["prenom"] = "Marc";
$personne[0]["nationalite"] = "Française";

/* ... et d'une autre */
$personne[1]["nom"] = "Gray";
$personne[1]["prenom"] = "John";
$personne[1]["nationalite"] = "Américaine";

/* Et pour finir, un affichage ! */
echo $personne[1]["prenom"] . " et " . $personne[0]["prenom""] . " ont respectivement la nationalité " . $personne[1]["nationalite"] . " et " . $personne[0]["nationalite"] . ".<br />";
?>

La fonction echo donne le résultat suivant :

John et Marc ont respectivement la nationalité Américaine et Française.<br />


étape suivante : >> Structures de contrôle 1.