1 00:00:00,000 --> 00:00:02,400 [Powered by Google Translate] [PHP Syntaxe] 2 00:00:02,400 --> 00:00:04,400 [Tommy MacWilliam] [Université de Harvard] 3 00:00:04,400 --> 00:00:07,400 [C'est CS50.] [CS50.TV] 4 00:00:07,400 --> 00:00:10,080 >> Dans cette vidéo, nous allons présenter PHP - 5 00:00:10,080 --> 00:00:12,820 l'une des langues que nous allons utiliser dans CS50 6 00:00:12,820 --> 00:00:15,480 comme nous la transition vers le développement web. 7 00:00:15,480 --> 00:00:19,250 PHP signifie pour PHP Hypertext Processor, 8 00:00:19,250 --> 00:00:23,440 ou PHP Hypertext Processor Hypertext Processor, 9 00:00:23,440 --> 00:00:24,880 et je m'arrête là. 10 00:00:24,880 --> 00:00:29,280 PHP est un acronyme récursif, qui je pense est vraiment génial. 11 00:00:29,280 --> 00:00:32,020 >> Donc, nous allons écrire 'bonjour' en PHP, 12 00:00:32,020 --> 00:00:37,240 qui sera un peu différente de celle du monde bonjour »en C que nous avons appris à connaître et à aimer. 13 00:00:37,240 --> 00:00:40,330 Au lieu de créer un fichier appelé hello.c, 14 00:00:40,330 --> 00:00:42,990 nous allons créer hello.php. 15 00:00:42,990 --> 00:00:52,430 Tout notre code PHP sera contenue entre . 16 00:00:52,430 --> 00:00:56,160 Si nous avons un code PHP qui se trouve 17 00:00:56,160 --> 00:00:59,140 en dehors de ces séparateurs, il ne s'exécutera pas. 18 00:00:59,140 --> 00:01:01,740 Nous pouvons avoir le plus grand nombre de ces blocs PHP 19 00:01:01,740 --> 00:01:05,090 que nous voulons dans un seul fichier PHP. 20 00:01:05,090 --> 00:01:09,000 En PHP, il ya pas besoin d'une fonction principale. 21 00:01:09,000 --> 00:01:15,540 Au lieu de cela, notre code PHP sera exécuté dans l'ordre qu'il apparaît dans notre fichier PHP. 22 00:01:15,540 --> 00:01:20,970 Les deux C et PHP ont une fonction 'printf' pour sortir des données. 23 00:01:20,970 --> 00:01:27,270 Mais en PHP, nous n'avons pas besoin de # include des fichiers d'en-tête comme standardIO.h. 24 00:01:27,270 --> 00:01:31,830 C'est parce que dans PHP, nous ne serons pas compiler notre code. 25 00:01:31,830 --> 00:01:35,560 Lorsque nous avons écrit le code C notre flux de travail tend à être l'ouverture 26 00:01:35,560 --> 00:01:39,560 un ou plusieurs. c ou les fichiers. h, leur évolution, leur compilation, 27 00:01:39,560 --> 00:01:41,980 et en exécutant le binaire résultant. 28 00:01:41,980 --> 00:01:45,800 Découvrez la vidéo des compilateurs pour plus d'informations sur ce processus. 29 00:01:45,800 --> 00:01:51,480 >> Contrairement à C, PHP est un langage interprété - langue - plutôt que compilé. 30 00:01:51,480 --> 00:01:54,080 Cela signifie que le code PHP nous écrire 31 00:01:54,080 --> 00:01:57,360 sera exécuté à travers un programme spécial appelé un interprète, 32 00:01:57,360 --> 00:02:00,440 qui à son tour exécuter notre code. 33 00:02:00,440 --> 00:02:03,020 Pour exécuter notre code PHP, 34 00:02:03,020 --> 00:02:07,860 nous enverrons le long de l'interpréteur PHP qui se chargera de son exécution, 35 00:02:07,860 --> 00:02:11,260 plutôt que de le compiler en code machine. 36 00:02:11,260 --> 00:02:13,450 Voyons l'interprète en action. 37 00:02:13,450 --> 00:02:17,010 Nous allons ouvrir un terminal et exécutez la commande PHP 38 00:02:17,010 --> 00:02:21,130 suivi par le chemin vers le fichier PHP que nous aimerions faire fonctionner. 39 00:02:21,130 --> 00:02:25,690 Nous disons, 'php hello.php ». 40 00:02:25,690 --> 00:02:30,200 Et là nous allons. Il ya la sortie de notre programme PHP. 41 00:02:30,200 --> 00:02:33,460 Nous n'avons pas besoin de compiler notre fichier PHP du tout. 42 00:02:33,460 --> 00:02:37,280 Au lieu de cela, nous avons eu un autre programme - l'interpréteur PHP - 43 00:02:37,280 --> 00:02:40,070 exécuter le code source que nous avons écrit. 44 00:02:40,070 --> 00:02:43,280 >> PHP peut faire beaucoup plus que simplement printf. 45 00:02:43,280 --> 00:02:46,490 Écrivons certains programmes de PHP plus complexes. 46 00:02:46,490 --> 00:02:52,240 La syntaxe des constructions - comme si, d'autre, tandis que, pour et switch - 47 00:02:52,240 --> 00:02:55,440 est la même en PHP et C. 48 00:02:55,440 --> 00:03:01,180 Tout comme C, chacune de ces constructions utilise des accolades pour délimiter leur corps, 49 00:03:01,180 --> 00:03:04,420 et tout comme en C, chaque ligne nous écrivons 50 00:03:04,420 --> 00:03:06,830 doit se terminer par un point-virgule; 51 00:03:06,830 --> 00:03:10,700 Toutefois, les variables sont gérées un peu différemment en PHP. 52 00:03:10,700 --> 00:03:15,630 Tout d'abord, toutes les variables PHP doivent commencer par le signe dollar. 53 00:03:15,630 --> 00:03:18,700 Il semble un peu bizarre au début, mais vous y habituer. 54 00:03:18,700 --> 00:03:22,150 Deuxièmement, PHP est un langage faiblement typé 55 00:03:22,150 --> 00:03:24,570 ce qui signifie que vous n'avez pas besoin d'énumérer explicitement 56 00:03:24,570 --> 00:03:27,640 le type d'une variable lorsque vous le créez. 57 00:03:27,640 --> 00:03:33,430 Où en C, vous aurez besoin de dire int x = 5; 58 00:03:33,430 --> 00:03:38,650 ou char y = 'a'; 59 00:03:39,250 --> 00:03:44,790 en PHP, nous pouvons simplement dire $ x = 5; 60 00:03:44,790 --> 00:03:48,930 et $ y = 'a';. 61 00:03:48,930 --> 00:03:52,360 La même chose s'applique aux fonctions. 62 00:03:52,360 --> 00:04:01,290 Plutôt que de dire int f () {le corps de notre fonction} 63 00:04:01,290 --> 00:04:12,160 en PHP, nous allons dire la fonction f () {le corps de notre fonction}. 64 00:04:12,160 --> 00:04:17,579 Nous n'avons pas besoin de spécifier explicitement le type de retour de notre fonction f. 65 00:04:17,579 --> 00:04:22,070 Fonctions en PHP n'ont pas non plus pour renvoyer le même type 66 00:04:22,070 --> 00:04:23,840 chaque fois qu'ils sont exécutés. 67 00:04:23,840 --> 00:04:27,940 Par exemple, nous pourrions écrire une fonction qui retourne FALSE si une erreur 68 00:04:27,940 --> 00:04:29,750 et un autre type si elle réussit. 69 00:04:29,750 --> 00:04:33,060 >> Cela peut aussi nous aider à écrire des fonctions plus génériques. 70 00:04:33,060 --> 00:04:35,710 Par exemple, nous pourrions écrire une fonction de complément unique 71 00:04:35,710 --> 00:04:39,200 qui peut retourner un entier si 2 entiers sont donnés 72 00:04:39,200 --> 00:04:41,250 ou un flotteur si 2 flotteurs sont donnés. 73 00:04:41,250 --> 00:04:45,530 En C, nous aurions besoin d'écrire 2 fonctions distinctes pour ce faire. 74 00:04:45,530 --> 00:04:49,230 Alors que dans C, nous utilisons des pointeurs pour une augmentation de salaire et cordes, 75 00:04:49,230 --> 00:04:52,170 nous ne serons pas en mesure d'utiliser des pointeurs en PHP. 76 00:04:52,170 --> 00:04:58,030 Au lieu de cela, les deux tableaux et les chaînes sont des types intégrés dans PHP. 77 00:04:58,030 --> 00:04:59,660 Ils sont construits à droite dans la langue. 78 00:04:59,660 --> 00:05:02,270 Pour créer un tableau en PHP, nous pouvons dire, 79 00:05:02,270 --> 00:05:11,280 $ Une matrice = (1, 2, 3); 80 00:05:11,280 --> 00:05:19,400 ou plus simplement $ a = [1, 2, 3];. 81 00:05:19,400 --> 00:05:24,990 Nous index dans ce tableau peuvent utiliser la même syntaxe que nous sommes habitués à de C. 82 00:05:24,990 --> 00:05:31,780 Pour obtenir le premier élément que nous allons dire, $ a [0];. 83 00:05:31,780 --> 00:05:36,290 PHP dispose également d'un support intégré pour les tableaux associatifs. 84 00:05:36,290 --> 00:05:41,460 Les tableaux associatifs sont comme le hachage structure de données de table, nous avons déjà vu - 85 00:05:41,460 --> 00:05:44,060 ils correspondent une clé à une valeur. 86 00:05:44,060 --> 00:05:46,070 >> Prenons un oeil à un exemple. 87 00:05:46,070 --> 00:06:14,740 Nous pouvons dire, $ personnel = ["instructeur" => "david", "tf" => "tommy"];. 88 00:06:14,740 --> 00:06:21,020 Ici, j'ai un tableau associatif avec 2 clés - instructeur et tf. 89 00:06:21,020 --> 00:06:24,910 La double flèche, ou égal-plus-que, 90 00:06:24,910 --> 00:06:29,660 est utilisé pour séparer d'une clé et la valeur correspondante. 91 00:06:29,660 --> 00:06:41,830 Ainsi, la valeur de $ personnel ["tf"] est la chaîne "tommy". 92 00:06:41,830 --> 00:06:44,430 Les valeurs d'un tableau associatif - 93 00:06:44,430 --> 00:06:47,540 tout comme n'importe quel autre réseau - peuvent être de tout type. 94 00:06:47,540 --> 00:07:23,370 Par exemple, nous pourrions dire, $ personnel = ["instructeur" => "david", "TFS" => ["tommy", "rob"]];. 95 00:07:23,370 --> 00:07:27,810 Maintenant, la valeur de «TFS» est un tableau. 96 00:07:27,810 --> 00:07:33,030 Cela signifie que les valeurs à l'intérieur d'un tableau associatif peuvent être de différents types. 97 00:07:33,030 --> 00:07:36,750 >> Tableaux PHP n'ont pas non plus une longueur fixe, 98 00:07:36,750 --> 00:07:40,200 afin que nous puissions ajouter ou supprimer des éléments d'un tableau. 99 00:07:40,200 --> 00:07:49,130 Disons que nous avons un simple tableau comme $ a = [1, 2, 3];. 100 00:07:49,130 --> 00:07:51,860 Pour ajouter un nouvel élément à ce tableau, 101 00:07:51,860 --> 00:07:57,160 nous pouvons dire, $ a [] = 4;. 102 00:07:57,160 --> 00:08:03,630 Maintenant, notre gamme se compose de quatre éléments - [1, 2, 3, 4]. 103 00:08:03,630 --> 00:08:06,980 Rappelons que si nous voulions faire quelque chose comme ça en C, 104 00:08:06,980 --> 00:08:09,610 nous aurions à attribuer une toute nouvelle gamme, 105 00:08:09,610 --> 00:08:12,400 copier le contenu de notre première série en elle, 106 00:08:12,400 --> 00:08:15,870 puis définissez le dernier élément du nouveau tableau de notre nouvelle valeur. 107 00:08:15,870 --> 00:08:18,390 C'est beaucoup plus facile en PHP. 108 00:08:18,390 --> 00:08:21,230 Si notre tableau est un tableau associatif 109 00:08:21,230 --> 00:08:24,810 nous pouvons simplement définir une nouvelle clé pour créer un élément 110 00:08:24,810 --> 00:08:26,250 si elle n'existe pas encore. 111 00:08:26,250 --> 00:08:30,010 Si nous avons notre plus tôt array - $ personnel - 112 00:08:30,010 --> 00:08:38,679 nous pouvons dire $ personnel ["total"] = 3;. 113 00:08:38,679 --> 00:08:43,330 Maintenant, nous avons une nouvelle clé avec la valeur de 3. 114 00:08:43,330 --> 00:08:46,460 >> Pour obtenir le nombre d'éléments dans un tableau, 115 00:08:46,460 --> 00:08:48,230 nous pouvons utiliser la fonction 'count'. 116 00:08:48,230 --> 00:08:56,100 Si nous disons, count ($ a);, qui aura une valeur de 4. 117 00:08:56,100 --> 00:09:01,930 En PHP, nous pouvons créer des chaînes utilisant des guillemets doubles ou simples, 118 00:09:01,930 --> 00:09:04,470 si ces deux variables sont des chaînes. 119 00:09:04,470 --> 00:09:21,780 $ S1 = "string"; $ s2 = 'autre chaîne';. 120 00:09:21,780 --> 00:09:23,920 Quelle est la différence entre les deux? 121 00:09:23,920 --> 00:09:26,950 Eh bien, il est assez fréquent de vouloir inclure le 122 00:09:26,950 --> 00:09:29,600 la valeur d'une variable à l'intérieur d'une chaîne. 123 00:09:29,600 --> 00:09:34,390 Une façon de faire serait d'utiliser l'opérateur point de PHP, 124 00:09:34,390 --> 00:09:36,630 qui concatène des chaînes. 125 00:09:36,630 --> 00:09:38,680 Nous pourrions faire quelque chose comme ça - 126 00:09:38,680 --> 00:09:53,800 $ N = 5; $ s = 'n est' $ n.;. 127 00:09:53,800 --> 00:09:57,430 Voici notre variable n est un entier. 128 00:09:57,430 --> 00:10:00,020 Mais quand nous concaténer avec une chaîne, 129 00:10:00,020 --> 00:10:04,110 PHP elle sera automatiquement convertie en une chaîne pour nous. 130 00:10:04,110 --> 00:10:09,090 Ou nous pouvons simplement utiliser des guillemets pour mettre la variable dans la chaîne elle-même. 131 00:10:09,090 --> 00:10:19,290 Nous pouvons dire, $ s = "n est $ n";. 132 00:10:19,290 --> 00:10:24,040 Maintenant, la valeur de $ s sera 'n 5'. 133 00:10:24,040 --> 00:10:34,250 Si nous utilisons des guillemets simples, comme dans $ s = 'n est $ n'; 134 00:10:34,250 --> 00:10:39,670 la valeur de s sera 'n est $ n';. 135 00:10:39,670 --> 00:10:43,720 La valeur de n sera pas remplacé si nous utilisons des guillemets simples, 136 00:10:43,720 --> 00:10:47,150 mais il sera si nous utilisons des guillemets. 137 00:10:47,150 --> 00:10:51,800 Si nous voulons utiliser des guillemets pour inclure la valeur d'un tableau dans une chaîne, 138 00:10:51,800 --> 00:10:55,060 nous devons inclure les accolades autour du tableau, comme cela - 139 00:10:55,060 --> 00:11:14,470 $ S = "{$ personnel ['total']}";. 140 00:11:14,470 --> 00:11:20,350 >> Jetons maintenant un oeil à un petit extrait en C et le traduire en PHP. 141 00:11:20,350 --> 00:11:25,410 Ici, nous créons une fonction qui affiche les lettres d'une chaîne, 142 00:11:25,410 --> 00:11:27,310 un caractère par ligne. 143 00:11:27,310 --> 00:11:32,250 Faisons la même chose en PHP. 144 00:11:32,250 --> 00:11:36,530 Tout d'abord, nous aurons besoin de nos séparateurs PHP. 145 00:11:36,530 --> 00:11:39,000 Lorsque nous créons notre fonction, 146 00:11:39,000 --> 00:11:42,740 nous n'avons pas besoin de spécifier son type de retour ou le type de son argument. 147 00:11:42,740 --> 00:11:46,890 Notre variable s doit aussi commencer par un signe dollar. 148 00:11:46,890 --> 00:11:51,590 Strlen fonction de PHP nous donne la longueur d'une chaîne, 149 00:11:51,590 --> 00:11:55,660 tout comme C de strlen nous donne la longueur d'une chaîne. 150 00:11:55,660 --> 00:11:59,060 Sous le capot, cependant, ces fonctions sont en fait un peu différent 151 00:11:59,060 --> 00:12:03,010 depuis une chaîne est un type intégré dans PHP. 152 00:12:03,010 --> 00:12:06,930 La syntaxe de notre boucle "for" est le même. 153 00:12:06,930 --> 00:12:13,530 >> En PHP, on peut également utiliser la notation de tableau pour accéder aux caractères d'une chaîne. 154 00:12:13,530 --> 00:12:19,350 Nous pouvons maintenant utiliser la fonction d'impression pour imprimer chaque lettre de la chaîne. 155 00:12:19,350 --> 00:12:23,080 Avec la fonction d'impression de PHP, nous n'avons pas besoin de s'inquiéter des espaces réservés - 156 00:12:23,080 --> 00:12:28,200 comme% d% c ou - lorsque l'on veut imprimer une variable qui n'est pas une chaîne. 157 00:12:28,200 --> 00:12:33,590 Au lieu de cela, nous ne pouvons tout simplement passer une variable d'un type quelconque de la fonction d'impression, 158 00:12:33,590 --> 00:12:36,810 et elle sera convertie en une chaîne et affichée. 159 00:12:36,810 --> 00:12:43,430 Et c'est tout! Voyons maintenant fonctionner notre fichier avec PHP print.php ». 160 00:12:43,430 --> 00:12:48,160 Et il ya la sortie, nous avons vu de notre programme C. 161 00:12:48,160 --> 00:12:52,120 >> PHP supporte aussi un concept appelé la boucle 'foreach'. 162 00:12:52,120 --> 00:12:54,800 La boucle 'foreach' est comme une boucle "for", 163 00:12:54,800 --> 00:12:59,080 mais il ajoute un peu de sucre syntaxique pour rendre les choses plus lisible. 164 00:12:59,080 --> 00:13:03,690 Ici, nous créons un nouveau tableau intitulé «$ array». 165 00:13:03,690 --> 00:13:10,090 Maintenant nous pouvons dire, foreach ($ array que $ nombre), 166 00:13:10,090 --> 00:13:12,390 et nous pouvons imprimer $ nombre. 167 00:13:12,390 --> 00:13:20,650 Quand nous courons ce fichier - php-foreach.php-nous pouvons voir chaque numéro sur sa propre ligne. 168 00:13:20,650 --> 00:13:26,700 >> Lorsque nous avons écrit le code C, il est souvent utile d'organiser notre code dans des fichiers séparés. 169 00:13:26,700 --> 00:13:29,170 En PHP, nous pouvons faire la même chose. 170 00:13:29,170 --> 00:13:33,870 Disons que nous avons un certain nombre de fonctions dans un fichier appelé math.php. 171 00:13:33,870 --> 00:13:38,900 Si je veux utiliser ces fonctions dans un autre fichier PHP, comme calculator.php, 172 00:13:38,900 --> 00:13:44,110 Je peux utiliser la fonction de require_once () de PHP. 173 00:13:44,110 --> 00:13:47,110 Require_once est comme # include. 174 00:13:47,110 --> 00:13:52,050 Lorsqu'on leur donne un chemin vers un fichier, il sera essentiellement copiez et collez le contenu 175 00:13:52,050 --> 00:13:54,930 de ce fichier dans le fichier actuel. 176 00:13:54,930 --> 00:14:00,150 Require_once garantit que chaque fichier est incluse dans le fichier en cours une seule fois, 177 00:14:00,150 --> 00:14:05,680 ce qui peut être utile si vous avez une grande collection de fichiers PHP nécessitant l'autre. 178 00:14:05,680 --> 00:14:07,750 Prenons un oeil à un exemple. 179 00:14:07,750 --> 00:14:12,620 Ici, nous avons une collection de fonctions que je voudrais utiliser dans un autre fichier. 180 00:14:12,620 --> 00:14:14,990 Prenons un oeil à la façon dont nous pouvons les utiliser. 181 00:14:14,990 --> 00:14:20,700 Sur la ligne 3, nous exigeons math.php. 182 00:14:20,700 --> 00:14:27,170 Le '__DIR__' est une constante spécifique représentant le répertoire courant 183 00:14:27,170 --> 00:14:33,440 depuis math.php et calculator.php sont situés dans le même répertoire. 184 00:14:33,440 --> 00:14:38,010 Après nous avons besoin math.php, nous pouvons utiliser les fonctions 185 00:14:38,010 --> 00:14:41,690  comme si nous avons défini dans calculator.php. 186 00:14:41,690 --> 00:14:47,440 Lançons avec 'php calculator.php ». Great! 187 00:14:47,440 --> 00:14:50,880 >> C'est tout pour notre introduction à la syntaxe de PHP. 188 00:14:50,880 --> 00:14:53,700 Pour en savoir plus, consultez PHP.net. 189 00:14:53,700 --> 00:14:59,470 PHP dispose d'un grand nombre de fonctions intégrées, et heureusement, sa documentation est vraiment génial. 190 00:14:59,470 --> 00:15:02,680 Mon nom est Tommy, et c'est CS50. 191 00:15:02,680 --> 00:15:04,680 [CS50.TV] 192 00:15:04,680 --> 00:15:14,000 >> ... Parenthèse, je suis sorti de la pièce. Damn it! Il s'agit de la dernière vidéo où je utiliser de grands mots dans le code.