Tải bản đầy đủ (.pdf) (50 trang)

MySQL et CSS- P2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.32 MB, 50 trang )

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.


Détruisez-le, après l’avoir sauvegardé sur votre machine, pour des raisons
de sécurité. Il n’est pas bon de laisser des informations concernant les
coulisses de votre site chez votre hébergeur, à la disposition du public. Il
en sera de même pour un fichier qui contient un programme de courrier en
nombre à partir de votre base.
m
Figure 2.9 : affıchage de la fonction phpinfo()
2
Ma première page PHP
52 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
3
Les clefs
du PHP
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Dans ce chapitre, nous étudierons les règles de la syntaxe. Nous
aborderons surtout la nature des variables et des valeurs, les opérateurs qui
leur permettent d’interagir et les fonctions qui, à la manière de verbes,
articulent les mots et les modifient. À la différence d’une langue,
l’ordinateur compte et vérifie les valeurs, ce qui autorise les boucles et les
tests. Nous œuvrons au cœur d’un langage très démocratique où l’infor-
mation et le pouvoir sont largement distribués. Commençons par décliner
les différents types de variable.
3.1
Variables scalaires
Les variables scalaires contiennent une seule valeur, par opposition aux
tableaux qui en contiennent plusieurs.
Le nom de variable
Un nom de variable qui représente une valeur ou un ensemble de valeurs
doit commencer par une lettre ou un blanc souligné (_), suivi de lettres,

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

flottante. Il vous laisse cependant la possibilité de forcer le type :
$code_postal="06400";
$code_postal= (int)$code_postal;
Ici, $code_postal qui serait naturellement une chaîne de caractères à
cause des guillemets, peut être transtypé en nombre. Le forçage du type en
int lui enlève le 0 du début. Par contre, si 06400 avait été sans guillemets,
le nombre aurait interprété comme un octal à cause du 0 le précédant et
aurait donc valu donc 3328 sur la deuxième ligne. Vous le verrez avec
l’associativité des opérateurs, le sens du traitement avec l’affectation et le
transtypage est de la droite vers la gauche. La variable $code_postal est
ici transtypée puis affectée à elle-même, elle n’a plus rien d’un code
postal. Faites bien la différence entre un chiffre et un nombre sinon, vous
aurez des surprises.
Les entiers
Les variables de type entier sont assez simples à comprendre.
Vous pouvez écrire par exemple :
$a=1;
$b=2;
$c=$a+$b;
En l’occurrence, $c contient la valeur 3.
Variables scalaires
Double Poche PHP & MySQL • 55
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Si vous mettez les valeurs 1 et 2 entre guillemets doubles ou simples, PHP
devine qu’il s’agit de valeurs numériques et non de chaîne de caractères
grâce à l’opérateur +. Il fera, malgré tout, la somme des deux variables :
$a=’1’; $b="2"; $c=$a+$b;
PHP vous simplifie la vie car il assume ces tâches de typage des données
qui alourdissent inutilement le travail du programmeur et peuvent
constituer une source d’erreurs.

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.

Pour l’inverse, if ($variable) est true si la variable existe et qu’elle est
différente de 0,deNULL ou de "". Par contre, si elle vaut "", l’expression
renvoie aussi la valeur true.
Les chaînes de caractères
Le type string est de loin le plus utilisé. Les espaces sont significatifs à
l’intérieur d’une chaîne de caractères. Elle est encadrée par des guillemets
simples (apostrophes) ou doubles (guillemets anglais) qui conditionnent
l’interprétation des caractères de contrôle (nouvelle ligne, tabulation…) et
des variables insérées.
Les guillemets
Il en existe deux types, sans compter les guillemets arrière (′), utilisés pour
des commandes système sous Unix que nous n’évoquerons pas dans cet
ouvrage.
Les guillemets simples
Vous l’avez vu dans le chapitre précédent, les chaînes de caractères
insérées dans des guillemets simples sont affichées littéralement. Vous ne
pouvez donc y utiliser des variables.
$une_phrase=’je suis sur la page’;
affichera la phrase intégrale. Comment faire pour une phrase contenant
une apostrophe ?
$une_phrase=’je m’y emploie’;
Avec cette phrase, vous afficherez une erreur sur la page web. Pour y
remédier, il vous suffit d’ajouter un signe d’échappement avant l’apos-
trophe.
Maintenant, vous obtenez :
$une_phrase=’je m\’y emploie’;
Variables scalaires
Double Poche PHP & MySQL • 57
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Cette phrase est parfaitement acceptée par le moteur PHP qui, s’il voit un

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

