Ce billet est à destination des développeurs php en herbe et sera en plusieurs partie !
Vous voulez le voir, lisez la suite !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
<?php // Début du code /*------------------------------- Variables, je suis changant ou constant ? -------------------------------*/ define ('contastantE', 100, true); //Nom est une constante dont la valeur est 100 et la casse est respectée lors de son appel. define ('CONSTANTE', 100); //Mais, par convention, il est vrai qu'avec un define, le nom de la constante est en maj. $variable = 100; // cette variable est égale à 100 /* ------------------------------- Opérateur d'affectation, ça et pas autre chose -------------------------------*/ $chaine = 'de caractère'; $entier = 100; /* ------------------------------- Transtypage, et pas transsexuel -------------------------------*/ $float = (float)$var; // décimal $int = (int)$var; // entier $string = (string)$var; //Chaîne de caractères $bool = (bool)$var; // Booléen /* ------------------------------- Concaténation, atchoum ! -------------------------------*/ $var = 'nom'; $string = 'votre '.$var; $string .= 'Adresse : '; $string .= 'Ville : '; // est la même chose que : // $string = 'votre nomAdresse :Ville :'; /* ------------------------------- Incrémentation, merde, des maths ! -------------------------------*/ $i = 1; ++$i; //Pre-incrémente Incrémente $a de 1, puis retourne $a $i++; //Post-incrémente Retourne $a , puis l'incrémente de 1 --$i; //Pré-décrémente Décrémente $a de 1, puis retourne $a $i--; //Post-décrémente Retourne $a , puis décrémente $a de 1 $i += 5; //Ajoute 5 à $i $i -= 5; //Soustrait 5 à $i /* ------------------------------- Chaînes de caractères, blablabla -------------------------------*/ $super = 'génial'; $string = "c'est $super !"; $string = "c'est ${super} !"; $string = "c'est {$super} !"; $string = "c'est un carré qui fait {$square->width}00 centimètre de coté"; $string = "c'est {$obj->values[0]->name} !"; $string = 'c'est '.$super.' !'; $string = "la valeur de $super est : $super"; // Si la chaîne de caractères est entourée de guillemets doubles ("), PHP interprétera plus de séquences échappées pour les caractères spéciaux : /* n Fin de ligne (LF ou 0x0A (10) en ASCII) r Retour à la ligne (CR ou 0x0D (13) en ASCII) t Tabulation horizontale (HT or 0x09 (9) en ASCII) v Tabulation verticale (VT ou 0x0B (11) en ASCII) (depuis PHP 5.2.5) e échappement (ESC or 0x1B (27) en ASCII) (depuis PHP 5.4.0) f Saut de page (FF ou 0x0C (12) en ASCII) (depuis PHP 5.2.5) \ Antislash $ Signe dollar " Guillemet double [0-7]{1,3} La séquence de caractères correspondant à une expression régulière est un caractère, en notation octal x[0-9A-Fa-f]{1,2} La séquence de caractères correspondant à une expression régulière est un caractère, en notation hexadécimale */ $string = "Ligne 1 n Line 2 n t Alinéa"; /* ------------------------------- Syntaxe heredoc, j'aime écrire des pavés ! -------------------------------*/ $var = 'nom'; $string = <<<EOT Cette chaine de caractère peut être très... très longue. Ici, la ligne 2 Et la troisième qui peut même contenir votre $var EOT; /* ------------------------------- Opérateurs de comparaison, t'es pas comme moi ! -------------------------------*/ $a == $b // si égalité $a > $b // si $a supérieur à $b $a < $b // si $a inférieur à $b $a <= $b // si $a inférieur ou égal à $b $a >= $b // si $a supérieur ou égal à $b $a != $b // si $a différent à $b $a === $b // si $a et $b sont des variables du même type $a !== $b // si $a et $b n'ont pas le même type variable /* ------------------------------- Le conditionnel, Sinon quoi !? ------------------------------- */ if ($a == $b) { // Si ma condition est vrai } else { // Si ma condition est fausse } if ($a != $b) { // Si $a n'est pas égale à $b } elseif ($a === $b) { // Sinon si $a est de même type que $b } else { // Sinon } switch ($a) { case 1: //Si $a = 1 break; case 2: // Si $a = 2 break; case 3: // Si $a = 3 break; case 4: // Si $a = 4 break; case 5: case 6: //Si $a = 5 ou 6 break; default : // Sinon } /* ------------------------------- J'tourne en boucle.... ! Ah, non ------------------------------- */ while ($condition) { // ça tourne en boucle jusqu'à ce que la condition soit vrai } for ($i = 0; $i < 10; $i++) { $i++; // On incrémente $i } $i = 10; while ($i != 0) { --$i; } $var = array[0,1,2,3,4,5,6,7,8,9]; foreach ($var as $variable) { echo $variable++; //On affiche toutes les valeurs de $var mais incrémentées } /* ------------------------------- Fonction, moi flémare ?! Oh oui ! ------------------------------- */ function nomDeLaFonction($arg1) { // Jeu d'instructions } function nomDeLaFonction($arg1 = 'moi, je suis la valeur par défaut') { // Jeu d'instructions } function je_m_appelle_pas($arg1, $arg2=0) { if ($arg2 == 0) { // Arg2 n'a pas été défini quand la fonction a été appelée } if ($arg1 == $arg2) { // $arg1 == $arg2 } } // Et comme je l'appelle ma fonction ? je_m_appelle_pas(1); // Arg2 vaudra 0 je_m_appelle_pas(1,5); // Arg2 vaudra 5 /* ------------------------------- Affichage, heu, j'y vois rien... ------------------------------- */ echo 'hello world'; // Affiche hello world printf('PHP %2d, PHP %.2f'); // Afficher un texte formaté print_r($var); var_dump($obj); // Et un script php, ça se ferme ! ?> |
Je suis pas fan du 3ème paramètre du define à true, en général on écrit le nom des constantes en majuscule et on garde la sensibilitée à la casse.
Dans une classe on utilisera “const” à la place de “define”
Une erreur dans la partie sur le transtypage. int -> entier ; float -> decimal
Une erreur dans la partie sur la concaténation. A la fin $string = ‘votre nomAdresse : Ville : ‘;
Pour compléter la partie syntaxe heredoc, PHP a introduit nowdoc depuis la version 5.3
Sur la partie “Le conditionnel”, on utilise de préférence les if/elseif/else qui sont beaucoup plus performant que les switch/case/break
Partie “je tourne en boucle”, tu as une double incrémentation dans ta boucle for
Merde,j’pensais avoir shooté les commentaires =)
Après, ce n’est qu’un mémo (le premier d’une série de 3 ou 4). Le 3ème paramètre existe et il faut bien en parler… J’ai quand même ajouté la convention :)
Dans les classes, oui mais je passe outre, ça sera pour un autre mémo.
Concernant le nowdoc, vi, j’avais zappé -_-‘ Next mémo.
Pour les courageux : http://www.php.net/manual/fr/language.types.string.php#language.types.string.syntax.nowdoc
Agree pour les cond, le bench est meilleur sur les if mais les switch existent ^^
Enfin, pour les boucles, t’as vendu la mèche ! C’est voulu =)
Ps : Int < -> Float… Prochaine fois, je dors un peu avant de le faire ^^