1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Donc, nous avons fait beaucoup de travail en C, 3 00:00:07,370 --> 00:00:09,536 et C est un vraiment cool langue, car il vous donne 4 00:00:09,536 --> 00:00:12,840 la capacité de vraiment plonger faible niveau dans vos programmes. 5 00:00:12,840 --> 00:00:16,810 Nous arrivons à faire les choses comme vraiment minutes que la manipulation 6 00:00:16,810 --> 00:00:18,800 octets individuels de mémoire. 7 00:00:18,800 --> 00:00:21,420 Rappelons que les pointeurs vraiment nous permettre cette souplesse. 8 00:00:21,420 --> 00:00:25,260 >> Mais avons-nous toujours besoin d'avoir ce niveau de détail à grain fin 9 00:00:25,260 --> 00:00:26,820 dans nos programmes? 10 00:00:26,820 --> 00:00:28,210 Probablement pas, non? 11 00:00:28,210 --> 00:00:30,376 Et si nous allons avoir un compromis entre être 12 00:00:30,376 --> 00:00:32,911 capable de faire vraiment, vraiment choses minute et vraiment, vraiment 13 00:00:32,911 --> 00:00:35,910 de grandes choses que nous ne devons pas penser à propos, nous ne devons pas mettre en œuvre 14 00:00:35,910 --> 00:00:40,290 ces très grandes idées si ils sont déjà construits en pour nous, 15 00:00:40,290 --> 00:00:43,980 généralement pour la construction de gros programmes ou de grands projets, 16 00:00:43,980 --> 00:00:49,130 nous allons probablement se tromper sur le côté ayant de plus des trucs de langue construite en 17 00:00:49,130 --> 00:00:51,300 pour nous, au lieu d'avoir les trucs de bas niveau. 18 00:00:51,300 --> 00:00:53,970 Et voilà où PHP vient vraiment. 19 00:00:53,970 --> 00:00:58,200 >> Or, l'une des raisons que nous enseignons dans PHP CS50 20 00:00:58,200 --> 00:01:01,020 est qu'il est fortement inspiré par C. Et en fait, à mon avis, 21 00:01:01,020 --> 00:01:05,140 Il ya vraiment deux langues progénitrices qui 22 00:01:05,140 --> 00:01:08,200 sont très courant de nos jours. 23 00:01:08,200 --> 00:01:10,110 C et LISP. 24 00:01:10,110 --> 00:01:13,280 Et ils sont langues progénitrices parce que chaque autre programmation moderne 25 00:01:13,280 --> 00:01:17,380 langue qui a développé depuis lors, est inspiré 26 00:01:17,380 --> 00:01:20,330 par un ou l'autre syntaxiquement. 27 00:01:20,330 --> 00:01:26,160 PHP est très similaire syntaxiquement à C, alors que des langages comme Scheme, 28 00:01:26,160 --> 00:01:27,900 par exemple, qui vous avez peut-être entendu parler, 29 00:01:27,900 --> 00:01:32,070 est fortement inspiré par une langue appelé LISP, qui est une langue plus. 30 00:01:32,070 --> 00:01:34,220 >> Donc, la raison pour laquelle nous enseignons PHP dans CS50 est que, 31 00:01:34,220 --> 00:01:37,730 en sachant C comme fondamentalement comme vous le faites en ce moment, 32 00:01:37,730 --> 00:01:41,280 ramasser PHP, qui vous donne la capacité de faire beaucoup plus de choses au niveau 33 00:01:41,280 --> 00:01:44,710 que fait C, est pas que beaucoup d'un obstacle, 34 00:01:44,710 --> 00:01:48,230 parce que vous avez déjà idée de base de la syntaxe. 35 00:01:48,230 --> 00:01:50,590 C est là depuis presque 45 ans à ce point. 36 00:01:50,590 --> 00:01:52,780 PHP a été autour pendant environ 20 années. 37 00:01:52,780 --> 00:01:57,080 Et en ce que 25 ans entre les deux, les programmeurs 38 00:01:57,080 --> 00:02:01,540 déterminé qu'ils seraient beaucoup plus avoir plutôt plus élevés des capacités de niveau, 39 00:02:01,540 --> 00:02:04,970 et les erreurs et les luttes des 20 ans entre les deux 40 00:02:04,970 --> 00:02:08,210 conduit à PHP et autres langages modernes. 41 00:02:08,210 --> 00:02:11,039 >> Un grand choix de PHP langue pour le logiciel 42 00:02:11,039 --> 00:02:14,042 que pour allow-- logiciel that-- où vous 43 00:02:14,042 --> 00:02:16,250 besoin de faire des choses que, dans C est en fait complexe. 44 00:02:16,250 --> 00:02:18,480 Ainsi, par exemple, en travaillant avec des chaînes en C 45 00:02:18,480 --> 00:02:21,709 est très compliqué, parce que comme nous le savons, chaînes en C 46 00:02:21,709 --> 00:02:23,250 sont vraiment juste des tableaux de caractères. 47 00:02:23,250 --> 00:02:25,230 Il est pas un type de données intégré. 48 00:02:25,230 --> 00:02:28,220 Ou peut-être plus fondamentalement, quelque chose que nous ne couvre même pas en C, 49 00:02:28,220 --> 00:02:30,360 Que faire si vous devez faire certains réseaux informatiques? 50 00:02:30,360 --> 00:02:30,860 Bien? 51 00:02:30,860 --> 00:02:34,920 >> C a la capacité de le faire, mais il est si arcane et si difficile de le faire réellement. 52 00:02:34,920 --> 00:02:37,580 Ce ne serait pas bien si le langue avait un moyen simple et intégré 53 00:02:37,580 --> 00:02:38,910 à mettre en oeuvre en réseau? 54 00:02:38,910 --> 00:02:43,420 Et PHP est un langage qui fait que, ou facilite ce que, un peu plus. 55 00:02:43,420 --> 00:02:47,740 Comme je le disais, PHP est très fortement inspiré par C. La syntaxe est très similaire. 56 00:02:47,740 --> 00:02:51,760 Et il devrait, espérons rendre le transition de l'un à l'autre 57 00:02:51,760 --> 00:02:54,710 un peu plus doux que certains d'autres langues pourraient être. 58 00:02:54,710 --> 00:02:58,800 >> Pour commencer à écrire PHP, ouvrez juste en haut un fichier avec l'extension de fichier .php. 59 00:02:58,800 --> 00:03:00,670 Techniquement, cela est pas en fait nécessaire, 60 00:03:00,670 --> 00:03:04,495 mais si vous voulez des choses comme la syntaxe soulignant en IDE, de sorte que le type 61 00:03:04,495 --> 00:03:07,620 noms ou noms de variables, fonctions, vous le savez, les mots-clés de la langue 62 00:03:07,620 --> 00:03:10,090 sont mis en évidence dans un couleur spécifique, vous généralement 63 00:03:10,090 --> 00:03:14,020 vouloir nommer vos fichiers avec une extension de fichier particulier. 64 00:03:14,020 --> 00:03:18,430 Donc, nous avons appelé notre fichier avec un .php extension, mais aussi avec PHP, 65 00:03:18,430 --> 00:03:23,310 tout le code PHP en ce que nous écrivons fichier doit être enfermé dans ces PHP 66 00:03:23,310 --> 00:03:25,190 séparateurs que nous voyons ici sur l'écran. 67 00:03:25,190 --> 00:03:27,910 Equerre? Php pour commencer. 68 00:03:27,910 --> 00:03:30,860 Ensuite, nous écrivons tous nos PHP code que nous voulons entre les deux. 69 00:03:30,860 --> 00:03:32,260 Et alors ? 70 00:03:32,260 --> 00:03:34,710 équerre pour fermer. 71 00:03:34,710 --> 00:03:37,170 >> Si nous ne faisons pas cela, alors ce qu'il va se passer? 72 00:03:37,170 --> 00:03:38,170 Il ne va pas tomber en panne. 73 00:03:38,170 --> 00:03:39,410 Il ne va pas vraiment ruiner notre programme. 74 00:03:39,410 --> 00:03:41,440 Mais il ne va pas avoir l'effet que nous voulons. 75 00:03:41,440 --> 00:03:44,540 Qu'est-ce qui va se passer, vraiment, est que lorsque nous essayons et exécuter ce programme, 76 00:03:44,540 --> 00:03:50,330 tout pas entre ces délimiteurs va être imprimé verbatim. 77 00:03:50,330 --> 00:03:52,210 Il ne va pas effectivement exécuter le code, 78 00:03:52,210 --> 00:03:56,010 il va tout simplement imprimer textuellement. 79 00:03:56,010 --> 00:03:57,320 >> Maintenant, pourquoi est le cas? 80 00:03:57,320 --> 00:04:00,416 Donc C est ce qui est connu comme un langage compilé. 81 00:04:00,416 --> 00:04:03,040 Vous êtes probablement familier avec l'étape de réalisation de vos programmes, 82 00:04:03,040 --> 00:04:07,820 tournant les fichiers .c et .h en un seul exécutable avec make, 83 00:04:07,820 --> 00:04:11,130 notamment à l'aide Clang que notre compilateur. 84 00:04:11,130 --> 00:04:13,030 PHP, cependant, ne fonctionne pas cette équivalente. 85 00:04:13,030 --> 00:04:15,600 PHP est ce qu'on appelle un langage interprété. 86 00:04:15,600 --> 00:04:16,760 Et qu'est ce que ca veut dire? 87 00:04:16,760 --> 00:04:20,680 >> Eh bien, cela signifie que nous ne disposons pas de convertir notre code source de zéros et de uns 88 00:04:20,680 --> 00:04:21,470 préalablement. 89 00:04:21,470 --> 00:04:23,900 Au contraire, il ya un programme, qui est aussi appelé 90 00:04:23,900 --> 00:04:29,771 PHP, qui comprend PHP et peut sorte de rendre à la volée. 91 00:04:29,771 --> 00:04:32,520 Cela ne veut pas vraiment tout à fait exacte, mais il est une très bonne analogie 92 00:04:32,520 --> 00:04:33,760 de ce qui se passe. 93 00:04:33,760 --> 00:04:37,230 Il est l'interprétation de ceux zéros et des uns à la volée. 94 00:04:37,230 --> 00:04:40,160 Et donc si elle ne sait pas la façon de traiter quelque chose, 95 00:04:40,160 --> 00:04:42,800 si elle ne sait pas comment processus PHP, vous avez probablement 96 00:04:42,800 --> 00:04:44,680 voulu mettre ce texte en bas, à droite? 97 00:04:44,680 --> 00:04:48,960 >> Vous avez probablement voulu mettre le code en là, même si elle est non pas entre PHP-- 98 00:04:48,960 --> 00:04:50,035 les séparateurs de PHP. 99 00:04:50,035 --> 00:04:51,910 Mais-- si ça ne va pas à supprimer pour vous, 100 00:04:51,910 --> 00:04:53,576 il va juste jeter essentiellement cela. 101 00:04:53,576 --> 00:04:55,550 Donc, il va imprimer sortir à l'écran. 102 00:04:55,550 --> 00:04:57,150 >> Cela semble comme elle est une mauvaise chose, mais en réalité il est 103 00:04:57,150 --> 00:04:58,220 va être un très bonne chose, comme nous allons 104 00:04:58,220 --> 00:05:00,390 voir lorsque nous parlons de Développement web PHP, 105 00:05:00,390 --> 00:05:04,010 parce que cela signifie que nous pouvons intercaler PHP et HTML. 106 00:05:04,010 --> 00:05:06,640 Nous pouvons les utiliser ensemble pour créer une page web plus dynamique. 107 00:05:06,640 --> 00:05:10,650 Mais plus que dans la vidéo sur le développement web PHP. 108 00:05:10,650 --> 00:05:12,021 >> Alors, quelle est la syntaxe de PHP? 109 00:05:12,021 --> 00:05:13,520 Voilà ce que cette vidéo est tout au sujet. 110 00:05:13,520 --> 00:05:14,850 Parlons-en. 111 00:05:14,850 --> 00:05:16,490 >> Donc, pour commencer, les variables. 112 00:05:16,490 --> 00:05:18,030 Les variables PHP existent. 113 00:05:18,030 --> 00:05:20,067 Il ya juste deux gros les différences de C. 114 00:05:20,067 --> 00:05:21,900 La première est qu'il ya aucun type prescripteur. 115 00:05:21,900 --> 00:05:24,245 Nous ne disposons pas de dire int, char, float, tout ça. 116 00:05:24,245 --> 00:05:25,620 Nous ne devons pas faire ça. 117 00:05:25,620 --> 00:05:26,810 PHP est un langage moderne. 118 00:05:26,810 --> 00:05:28,910 Il peut comprendre ce que vous êtes essayer de faire ou de faire une meilleure 119 00:05:28,910 --> 00:05:30,451 deviner ce que vous essayez de faire. 120 00:05:30,451 --> 00:05:31,700 Voilà donc assez agréable. 121 00:05:31,700 --> 00:05:35,330 >> L'autre chose est que tous les variables Les noms doivent commencer par un signe de dollar. 122 00:05:35,330 --> 00:05:36,940 Voilà juste quelque chose pour s'y habituer. 123 00:05:36,940 --> 00:05:39,496 Il est un peu bizarre, parce il est donc que PHP peut comprendre 124 00:05:39,496 --> 00:05:40,870 ce qui est une variable et ce qui l'est pas. 125 00:05:40,870 --> 00:05:43,340 Ainsi, chaque nom de variable commence par un signe de dollar. 126 00:05:43,340 --> 00:05:46,884 Donc, en C, nous pourrions dire quelque chose comme ça, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Nous ne devons pas faire ça en PHP. 128 00:05:48,550 --> 00:05:52,540 Nous pouvons simplement dire $ x = 54. 129 00:05:52,540 --> 00:05:55,920 Et nous pourrions dire, par exemple, en C, si nous avions inclus le livre-.h CS50 130 00:05:55,920 --> 00:06:00,314 fichier d'entête, nous pourrions dire expression de chaîne = "Ceci est CS50." 131 00:06:00,314 --> 00:06:01,980 Nous ne devons pas le faire en PHP, cependant. 132 00:06:01,980 --> 00:06:04,865 Nous pouvons simplement dire $ phrase = "Ceci est CS50." 133 00:06:04,865 --> 00:06:08,760 Et en fait, la chaîne est maintenant un type de données intégré en PHP, 134 00:06:08,760 --> 00:06:10,950 ou plutôt PHP comprend ce qui est une chaîne. 135 00:06:10,950 --> 00:06:15,612 Il est séparé d'un tableau des personnages comme il est dans C. 136 00:06:15,612 --> 00:06:17,570 Tout votre favori instructions conditionnelles de C 137 00:06:17,570 --> 00:06:19,520 sont toujours disponibles pour vous à utiliser. 138 00:06:19,520 --> 00:06:21,140 Donc, pas de grande transition il. 139 00:06:21,140 --> 00:06:23,400 Nous pouvons say-- nous pouvons avoir si les déclarations de ce genre. 140 00:06:23,400 --> 00:06:28,210 si $ y 43, ou $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Voilà donc assez simple. 142 00:06:29,690 --> 00:06:31,980 Nous pouvons avoir si et d'autre. 143 00:06:31,980 --> 00:06:34,210 Nous pouvons avoir si et autre si. 144 00:06:34,210 --> 00:06:36,430 >> Et remarquer quelque chose assez agréable ici, et cela 145 00:06:36,430 --> 00:06:39,620 est une sorte de l'un de ceux avantages de PHP par rapport à C, un avis 146 00:06:39,620 --> 00:06:41,510 quelle fonction nous ne sommes pas en utilisant ici? 147 00:06:41,510 --> 00:06:47,737 Nous utilisons == pour comparer une variable $ nom, à une chaîne. 148 00:06:47,737 --> 00:06:49,070 Nous ne pouvions pas le faire en C, à droite? 149 00:06:49,070 --> 00:06:53,200 Nous avons dû utiliser une fonction appelée StrComp ou StrEndComp ou tout 150 00:06:53,200 --> 00:06:54,840 de ses cousines connexes. 151 00:06:54,840 --> 00:06:56,980 >> Et ainsi, nous voyons déjà ces avantages. 152 00:06:56,980 --> 00:07:00,930 Nous ne disposons pas de faire quelque chose aussi stupide ou peut-être intuitif 153 00:07:00,930 --> 00:07:03,540 comme appeler une fonction appelée StrComp si je veux juste tester 154 00:07:03,540 --> 00:07:05,237 si une valeur est égale à une chaîne. 155 00:07:05,237 --> 00:07:07,820 Je ne pouvais tout simplement utiliser est égal à égal, comme je ne pouvais rien faire d'autre. 156 00:07:07,820 --> 00:07:09,560 Donc, il ya un avantage. 157 00:07:09,560 --> 00:07:13,350 >> Parfois, d'ailleurs, vous pourriez voir ailleurs si en un seul mot, elseif. 158 00:07:13,350 --> 00:07:14,910 Et cela est OK en PHP ainsi. 159 00:07:14,910 --> 00:07:17,020 Donc, parfois, vous pourriez voir cela. 160 00:07:17,020 --> 00:07:17,790 Il est pas une faute de frappe. 161 00:07:17,790 --> 00:07:21,830 PHP comprend réellement elseif. 162 00:07:21,830 --> 00:07:23,980 Je ne sais pas pourquoi ils décidé de mettre en œuvre ce que, 163 00:07:23,980 --> 00:07:28,220 mais comme nous l'avons vu à plusieurs reprises tout au long de nos vidéos jusqu'ici, 164 00:07:28,220 --> 00:07:30,460 nous aimons si les programmeurs nous pouvons faire les choses rapidement, 165 00:07:30,460 --> 00:07:33,660 afin de se débarrasser de cet espace est apparemment un grand avantage. 166 00:07:33,660 --> 00:07:34,800 >> Voilà donc si et elseif. 167 00:07:34,800 --> 00:07:37,540 Nous avons aussi l'opérateur ternaire, rappel interrogation côlon, 168 00:07:37,540 --> 00:07:43,262 formulaire très court si quelque ou de branchement conditionnel. 169 00:07:43,262 --> 00:07:45,470 Et apparemment, dans ce domaine, ce que nous essayons de faire ici 170 00:07:45,470 --> 00:07:49,720 est assigner la variable $ lettre soit vrai ou faux, 171 00:07:49,720 --> 00:07:54,110 selon que $ var est un caractère alphabétique. 172 00:07:54,110 --> 00:07:57,320 Donc, cela est assez similaire à isalpha que nous sommes familiers avec de C. 173 00:07:57,320 --> 00:07:59,010 Cette est une sorte de l'équivalent en PHP. 174 00:07:59,010 --> 00:08:01,550 La fonction est apparemment appelé ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 mais voilà comment nous le faisons en PHP. 176 00:08:03,450 --> 00:08:08,560 Donc, tout cela va être est, si $ var est une lettre, lettre $ est vrai. 177 00:08:08,560 --> 00:08:13,820 Si $ var est pas une lettre, $ lettre est fausse. 178 00:08:13,820 --> 00:08:15,820 >> Nous avons également des déclarations de commutation encore. 179 00:08:15,820 --> 00:08:17,870 Nous rappelons ceux de C ainsi. 180 00:08:17,870 --> 00:08:22,480 Au sommet il, voilà comment nous faisons quelque chose comme int get ou obtenir chaîne. 181 00:08:22,480 --> 00:08:23,845 Alors que PHP a construit en. 182 00:08:23,845 --> 00:08:25,470 Nous ne devons plus la bibliothèque de CS50. 183 00:08:25,470 --> 00:08:27,237 Nous pouvons simplement utiliser la fonction readline. 184 00:08:27,237 --> 00:08:29,820 Qu'est-ce que cela va faire est d'impression le message, "Votre état, 185 00:08:29,820 --> 00:08:33,820 s'il vous plaît ", puis clignote rapidement attente pour l'utilisateur d'entrer 186 00:08:33,820 --> 00:08:34,739 des informations. 187 00:08:34,739 --> 00:08:36,530 Maintenant, remarquez quoi d'autre nous pouvons faire avec interrupteur. 188 00:08:36,530 --> 00:08:39,105 Si vous avez utilisé avant, Vous vous souviendrez que l'interrupteur 189 00:08:39,105 --> 00:08:44,960 est limitée à peu près en nombres entiers et personnages, mais maintenant nous pouvons utiliser des chaînes. 190 00:08:44,960 --> 00:08:50,190 Et en fait, l'instruction switch PHP est un peu plus souple 191 00:08:50,190 --> 00:08:54,880 que son cousin de C. 192 00:08:54,880 --> 00:08:55,380 Boucles. 193 00:08:55,380 --> 00:08:58,130 Tout comme conditionnelles, tous vos vieux favoris sont toujours là. 194 00:08:58,130 --> 00:09:00,740 Nous avons tout en boucles qui comptent 1-100 dans ce cas. 195 00:09:00,740 --> 00:09:03,940 Nous avons tout faire boucles qui comptent de 1 à 100, 196 00:09:03,940 --> 00:09:06,200 et nous avons pour les boucles qui comptent de 1 à 100. 197 00:09:06,200 --> 00:09:07,220 Donc pas grand saut il. 198 00:09:07,220 --> 00:09:09,360 La syntaxe est assez près exactement la même, 199 00:09:09,360 --> 00:09:11,760 sauf que maintenant nous utilisons dollar signe variable au lieu 200 00:09:11,760 --> 00:09:17,260 de déclarer des variables entières ou quelque chose comme ça pour nos compteurs. 201 00:09:17,260 --> 00:09:20,090 >> Voici où les choses deviennent un beaucoup mieux que C, cependant. 202 00:09:20,090 --> 00:09:21,020 Tableaux. 203 00:09:21,020 --> 00:09:23,020 Alors souvenez quand nous étions parler C, afin 204 00:09:23,020 --> 00:09:25,560 pour nous de grandir et rétrécir ensembles d'informations, 205 00:09:25,560 --> 00:09:28,310 nous devions trier du défaut à cette idée d'une liste chaînée, 206 00:09:28,310 --> 00:09:30,780 parce tableaux C ont été fixés dans la taille. 207 00:09:30,780 --> 00:09:31,800 Nous ne pouvions pas les réduire. 208 00:09:31,800 --> 00:09:32,930 Nous ne pouvions pas les cultiver. 209 00:09:32,930 --> 00:09:36,074 Nous avons dû réaffecter la mémoire et faire tout cette folie 210 00:09:36,074 --> 00:09:38,490 ou utiliser les listes chaînées, qui prendre jusqu'à un espace assez peu plus. 211 00:09:38,490 --> 00:09:41,590 Mais en PHP, les tableaux sont pas de taille fixe plus. 212 00:09:41,590 --> 00:09:43,240 Ils peuvent se développer et ils peuvent rétrécir. 213 00:09:43,240 --> 00:09:46,660 Encore une fois, ces 20 ans qui existaient entre la première version de C 214 00:09:46,660 --> 00:09:49,440 et la première version de PHP, nous avons décidé que, vous le savez, 215 00:09:49,440 --> 00:09:51,670 il serait vraiment super si nous pouvions le faire. 216 00:09:51,670 --> 00:09:54,100 Et donc nous avons mis en œuvre cette. 217 00:09:54,100 --> 00:09:58,040 >> Donc tableaux PHP ne sont pas fixés dans la taille, et parce que PHP n'a pas vraiment 218 00:09:58,040 --> 00:10:03,090 avoir programmeur face à l'avant notions de types, 219 00:10:03,090 --> 00:10:05,110 nous pouvons mélanger des types de données dans nos tableaux, aussi. 220 00:10:05,110 --> 00:10:08,100 Donc, nous ne disposons même pas d'utiliser tous entiers ou tous les points flottants, 221 00:10:08,100 --> 00:10:12,826 nous pouvons avoir un mélange de tout différents types dans un seul tableau. 222 00:10:12,826 --> 00:10:14,700 Déclaration d'un tableau est assez simple. 223 00:10:14,700 --> 00:10:16,116 Il est juste comme toute autre variable. 224 00:10:16,116 --> 00:10:20,020 nums $ = array (1, 2, 3, 4), réseau étant une fonction 225 00:10:20,020 --> 00:10:22,760 qui est intégré dans PHP va créer un tableau pour vous. 226 00:10:22,760 --> 00:10:28,315 Cela crée un tableau de quatre valeurs, numéros, dans ce cas, appelés nums $. 227 00:10:28,315 --> 00:10:29,940 Et il ya plus d'une façon de le faire. 228 00:10:29,940 --> 00:10:32,420 Et nous allons voir ce lot en PHP. 229 00:10:32,420 --> 00:10:36,380 PHP a été développé par de nombreux différents les gens et se développe et grandit et se développe. 230 00:10:36,380 --> 00:10:40,050 Il ya habituellement pas seulement deux ou trois façons de faire quelque chose en PHP, 231 00:10:40,050 --> 00:10:42,170 il ya habituellement comme 10 ou 20. 232 00:10:42,170 --> 00:10:45,300 Voici juste une autre commune façon de déclarer un tableau. 233 00:10:45,300 --> 00:10:48,310 $ nums = CROCHET 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Donc, ce genre de est similaire à l'angle C br-- notation accolade, plutôt. $ - 235 00:10:53,170 --> 00:10:58,525 ou il serait int nums carré supports égale accolade 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 En PHP, il est nums $ = carré supports 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Mais ces deux exemples me donner ici un tableau de quatre dans ce cas des entiers. 238 00:11:08,920 --> 00:11:10,920 >> Que faire si je veux virer quelque chose maintenant? 239 00:11:10,920 --> 00:11:14,760 Eh bien, je peux juste dire $ nums 4, qui encore une fois, nous sommes toujours en partant de 0 ici 240 00:11:14,760 --> 00:11:17,800 en PHP, serait la cinquième élément du tableau. 241 00:11:17,800 --> 00:11:18,990 Je peux juste dire que. 242 00:11:18,990 --> 00:11:22,860 Je ne vais pas à souffrir d'un seg faute, parce que mon tableau est juste 243 00:11:22,860 --> 00:11:24,337 va croître en tenir compte. 244 00:11:24,337 --> 00:11:25,420 Voilà assez agréable, non? 245 00:11:25,420 --> 00:11:28,400 Et en fait, je ne même pas besoin de préciser où je veux le mettre. 246 00:11:28,400 --> 00:11:31,220 Je peux juste dire ceci et juste virer à droite sur la fin, 247 00:11:31,220 --> 00:11:34,099 Ou je pourrais même juste dire nums $ 20 ou 1000. 248 00:11:34,099 --> 00:11:35,140 Il n'a pas vraiment d'importance. 249 00:11:35,140 --> 00:11:38,330 Il est encore juste aller virer à droite sur la fin. 250 00:11:38,330 --> 00:11:41,490 >> Je ne peux donc croître, et nous sommes as-- ne va pas couvrir ici, 251 00:11:41,490 --> 00:11:45,360 mais je peux raccorder ou de la bande éléments sur le tableau ainsi, 252 00:11:45,360 --> 00:11:50,064 et le réseau va diminuer pour accueillir que maintenant manquant ou espace vide. 253 00:11:50,064 --> 00:11:52,230 Il ya une autre façon de virer de bord quelque chose sur un réseau, 254 00:11:52,230 --> 00:11:54,330 qui est une fonction appelée array_push. 255 00:11:54,330 --> 00:11:57,860 Donc encore une fois, juste pour cette idée d'être en mesure de faire des choses différentes façons. 256 00:11:57,860 --> 00:12:01,950 Donc, nous avons vu trois façons différentes maintenant de virer de bord un autre élément dans un tableau. 257 00:12:01,950 --> 00:12:06,900 Donc, ce qui ajoute un autre élément à la fin du tableau de nums $. 258 00:12:06,900 --> 00:12:08,340 Et nous pouvons mélanger jusqu'à nos types de données. 259 00:12:08,340 --> 00:12:13,110 Donc, je pourrais avoir un tableau de pas 1, 2, 3, 4, 1, mais, vrai, 3, 4, 260 00:12:13,110 --> 00:12:16,420 où la vraie est un booléen, puis si je veux virer sur un autre élément 261 00:12:16,420 --> 00:12:20,860 à ce tableau, peut-être une chaîne, la chaîne «cinq», je pouvais le faire. 262 00:12:20,860 --> 00:12:26,110 Et maintenant, mon tableau serait être de 1, vrai, 3, 4, cinq. 263 00:12:26,110 --> 00:12:28,640 Le mot de cinq, pas l'entier 5. 264 00:12:28,640 --> 00:12:31,270 Il ya donc beaucoup de souplesse. 265 00:12:31,270 --> 00:12:33,290 >> La flexibilité devient mieux encore, cependant, 266 00:12:33,290 --> 00:12:37,530 parce que PHP a un support pour quelque chose appelé un tableau associatif. 267 00:12:37,530 --> 00:12:40,660 Et nous avons parlé vaguement sorte de tableaux associatifs à propos de C 268 00:12:40,660 --> 00:12:44,740 dans le cadre de tables de hachage, parce que ce que les tableaux associatifs sont vraiment tout 269 00:12:44,740 --> 00:12:48,950 environ sont faisant clé mappings valeur paire. 270 00:12:48,950 --> 00:12:53,410 Et dans ce cas, l'keys-- si nous sommes familiers avec les tableaux de C, 271 00:12:53,410 --> 00:12:55,440 les touches sont des numéros d'index. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 Et les valeurs sont ce que nous constatons que 0 tableau, tableau 1, tableau 2, et ainsi de suite. 274 00:13:03,070 --> 00:13:06,310 Ainsi, les touches sont des indices, et les valeurs sont 275 00:13:06,310 --> 00:13:10,060 ce qui est dans cet emplacement de choix, spécifié par cet indice. 276 00:13:10,060 --> 00:13:15,130 >> Mais en PHP, nous ne devons pas le faire notion de tableau 0, tableau 1, tableau 2 277 00:13:15,130 --> 00:13:15,830 plus. 278 00:13:15,830 --> 00:13:21,025 Nous pouvons maintenant utiliser des mots réels pour mapper les touches aux valeurs. 279 00:13:21,025 --> 00:13:22,650 Et donc je pourrais dire quelque chose comme ça. 280 00:13:22,650 --> 00:13:26,710 Je pourrais créer un tableau en utilisant la crochet syntaxe comme suit. 281 00:13:26,710 --> 00:13:30,685 $ pizzas = crochet «fromage», puis 282 00:13:30,685 --> 00:13:37,210 ce genre de notation double flèche, 8.99, «pepperoni," flèche 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 et ainsi de suite. 284 00:13:37,880 --> 00:13:39,060 Et qu'est-ce qui se passe ici? 285 00:13:39,060 --> 00:13:41,040 Que vais-je en train de faire? 286 00:13:41,040 --> 00:13:43,990 Je crée mappages valeur paire. 287 00:13:43,990 --> 00:13:49,060 Donc, au lieu de dire, par exemple, 0 pizzas, des pièces 1, 2, pizzas 288 00:13:49,060 --> 00:13:52,350 Je peux maintenant dire pizzas fromage, pizzas au pepperoni, 289 00:13:52,350 --> 00:13:55,120 et se référer à des valeurs qui leur sont associés. 290 00:13:55,120 --> 00:13:56,970 >> Voici donc nos clés en vert. 291 00:13:56,970 --> 00:13:59,870 Fromage, le pepperoni, légumes, poulet Buffalo. 292 00:13:59,870 --> 00:14:04,200 Voici la flèche qui rend cette cartographie clé valeur paire. 293 00:14:04,200 --> 00:14:07,420 Et puis ici sont les valeurs à cet endroit de tableau. 294 00:14:07,420 --> 00:14:10,330 Donc, il est comme dire gamme 0 équivaut à 8,99. 295 00:14:10,330 --> 00:14:11,720 La clé est 0. 296 00:14:11,720 --> 00:14:13,600 La valeur est de 8,99. 297 00:14:13,600 --> 00:14:19,370 Je peux maintenant dire que le fromage de tableau, ou dans ce cas pizzas fromage, est la clé, 298 00:14:19,370 --> 00:14:23,340 et ce que je trouve à pizzas fromage est de 8,99. 299 00:14:23,340 --> 00:14:25,540 Voilà la valeur que je trouve là. 300 00:14:25,540 --> 00:14:28,124 >> Donc, je peux dire des choses comme. $ la pizza fromage = 7,99. 301 00:14:28,124 --> 00:14:29,040 Disons que je vais avoir une vente. 302 00:14:29,040 --> 00:14:31,750 Je veux dis-- Je veux abandonner le prix de la pizza au fromage. 303 00:14:31,750 --> 00:14:35,620 Ou je peux utiliser le légume Pizza dans le cadre d'un état, 304 00:14:35,620 --> 00:14:39,990 ou je peux ajouter un nouvel élément à mon tableau, juste comme je pouvais le faire auparavant. 305 00:14:39,990 --> 00:14:44,680 Je peux ajouter un nouvel élément à ce tableau associatif avec la touche "lard" 306 00:14:44,680 --> 00:14:49,250 et la valeur 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Mais ce genre de introduit un problème, si vous pensez à ce sujet pour une seconde. 308 00:14:53,820 --> 00:14:55,721 Comment pourrions-nous itérer sur ce tableau? 309 00:14:55,721 --> 00:14:56,220 Droit? 310 00:14:56,220 --> 00:14:59,820 En C, nous voulons juste avoir un pour la boucle, en général, que 311 00:14:59,820 --> 00:15:03,650 irait de 0 à la taille de la matrice moins 1. 312 00:15:03,650 --> 00:15:08,060 Le tableau a n éléments à la indices valides sont 0 à n moins 1. 313 00:15:08,060 --> 00:15:11,530 Donc, nous pourrions utiliser une boucle for pour parcourir chaque élément. 314 00:15:11,530 --> 00:15:13,530 >> Mais ce est pas vraiment plus le cas, non? 315 00:15:13,530 --> 00:15:17,360 Maintenant, où nous avons une paire clé valeur correspondances où les clés sont des mots, 316 00:15:17,360 --> 00:15:19,970 comment pouvons-nous parcourons tous les mots? 317 00:15:19,970 --> 00:15:22,420 Eh bien, heureusement, PHP a une façon de traiter avec cela aussi, 318 00:15:22,420 --> 00:15:24,580 et donc nous allons sauter retour à boucles pour une seconde 319 00:15:24,580 --> 00:15:30,780 d'introduire une quatrième sorte de boucle qui existe en PHP appelé une boucle foreach. 320 00:15:30,780 --> 00:15:34,430 Et qu'est-ce une boucle foreach est fait il est fondamentalement la même idée. 321 00:15:34,430 --> 00:15:36,060 Vous pouvez l'utiliser pour tout type de tableau. 322 00:15:36,060 --> 00:15:38,100 Mais il est fondamentalement le même idée que une boucle, 323 00:15:38,100 --> 00:15:40,750 sauf qu'au lieu d'utiliser numéros d'index, vous venez 324 00:15:40,750 --> 00:15:45,830 avoir cette syntaxe bizarre où vous appelez chaque élément 325 00:15:45,830 --> 00:15:47,550 un nom aux fins de cette boucle. 326 00:15:47,550 --> 00:15:49,258 >> Donc dans ce cas, foreach ($ array que $ key). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Fondamentalement, que ce commentaire notes, à l'intérieur de cette boucle foreach, 329 00:15:56,450 --> 00:16:00,466 ça va aller sur chaque single élément du tableau $, ce qui est généralement 330 00:16:00,466 --> 00:16:03,340 va être un tableau associatif, mais peut être vraiment tout type de réseau 331 00:16:03,340 --> 00:16:05,419 que vous voulez en PHP. 332 00:16:05,419 --> 00:16:07,210 Et chaque fois que, dans une boucle for vous pourriez 333 00:16:07,210 --> 00:16:13,780 ont dit $ array crochets $ i, vous pouvez simplement dire $ key. 334 00:16:13,780 --> 00:16:22,340 Alors que la clé de $ devient un alias pour chaque index de votre PHP tableau associatif, 335 00:16:22,340 --> 00:16:23,710 et ainsi vous pouvez l'utiliser comme ça. 336 00:16:23,710 --> 00:16:25,897 >> Ainsi, par exemple, nous avons maintenant obtenu notre tableau de pizzas. 337 00:16:25,897 --> 00:16:27,730 Je suis genre de glissai dans le coin, il y 338 00:16:27,730 --> 00:16:31,080 afin que nous puissions l'utiliser pour faire un exemple rapide. 339 00:16:31,080 --> 00:16:36,420 Si je dis foreach ($ pizzas $ Pizza), eh bien, ce qui se passe? 340 00:16:36,420 --> 00:16:42,400 Eh bien, je vais pour parcourir tous les seul élément des pizzas array $, 341 00:16:42,400 --> 00:16:46,670 et, ce faisant, je vais appeler chaque élément, quand je suis à l'intérieur 342 00:16:46,670 --> 00:16:49,400 du corps de cette boucle, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> Voilà donc une sorte de stand-in, le rappel, que la pizza $ 344 00:16:52,440 --> 00:16:59,140 est un stand-in pour dire Pizzas $ crochets $ i 345 00:16:59,140 --> 00:17:03,370 si nous utilisions une boucle, où nous pourrait passer de $ i = 0 à, dans ce cas, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Si nous ne disposons pas des paires de valeurs clés ici, ce serait l'élément 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 et nous devrions utiliser une boucle for aller $ 0 pizzas, pizzas $ 1, $ 2 pizzas, 349 00:17:16,390 --> 00:17:17,750 $ 3 pizzas. 350 00:17:17,750 --> 00:17:23,130 Alors maintenant $ juste pizza est substitue pour cette touche individuelle. 351 00:17:23,130 --> 00:17:25,630 >> Donc, ce que cela va imprimer? 352 00:17:25,630 --> 00:17:29,030 Je imprimant $ pizza. 353 00:17:29,030 --> 00:17:35,270 Que vais-je trouver at-- si je imprimer $ pizzas, $ i? 354 00:17:35,270 --> 00:17:35,770 Droit? 355 00:17:35,770 --> 00:17:38,680 Si je vais à imprimer l'élément i de pizzas, 356 00:17:38,680 --> 00:17:40,070 que vais-je imprimer? 357 00:17:40,070 --> 00:17:42,580 Je vais imprimer le Les valeurs à cet endroit, non? 358 00:17:42,580 --> 00:17:45,370 Comme si nous faisions dans le contexte de C, 359 00:17:45,370 --> 00:17:49,786 nous utilisons habituellement pas notre iterator variable int i = 0, i est inférieur à 3, 360 00:17:49,786 --> 00:17:52,900 i ++, pour imprimer à 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Nous l'impression de tableau 0, tableau 1, tableau 2, tableau 3. 362 00:17:57,500 --> 00:17:59,580 Et donc ce que cela imprime est-ce. 363 00:17:59,580 --> 00:18:01,150 Il est la liste des prix. 364 00:18:01,150 --> 00:18:05,750 8,99, 9,99, 10,99, 11,99. 365 00:18:05,750 --> 00:18:06,900 >> Maintenant une note rapide ici. 366 00:18:06,900 --> 00:18:10,900 Une boucle de foreach ne signifie pas nécessairement imprimer des choses dans l'ordre. 367 00:18:10,900 --> 00:18:12,770 Il est pas garanti. 368 00:18:12,770 --> 00:18:13,550 Il le fait habituellement. 369 00:18:13,550 --> 00:18:17,667 Il est généralement basé sur l'ordre dans lesquels éléments sont ajoutés à la matrice, 370 00:18:17,667 --> 00:18:18,750 si juste garder cela à l'esprit. 371 00:18:18,750 --> 00:18:20,830 Il pourrait ne pas être dans l'ordre. 372 00:18:20,830 --> 00:18:23,930 Mais une boucle foreach va parcourir à travers chaque élément 373 00:18:23,930 --> 00:18:25,060 du tableau en question. 374 00:18:25,060 --> 00:18:27,980 Dans ce cas, encore une fois, ce tableau est $ pizzas. 375 00:18:27,980 --> 00:18:32,920 >> Je peux changer la syntaxe, cependant, si Je veux à la fois la clé et la valeur. 376 00:18:32,920 --> 00:18:37,179 Au lieu de dire pizzas $ que $ la pizza, je peux le dire. 377 00:18:37,179 --> 00:18:39,470 Et si vous regardez ce que je surligné en vert ici, 378 00:18:39,470 --> 00:18:42,130 il ressemble à une cartographie clé valeur paire. 379 00:18:42,130 --> 00:18:45,980 Et si vous-- même si vous n'êtes pas entièrement sûr de ce qu'il va faire, 380 00:18:45,980 --> 00:18:49,300 vous pouvez probablement le deviner que $ garniture va 381 00:18:49,300 --> 00:18:53,800 être la clé dans cette affaire et $ prix va être la valeur. 382 00:18:53,800 --> 00:18:59,200 Donc, je remplace maintenant tous les éléments de $ pizzas comme une paire de valeur de clé, 383 00:18:59,200 --> 00:19:03,900 et maintenant je peux me référer à la clé et la valeur, ce qui pourrait être utile, 384 00:19:03,900 --> 00:19:05,590 par exemple, comme suit. 385 00:19:05,590 --> 00:19:10,170 >> "Un ensemble» - ce qui est beaucoup de impression passe ici-- "dans son ensemble" 386 00:19:10,170 --> 00:19:17,300 topping "pizza coûte $" prix, puis Je imprimer une période et une barre oblique inverse n. 387 00:19:17,300 --> 00:19:23,420 Alors maintenant, je préavis à nouveau avoir accès à une clé, $ garniture, et une valeur, $ prix. 388 00:19:23,420 --> 00:19:26,647 Donc, pouvez-vous deviner ce que cela va imprimer? 389 00:19:26,647 --> 00:19:29,480 Il ya beaucoup de déclarations d'impression, mais il ya une seule barre oblique inverse n, 390 00:19:29,480 --> 00:19:33,410 donc ça va d'imprimer quelque chose sur un entire-- sur une seule ligne de code. 391 00:19:33,410 --> 00:19:36,965 >> Si je peux me référer à la clé et la valeur, alors maintenant, 392 00:19:36,965 --> 00:19:39,090 au lieu de simplement pouvoir pour imprimer les prix, 393 00:19:39,090 --> 00:19:41,330 Je peux imprimer quelque chose comme ça. 394 00:19:41,330 --> 00:19:43,780 "Toute une pizza au fromage coûte 8,99 $." 395 00:19:43,780 --> 00:19:47,150 Et maintenant, je suis en utilisant la totalité de la keys-- le fromage, le pepperoni, légumes, 396 00:19:47,150 --> 00:19:49,640 Buffalo chicken-- et les valeurs. 397 00:19:49,640 --> 00:19:53,980 8,99, 9,99, 10,99, 11,99 Alors qui est juste une façon différente 398 00:19:53,980 --> 00:19:57,840 faire une boucle foreach qu'au lieu de tout en vous donnant accès aux valeurs, 399 00:19:57,840 --> 00:20:02,950 il donne juste vous-- il vous donne accès aux clés et les valeurs. 400 00:20:02,950 --> 00:20:04,411 >> Donc, l'impression de l'information. 401 00:20:04,411 --> 00:20:07,410 Je l'ai déjà fait quelques différentes façons, vous pourriez avoir remarqué. 402 00:20:07,410 --> 00:20:11,080 Les deux fonctions que nous avons principalement vu les imprimés et l'écho. 403 00:20:11,080 --> 00:20:14,380 Et pour à peu près toutes les intentions et fins, ils sont exactement les mêmes. 404 00:20:14,380 --> 00:20:17,130 They're-- il ya une très subtile différence qui est même pas la peine 405 00:20:17,130 --> 00:20:21,130 entrer dans, mais pratiquement partout vous pouvez utiliser impression que vous pouvez probablement utiliser 406 00:20:21,130 --> 00:20:22,370 écho ainsi. 407 00:20:22,370 --> 00:20:23,610 >> Et cela ne l'a que deux. 408 00:20:23,610 --> 00:20:26,970 PHP a beaucoup de différent façons d'imprimer des choses, 409 00:20:26,970 --> 00:20:30,520 et il a aussi les moyens d'intégrer variables dans le milieu de chaîne. 410 00:20:30,520 --> 00:20:32,860 Donc, rappeler à partir de C, avez-vous rappeler ce que la fonction 411 00:20:32,860 --> 00:20:37,580 nous pouvons utiliser pour substituer les variables dans les choses que nous voulons imprimer? 412 00:20:37,580 --> 00:20:40,160 Vous utilisez probablement cette fonctionner beaucoup. 413 00:20:40,160 --> 00:20:42,290 printf, non? 414 00:20:42,290 --> 00:20:45,290 Donc, c'est ce que nous avions avant l'intérieur du contexte de notre boucle foreach. 415 00:20:45,290 --> 00:20:48,000 Nous avons eu ces cinq déclarations d'impression séparées, 416 00:20:48,000 --> 00:20:50,330 parce que ce fut la seule manière que je connais vraiment au moment 417 00:20:50,330 --> 00:20:52,450 comment imprimer des messages. 418 00:20:52,450 --> 00:20:59,560 Je ne savais pas comment intégrer la variable $ garniture dans mon code PHP. 419 00:20:59,560 --> 00:21:03,700 Eh bien, si je viens de prendre une conjecture sauvage, printf, il aurait effectivement travaillé. 420 00:21:03,700 --> 00:21:08,980 printf est une fonction que je peux utiliser en PHP, tout comme je peux l'utiliser en C. 421 00:21:08,980 --> 00:21:11,880 >> Et si quelque chose comme cela, printf, encore une fois, nous sommes au courant. 422 00:21:11,880 --> 00:21:16,420 Le premier% s est remplacé avec la valeur de $ garniture. 423 00:21:16,420 --> 00:21:19,700 Le second% s est remplacé avec la valeur de $ prix. 424 00:21:19,700 --> 00:21:22,630 Et donc je suis interpellation, qui est juste une manière de fantaisie 425 00:21:22,630 --> 00:21:25,400 de dire que je suis coller le variables dans cet endroit. 426 00:21:25,400 --> 00:21:31,000 Donc, je suis brancher $ garniture où le rouge% s est et $ de prix où le bleu% s 427 00:21:31,000 --> 00:21:36,060 est, et puis je voudrais faire passer le message, "Toute une pizza au fromage coûte 8,99 $." 428 00:21:36,060 --> 00:21:37,750 >> Pas la seule façon que je peux le faire, cependant. 429 00:21:37,750 --> 00:21:39,760 Peut-être que je voudrais utiliser cette méthode. 430 00:21:39,760 --> 00:21:44,890 Ceci est en fait ce qui est plus communément appelé interpellation variable. 431 00:21:44,890 --> 00:21:45,690 Je peux utiliser un écho. 432 00:21:45,690 --> 00:21:47,737 Je pourrais utiliser une impression aussi, comme nous le verrons. 433 00:21:47,737 --> 00:21:48,820 Mais ce qui se passe ici? 434 00:21:48,820 --> 00:21:51,520 >> Tout d'abord, je dois échapper le signe du dollar. 435 00:21:51,520 --> 00:21:55,140 Car rappelez-vous, quand nous étions effectivement impression des prix des pizzas, 436 00:21:55,140 --> 00:21:59,370 En fait, je les formatant comme chiffres monétaires avec un signe de dollar. 437 00:21:59,370 --> 00:22:05,635 Mais nous utilisons aussi des signes dollar pour représenter les noms de variables en PHP, 438 00:22:05,635 --> 00:22:08,010 et en particulier quand je suis en utilisant cette méthode de l'bouclés 439 00:22:08,010 --> 00:22:10,040 variable accolade méthode d'interpellation, je dois 440 00:22:10,040 --> 00:22:13,490 pour échapper à mon signe du dollar de sorte qu'il ne pense que je parle d'une variable. 441 00:22:13,490 --> 00:22:16,920 Il va effectivement, imprimer littéralement un signe de dollar. 442 00:22:16,920 --> 00:22:19,530 >> Donc sorte d'analogie à ce que vous voyez à la fin il. 443 00:22:19,530 --> 00:22:22,832 Il ne fait pas réellement Imprimer barre oblique inverse n, non? 444 00:22:22,832 --> 00:22:24,290 Il imprime un caractère de nouvelle ligne. 445 00:22:24,290 --> 00:22:26,750 Cette est-- ça ne va pas à Imprimer signe barre oblique inverse du dollar, 446 00:22:26,750 --> 00:22:30,130 il va imprimer simplement un caractère de signe dollar. 447 00:22:30,130 --> 00:22:30,640 Même idée. 448 00:22:30,640 --> 00:22:32,760 Les séquences d'échappement, ce qui ces choses sont appelés. 449 00:22:32,760 --> 00:22:37,080 >> Mais remarque que je ne fais pas toute sorte de% s substitutions, 450 00:22:37,080 --> 00:22:40,050 Je suis juste brancher littéralement dans ces variables. 451 00:22:40,050 --> 00:22:45,110 Et donc dans this-- ce qui se passerait ici est que la valeur de topping-- $ de nouveau, 452 00:22:45,110 --> 00:22:48,390 juste garder avec ce que nous avons été parler de fromage afin far-- recevrait 453 00:22:48,390 --> 00:22:49,720 branché là. 454 00:22:49,720 --> 00:22:54,780 Et $ prix serait quelque valeur est à pizzas, crochets, fromage, 455 00:22:54,780 --> 00:22:56,270 qui était 8,99. 456 00:22:56,270 --> 00:23:01,860 Et donc ce serait également imprimer "Toute une pizza au fromage coûte 8,99 $." 457 00:23:01,860 --> 00:23:05,160 Et comme je l'ai dit, je pourrais utiliser imprimer ici à la place de l'écho, 458 00:23:05,160 --> 00:23:08,040 et la fonctionnalité soit à peu près exactement la même chose. 459 00:23:08,040 --> 00:23:09,660 Il devrait afficher la même chose. 460 00:23:09,660 --> 00:23:12,680 >> Il ya une autre façon de le faire, et ceci est un autre avantage 461 00:23:12,680 --> 00:23:14,710 PHP travailler avec des cordes. 462 00:23:14,710 --> 00:23:17,130 Nous pouvons faire la concaténation de chaîne. 463 00:23:17,130 --> 00:23:19,660 Nous pourrions le faire en C, aussi, en utilisant une fonction appelée strcat, 464 00:23:19,660 --> 00:23:21,180 mais encore une fois, nous avons dû appeler des fonctions distinctes. 465 00:23:21,180 --> 00:23:22,640 Il était tout ce gâchis de le faire. 466 00:23:22,640 --> 00:23:24,590 Nous avons dû inclure livre-string.h. 467 00:23:24,590 --> 00:23:25,780 Il était une production, à droite? 468 00:23:25,780 --> 00:23:30,070 Mais maintenant, je peux utiliser cet opérateur dot pour concaténer des chaînes ensemble. 469 00:23:30,070 --> 00:23:34,910 >> Donc, je suis concaténation "ensemble" et alors tout ce que la valeur de $ garniture est, 470 00:23:34,910 --> 00:23:38,860 et puis un autre chaîne, "les coûts de pizza $" 471 00:23:38,860 --> 00:23:42,340 puis ce que la concaténation la valeur de $ prix est, 472 00:23:42,340 --> 00:23:45,670 puis à la fin je suis virant sur la période barre oblique inverse n. 473 00:23:45,670 --> 00:23:47,926 Et ce serait aussi imprimer "dans son ensemble" - encore une fois, 474 00:23:47,926 --> 00:23:50,550 si nous parlons de la première élément de pizzas qui array-- 475 00:23:50,550 --> 00:23:54,710 "Toute une pizza au fromage coûte 8,99 $." 476 00:23:54,710 --> 00:24:01,260 Période, barre oblique inverse n, encore une fois, avec la garniture de $ et le prix substitution 477 00:24:01,260 --> 00:24:06,580 pour ce que nous avions indiqué dans notre foreach boucle comme la cartographie clé valeur paire. 478 00:24:06,580 --> 00:24:08,050 >> PHP peut manipuler des fonctions. 479 00:24:08,050 --> 00:24:11,250 Fonctions étaient en quelque sorte intégrante de C, comme nous l'avons vu. 480 00:24:11,250 --> 00:24:14,870 Comme les variables, nous ne devons pas spécifier le type de la fonction de retour, 481 00:24:14,870 --> 00:24:16,350 car il n'a pas vraiment d'importance. 482 00:24:16,350 --> 00:24:18,660 Et nous ne spécifions pas le les types de données de tous les paramètres, 483 00:24:18,660 --> 00:24:21,410 parce qu'ils ne sont pas vraiment matière, comme nous l'avons vu en PHP. 484 00:24:21,410 --> 00:24:24,510 Chaque fonction est introduit avec le mot-clé function. 485 00:24:24,510 --> 00:24:27,920 Voilà comment nous indiquons PHP ce dont nous parlons est une fonction. 486 00:24:27,920 --> 00:24:29,720 >> Et nous ne devons pas traiter principale à tous, 487 00:24:29,720 --> 00:24:33,690 parce que l'interprète, le PHP interprète, fonctionne de haut en bas, 488 00:24:33,690 --> 00:24:34,190 indépendamment. 489 00:24:34,190 --> 00:24:35,640 Si elle voit que vous pouvez faire un appel de fonction, il va 490 00:24:35,640 --> 00:24:37,850 aller chercher l'appel de fonction, même si elle vient plus tard. 491 00:24:37,850 --> 00:24:40,360 Mais il va lire de haut en en bas, donc on n'a pas besoin de préciser, 492 00:24:40,360 --> 00:24:41,500 voici où vous commencez. 493 00:24:41,500 --> 00:24:46,700 Vous commencez sur la ligne 1 de votre PHP et de travailler à partir de là. 494 00:24:46,700 --> 00:24:49,690 >> Donc, voici comment nous créerions une fonction appelée hard_square. 495 00:24:49,690 --> 00:24:54,100 Il prend une apparence paramètre, que je suis appelant $ x. 496 00:24:54,100 --> 00:24:58,424 Cette fonction est compliqué juste pour illustrer diverses choses. 497 00:24:58,424 --> 00:24:59,590 Nous avons toujours des valeurs de retour. 498 00:24:59,590 --> 00:25:00,870 Je suis en utilisant une boucle for ici. 499 00:25:00,870 --> 00:25:04,970 Mais il est fondamentalement juste, ce que cela revient à est seulement $ x $ x fois. 500 00:25:04,970 --> 00:25:10,520 Ce que je suis en train de faire est simplement d'ajouter x 0 à x fois ou $ x à zéro $ x fois. 501 00:25:10,520 --> 00:25:15,850 Mais il est effectivement exactement le même que la multiplication $ x fois x $. 502 00:25:15,850 --> 00:25:18,700 Je ne peux toujours retourner une valeur, dans ce cas $ result, 503 00:25:18,700 --> 00:25:22,060 et je me suis fait une fonction en PHP. 504 00:25:22,060 --> 00:25:24,160 >> Voici comment vous pouvez utiliser dans son contexte. 505 00:25:24,160 --> 00:25:26,020 Alors peut-être que je suis à l'intérieur de certains fichier PHP. 506 00:25:26,020 --> 00:25:29,240 Remarquez là que le bleu Je l'ai utilisé mes séparateurs de PHP, 507 00:25:29,240 --> 00:25:31,010 équerre interrogation php. 508 00:25:31,010 --> 00:25:35,180 Entre ceux qui sont tous PHP que je veux écrire. 509 00:25:35,180 --> 00:25:37,840 Donc, je suis apparemment va get-- Je vais demander à l'utilisateur 510 00:25:37,840 --> 00:25:41,550 de me donner un numéro, magasin qui variable magasin dans cette variable $ x, 511 00:25:41,550 --> 00:25:43,320 tout ce qu'ils me donnaient. 512 00:25:43,320 --> 00:25:48,590 Ensuite, je vais faire écho hard_square de cette valeur, 513 00:25:48,590 --> 00:25:50,370 et apparemment aller de virer de bord sur une nouvelle ligne 514 00:25:50,370 --> 00:25:53,590 ainsi, puis plus tard je vais définir la fonction de façon hard_square 515 00:25:53,590 --> 00:25:55,550 que lorsque je fais le appeler à hard_square, 516 00:25:55,550 --> 00:25:58,160 il sait de quoi je parle. 517 00:25:58,160 --> 00:26:00,705 >> Maintenant, je pourrais aussi le faire quelque chose comme ca. 518 00:26:00,705 --> 00:26:02,050 Ce chiffre est légèrement différente. 519 00:26:02,050 --> 00:26:04,190 Il est presque exactement le même que ce que nous avons vu avant, 520 00:26:04,190 --> 00:26:08,400 sauf qu'au lieu de dire seulement $ x là aussi le paramètre à hard_square, 521 00:26:08,400 --> 00:26:11,730 Je dis $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Donc, ceci est un exemple de programmation défensive, 523 00:26:14,330 --> 00:26:17,070 garder vos programmes contre les utilisateurs malveillants. 524 00:26:17,070 --> 00:26:20,020 >> Ceci est une façon de faire une erreur vérifier que nous avons fait pas vraiment 525 00:26:20,020 --> 00:26:24,670 avoir comme une option dans C. Nous ne pourrions jamais spécifier la valeur par défaut de quelque chose. 526 00:26:24,670 --> 00:26:27,010 Nous avons toujours eu pour vérifier si la, par exemple, 527 00:26:27,010 --> 00:26:30,820 si nous avons fait un appel à GetString, il était plus propre si, immédiatement après nous 528 00:26:30,820 --> 00:26:33,300 vérifié que, nous avons vérifié si la chaîne 529 00:26:33,300 --> 00:26:35,504 que l'utilisateur nous a donné est pas égal à null, 530 00:26:35,504 --> 00:26:37,920 parce que nous ne voulons pas commencer travailler avec une chaîne nulle. 531 00:26:37,920 --> 00:26:39,670 >> Ici, cela est d'une manière pour se prémunir contre cela. 532 00:26:39,670 --> 00:26:43,480 Si l'utilisateur ne nous donne pas quelque chose en quelque sorte, ce que nous allons faire? 533 00:26:43,480 --> 00:26:46,080 Eh bien, nous allons simplement dire ce ils ne nous fournissent, 534 00:26:46,080 --> 00:26:47,705 nous allons juste à brancher 10 place. 535 00:26:47,705 --> 00:26:52,030 Donc, si ils ne nous donnent une valeur, il suffit d'utiliser 10 par défaut. Et alors voici, 536 00:26:52,030 --> 00:26:53,940 remarque que je fais Un appel à hard_square, 537 00:26:53,940 --> 00:26:55,980 mais il n'y a pas d'invite à l'utilisateur, non? 538 00:26:55,980 --> 00:26:57,540 Je fais juste un appel vide. 539 00:26:57,540 --> 00:27:00,860 >> Mais ma fonction hard_square attend un paramètre. 540 00:27:00,860 --> 00:27:02,222 Qu'est-ce que cela va imprimer? 541 00:27:02,222 --> 00:27:03,680 Il va imprimer 100, non? 542 00:27:03,680 --> 00:27:05,720 Comme l'utilisateur n'a pas me donner quoi que ce soit. 543 00:27:05,720 --> 00:27:08,970 Et donc je vais juste à assumer que 10-- 10 est la valeur par défaut. 544 00:27:08,970 --> 00:27:13,760 Et donc ce serait imprimer sur 100 sur sa propre ligne. 545 00:27:13,760 --> 00:27:16,390 >> Fichiers PHP ne doivent pas être juste un seul fichier. 546 00:27:16,390 --> 00:27:19,480 Vous pouvez combiner plusieurs fichiers ensemble, exactement comme vous pouvez en C. La façon 547 00:27:19,480 --> 00:27:24,330 nous l'avons fait en C était généralement de faire un #include pour obtenir des fichiers d'en-tête tirés dans. 548 00:27:24,330 --> 00:27:26,180 Nous ne faisons pas cela en PHP. 549 00:27:26,180 --> 00:27:29,110 Nous faisons quelque chose appelé require_once. 550 00:27:29,110 --> 00:27:33,360 Et puis il ya cet ensemble chose, ce qui est ce __dir__? 551 00:27:33,360 --> 00:27:36,510 Voilà juste une spéciale variable ou constante spéciale, 552 00:27:36,510 --> 00:27:39,030 vraiment, qui spécifie ce que votre répertoire actuel. 553 00:27:39,030 --> 00:27:41,320 Et donc il va chercher dans votre répertoire courant 554 00:27:41,320 --> 00:27:44,900 pour une cs50.php de fichier appelé dans cet exemple ici, 555 00:27:44,900 --> 00:27:50,490 et il va tenir ce fichier au début de votre programme de PHP, 556 00:27:50,490 --> 00:27:56,980 en supposant que vous mettez l'exigent une fois la ligne en haut de votre fichier PHP. 557 00:27:56,980 --> 00:28:01,474 >> Donc, PHP est principalement utilisé, mais pas exclusivement utilisé, 558 00:28:01,474 --> 00:28:03,140 comme un langage pour la programmation web-based. 559 00:28:03,140 --> 00:28:05,270 Voilà vraiment comment il est venu à être. 560 00:28:05,270 --> 00:28:06,980 Mais il est un plein la langue, comme nous l'avons vu. 561 00:28:06,980 --> 00:28:10,105 Nous avons vu à peu près toutes les choses qu'il peut le faire qui sont similaires à C, 562 00:28:10,105 --> 00:28:13,290 et il peut faire une sacrée beaucoup plus que cela. 563 00:28:13,290 --> 00:28:16,950 >> Mais parce qu'il est une langue pleine et nous peut faire de la programmation en ligne de commande en elle. 564 00:28:16,950 --> 00:28:18,630 Nous pouvons exécuter des programmes de ligne de commande. 565 00:28:18,630 --> 00:28:22,580 Tout ce qu'il faut pour exécuter une commande programme en ligne qui est écrit en PHP 566 00:28:22,580 --> 00:28:24,260 est que vous avez un interpréteur PHP. 567 00:28:24,260 --> 00:28:27,460 Donc, il est en quelque sorte analogue à ayant un compilateur sur votre système 568 00:28:27,460 --> 00:28:31,100 si vous voulez compiler votre code C pour le transformer en fichiers exécutables. 569 00:28:31,100 --> 00:28:33,810 Vous avez besoin d'un interpréteur PHP qui existe sur votre système 570 00:28:33,810 --> 00:28:37,330 de sorte que vous pouvez interpréter les fichiers PHP. 571 00:28:37,330 --> 00:28:40,370 >> En supposant que vous faites, et généralement cet interprète est appelé PHP, 572 00:28:40,370 --> 00:28:44,300 et il est généralement livré avec plus téléchargement ou installation de PHP 573 00:28:44,300 --> 00:28:47,430 que vous pouvez obtenir en ligne, et certainement le nom de l'interpréteur PHP 574 00:28:47,430 --> 00:28:49,550 nous avons en CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Tout ce que vous faites est fichier php type. 576 00:28:51,819 --> 00:28:53,610 Et ce que votre programme de va faire est qu'il est 577 00:28:53,610 --> 00:28:55,360 aller à courir à travers l'interprète, il est 578 00:28:55,360 --> 00:28:58,040 aller à ignorer tout ce qui est pas entre la question mark-- 579 00:28:58,040 --> 00:29:03,160 ou, équerre d'interrogation php, les séparateurs de PHP, et l'imprimer, 580 00:29:03,160 --> 00:29:07,660 et il va interpréter et d'exécuter le code à l'intérieur de vos séparateurs de PHP. 581 00:29:07,660 --> 00:29:12,850 >> Donc, nous allons POP sur la CS50 et IDE jeter un oeil à un couple de fichiers PHP, 582 00:29:12,850 --> 00:29:19,850 l'exécution d'un couple de fichiers PHP, dans interface de ligne de commande du CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Donc, nous sommes ici dans CS50 IDE, et je l'ai pris la liberté 584 00:29:22,100 --> 00:29:25,800 l'ouverture d'un fichier appelé hello1.php. 585 00:29:25,800 --> 00:29:29,920 Et apparemment, le contenu de ce fichier ne sont que les séparateurs de PHP là, 586 00:29:29,920 --> 00:29:32,220 et entre les deux, echo ("Bonjour, monde»). 587 00:29:32,220 --> 00:29:34,710 Ceci est un programme PHP assez simple. 588 00:29:34,710 --> 00:29:37,670 Je vais juste faire défiler à ma fenêtre de terminal ici, 589 00:29:37,670 --> 00:29:44,320 et je vais taper php hello1.php, appuyez sur Entrée. 590 00:29:44,320 --> 00:29:44,950 Bonjour le monde. 591 00:29:44,950 --> 00:29:48,110 Voilà sans doute ce que nous étions attendant qu'il fasse, non? 592 00:29:48,110 --> 00:29:51,140 >> Montons et prendre Un autre regard sur un programme. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 A peu près la même chose, pas beaucoup de choses ici. 595 00:29:55,090 --> 00:29:57,190 Cette fois, cependant, je vais inviter l'utilisateur de me donner leurs noms. 596 00:29:57,190 --> 00:29:59,290 Je suis en utilisant à nouveau cette fonction readline. 597 00:29:59,290 --> 00:30:01,340 $ nom = readline. 598 00:30:01,340 --> 00:30:03,070 Voilà l'invite, "Quel est votre nom?" 599 00:30:03,070 --> 00:30:04,880 >> Apparemment, je suis impression sur sa propre ligne. 600 00:30:04,880 --> 00:30:07,220 Et puis, si la ligne ci-dessous ce sera l'invite 601 00:30:07,220 --> 00:30:08,750 où l'utilisateur peut entrer son nom. 602 00:30:08,750 --> 00:30:12,030 Et puis je suis en utilisant un peu de interpellation variables ici sur la ligne 3 603 00:30:12,030 --> 00:30:14,780 imprimer "Bonjour" et quels que soient les types d'utilisateurs. 604 00:30:14,780 --> 00:30:22,040 Donc, cela est analogue à dire, Bonjour, virgule,% s si nous utilisions printf en C. 605 00:30:22,040 --> 00:30:24,910 >> Allons donc et interpréter ce programme. 606 00:30:24,910 --> 00:30:27,400 Encore une fois, je vais faire défiler vers le bas à ma fenêtre de terminal. 607 00:30:27,400 --> 00:30:29,070 php hello2.php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Quel est votre nom? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Bonjour, Doug. 612 00:30:36,526 --> 00:30:39,440 Je dois aussi une autre fichier appelé hello3.php. 613 00:30:39,440 --> 00:30:42,850 Je vais me vider écran avec commande L, 614 00:30:42,850 --> 00:30:46,210 et je vais exécuter cette. 615 00:30:46,210 --> 00:30:47,640 Quel est votre nom? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Bonjour, Doug. 618 00:30:49,780 --> 00:30:56,540 Donc, le comportement est identique à hello2.php, mais pourquoi est-il hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Eh bien, voici la différence. 620 00:30:58,040 --> 00:31:00,620 Dans ce cas, un avis que sur la ligne 1 ici, 621 00:31:00,620 --> 00:31:04,270 Je dois quelque chose qui est pas entre les séparateurs de PHP. 622 00:31:04,270 --> 00:31:07,760 Je suis juste l'impression ou je out-- venez de taper, "Quel est votre nom?" 623 00:31:07,760 --> 00:31:12,060 Lorsque l'interpréteur PHP voit cela, il a aucune idée de comment l'interpréter comme PHP, 624 00:31:12,060 --> 00:31:15,060 et donc au lieu d'échouer, il va juste cracher. 625 00:31:15,060 --> 00:31:19,010 >> Donc remarquer sur la ligne 3 maintenant, mon appel à readline, il n'y a pas plus rapide. 626 00:31:19,010 --> 00:31:21,750 Je suis juste se passe réellement lorsque to-- l'interpréteur PHP voit cela, 627 00:31:21,750 --> 00:31:23,400 il va imprimer "Quel est votre nom?" 628 00:31:23,400 --> 00:31:25,941 Puis il voit, oh, OK, here's-- tout le reste va être 629 00:31:25,941 --> 00:31:29,970 interprété comme PHP, Voilà pourquoi cela fonctionne. 630 00:31:29,970 --> 00:31:34,990 Je ne dois pas inciter nécessairement l'utilisateur to-- intérieur de readline, 631 00:31:34,990 --> 00:31:37,490 Je peux juste avoir à l'extérieur des séparateurs de PHP 632 00:31:37,490 --> 00:31:41,490 et permettre à l'interprète juste imprimer pour moi. 633 00:31:41,490 --> 00:31:45,364 >> Donc, vous ne pas réellement suffit d'avoir un ensemble de séparateurs de PHP 634 00:31:45,364 --> 00:31:46,030 dans votre programme. 635 00:31:46,030 --> 00:31:49,887 Vous pouvez en fait avoir plusieurs d'entre eux, leur ouverture et leur fermeture si nécessaire. 636 00:31:49,887 --> 00:31:51,720 Donc, nous allons jeter un coup d'oeil à un couple de programmes 637 00:31:51,720 --> 00:31:55,070 dans CS50 IDE où nous illustrer cette idée d'avoir 638 00:31:55,070 --> 00:31:58,376 plusieurs ensembles de PHP délimité. 639 00:31:58,376 --> 00:32:02,010 >> OK, donc je l'ai ouvert un fichier appelé ici add1.php. 640 00:32:02,010 --> 00:32:03,390 Et remarquez ce qui se passe ici. 641 00:32:03,390 --> 00:32:08,077 Tout comme avant, je dois une PHP simple ensemble de séparateurs. 642 00:32:08,077 --> 00:32:10,660 Je vais imprimer le message, "S'il vous plaît me donner un numéro." 643 00:32:10,660 --> 00:32:13,394 Ensuite, je vais vous lire une ligne et le stocker dans le $ num1 variable. 644 00:32:13,394 --> 00:32:14,810 Ensuite, je vais d'imprimer de nouveau. 645 00:32:14,810 --> 00:32:16,310 Donnez-moi un second numéro. 646 00:32:16,310 --> 00:32:20,450 Lire une ligne de l'utilisateur, magasin quel que soit ils ont tapé dans num2 en $. 647 00:32:20,450 --> 00:32:23,980 Ajoutez-les ensemble et stocker que résultat dans une variable appelée $ somme, 648 00:32:23,980 --> 00:32:26,180 et ensuite imprimer, "Le somme de ces deux nombres 649 00:32:26,180 --> 00:32:29,254 est, "et ensuite interpeller il l'$ somme variable. 650 00:32:29,254 --> 00:32:31,170 Alors disons simplement exécuter cette par l'interpréteur 651 00:32:31,170 --> 00:32:33,720 pour confirmer que ce que nous attendons. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 S'il vous plaît me donner un numéro, 3. 654 00:32:38,665 --> 00:32:40,410 S'il vous plaît me donner un second numéro, 4. 655 00:32:40,410 --> 00:32:43,370 La somme de ces deux nombres est 7. 656 00:32:43,370 --> 00:32:45,030 Voilà 3 plus 4. 657 00:32:45,030 --> 00:32:45,530 D'accord? 658 00:32:45,530 --> 00:32:47,770 Donc rien de terriblement envie là. 659 00:32:47,770 --> 00:32:51,080 >> Et maintenant, nous allons ouvrir jusqu'à add2.php. 660 00:32:51,080 --> 00:32:54,460 Ici, je dois un couple de PHP délimité ensembles là, non? 661 00:32:54,460 --> 00:32:59,107 Lignes 1, 3-- lignes 1 et 3 n'a pas de séparateurs de PHP. 662 00:32:59,107 --> 00:33:00,940 Alors, quand l'interprète les voit, il est juste 663 00:33:00,940 --> 00:33:03,220 va cracher exactement ce que j'y ai tapé. 664 00:33:03,220 --> 00:33:05,011 Voilà donc où je suis faire tout mon incitant. 665 00:33:05,011 --> 00:33:11,220 Sur les lignes 2 et 4, nous voyons la très $ familier? php de tri des séparateurs, 666 00:33:11,220 --> 00:33:15,210 de sorte que ces deux lignes sont va exécuter comme PHP. 667 00:33:15,210 --> 00:33:18,270 Et puis sur la ligne 5, je dois cette chose étrange ici, non? 668 00:33:18,270 --> 00:33:20,480 Cette équerre Aide à la recherche de signe égal. 669 00:33:20,480 --> 00:33:22,660 Je vais même faire un zoom un peu plus loin. 670 00:33:22,660 --> 00:33:29,270 Vous pouvez voir ce que je suis parle là, cette $? =. 671 00:33:29,270 --> 00:33:33,420 >> Il se trouve qu'il est si commun que la raison pour laquelle nous ouvrons un ensemble de PHP 672 00:33:33,420 --> 00:33:36,055 séparateurs est d'imprimer une valeur. 673 00:33:36,055 --> 00:33:37,430 Et voilà tout ce que nous allons faire. 674 00:33:37,430 --> 00:33:39,220 Mais il ya même un raccourci pour cela. 675 00:33:39,220 --> 00:33:46,490 $? = Est un raccourci pour dire PHP quelque chose comme $? php echo la somme 676 00:33:46,490 --> 00:33:48,350 de num1 et num2. 677 00:33:48,350 --> 00:33:51,900 Donc, ceci est juste un autre sténographie pour cela. 678 00:33:51,900 --> 00:33:55,550 >> Donc, si je lance ce programme, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Je vais dévaler un peu. 680 00:33:57,530 --> 00:33:59,000 S'il vous plaît me donner un numéro, 4. 681 00:33:59,000 --> 00:34:00,350 S'il vous plaît me donner un second numéro. 682 00:34:00,350 --> 00:34:04,650 Et puisque je ne me soucie pas vraiment de les types de données en PHP, je peux dire 4.8. 683 00:34:04,650 --> 00:34:07,160 La somme de ces deux nombres est de 8,8. 684 00:34:07,160 --> 00:34:10,179 Cette fonction se comporte assez bien exactement le même que nous pourrions nous attendre, 685 00:34:10,179 --> 00:34:10,989 aussi bien. 686 00:34:10,989 --> 00:34:13,114 Et je dois encore un ouvert ici appelé dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Essayez ce nouveau. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Je ai une autre appelée ici dice1.php, qui a également, voir, 691 00:34:33,280 --> 00:34:37,440 a cette équerre question marquer notation signe égal là, 692 00:34:37,440 --> 00:34:40,659 mais remarque que dans ce cas je suis appelant la fonction rand, qui, comme vous 693 00:34:40,659 --> 00:34:42,790 pourrait attendre génère un nombre aléatoire. 694 00:34:42,790 --> 00:34:46,889 "Vous roula une," et ça va calculer un nombre aléatoire, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Donc, ça va me donner le numéro dans la plage de 1 à 6. 697 00:34:49,989 --> 00:34:53,040 >> Rappelez-vous que mod 6 me donnerait un nombre dans la gamme de 0 à 5, 698 00:34:53,040 --> 00:34:56,630 mais si je suis simulant jets de dés, qui est ce que je fais ici, 699 00:34:56,630 --> 00:35:00,040 Je ne veux pas de ces dés pour passer de 0 à 5, je veux dés qui vont de 1 à 6. 700 00:35:00,040 --> 00:35:02,800 Et donc cela est un moyen d'obtenir me dans la plage de 1 à 6. 701 00:35:02,800 --> 00:35:04,720 Je fais deux fois cette. 702 00:35:04,720 --> 00:35:08,630 Donc, apparemment, je roulais deux dés à ce programme. 703 00:35:08,630 --> 00:35:15,210 >> Donc, je vais effacer mon écran, et je ferai php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Vous roula une 4 et 2. 705 00:35:16,640 --> 00:35:19,156 Et si je lance le programme encore une fois, vous avez roulé un 5 et un 5. 706 00:35:19,156 --> 00:35:21,780 Donc, chaque fois que je lance le programme, Je reçois des numéros différents, 707 00:35:21,780 --> 00:35:24,280 parce que chaque fois que je fais donc, ça commence plus. 708 00:35:24,280 --> 00:35:27,250 Il va générer une nouvelle ensemble de nombres aléatoires pour moi. 709 00:35:27,250 --> 00:35:29,790 >> Donc, si nous sommes habitués à exécuter des programmes de C, 710 00:35:29,790 --> 00:35:32,520 nous sommes habitués à taper ./ le nom d'un programme, non? 711 00:35:32,520 --> 00:35:35,090 Voilà comment nous avons fait tout de nos programmes en C jusqu'ici. 712 00:35:35,090 --> 00:35:37,555 Nous pouvons le faire en PHP ainsi en ajoutant quelque chose appelé 713 00:35:37,555 --> 00:35:40,026 un shebang au début de notre fichier PHP. 714 00:35:40,026 --> 00:35:41,400 Je sais qu'il est une sorte de mot idiot. 715 00:35:41,400 --> 00:35:44,540 Il est court pour hachage bang. 716 00:35:44,540 --> 00:35:46,300 Voilà les deux premiers caractères là. 717 00:35:46,300 --> 00:35:50,030 Rappelez-vous que nous appelons point d'exclamation souvent un bang en informatique. 718 00:35:50,030 --> 00:35:51,690 Il pourrait aussi être pour claquement sec. 719 00:35:51,690 --> 00:35:53,273 Il ya deux manières de l'interpréter. 720 00:35:53,273 --> 00:35:57,320 Mais il est fondamentalement une sorte spéciale de commandement que l'interpréteur PHP 721 00:35:57,320 --> 00:36:00,160 comprend que, oh, je veux d'exécuter ce programme, 722 00:36:00,160 --> 00:36:05,250 qui est apparemment / user / bin / php, qui est en fait où l'interpréteur PHP 723 00:36:05,250 --> 00:36:08,590 vit spécifiquement sur notre système. 724 00:36:08,590 --> 00:36:12,530 Donc ce qui se passe ici it's-- est l'interprète comprend, oh, 725 00:36:12,530 --> 00:36:17,270 Je apparemment censé utiliser dans ce programme à exécuter ce fichier. 726 00:36:17,270 --> 00:36:20,010 Et il vous permet pour sauter l'étape 727 00:36:20,010 --> 00:36:22,979 d'avoir à dire php something.php. 728 00:36:22,979 --> 00:36:25,020 Il ya une autre capture ici, qui est que si nous 729 00:36:25,020 --> 00:36:27,320 voulons que nos programmes à fonctionner comme prévu, nous 730 00:36:27,320 --> 00:36:30,220 besoin de faire quelque chose appelé un changement d'autorisation de fichier. 731 00:36:30,220 --> 00:36:33,380 Et nous allons go-- et nous parlons un peu bit plus de modifications d'autorisations à propos de fichier 732 00:36:33,380 --> 00:36:37,550 dans notre vidéo sur MVC, mais il suffit de dire que cela est ce que vous devez faire 733 00:36:37,550 --> 00:36:42,760 afin de rendre votre fichiers .php exécutable. 734 00:36:42,760 --> 00:36:49,330 Donc, nous allons jeter un oeil à ce que notre dernier exemple plus dans CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Donc, ici, en IDE je dois deux fichiers dans ce Répertoire PHP qui semble ne pas être 736 00:36:53,910 --> 00:36:55,310 appelé .php. 737 00:36:55,310 --> 00:36:58,170 Je dois une fonction appelée add-- Je avoir un fichier appelé add3 738 00:36:58,170 --> 00:37:00,650 et un fichier appelé dice2. 739 00:37:00,650 --> 00:37:03,680 Donc, nous allons jeter un rapide regarder et ouvrir add3. 740 00:37:03,680 --> 00:37:08,300 Et comme vous pouvez le voir, au début de mon dossier, je dois ce tralala, non? 741 00:37:08,300 --> 00:37:11,420 Ce point hachage point d'exclamation. 742 00:37:11,420 --> 00:37:15,115 Maintenant, vous aurez peut-être aussi remarquerez que pour une raison quelconque, 743 00:37:15,115 --> 00:37:16,990 Je ne ai pas toute syntaxe soulignant plus, 744 00:37:16,990 --> 00:37:20,198 et voici ce que je faisais allusion tout à l'heure, qui était que si je ne nomme pas mon dossier 745 00:37:20,198 --> 00:37:23,040 .php, je ne bénéficient pas de la coloration syntaxique plus. 746 00:37:23,040 --> 00:37:26,220 Ce fichier est simplement appelé add3. 747 00:37:26,220 --> 00:37:30,960 Alors que je peux courir plus tard avec ./ add3 et non ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Ainsi, le reason-- il est toujours bien, il est encore PHP valide, 749 00:37:33,680 --> 00:37:37,000 mais il ne la coloration syntaxique, parce ce fichier est pas appelé something.php. 750 00:37:37,000 --> 00:37:41,580 Voilà la seule vraie différence ici, plus le tralala. 751 00:37:41,580 --> 00:37:45,170 Voyons donc ce qui arrive quand Je tente de lancer ce programme. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, tout comme je le ferais avec C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Autorisation add3 refusée. 754 00:37:53,190 --> 00:37:55,390 Ceci est ce que vous allez pour voir si vous oubliez 755 00:37:55,390 --> 00:37:59,280 d'utiliser la commande chmod pour modifier les autorisations du fichier. 756 00:37:59,280 --> 00:38:03,845 >> Comme il se trouve, PHP régulière fichiers ne peuvent pas être simplement exécutés. 757 00:38:03,845 --> 00:38:06,970 Ils peuvent être interprétés, mais nous sommes faire quelque chose d'un peu différent ici. 758 00:38:06,970 --> 00:38:07,761 Nous l'exécuter. 759 00:38:07,761 --> 00:38:12,970 Et donc je dois ajouter l'autorisation d'exécution, chmod a + x pour add3. 760 00:38:12,970 --> 00:38:15,680 Ensuite, je peux dire ./ add3. 761 00:38:15,680 --> 00:38:16,860 S'il vous plaît me donner un numéro. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 La somme de ces deux nombres est 11. 764 00:38:20,490 --> 00:38:26,530 >> De même, je l'ai déjà chmodé dice2, donc je ne peux simplement taper ./ dice2, 765 00:38:26,530 --> 00:38:31,260 vous avez roulé un 1 et un 1, vous un laminé 5 et un 4, et ainsi de suite. 766 00:38:31,260 --> 00:38:33,680 >> Voilà donc à peu près la idée d'une syntaxe PHP, non? 767 00:38:33,680 --> 00:38:35,221 Il ya beaucoup à passer, je sais. 768 00:38:35,221 --> 00:38:39,160 Mais nous espérons que vous avez vu maintenant que PHP est pas vraiment différent de C 769 00:38:39,160 --> 00:38:43,670 et nous donne vraiment la possibilité de prendre les choses d'un cran ou deux. 770 00:38:43,670 --> 00:38:48,230 Nous ne devons pas vraiment à se soucier trop about-- nous faisons pas vraiment 771 00:38:48,230 --> 00:38:51,605 avoir à trop se soucier les détails de bas niveau nous 772 00:38:51,605 --> 00:38:52,980 eu de soucis avec C, non? 773 00:38:52,980 --> 00:38:56,170 Nous pouvons nous concentrer sur le plus élevé stuff niveau que PHP 774 00:38:56,170 --> 00:39:01,090 nous permet de faire et de prendre pour accordé que cela va fonctionner pour nous. 775 00:39:01,090 --> 00:39:04,350 Donc, il nous donne la capacité maintenant, transition de C à PHP, 776 00:39:04,350 --> 00:39:08,280 pour faire des programmes qui sont beaucoup plus complexe et peut-être beaucoup plus robuste. 777 00:39:08,280 --> 00:39:13,070 >> Donc, je vous souhaite de travail amusant avec PHP, et je suis Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Ceci est CS50. 779 00:39:15,050 --> 00:39:17,637