page avec les attributs littéraux du texte en police courrier. Pour
afficher la ligne, il créera une balise <br> à chaque retour chariot.
Les guillemets doubles
Les guillemets doubles servent aussi à caractériser des chaînes de
caractères, avec cependant quelques nuances.
Comme nous l’avons vu, les doubles guillemets font une extrapolation de
variable, c’est-à-dire qu’ils remplacent le nom des variables par leur
valeur. D’autre part, ils permettent d’utiliser des syntaxes spéciales
d’échappement.
Prenons un exemple tiré du poème l’Âme du vin de Charles Baudelaire :
Listing 3.2 : L’Âme du vin : ame_vin.php
$vers1="Un soir, l’âme du vin chantait dans les bouteilles!<BR>\n";
$vers2=" – \"Homme, vers toi je pousse, ô cher déshérité,<BR>\n";
$vers3="Sous ma prison de verre et mes cires vermeilles,<BR>\n";
$vers4="Un chant plein de lumière et de fraternité!<BR>\n";
$strophe=$vers1.$vers2.$vers3.$vers4;
Cette strophe demande quelques éclaircissements.
m
Figure 3.1 : Passage à la ligne à l’intérieur de guillemets simples
Variables scalaires
Double Poche PHP & MySQL • 59
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Chaque ligne est close par une balise <BR> et une séquence d’échappe-
ment \n. Nous avons vu que la balise <BR> affichait une fin de ligne dans
une page web HTML. Le \n aussi. Le \n, exclusivement dans des
guillemets doubles, constitue une fin de ligne. Pourquoi mettre deux fois
une fin de ligne ? Simplement pour obtenir un code source propre et
lisible. La source HTML renvoyée par le moteur PHP sera :
Un soir, l’âme du vin chantait dans les bouteilles!<BR>
– "Homme, vers toi je pousse, ô cher déshérité,<BR>

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

décimales, il suffit de le faire une fois pour chaque fichier
(3.1415926535). La plupart des logiciels permettent un remplacement
approfondi et automatique dans tous les fichiers à l’intérieur d’un
répertoire. Ici, il sera plus aisé de changer uniquement cette ligne dans
chaque fichier.
Extrapolation des constantes
Les constantes ne sont pas extrapolées à l’intérieur d’une
chaîne de caractères.
Listing 3.3 : Extrapolation d’une constante : extrapolation_const.php
<?
echo ’<font face="Arial Black" size="5">’;
echo "1 : La valeur de Pi est ".PI.’<BR>’;
echo "2 : La valeur de Pi est PI<BR>";
echo "écrivez-moi à <A HREF=\"mailto:".MAIL."\">".MAIL."</A>";
echo ’</font>’;
?>
La constante n’est pas à l’intérieur des guillemets. Elle est concaténée
entre les deux parties de la phrase. Dans la ligne numérotée 2, elle n’est
pas extrapolée, étant à l’intérieur des parenthèses.
m
Figure 3.2 : Extrapolation d’une constante
Variables scalaires
Double Poche PHP & MySQL • 61
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Extrapolation de variable
Il arrive que vous soyez obligé de coller une variable à des caractères. S’il
s’agit de deux variables, cela fonctionne à condition de les encadrer de
guillemets doubles :
$annonce="Félicitations, vous y êtes arrivé";
$genre=’e’;

$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

Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
echo $nom_doiseau;
//ici le programme affichera Pigeon
?>
Nous en verrons les applications dans le chapitre Des algo-
rithmes, des outils et des fonctions.
Les tableaux
Le tableau est une variable qui contient plusieurs valeurs. Il existe deux
types de tableaux : les tableaux indexés par des nombres de0ànetles
tableaux indexés par des noms.
Les noms de tableaux
Réservez le pluriel dans les noms de variable aux tableaux
car en PHP, rien ne distingue le nom d’un tableau du nom d’une
variable scalaire.
L’index est le groupe d’indices qui permet de classer les données à
l’intérieur d’un tableau afin de pouvoir insérer des valeurs et les retirer le
cas échéant.
Les tableaux à index de noms sont des tableaux de hachage et ceux à
index numérique sont appelés simplement des tableaux. Enfin, les ta-
bleaux multidimensionnels sont des tableaux qui contiennent d’autres
tableaux et non des valeurs scalaires.
Les tableaux à index numérique
Pour entrer des données dans un tableau, il suffit d’utiliser les crochets :
$mon_tableau[]=$ma_case1;
La valeur de $ma_case1 se logera dans la première cellule du tableau,
qui est à l’indice 0. La deuxième valeur sera logée dans la cellule
d’indice 1, etc.
Variables scalaires
Double Poche PHP & MySQL • 63
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.

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

