Les variables et les tableaux
Le sommaire :
Une variable est un espace mémoire que l’on utilise pour stocker provisoirement une valeur.
Pour identifier une variable, nous lui donnons un nom symbolique, par exemple, « NomDeFamille ».
En PHP, nous devons créer une variable au moment de sa première utilisation.
Le nom d’une variable PHP commence toujours par le signe $.
Vous devez toujours respecter la casse, c’est-à-dire prendre en considération l’emploi des minuscules et des majuscules dans le nom d’une variable.
En relation avec son contenu, une variable a un type.
Si vous affectez une chaîne de caractères à une variable, son type sera string.
Si vous affectez un entier à une variable, son type sera integer.
Si vous affectez un nombre contenant une partie décimale, son type sera double.
Dans beaucoup de langages de programmation, nous devons définir le type de la variable au moment de sa déclaration. En PHP, la déclaration est naturelle, elle se fait au moment de sa première affectation.
La variable va donc prendre le type correspondant à la première valeur que vous lui affectée.
Par exemple, si vous utilisez pour la première fois la variable $Age :
$Age = 25 ;
$Age sera très naturellement une variable de type entier, donc integer.
Il y a une notion de portée dans les variables.
Une variable locale ne peut être connue que depuis le fichier dans lequel elle est déclarée pour la première fois.
Dès lors que le fichier est refermé, la variable est détruite, et avec elle, son contenu bien sûr…
Dans ce chapitre, je vous présente les variables locales.
Voici un exemple :
<?php
// Création de la variable
$NomDeFamille
$NomDeFamille = "VERNE";
?>
Ici, nous venons de créer une
variable qui s’intitule $NomDeFamille et dont la première lettre de chaque mot
est en majuscule.
Nous lui avons affecté une valeur de
type chaîne de caractères, donc du texte. Nous devons toujours encadrer la
chaîne de caractères par des guillemets, c’est ainsi que la distinction est
faite entre le nom d’une variable et une chaîne de caractères.
Voici un exemple avec l’instruction
Echo :
<?php
//
Création de la variable $NomDeFamille
$NomDeFamille
= "VERNE";
//
Affiche la chaîne de caractères « VERNE », donc entre guillemets
echo
« VERNE » ;
//
Affiche maintenant le contenu de la variable $NomDeFamille, qui affichera VERNE
// ici on
n’est pas obligé de placer des guillemets, puisqu’il s’agit d’une variable
echo
$NomDeFamille ; ?>
Mais
attention, dans le paramètre de echo, si vous placez une chaîne de caractères
entre apostrophes, vous devez réaliser une opération de concaténation afin de
marier cheîne de caractères et variables.
Une
variable n’est pas interprétée comme tel lorsqu’elle est introduite dans un
texte qui est encadré par des apostrophes…
La
concaténation est donc une manière de coller bout à bout plusieurs chaînes de
caractères.
Nous
devons mettre un point entre les différentes chaînes.
Dans
l’exemple qui suit, nous allons rajouter le prénom dans l’instruction Echo.
<?php
//
création de la variable $NomDeFamille
$NomDeFamille
= "VERNE";
//
Affiche le contenu de la variable $NomDeFamille, précédé du prénom
« Jules »
echo
‘Jules ‘.$NomDeFamille; ?>
Bien sûr,
ici « Jules » est entre apostrophes puisqu’il ne s’agit pas d’une
variable mais d’une chaîne de caractères.
Les
valeurs numériques ne doivent pas être placées entre guillemets, voici un
exemple :
<?php
//
création de la variable $NomDeFamille
$NomDeFamille
= "VERNE";
//
Création de la variable $NombreDeLivres
$NombreDeLivres
= 40 ;
// Voici
un affichage qui concatène texte et variables
echo
‘Jules ‘.$NomDeFamille.’ a écrit plus de ‘.$NombreDeLivres.’
livres‘; ?>
En PHP,
les variables globales sont dites « variables de session ».
Elles
sont utilisables à partir de toutes les pages du site et conservent leurs
valeurs.
Cependant,
dès lors que vous souhaitez utiliser les variables à partir d’un fichier, vous
devez débuter l’écriture du fichier par la fonction suivante :
<?php
SESSION_START(); ?>
Attention
de bien écrire cette fonction en majuscule…
Les
variables globales ont une syntaxe particulière, ici à titre d’exemple, nous
allons déclarer la variable NomDeFamille et lui affecter la valeur
« VERNE » :
$_SESSION["NomDeFamille"]="VERNE";
La
syntaxe générale :
$_SESSION["nomvariable"]=valeur;
La
description :
Nous
devons toujours mettre le nom de la variable globale entre guillemets et à l’intérieur
des crochets.
$_SESSION
est toujours en majuscule.
Lorsque
depuis un fichier vous souhaitez récupérer les variables globales, vous devez
impérativement débuter le code par la fonction suivante :
<?php
SESSION_START(); ?>
Attention,
dans l’instruction echo, vous devez utiliser le point de concaténation afin
d’associer chaînes de caractères et variables globales.
echo
"Désolé, vous avez perdu à la question numéro ".$_SESSION["NumReponse"];
Voici un
exemple d’utilisation d’une variable globale dite de SESSION.
Vous
devez créer 2 fichiers, index.php et suite.php.
Voici le
contenu du fichier index.php :
<?php SESSION_START(); ?>
<html>
<head>
<title> bonjour </title>
</head>
<body>
<h1>à
lire attentivement !</h1>
<p>Cette
page initialise la variable de SESSION intitulée NomDeFamille.<br>
Validez
le lien intitulé Page suivante afin d'afficher le contenu de cette variable
dans une autre page.<br></p>
<?php
//
déclaration et affectation de la variable de SESSION
$_SESSION["NomDeFamille"]
= "VERNE"; ?>
<p><a
href="suite.php">Page suivante</a></p>
</body>
</html>
Voici
maintenant le contenu du fichier suite.php :
<?php SESSION_START(); ?>
<html>
<head>
<title> Rebonjour </title>
</head>
<body>
<h1>Résultat</h1>
<br>
<?php
// affichage
du contenu de la variable de SESSION
echo
"Mon auteur préféré est Jules ".$_SESSION["NomDeFamille"];
?>
</body>
</html>
Dans un
fichier PHP, si vous souhaitez utiliser les variables globales qui ont été
créées antérieurement dans les autres fichiers, vous devez débuter le code
par :
<?php
SESSION_START(); ?>
L’instruction
« SESSION_UNREGISTER » permet de détruire une variable globale, voici
la syntaxe :
SESSION_UNREGISTER("NomDeLaVariableASupprimer");
Vous
devez écrire cette instruction tout en majuscule et placer le nom de la
variable entre guillemets.
A titre
d’exemple, voici comment détruire la variable :
$_SESSION[«NomDeFamille»] :
SESSION_UNREGISTER("NomDeFamille");
Pour
détruire toutes les variables globales en une seule fois, voici
l’instruction :
SESSION_UNSET();
A écrire
tout en majuscule !
Pour
vérifier si une variable globale existe, voici la fonction isset,
elle retourne vraie si la variable existe, et bien sûr, faux dans le cas
contraire :
isset($NomVariableGlobale);
Les
variables de type tableaux sont des variables pouvant contenir plusieurs
lignes, donc, plusieurs valeurs.
Imaginions
que nous ayons besoin de mémoriser une lise de noms de familles, nous pourrions
alors créer un tableau en mesure de mémoriser toute la liste.
Pour
désigner l’un des éléments du tableau, on utilise un indice, par exemple
élément 1, élément 2, élément 3 etc.
La
syntaxe :
$NomDuTableau[indice] = valeur;
Attention,
le premier indice est 0.
Voici un
exemple d’utilisation de tableaux :
<html>
<head>
<title> création d'un tableau</title>
</head>
<body>
<?php
//
création du tableau villes
$villes[0]
= "PARIS";
$villes[1]=
"BORDEAUX";
$villes[2]
= "MARSEILLE";
//
Affichage des 3 villes contenues dans le tableau villes
echo
"J'aime beaucoup $villes[0], $villes[1] et $villes[2] »; ?>
</body>
</html>
La
fonction count retourne le nombre de ligne du tableau en paramètre.
Cette
fonction est très pratique par exemple dans le cadre d’un traitement d’un
tableau dans une boucle.
Voici un
exemple qui affichera le nombre de lignes contenues dans le tableau $Prenom :
<html>
<head>
<title> Obtenir la taille d'un tableau</title>
</head>
<body>
<?php
//
création du tableau avec 3 affectations
$Prenom[0] = "Isabelle";
$Prenom[1] = "Nathalie";
$Prenom[2] = "Sophie";
//
Affichage du nombre de cases contenues dans le tableau
echo
"Le nombre de lignes dans le tableau Prenom est
: ".count($Prenom); ?>
</body>
</html>
Dans un
tableau, vous pouvez affecter plusieurs valeurs en une seule fois par
l’intermédiaire de la fonction « array ».
La
syntaxe :
$NomDuTableau=array(valeur1,valeur2,valeur3,etc.);
En
reprenant l’exemple précédemment cité, voici maintenant comment affecter
directement les 3 villes dans le tableau $villes :
<html>
<head>
<title> création d'un tableau</title>
</head>
<body>
<?php
//
création du tableau villes
$villes=array("PARIS","BORDEAUX","MARSEILLE");
//
Affichage des 3 villes contenues dans le tableau villes
echo
"J'aime beaucoup $villes[0], $villes[1] et $villes[2] »; ?>
</body>
</html>
La
fonction sizeof permet de retourner le nombre d’éléments contenu dans un
tableau.
La
syntaxe :
$VariableNombreDeLigne
= sizeof($NomDuTableau);
Maintenant
je vous propose de créer un tableau en deux dimensions.
Imaginions
que nous ayons besoin d’un tableau pour mémoriser le nom des clients, et pour
chacun d’entre eux, son domicile et son age.
<html>
<head>
<title> création d'un tableau</title>
</head>
<body>
<?php
//
création du tableau clients
$clients[0]["nom"]
= "DUPONT";
$clients[0]["domicile"]
= "PARIS";
$clients[0]["age"]
= 35;
$clients[1]["nom"]
= "MARTIN";
$clients[1]["domicile"]
= "BORDEAUX";
$clients[1]["age"]
= 44;
$clients[2]["nom"]
= "DURAN";
$clients[2]["domicile"]
= "MARSEILLE";
$clients[2]["age"]
= 55;
//
Affichage du contenu total du tableau clients
echo
"Le client $clients[0]["nom"] habite à $clients[0]["domicile"]
et il a
$clients[0]["age"]
ans<br>";
echo
"Le client $clients[1]["nom"] habite à
$clients[1]["domicile"] et il a
$clients[1]["age"]
ans<br>";
echo
"Le client $clients[2]["nom"] habite à
$clients[2]["domicile"] et il a
$clients[2]["age"]
ans<br>";
?>
</body>
</html>
Les
tableaux associatifs est une méthode qui permet d’associer plusieurs tableaux
pour un indice qui n’est plus un numéro mais un identifiant clair :
Vous
pouvez par exemple créer un premier tableau qui contient les descriptions d’un
article, un deuxième tableau qui contient le prix Etc. L’indice pourra alors
être le nom de l’article…
Voici un
exemple qui permet de choisir le nom d’un logiciel dans une liste de 3
logiciels, la validation du bouton associé ouvrira une seconde page affichant
la description du logiciel ainsi que les conditions d’acquisition.
Si vous
souhaitez voir l’exemple en ligne, c’est ici :
http://jaws.unadev.com/PHP/TableauxAssociatifs/index.php
Pour
télécharger les fichiers, c’est ici :
http://jaws.unadev.com/PHP/TableauxAssociatifs/TableauxAssociatifs.rar
Voici le
code du fichier index.php :
<html>
<head>
<title>Sélection d'un logiciel</title>
</head>
<body>
<h1>Liste
des logiciels</h1>
<p>Choisissez
un logiciel dans la liste puis cliquez sur le bouton "Voir la
description"</p>
<form action="AfficheDescription.php"
method="post">
<select name="Logiciel">
<option selected>Bloc-Notes</option>
<option>WORDPAD</option>
<option>MICROSOFT-WORD</option>
<input
type="submit" value="Voir la
description">
</form>
</body>
</html>
Voici
maintenant le code du fichier AfficheDescriptions :
<?php SESSION_START(); ?>
<html>
<head>
<title>Affichage de la description</title>
</head>
<body>
<h1>Description</h1>
<?php
extract($_POST,EXTR_OVERWRITE);
//
Affectation des descriptions
$Descriptions["Bloc-Notes"] = "Mini logiciel de prises de notes
rapides";
$Descriptions["WORDPAD"]
= "Logiciel de traitement de texte de base";
$Descriptions["MICROSOFT-WORD"]
= "Logiciel de traitement de texte puissant";
//
affectation des conditions d'acquisitions
$Acquisitions["Bloc-Notes"] = "Fourni dans les accessoires du
système d'exploitation WINDOWS";
$Acquisitions["WORDPAD"]
= "Fourni dans les accessoires du système d'exploitation WINDOWS";
$Acquisitions["MICROSOFT-WORD"]
= "Seul ou intégré dans le pack office";
echo
"Description du logiciel : ".$Logiciel."<br>";
//
Affichage de la description et des droits d'acquisition du logiciel choisi par
l'utilisateur
echo
$Descriptions[$Logiciel]."<br>";
echo
$Acquisitions[$Logiciel]."<br>"; ?>
<p><a
href="index.php">Revenir
à la page des logiciels</a></p>
</body>
</html>
Strtoupper(chaîne
de caractères);
Retourne
la chaîne de caractères passée en paramètre en majuscule.
strtolower(chaîne
de caractères);
Retourne
la chaîne de caractères passée en paramètre en minuscule.
Ucfirst
(chaîne de caractères);
Retourne
la chaîne de caractères passée en paramètres mais avec la première lettre en
majuscule.
Trim(Chaîne
de caractères);
Retourne
la chaîne de caractères passée en paramètres mais en supprimant les espaces à
gauche et à droite.
substr
extrait
une sous chaîne depuis une chaîne passée en paramètre.
La
syntaxe :
substr("Chaîne",PositionDépart,Longueur);
La
description :
Chaîne
est le premier paramètre, il concerne la chaîne depuis laquelle l’extraction de
la sous chaîne doit être réalisée.
PositionDépart est un entier, il précise le numéro de la position du
premier caractère de la sous chaîne à extraire. En partant depuis la gauche, la
première position est 0, en partant de la droite, la première position est -1.
Longueur
est la taille totale de la sous chaîne à extraire depuis le caractère.
Voici un
exemple d’extraction et de concaténation :
<html>
<head>
<title> Extraction d'une chaîne de caractères</title>
</head>
<body>
<h1>Utilisation
de la fonction substr</h1>
<p>voici
tout d'abord l'affichage des deux variables :</p>
<?php
//
Initialisation de la variable auteur
$Auteur =
"Jules VERNE";
//
Initialisation de la variable ouvrage
$Ouvrage
= "voyage au centre de LA TERRE";
echo
"$Auteur a écrit $Ouvrage<br>";
// Maintenant
extraction et concaténation
echo substr($Auteur,0,6)." adore les ".substr($Ouvrage,0,6)."s.";
// Le
résultat de l'extraction et de la concaténation donnent
// Jules
adore les voyages.
?>
</body>
</html>
is_numeric(NomVariable);
Retourne
vrai si la variable passée en paramètre est de type numérique.
Roud(Valeur);
Retourne
l’entier le plus proche de la valeur passée en paramètre.
Ceil(Valeur);
Arrondit
à l’entier supérieur.
Floor(Valeur);
Arrondit
à l’entier inférieur.
La
fonction gettype permet de retourner le type de la
variable passée en paramètre.
Les 3
types les plus courants sont :
Voici un
exemple d’utilisation pour la fonction gettype :
<html>
<head>
<title> La fonction gettype</title>
</head>
<body>
<?php
//
création des variables
$Nom =
"VERNE";
$Age =
25;
$Poids =
40.5;
//
Affichage du type des variables
echo
"Pour le nom la variabe est de type ".gettype($Nom)."<br>";
echo
"Pour l'âge la variable est de type ".gettype($Age)."<br>";
echo
"Pour le poids la variable est de type ".gettype($Poids);
?>
</body>
</html>
Philippe
BOULANGER