Il existe des différences entre le guillemet double et le guillemet simple
car la ligne 4, si on avait employé des guillemets simples, aurait affiché
littéralement $mon_nom Rabelais, c’est-à-dire que la variable n’aurait pas
été extrapolée mais prise pour un mot commençant par le signe dollar.
Nous approfondirons dans le chapitre 3 les différences entre les
guillemets simples et les guillemets doubles.
Les commentaires
Les commentaires sont uniquement destinés au programmeur. Ils ne
seront ni affichés, ni exécutés. Ils permettent d’identifier telle partie de
programme sans interférer dans le programme.
En HTML, le commentaire s’écrit ainsi <!−− Ceci est un commentaire
−−>.
En langage PHP, votre commentaire tient sur une ligne :
// Ceci est un commentaire sur mon code PHP
Mais si vous voulez documenter soigneusement votre programme (recom-
mandé), vous avez toute licence d’écrire un commentaire de plusieurs
lignes :
/* Ceci est un commentaire sur mon programme en PHP qui va me
permettre de retrouver mon aiguille dans le tas de foin qu’est
devenu mon code après moults ajouts */
PHPinfo()
Sur votre machine, à la page d’accueil d’EasyPHP, cliquez sur le bouton
infos php. Vous verrez apparaître la configuration de votre moteur PHP.
Vous pouvez visualiser cette liste de configuration sur le serveur de votre
hébergeur en créant un fichier :
<?
phpinfo();
?>
Ma page
Double Poche PHP & MySQL • 51
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
chiffres ou soulignés. Attention, le langage PHP distingue la casse dans le
nom des variables. Ainsi $Fromage et $fromage sont des variables
différentes.
Choix du nom des variables
Soyez cohérent dans le choix du nom des variables. L’ob-
jectif est d’obtenir un nom signifiant pour vous mais pas trop
explicite. $nbre_bouteille sera aussi significatif que $nombre_de_bou-
teilles mais vous aurez moins de caractères à taper à chaque fois que
vous l’utiliserez. Soyez rigoureux dans vos critères de nommage. Évitez
les capitales car vous risquez de les oublier la deuxième fois que vous
taperez le nom de la variable et d’engendrer ainsi une erreur avec une
variable inexistante. Notez que le nom du champ d’un formulaire est
utilisé pour nommer la variable qui en est issue, soyez rigoureux aussi
sur ces noms de champ.
La valeur des variables scalaires peut être de plusieurs types. Il est bon de
connaître ces derniers même si en général, le langage PHP fait le travail
à votre place dans la plus grande transparence.
3
Les clefs du PHP
54 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Le type des variables
Tab. 3.1 : Les différents types de variables
Type En français Exemple
integer ou int Entier 45
float Nombre à virgule 45.2
string Chaîne de caractères "J’veux faire du PHP!"
boolean ou bool Booléen false ou true
Les variables en langage PHP sont typées implicitement. Ainsi, PHP
reconnaîtra un chiffre ou des lettres et le point du nombre à virgule
Les nombres à virgule flottante
Méfiez-vous des float, c’est-à-dire des nombres à virgule flottante, car ils
opèrent une approximation sur le résultat. Si vous avez comme résultat
d’une opération un nombre tel que 6.555973333, il arrive souvent que les
chiffres suivent la virgule à l’infini. Comme toute bonne chose a une fin,
l’ordinateur opère une approximation sur le nombre pour ne pas générer
un bogue de programme sans fin.
En anglais, le point remplace la virgule du français. Le type float com-
prend donc un point.
Nous verrons dans le chapitre Des algorithmes, des outils et
des fonctions qu’il suffit de formater le nombre pour faire
apparaître une virgule à la place du point.
Les booléens
Pour spécifier un booléen, vous pouvez utiliser false ou TRUE. Ce dernier
est insensible à la casse.
Les valeurs considérées comme false sont :
¶ le booléen FALSE ;
¶ l’entier 0 (zéro) ;
¶ le nombre à virgule flottante 0.0 (zéro) ;
¶ la chaîne de caractères vide et le caractère 0 ;
¶ un tableau sans élément ;
¶ le type NULL (y compris les variables passées par la fonction unset()).
3
Les clefs du PHP
56 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Les autres valeurs sont considérées comme true.
L’intérêt de cette liste est que les valeurs false répondront true au test
if(!$variable)que nous évoquerons plus loin dans les structures de
contrôle.
guillemet simple commencer une chaîne, cherche le deuxième guillemet
qui la clôt. Quand il trouve l’apostrophe, il conclut qu’elle sert de clôture
à la chaîne, alors aidez-le avec une barre oblique inversée pour qu’il fasse
la différence entre une apostrophe et un guillemet simple fermant.
Les guillemets simples sont très utiles au programmeur qui doit écrire un
certain nombre de lignes HTML avec des echo. Il n’aura pas besoin de
placer des caractères d’échappement devant chaque guillemet double
délimitant les valeurs d’attribut HTML.
echo ’<td bgcolor="#FFFFFF"><font face="Arial">Email:</font></td>’;
sera correct. Vous disposez d’un outil très accommodant.
Les caractères d’échappement
Le caractère d’échappement (ici, la barre oblique inversée)
permet de signifier que le caractère suivant échappe à son
interprétation normale.
Si vous allez à la ligne dans une chaîne entre guillemets simples, cette
dernière affichera ce passage à la ligne :
Listing 3.1 : <pre> avec des guillemets simples : pre.php
<?
$phrase=’<PRE>Je vais à la ligne
Ah je suis une ligne plus bas!
Bon, je m\’arrête là.</PRE>’;
echo "<font size=\"7\"><b>$phrase</b></font>";
?>
La page web affichera le passage à la ligne.
3
Les clefs du PHP
58 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
La balise <PRE>
La balise HTML <pre> demande au navigateur d’afficher la
Sous ma prison de verre et mes cires vermeilles,<BR>
Un chant plein de lumière et de fraternité!<BR>
La séquence d’échappement \n n’est pas répercutée dans l’affichage de la
page mais dans l’affichage du code source HTML.
D’autre part, vous avez remarqué sans doute que la séquence \"
permettait d’insérer des guillemets doubles dans une chaîne encadrée
elle-même de guillemets doubles, comme pour l’apostrophe précédem-
ment. Par contre, l’apostrophe n’a pas besoin de barre oblique inversée à
l’intérieur de doubles guillemets, c’est logique.
Tab. 3.2 : Les séquences d’échappement
Séquence d’échappement Définition
\n Nouvelle ligne
\r Retour chariot (utilisé uniquement sous Windows)
\t Tabulation
\$ Le signe Dollar
\\ Barre oblique inversée
Les constantes
Les constantes représentent un confort pour le programmeur. Elles évitent
une perte de temps et les programmes gagnent en lisibilité. Elles
s’écrivent en capitales.
Pour les déclarer, utilisez la fonction define() :
<?
define (’PI’, 3.1415);
define (’MAIL’, ’’);
?>
3
Les clefs du PHP
60 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Il est plus facile de taper PI que 3.1415 et si vous décidez d’ajouter des
$fin_annonce=", vous gagnez une bouteille de Bourgueil!";
echo $annonce$genre$fin_annonce;
Le résultat affichera : Félicitations, vous y êtes arrivé, vous
gagnez une bouteille de Bourgueil!.
Par contre, si vous désirez coller une variable devant un mot quelconque,
le moteur PHP prendra les deux mots pour une seule variable. Vous
pouvez malgré tout l’afficher en utilisant des accolades :
$nombre=10;
echo "Patience! c’est la ${nombre}e fois que vous cliquez pour
envoyer ce formulaire que nous sommes déjà en train de traiter";
Le résultat affichera : Patience! c’est la 10e fois que vous cliquez
pour envoyer ce formulaire que nous sommes déjà en train de
traiter.
Le langage PHP a été forgé par des utilisateurs confrontés à tous les
problèmes possibles sur Internet. Des solutions adaptées ont été apportées
au fil des versions. Seule le Libre pouvait le permettre.
Construire une variable dynamique
Le langage PHP est un langage de bricoleurs mais on ne bricole pas sans
une certaine rigueur. Ainsi, il est possible de construire une variable à
partir d’une autre variable qui fournit un nom en dynamique :
Listing 3.4 : Variables dynamiques : var_dynamique.php
<?
// commencez par créer la variable qui donnera le nom
$nom_au_vol="nom_doiseau";
// ensuite donnez une valeur à la variable dynamique
$$nom_au_vol=’Pigeon’;
//enfin vous pouvez l’utiliser
3
Les clefs du PHP
62 • Double Poche PHP & MySQL
Vous pouvez choisir la case où sera insérée votre valeur :
$mon_tableau[4]=$ma_case1;
Ici, la valeur sera insérée dans la 5
e
case.
Tout tableau commence à l’indice 0
La première case étant la case 0, ne confondez pas la place
de la dernière cellule dans le tableau et le nombre de cellules
dans le tableau. Si vous avez cinq cases, l’index de la dernière est 4.
Pour récupérer une valeur du tableau, il suffit de connaître sa place :
$ma_valeur=$mon_tableau[4];
echo $ma_valeur;
echo "<br>";
//une autre façon de faire
echo "$mon_tableau[4]";
Les tableaux de hachage (ou tables d’adressage
associatif)
Ces tableaux sont indexés par nom, ce qui est souvent plus pratique, un
peu comme les URL d’Internet.
Il est plus facile de taper et de mémoriser www.multidimensionalmusic
.com que 207.158.192.40, numéro IP du serveur.
Nous utilisons le même système pour insérer une donnée ou la récupérer
mais il est plus facile de retrouver une donnée avec un nom.
Les guillemets simples pour l’indice nominal
N’oubliez pas les guillemets simples pour encadrer le nom à
l’intérieur des crochets :
$mon_tableau_hachage[’François Rabelais’]=’Gargantua’;
$livre=$mon_tableau_hachage[’François Rabelais’];
echo $livre;
//affichera Gargantua
$auteurs [’François Rabelais’]=$livres;
echo $auteurs [’François Rabelais’][1];
//affichera Pantagruel
Variables scalaires
Double Poche PHP & MySQL • 65
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Essayons maintenant un tableau de hachage contenant un tableau de
hachage :
$livres[’premier livre’]="Gargantua";
$livres[’deuxième livre’]="Pantagruel";
$auteurs [’François Rabelais’]=$livres;
echo $auteurs [’François Rabelais’][’premier livre’];
//affichera Gargantua
Nous n’avons pas encore essayé un tableau contenant un tableau de
hachage :
$livres[’premier livre’]="Gargantua";
$livres[’deuxième livre’]="Pantagruel";
$auteurs []=$livres;
echo $auteurs [0][’premier livre’];
//affichera Gargantua
Enfin, il n’y a pas de raison de délaisser le tableau contenant un tableau,
surtout qu’il se révèle très utile dans les boucles, comme nous le verrons
dans le chapitre MySQL en action :
$livres[]="Gargantua";
$livres[]="Pantagruel";
$auteurs []=$livres;
echo $auteurs [0][1];
//affichera Pantagruel
Vous pouvez mélanger les deux types d’index dans le même tableau :
$livres[6]="Pantagruel";
Les opérateurs d’affectation
L’opérateur d’affectation est le signe =. Ne le confondez pas avec
l’opérateur de comparaison == (égal à).
Ainsi, dans $a=3, la variable $a reçoit la valeur 3.
Des déclinaisons de cet opérateur proposent au programmeur des raccour-
cis. Il suffit de combiner le signe égal à un opérateur arithmétique, à un
opérateur de bit ou à l’opérateur de concaténation :
$a=6;
$a+=3; // $a prend la valeur de 9
$a-=2; // $a prend la valeur de 7
$a%=3; //$a prend la valeur de 1 (reste de la division de 7/3)
$a="Bonjour";
$a.=", il fait beau"; // résultat : Bonjour, il fait beau
Les opérateurs
Double Poche PHP & MySQL • 67
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Les opérateurs de bits
Chaque caractère est composé d’un octet, c’est-à-dire 8 bits (0 ou 1).
Ainsi, la lettre A est codée 01000001 et la lettre a, 01100001.
Les opérateurs portent surtout sur les bits positionnés sur la valeur 1.
Tab. 3.4 : Les opérateurs de bits
Exemple Nom Effet
$a & $b AND (et) Les bits à 1 dans les deux variables restent à
1.
$a | $b OR (ou) Les bits à 1 dans l’une ou les deux variables
restent à 1.
$a ^ $b XOR (ou exclusif) Chaque bit à 1 dans $a ou dans $b reste à 1
sauf si le bit est à 1 pour les deux variables.
Dans ce cas, il est positionné à 0.
~$a NO (non) Chaque bit est inversé. Le bit à 1 est
sont pas de même type
$a < $b Plus petit Vrai si $a est plus strictement petit que
$b
$a > $b Plus grand Vrai si $a est strictement plus grand que
$b
$a <=$b Inférieur ou égal Vrai si $a est plus petit ou égal à $b
$a >=$b Supérieur ou égal Vrai si $a est plus grand ou égal à $b
Il reste un opérateur de comparaison que nous présentons à part,
l’opérateur ternaire ?.
$a==$b ? $c=8 : $c=2;
Si la valeur de $a est égale à la valeur de $b, $c prend la valeur 8, sinon
$c prendra la valeur 2.
On l’utilise surtout pour des expressions courtes. On peut remplacer
l’exemple par :
if ($a==$b){
$c=8;
}
else {
$c=2;
}
Nous approfondirons les tests et les boucles plus loin dans ce
chapitre.
Les opérateurs
Double Poche PHP & MySQL • 69
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Les opérateurs de contrôle d’erreur
En PHP, les erreurs sont signalées sur la page directement avec le nom du
fichier et le numéro de ligne d’où l’erreur provient. Nous verrons dans le
chapitre Mettre de l’ordre que le numéro de la ligne ou le nom du fichier
peuvent être différents de celui qui est indiqué pour des raisons que nous