//une autre façon de faire
echo $mon_tableau_hachage[’François Rabelais’];
3
Les clefs du PHP
64 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Si pour la dernière ligne de l’exemple, vous utilisez des
guillemets avec echo, vous afficherez une erreur :
$mon_tableau_hachage[’François Rabelais’]=’Gargantua’;
echo "$mon_tableau_hachage[’François Rabelais’]";
//ce n’est pas valide
echo "{$mon_tableau_hachage[’François Rabelais’]}";
/*ici grâce aux accolades, la page affichera la
valeur correspondant à François Rabelais :
Gargantua.*/
Le nom ou le nombre qui indexe est appelé une clé et la valeur
correspondante une valeur. Pour ce type de tableau, on parle d’une paire
clé/valeur.
Clé unique
Chaque clé doit être unique sous peine d’effacer la valeur
précédente de clé identique.
Les tableaux multidimensionnels
Ce type de tableau est formé de tableaux de hachage ou de tableaux, ou
d’un mélange des deux.
La clé s’appuie sur le même principe que les deux types de tableaux
précédents mais la valeur peut être un tableauà1ountranches.
Rabelais a écrit plusieurs livres. Créons un nouveau tableau de hachage
contenant un tableau :
$livres[]="Gargantua";
$livres[]="Pantagruel";

$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";

$livres[’premier livre’]="Gargantua";
$livres[]="Tiers livre";
/* la clef sera donc 7, un numéro au-dessus de 6 l’indice maximum
précédent*/
$livres[6]="Quart livre";
/* cette dernière insertion écrasera l’ouvrage Pantagruel qui a le
même indice*/
$auteurs []=$livres;
echo $auteurs [0][6];
//affichera Quart livre
Vous pouvez aussi empiler des tableaux sur autant de niveaux que vous
pouvez en concevoir mais vous aurez peu d’occasions de les utiliser sur
autant de niveaux et perdriez beaucoup de temps à les concevoir.
3
Les clefs du PHP
66 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
3.2
Les opérateurs
Les opérateurs fournissent les fonctions essentielles à un langage de
programmation pour que les variables interagissent.
Les opérateurs arithmétiques
Tab. 3.3 : Les opérateurs arithmétiques
Nom Exemple Action
Addition $a+$b Additionne les valeurs de $a et de $b.
Soustraction $a−$b Soustrait la valeur de $b de la valeur de $a.
Multiplication $a*$b Multiplie les valeur de $a et de $b.
Division $a/$b Divise la valeur de $a par la valeur de $b.
Modulo $a%$b Retourne le reste de la division de la valeur
de $a par la valeur de $b.

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

positionné à 0 et vice versa.
$a<< $b Décalage à
gauche
Chaque bit est décalé de $b positions vers la
gauche. Les bits de gauche se retrouvent à
droite dans le même ordre.
$a>> $b Décalage à droite Chaque bit est décalé de $b positions vers la
droite. Le 8
e
bit devient le premier, etc.
Ces opérateurs servent à crypter un texte, par exemple. En décalant les bits
vers la gauche ou la droite avec une clé de1à8,vous modifiez les
caractères d’un texte. Il suffit ensuite de faire l’opération inverse pour
avoir le texte en clair. C’est comme un cercle où les deux extrémités se
rejoignent et où les 0 et les 1 se décalent dans un sens ou dans l’autre.
Cette méthode se combine avec des algorithmes plus complexes.
Les opérateurs de comparaison
Ces opérateurs sont très souvent utilisés pour tester des valeurs avec un if.
3
Les clefs du PHP
68 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.
Tab. 3.5 : Les opérateurs de comparaison
Exemple Nom Résultat
$a== $b Égal Vrai si $a est égal à $b
$a=== $b Identique Vrai si $a est égal à $b et de même type
$a!= $b ou
$a<> $b
Différent Vrai si $a est différent de $b
$a!== $b Non identique Vrai si $a est différent de $b ou s’ils ne

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

éclaircirons, mais en général il est assez précis. Par contre, nous n’avons
pas forcément intérêt à ce qu’un visiteur y accède. C’est pourquoi avant
de mettre en ligne vos pages, vous ferez des tests approfondis puis
utiliserez l’opérateur @. Il est collé devant une fonction.
Nous l’utilisons surtout pour les fonctions de connexion avec les bases de
données. Voici par exemple une fonction que nous verrons dans le chapitre
suivant :
$resultat=@mysql_db_query($dbname,$sql,$id_link);
Sans cet opérateur, il suffit que la base soit momentanément indisponible
pour obtenir des messages disgracieux.
Il vaut mieux contrôler l’erreur et écrire un message personnalisé. Nous
verrons cela dans le chapitre Mettre de l’ordre.
Aucune partie du programme ne sera exécutée si une erreur est décelée par
le compilateur. C’est un avantage car un programme tronqué peut être
dangereux et générer par exemple des boucles infinies. Il faut préciser que
m
Figure 3.3 : Affıchage d’une erreur
3
Les clefs du PHP
70 • Double Poche PHP & MySQL
Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×