Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
1,32 MB
Nội dung
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’, ’LivrePHP@carfantan.com’); ?> 3 Les clefs du PHP 60 • Double Poche PHP & MySQL Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark. [...]... ($clef="submit" || $clef="method"){ continue; } Pour les tableaux $HTTP_POST_VARS et $HTTP_GET_VARS, voyez le chapitre L’internaute est d’abord une personne Break et continue break permet de sortir de la boucle et continue perpétue la boucle en coupant l’exécution du bloc pendant le tour courant break permet de s’abstenir de limite supérieure dans la parenthèse de for car c’est break qui fixe cette limite à 2020... & MySQL • 67 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 3 Les clefs du PHP 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) ... entrées Vous pouvez le faire à la main ou utiliser les lettres avec une boucle et un opérateur unaire Nous le verrons dans le chapitre Des algorithmes, des outils et des fonctions Sur deux caractères, vous avez 674 possibilités et sur trois, 17574 combinaisons possibles Pour les chiffres, vous avez respectivement 99 et 999 combinaisons Double Poche PHP & MySQL • 71 Please purchase PDF Split-Merge on www.verypdf.com... 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... "er"; /*cette balise représente la position supérieure en puissance, pour celle en indice qui est en une position inférieure, utilisez */ } echo " mai, je suis en prison!\"."; //mettons le en gras $i++; // Oubliez cette ligne et vous générez une boucle infinie } echo "le $i mai, Je suis libéré!"; //enfin je suis libre!!! ?> 78 • Double Poche PHP & MySQL Please... initialisés par if et else Il est uniquement destiné à votre apprentissage car un programmeur utiliserait plutôt les fonctions d’heure Remarquez les retraits qui permet- Double Poche PHP & MySQL • 75 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 3 Les clefs du PHP tent de mieux lire le code ainsi que les commentaires, car les accolades sont parfois éloignées et il est bon... approfondirons les tests et les boucles plus loin dans ce chapitre Double Poche PHP & MySQL • 69 Please purchase PDF Split-Merge on www.verypdf.com to remove this watermark 3 Les clefs du PHP 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... erreur 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 70 • Double Poche PHP & MySQL Please purchase PDF Split-Merge...Variables scalaires 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... logiques Exemple Nom Résultat $a and $b ou $a && $b AND (et) Vrai si $a et $b sont vrais $a or $b ou $a || $b OR (ou) Vrai si $a ou $b, ou les deux, sont vrais $a xor $b XOR (ou exclusif) Vrai si $a ou $b sont vrais, mais pas les deux ensemble !$a NOT (non) Vrai si $a est faux Attention, && et and n’ont pas la même précédence, de même pour || et or, comme nous le voyons ci-dessous Priorité des opérateurs . 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. 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.