1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Així que hem fet un munt de treball en C, 3 00:00:07,370 --> 00:00:09,536 i C és una molt cool idioma perquè et dóna 4 00:00:09,536 --> 00:00:12,840 la capacitat de submergir-realment baix nivell en els seus programes. 5 00:00:12,840 --> 00:00:16,810 Tenim l'oportunitat de fer les coses com Realment minuts com manipular 6 00:00:16,810 --> 00:00:18,800 bytes individuals de la memòria. 7 00:00:18,800 --> 00:00:21,420 Recordem que realment punters ens permetrà que la flexibilitat. 8 00:00:21,420 --> 00:00:25,260 >> Però és el que sempre s'ha de tenir aquest nivell de gra fi dels detalls 9 00:00:25,260 --> 00:00:26,820 en els nostres programes? 10 00:00:26,820 --> 00:00:28,210 Probablement no, oi? 11 00:00:28,210 --> 00:00:30,376 I si tindrem un equilibri entre ser 12 00:00:30,376 --> 00:00:32,911 capaç de fer molt, molt coses i promocions, realment, realment 13 00:00:32,911 --> 00:00:35,910 grans coses que nosaltres no hem de pensar aproximadament, que no hem de posar en pràctica 14 00:00:35,910 --> 00:00:40,290 aquests realment grans idees si que ja estan construïdes en per a nosaltres, 15 00:00:40,290 --> 00:00:43,980 en general, per a la construcció de grans programes o projectes grans, 16 00:00:43,980 --> 00:00:49,130 probablement anem a errar pel costat d'haver-hi més coses llenguatge construït en 17 00:00:49,130 --> 00:00:51,300 per a nosaltres, en lloc de tenir les coses de baix nivell. 18 00:00:51,300 --> 00:00:53,970 I aquí és on realment ve en PHP. 19 00:00:53,970 --> 00:00:58,200 >> Ara, una de les raons que ensenyem PHP en CS50 20 00:00:58,200 --> 00:01:01,020 és que està fortament inspirat en C. I, de fet, al meu entendre, 21 00:01:01,020 --> 00:01:05,140 Realment hi ha dos idiomes progenitores que 22 00:01:05,140 --> 00:01:08,200 són molt comuns avui en dia. 23 00:01:08,200 --> 00:01:10,110 C i LISP. 24 00:01:10,110 --> 00:01:13,280 I són llengües progenitores perquè tots els altres de programació modern 25 00:01:13,280 --> 00:01:17,380 llenguatge que s'ha desenvolupat des de llavors s'inspira 26 00:01:17,380 --> 00:01:20,330 per un o altre sintàcticament. 27 00:01:20,330 --> 00:01:26,160 PHP és molt similar sintàcticament a C, mentre que llengües com l'Esquema, 28 00:01:26,160 --> 00:01:27,900 per exemple, que vostè pot haver sentit parlar, 29 00:01:27,900 --> 00:01:32,070 està fortament inspirat en una llengua anomenat LISP, que és una llengua més antiga. 30 00:01:32,070 --> 00:01:34,220 >> Així que la raó per la qual ensenyem PHP en CS50 és que, 31 00:01:34,220 --> 00:01:37,730 coneixent C com fonamentalment com ho fa en aquest punt, 32 00:01:37,730 --> 00:01:41,280 recollint PHP, el que li dóna la capacitat de fer les coses molt més alts de nivell 33 00:01:41,280 --> 00:01:44,710 que C ho fa, no és que gran part d'un obstacle, 34 00:01:44,710 --> 00:01:48,230 perquè ja té la idea bàsica de la sintaxi. 35 00:01:48,230 --> 00:01:50,590 C ha existit per gairebé 45 anys en aquest punt. 36 00:01:50,590 --> 00:01:52,780 PHP ha estat del voltant d'uns 20 anys. 37 00:01:52,780 --> 00:01:57,080 I el fet que 25 anys Al mig, els programadors 38 00:01:57,080 --> 00:02:01,540 determinat que ho farien molt més Prefereixo tenir habilitats de nivell superior, 39 00:02:01,540 --> 00:02:04,970 i els errors i lluites dels 20 anys en el medi 40 00:02:04,970 --> 00:02:08,210 dut a PHP i altres llenguatges moderns. 41 00:02:08,210 --> 00:02:11,039 >> De PHP una gran varietat de idioma per programari 42 00:02:11,039 --> 00:02:14,042 que allow-- per programari que-- on 43 00:02:14,042 --> 00:02:16,250 necessita fer coses que en C són realment complicat. 44 00:02:16,250 --> 00:02:18,480 Així, per exemple, treballant amb cadenes en C 45 00:02:18,480 --> 00:02:21,709 és molt complicat, perquè com sabem, les cadenes en C 46 00:02:21,709 --> 00:02:23,250 són en realitat conjunts de caràcters. 47 00:02:23,250 --> 00:02:25,230 No és un tipus de dades incorporat. 48 00:02:25,230 --> 00:02:28,220 O potser és més important, cosa que ni tan sols cobrim en C, 49 00:02:28,220 --> 00:02:30,360 ¿I si el que necessites fer algunes xarxes d'ordinadors? 50 00:02:30,360 --> 00:02:30,860 Tot bé? 51 00:02:30,860 --> 00:02:34,920 >> C té la capacitat de fer-ho, però és tan arcà i tan difícil de fer realitat. 52 00:02:34,920 --> 00:02:37,580 ¿No seria bo si el llengua tenia una manera fàcil incorporat 53 00:02:37,580 --> 00:02:38,910 per implementar xarxes? 54 00:02:38,910 --> 00:02:43,420 I PHP és un llenguatge que fa que, o facilita que, una mica més. 55 00:02:43,420 --> 00:02:47,740 Com ja he dit, PHP és molt fortament inspirat de C. La sintaxi és molt similar. 56 00:02:47,740 --> 00:02:51,760 I pel que ha d'esperar que el transició d'una a l'altra 57 00:02:51,760 --> 00:02:54,710 una mica més suau que alguns altres idiomes podrien ser. 58 00:02:54,710 --> 00:02:58,800 >> Per començar a escriure PHP, simplement obrir un arxiu amb l'extensió d'arxiu .php. 59 00:02:58,800 --> 00:03:00,670 Tècnicament això no és en realitat cal, 60 00:03:00,670 --> 00:03:04,495 però si vols coses com la sintaxi destacant en l'IDE, de manera que aquest tipus 61 00:03:04,495 --> 00:03:07,620 noms o noms de variables, funcions, vostè sap, les paraules clau del llenguatge 62 00:03:07,620 --> 00:03:10,090 es destaquen en un color específic, generalment, 63 00:03:10,090 --> 00:03:14,020 voler nomenar els seus arxius amb una extensió de fitxer en particular. 64 00:03:14,020 --> 00:03:18,430 Així que hem cridat a la nostra arxiu amb un .php extensió, però després també amb PHP, 65 00:03:18,430 --> 00:03:23,310 tot el codi PHP que escrivim en aquest arxiu ha d'estar tancat en aquests PHP 66 00:03:23,310 --> 00:03:25,190 delimitadors que veiem aquí a la pantalla. 67 00:03:25,190 --> 00:03:27,910 Suport angular? Php per començar. 68 00:03:27,910 --> 00:03:30,860 Llavors escrivim tot el nostre PHP codi que volem en el medi. 69 00:03:30,860 --> 00:03:32,260 I llavors ? 70 00:03:32,260 --> 00:03:34,710 suport en angle per tancar. 71 00:03:34,710 --> 00:03:37,170 >> Si no fem això, llavors el que va a passar? 72 00:03:37,170 --> 00:03:38,170 No va a estavellar-se. 73 00:03:38,170 --> 00:03:39,410 No va a realment arruïnar el nostre programa. 74 00:03:39,410 --> 00:03:41,440 Però no va a tenir l'efecte que volem. 75 00:03:41,440 --> 00:03:44,540 Què passarà, en realitat, és que quan tractem d'executar aquest programa, 76 00:03:44,540 --> 00:03:50,330 tot el que no entre aquests delimitadors va ser imprès textualment. 77 00:03:50,330 --> 00:03:52,210 No va a en realitat executar el codi, 78 00:03:52,210 --> 00:03:56,010 que va a acaba imprimir textualment. 79 00:03:56,010 --> 00:03:57,320 >> Ara per què és així? 80 00:03:57,320 --> 00:04:00,416 Així C és el que es coneix com un llenguatge compilat. 81 00:04:00,416 --> 00:04:03,040 Probablement vostè està familiaritzat amb el pas de fer els seus programes, 82 00:04:03,040 --> 00:04:07,820 convertir els arxius .c i arxius .h en un sol executable amb maquillatge, 83 00:04:07,820 --> 00:04:11,130 en particular, l'ús de Clang com el nostre compilador. 84 00:04:11,130 --> 00:04:13,030 PHP, però, ¿no tenir aquesta equivalent. 85 00:04:13,030 --> 00:04:15,600 PHP és el que s'anomena un llenguatge interpretat. 86 00:04:15,600 --> 00:04:16,760 ¿I què vol dir això? 87 00:04:16,760 --> 00:04:20,680 >> Bé, això vol dir que no hem de convertir nostre codi font de zeros i uns 88 00:04:20,680 --> 00:04:21,470 per endavant. 89 00:04:21,470 --> 00:04:23,900 Més aviat, hi ha un programa, que també es diu 90 00:04:23,900 --> 00:04:29,771 PHP, que entén PHP i pot espècie de fer-ho sobre la marxa. 91 00:04:29,771 --> 00:04:32,520 Això no és realment exactament precisa, però és una molt bona analogia 92 00:04:32,520 --> 00:04:33,760 del que està passant. 93 00:04:33,760 --> 00:04:37,230 És la interpretació dels zeros i uns sobre la marxa. 94 00:04:37,230 --> 00:04:40,160 I pel que si no ho sap com processar alguna cosa, 95 00:04:40,160 --> 00:04:42,800 si no sap com PHP procés, és probable que 96 00:04:42,800 --> 00:04:44,680 volgut un text per a allà, oi? 97 00:04:44,680 --> 00:04:48,960 >> Probablement volia posar el codi allà, encara que no és entre PHP-- 98 00:04:48,960 --> 00:04:50,035 els delimitadors de PHP. 99 00:04:50,035 --> 00:04:51,910 Però- per la qual cosa no va eliminar per vostè, 100 00:04:51,910 --> 00:04:53,576 que només va a bàsicament descartar-ho. 101 00:04:53,576 --> 00:04:55,550 Així que va a imprimir fora de la pantalla. 102 00:04:55,550 --> 00:04:57,150 >> Això sembla que és una mala cosa, però en realitat és 103 00:04:57,150 --> 00:04:58,220 serà una realitat bo, com veurem 104 00:04:58,220 --> 00:05:00,390 veure quan parlem de Desenvolupament web PHP, 105 00:05:00,390 --> 00:05:04,010 perquè significa que podem intercalar PHP i HTML. 106 00:05:04,010 --> 00:05:06,640 Podem utilitzar-los junts per crear una pàgina web més dinàmica. 107 00:05:06,640 --> 00:05:10,650 Però més sobre això en el vídeo en el desenvolupament web PHP. 108 00:05:10,650 --> 00:05:12,021 >> Llavors, quin és la sintaxi de PHP? 109 00:05:12,021 --> 00:05:13,520 Això és el que aquest vídeo es tracta. 110 00:05:13,520 --> 00:05:14,850 Anem a parlar-ne. 111 00:05:14,850 --> 00:05:16,490 >> Així que per començar, les variables. 112 00:05:16,490 --> 00:05:18,030 Hi ha variables de PHP. 113 00:05:18,030 --> 00:05:20,067 Hi ha només dos grans diferències de C. 114 00:05:20,067 --> 00:05:21,900 La primera és que no hi ha sense especificador tipus. 115 00:05:21,900 --> 00:05:24,245 No hem de dir int, char, float, totes aquestes coses. 116 00:05:24,245 --> 00:05:25,620 No hem de fer això. 117 00:05:25,620 --> 00:05:26,810 PHP és un llenguatge modern. 118 00:05:26,810 --> 00:05:28,910 Es pot esbrinar el que ets tractant de fer o fer una millor 119 00:05:28,910 --> 00:05:30,451 Suposo que el que estem tractant de fer. 120 00:05:30,451 --> 00:05:31,700 Així que això és bastant agradable. 121 00:05:31,700 --> 00:05:35,330 >> L'altra cosa és que tota la variable noms han de començar amb un signe de dòlar. 122 00:05:35,330 --> 00:05:36,940 Això és una cosa d'acostumar. 123 00:05:36,940 --> 00:05:39,496 És una mica estrany, perquè és perquè PHP pot entendre 124 00:05:39,496 --> 00:05:40,870 el que és una variable i el que no ho és. 125 00:05:40,870 --> 00:05:43,340 Així que cada nom de variable comença amb un signe de dòlar. 126 00:05:43,340 --> 00:05:46,884 Així que en C podríem dir alguna cosa així, int x = 54. 127 00:05:46,884 --> 00:05:48,550 No hem de fer això en PHP. 128 00:05:48,550 --> 00:05:52,540 Només podem dir que $ x = 54. 129 00:05:52,540 --> 00:05:55,920 I podríem dir, per exemple, en C, si haguéssim inclòs per lliura el .h CS50 130 00:05:55,920 --> 00:06:00,314 arxiu de capçalera, podríem dir frase cadena = "Aquesta és CS50." 131 00:06:00,314 --> 00:06:01,980 No hem de fer això en PHP, però. 132 00:06:01,980 --> 00:06:04,865 Només podem dir $ frase = "Aquesta és CS50." 133 00:06:04,865 --> 00:06:08,760 I de fet, és ara string un tipus de dades incorporat en PHP, 134 00:06:08,760 --> 00:06:10,950 o més aviat PHP entén el que una cadena és. 135 00:06:10,950 --> 00:06:15,612 És separat d'una matriu de personatges com és en C. 136 00:06:15,612 --> 00:06:17,570 Tot el seu favorit sentències condicionals de C 137 00:06:17,570 --> 00:06:19,520 encara estan disponibles per al seu ús. 138 00:06:19,520 --> 00:06:21,140 Així que no és gran transició allà. 139 00:06:21,140 --> 00:06:23,400 Podem dir-- podem tenir si les declaracions d'aquest tipus. 140 00:06:23,400 --> 00:06:28,210 si $ i 43, o $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Així que això és bastant senzill. 142 00:06:29,690 --> 00:06:31,980 Podem tenir if i else. 143 00:06:31,980 --> 00:06:34,210 Podem tenir if i else if. 144 00:06:34,210 --> 00:06:36,430 >> I notar alguna cosa molt agradable aquí, i això 145 00:06:36,430 --> 00:06:39,620 és una espècie d'un dels avantatges de PHP enfront de C, previ avís 146 00:06:39,620 --> 00:06:41,510 quina funció no estem fent servir aquí? 147 00:06:41,510 --> 00:06:47,737 Estem fent servir == per comparar un variable $ nom, en una cadena. 148 00:06:47,737 --> 00:06:49,070 No podíem fer que en C, oi? 149 00:06:49,070 --> 00:06:53,200 Vam haver de fer servir una funció anomenada StrComp o StrEndComp o qualsevol 150 00:06:53,200 --> 00:06:54,840 dels seus cosins relacionats. 151 00:06:54,840 --> 00:06:56,980 >> I així ja veiem aquests avantatges. 152 00:06:56,980 --> 00:07:00,930 No hem de fer alguna cosa tan ximple o potser poc intuïtiu 153 00:07:00,930 --> 00:07:03,540 com cridar a una funció anomenada StrComp si només vull provar 154 00:07:03,540 --> 00:07:05,237 si un valor és igual a una cadena. 155 00:07:05,237 --> 00:07:07,820 Jo només podia fer servir iguals iguals, com si pogués fer res més. 156 00:07:07,820 --> 00:07:09,560 Així que hi ha un avantatge. 157 00:07:09,560 --> 00:07:13,350 >> A vegades, per cert, és possible que veure més si com una sola paraula, elseif. 158 00:07:13,350 --> 00:07:14,910 I això està bé en PHP també. 159 00:07:14,910 --> 00:07:17,020 Així que de vegades és possible que vegi això. 160 00:07:17,020 --> 00:07:17,790 No és un error tipogràfic. 161 00:07:17,790 --> 00:07:21,830 PHP realment entén elseif. 162 00:07:21,830 --> 00:07:23,980 No sé per què decidit implementar que, 163 00:07:23,980 --> 00:07:28,220 però com hem vist moltes vegades mitjançant la nostra vídeos fins al moment, 164 00:07:28,220 --> 00:07:30,460 que els programadors encanta si que podem fer les coses ràpidament, 165 00:07:30,460 --> 00:07:33,660 així que desfer-se d'aquest espai aparentment és un gran avantatge. 166 00:07:33,660 --> 00:07:34,800 >> Així que això és sempre i elseif. 167 00:07:34,800 --> 00:07:37,540 També comptem amb l'operador ternari, record signe d'interrogació de còlon, 168 00:07:37,540 --> 00:07:43,262 de forma molt breu, si altra cosa o ramificació condicional. 169 00:07:43,262 --> 00:07:45,470 I pel que sembla, en aquest, el que estem tractant de fer aquí 170 00:07:45,470 --> 00:07:49,720 es assignar la variable $ Carta ja sigui vertadera o falsa, 171 00:07:49,720 --> 00:07:54,110 depenent de si $ var és un caràcter alfabètic. 172 00:07:54,110 --> 00:07:57,320 Així que això és bastant similar a isalpha que estem familiaritzats amb d'C. 173 00:07:57,320 --> 00:07:59,010 Aquesta és una espècie d'equivalent en PHP. 174 00:07:59,010 --> 00:08:01,550 La funció és aparentment anomenada ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 però així és com ho fem en PHP. 176 00:08:03,450 --> 00:08:08,560 Així que tot això va a ser és, si $ Var és una carta, $ carta és cert. 177 00:08:08,560 --> 00:08:13,820 Si $ var no és una carta, $ Carta és falsa. 178 00:08:13,820 --> 00:08:15,820 >> També tenim sentències switch encara. 179 00:08:15,820 --> 00:08:17,870 Recordem els de C també. 180 00:08:17,870 --> 00:08:22,480 A la part superior hi ha, això és el que fem alguna cosa així com aconseguir int o aconseguir cadena. 181 00:08:22,480 --> 00:08:23,845 Així que PHP ha de construir a. 182 00:08:23,845 --> 00:08:25,470 No necessitem la biblioteca CS50 més. 183 00:08:25,470 --> 00:08:27,237 Només podem utilitzar la funció readline. 184 00:08:27,237 --> 00:08:29,820 El que va a fer és imprimir el missatge: "El seu estat, 185 00:08:29,820 --> 00:08:33,820 per favor ", i després parpelleja ràpida esperant que l'usuari introdueixi 186 00:08:33,820 --> 00:08:34,739 alguna informació. 187 00:08:34,739 --> 00:08:36,530 Ara fixeu-vos què més que podem fer amb interruptor. 188 00:08:36,530 --> 00:08:39,105 Si vostè ha utilitzat abans, es recordarà que l'interruptor 189 00:08:39,105 --> 00:08:44,960 es limita pràcticament a sencers i personatges, però ara podem utilitzar cadenes. 190 00:08:44,960 --> 00:08:50,190 I de fet, la sentència switch en PHP és una mica més flexible 191 00:08:50,190 --> 00:08:54,880 que el seu cosí de C. 192 00:08:54,880 --> 00:08:55,380 Bucles. 193 00:08:55,380 --> 00:08:58,130 Igual que els condicionals, tots seus vells favorits encara hi són. 194 00:08:58,130 --> 00:09:00,740 Hem mentre bucles que compten a partir d'1 a 100 en aquest cas. 195 00:09:00,740 --> 00:09:03,940 Hem fer mentre bucles que compten d'1 a 100, 196 00:09:03,940 --> 00:09:06,200 i tenim els bucles que compten d'1 a 100. 197 00:09:06,200 --> 00:09:07,220 Així que no és gran salt allà. 198 00:09:07,220 --> 00:09:09,360 La sintaxi és bastant molt exactament el mateix, 199 00:09:09,360 --> 00:09:11,760 excepte que ara estem utilitzant variable de signe de dòlar en comptes 200 00:09:11,760 --> 00:09:17,260 de declarar variables senceres o una cosa així per als nostres comptadors. 201 00:09:17,260 --> 00:09:20,090 >> Aquí és on les coses es posen una molt millor que C, però. 202 00:09:20,090 --> 00:09:21,020 Arrays. 203 00:09:21,020 --> 00:09:23,020 Així recordem quan érem parlant de C, per tal 204 00:09:23,020 --> 00:09:25,560 per créixer i encongir conjunts d'informació, 205 00:09:25,560 --> 00:09:28,310 que necessitàvem per ordenar per defecte a aquesta idea d'una llista enllaçada, 206 00:09:28,310 --> 00:09:30,780 perquè les matrius C es van fixar en grandària. 207 00:09:30,780 --> 00:09:31,800 No hem pogut reduir la seva grandària. 208 00:09:31,800 --> 00:09:32,930 No hem pogut créixer. 209 00:09:32,930 --> 00:09:36,074 Vam haver de reassignar la memòria i faràs tota aquesta bogeria 210 00:09:36,074 --> 00:09:38,490 o utilitzar llistes enllaçades, que prendre un bon espai de poc més. 211 00:09:38,490 --> 00:09:41,590 Però en PHP, les matrius són no es fixa en la mida més. 212 00:09:41,590 --> 00:09:43,240 Poden créixer i poden encongir-se. 213 00:09:43,240 --> 00:09:46,660 Així que de nou, aquests 20 anys que existia entre la primera versió de C 214 00:09:46,660 --> 00:09:49,440 i la primera versió de PHP, hem decidit que, ja saps, 215 00:09:49,440 --> 00:09:51,670 seria realment gran si poguéssim fer això. 216 00:09:51,670 --> 00:09:54,100 I així hem implementat això. 217 00:09:54,100 --> 00:09:58,040 >> Així arrays PHP no són fixos en mida, i perquè PHP en realitat no 218 00:09:58,040 --> 00:10:03,090 tenir programador que donava al capdavant nocions de tipus, 219 00:10:03,090 --> 00:10:05,110 podem barrejar tipus de dades en els nostres arrays, també. 220 00:10:05,110 --> 00:10:08,100 Així que ni tan sols hem de fer servir tota sencers o tots els punts flotants, 221 00:10:08,100 --> 00:10:12,826 podem tenir una barreja de tot diferents tipus en una sola matriu. 222 00:10:12,826 --> 00:10:14,700 Declarant una matriu és bastant senzill. 223 00:10:14,700 --> 00:10:16,116 És com qualsevol altra variable. 224 00:10:16,116 --> 00:10:20,020 nums $ = array (1, 2, 3, 4), sent una funció array 225 00:10:20,020 --> 00:10:22,760 que es construeix en PHP que crearà una matriu per a vostè. 226 00:10:22,760 --> 00:10:28,315 Això crea una matriu de quatre valors, nombres en aquest cas, van cridar $ nums. 227 00:10:28,315 --> 00:10:29,940 I hi ha més d'una manera de fer-ho. 228 00:10:29,940 --> 00:10:32,420 I anem a veure això molt en PHP. 229 00:10:32,420 --> 00:10:36,380 PHP ha estat desenvolupat per molts diferents persones i creix i creix i creix. 230 00:10:36,380 --> 00:10:40,050 En general hi ha no només dos o tres maneres de fer alguna cosa en PHP, 231 00:10:40,050 --> 00:10:42,170 en general hi ha com 10 o 20. 232 00:10:42,170 --> 00:10:45,300 Això és només un altre comú forma de declarar una matriu. 233 00:10:45,300 --> 00:10:48,310 $ Nums = quadrats del suport 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Així que això és una mena de semblant a l'angle de C br-- notació claudàtor, més bé. $ - 235 00:10:53,170 --> 00:10:58,525 o seria int nums quadrat claudàtors és igual clau d'1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 En PHP és $ nums = quadrat suports 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Però aquests dos exemples aquí em donen una matriu de quatre en aquest cas els nombres enters. 238 00:11:08,920 --> 00:11:10,920 >> Què passa si vull virar alguna cosa ara? 239 00:11:10,920 --> 00:11:14,760 Bé, jo només puc dir $ nums 4, que de nou, encara estem explicant des de 0 aquí 240 00:11:14,760 --> 00:11:17,800 en PHP, seria el cinquè element de la matriu. 241 00:11:17,800 --> 00:11:18,990 Jo només puc dir això. 242 00:11:18,990 --> 00:11:22,860 Jo no vaig a patir un seg queixar, perquè la meva matriu és simplement 243 00:11:22,860 --> 00:11:24,337 creixerà per donar cabuda a això. 244 00:11:24,337 --> 00:11:25,420 Això és molt bonic, oi? 245 00:11:25,420 --> 00:11:28,400 I, de fet, jo ni tan sols necessito especificar on vull posar-ho. 246 00:11:28,400 --> 00:11:31,220 Jo només puc dir això i just virar a la dreta en el final, 247 00:11:31,220 --> 00:11:34,099 O podria fins i tot només dir $ nums 20 o 1000. 248 00:11:34,099 --> 00:11:35,140 En realitat no importa. 249 00:11:35,140 --> 00:11:38,330 Està sent només va a virar a la dreta en el final. 250 00:11:38,330 --> 00:11:41,490 >> Així que puc créixer, i com-- estem no va a cobrir aquí, 251 00:11:41,490 --> 00:11:45,360 però puc empalmar o tira elements fora de la matriu, així, 252 00:11:45,360 --> 00:11:50,064 i el conjunt es reduirà per acomodar que ara falta o l'espai buit. 253 00:11:50,064 --> 00:11:52,230 Hi ha una altra manera de virar alguna cosa en una matriu, 254 00:11:52,230 --> 00:11:54,330 que és una funció anomenada array_push. 255 00:11:54,330 --> 00:11:57,860 Així que de nou, només per aquesta idea de ser capaç de fer coses de moltes maneres diferents. 256 00:11:57,860 --> 00:12:01,950 Així que hem vist tres maneres diferents ara per virar un altre element en una matriu. 257 00:12:01,950 --> 00:12:06,900 Així que això afegeix un altre element fins al final de la matriu $ nums. 258 00:12:06,900 --> 00:12:08,340 I podem barrejar els nostres tipus de dades. 259 00:12:08,340 --> 00:12:13,110 Així que podria tenir una matriu de no 1, 2, 3, 4, però 1, és cert, 3, 4, 260 00:12:13,110 --> 00:12:16,420 on la veritable és un booleà, i després si vull afegir un altre element 261 00:12:16,420 --> 00:12:20,860 a aquesta matriu, potser una cadena, la cadena "cinc" Jo podria fer això. 262 00:12:20,860 --> 00:12:26,110 I ara el meu arsenal faria ser 1, veritable, 3, 4, 5. 263 00:12:26,110 --> 00:12:28,640 La paraula de cinc, no el nombre sencer maig. 264 00:12:28,640 --> 00:12:31,270 Així que molta flexibilitat allà. 265 00:12:31,270 --> 00:12:33,290 >> La flexibilitat aconsegueix millor encara, però, 266 00:12:33,290 --> 00:12:37,530 pel fet que PHP té suport per a alguna cosa anomenada una matriu associativa. 267 00:12:37,530 --> 00:12:40,660 I una mena de vaga parlat matrius sobre associatives en C 268 00:12:40,660 --> 00:12:44,740 en el context de les taules hash, perquè el matrius associatives són realment tot 269 00:12:44,740 --> 00:12:48,950 sobre estan fent clau parell de valors assignacions. 270 00:12:48,950 --> 00:12:53,410 I en aquest cas, la keys-- si estem familiaritzats amb els arrays de C, 271 00:12:53,410 --> 00:12:55,440 les tecles són nombres d'índex. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 I els valors són el que ens trobem que array 0, array 1, array 2, i així successivament. 274 00:13:03,070 --> 00:13:06,310 Així que les claus són índexs, i els valors són 275 00:13:06,310 --> 00:13:10,060 el que està en aquesta ubicació matriu, especificat per aquest índex. 276 00:13:10,060 --> 00:13:15,130 >> Però en PHP, no hem de fer això noció de matriu 0, array 1, sèrie 2 277 00:13:15,130 --> 00:13:15,830 més. 278 00:13:15,830 --> 00:13:21,025 Ara podem usar paraules reals per assignar claus als valors. 279 00:13:21,025 --> 00:13:22,650 I perquè jo pogués dir alguna cosa com això. 280 00:13:22,650 --> 00:13:26,710 Jo podria crear una matriu usant el plaça sintaxi suport de la següent manera. 281 00:13:26,710 --> 00:13:30,685 $ Pizzes = claudàtor "formatge" i després 282 00:13:30,685 --> 00:13:37,210 aquest tipus de notació de doble fletxa, 8.99 ", pepperoni," fletxa 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 etcètera. 284 00:13:37,880 --> 00:13:39,060 I així, què està passant aquí? 285 00:13:39,060 --> 00:13:41,040 Què estic fent en realitat? 286 00:13:41,040 --> 00:13:43,990 Estic creant Les assignacions de parells de valor. 287 00:13:43,990 --> 00:13:49,060 Així que en lloc de dir, per exemple, pizzes 0, peces 1, 2 pizzes, 288 00:13:49,060 --> 00:13:52,350 Ara puc dir pizzes formatge, pizzes de pepperoni, 289 00:13:52,350 --> 00:13:55,120 i es refereixen als valors associat amb ells. 290 00:13:55,120 --> 00:13:56,970 >> Així que aquí estan les claus en verd. 291 00:13:56,970 --> 00:13:59,870 Formatge, pepperoni, verdures, pollastre búfal. 292 00:13:59,870 --> 00:14:04,200 Aquí està la fletxa que fa aquesta clau d'assignació parell de valors. 293 00:14:04,200 --> 00:14:07,420 I llavors aquí són els valors en aquesta ubicació fallida. 294 00:14:07,420 --> 00:14:10,330 Així que és com dir gamma 0 és igual a 8.99. 295 00:14:10,330 --> 00:14:11,720 La clau és 0. 296 00:14:11,720 --> 00:14:13,600 El valor és 8,99. 297 00:14:13,600 --> 00:14:19,370 Ara puc dir formatge matriu, o en aquest cas pizzes de formatge, el formatge és la clau, 298 00:14:19,370 --> 00:14:23,340 i el que trobo a formatge pizzes és 8,99. 299 00:14:23,340 --> 00:14:25,540 Aquest és el valor que hi trobava. 300 00:14:25,540 --> 00:14:28,124 >> Així que puc dir coses com. formatge de pizza $ = 7,99. 301 00:14:28,124 --> 00:14:29,040 Diguem que estic tenint una venda. 302 00:14:29,040 --> 00:14:31,750 Vull dis-- vull caure el preu de la pizza de formatge. 303 00:14:31,750 --> 00:14:35,620 O puc fer servir el vegetal pizza com a part d'una condició, 304 00:14:35,620 --> 00:14:39,990 o puc afegir un nou element al meu matriu, de la mateixa manera que jo podia fer abans. 305 00:14:39,990 --> 00:14:44,680 Puc afegir un nou element a aquest matriu associativa amb el "cansalada" clau 306 00:14:44,680 --> 00:14:49,250 i el valor de 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Però aquest tipus de introdueix un problema, si vostè pensa en això per un segon. 308 00:14:53,820 --> 00:14:55,721 Com podríem iterar a través d'aquesta sèrie? 309 00:14:55,721 --> 00:14:56,220 Oi? 310 00:14:56,220 --> 00:14:59,820 En C, ens acaba de tenir un per al bucle, en general, que 311 00:14:59,820 --> 00:15:03,650 aniria des de 0 fins al mida de la matriu almenys 1. 312 00:15:03,650 --> 00:15:08,060 La matriu té n elements en el índexs vàlids són del 0 al n almenys 1. 313 00:15:08,060 --> 00:15:11,530 Així que podríem fer servir un bucle for per pas a través de cada element individual. 314 00:15:11,530 --> 00:15:13,530 >> Però això no és realment el cas més, no? 315 00:15:13,530 --> 00:15:17,360 Ara on tenim parell de valors clau assignacions on les claus són les paraules, 316 00:15:17,360 --> 00:15:19,970 ¿Com podem iterar sobre totes les paraules? 317 00:15:19,970 --> 00:15:22,420 Bé, afortunadament, PHP té una manera de bregar amb això també, 318 00:15:22,420 --> 00:15:24,580 i el que anem a saltar de nou als bucles per a un segon 319 00:15:24,580 --> 00:15:30,780 introduir un quart tipus de bucle que existeix en PHP anomenat un bucle foreach. 320 00:15:30,780 --> 00:15:34,430 I el que és un bucle foreach fa és és bàsicament la mateixa idea. 321 00:15:34,430 --> 00:15:36,060 Es pot utilitzar per a qualsevol tipus d'arranjament. 322 00:15:36,060 --> 00:15:38,100 Però és bàsicament el mateixa idea que un bucle for, 323 00:15:38,100 --> 00:15:40,750 excepte que en lloc d'utilitzar nombres índexs, només 324 00:15:40,750 --> 00:15:45,830 té aquesta sintaxi estranya, on es diu a cada element 325 00:15:45,830 --> 00:15:47,550 un nom per als fins d'aquest bucle. 326 00:15:47,550 --> 00:15:49,258 >> Així doncs, en aquest cas, foreach ($ array com $ clau). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Bàsicament, el que les notes de comentari, dins d'aquest bucle foreach, 329 00:15:56,450 --> 00:16:00,466 que va anar sobre cada element de l'array $, que és típicament 330 00:16:00,466 --> 00:16:03,340 serà un array associatiu, però en realitat pot ser qualsevol tipus de matriu 331 00:16:03,340 --> 00:16:05,419 que desitja en PHP. 332 00:16:05,419 --> 00:16:07,210 I cada vegada que, en un bucle for que podria 333 00:16:07,210 --> 00:16:13,780 han dit claudàtors $ array $ I, només vaig poder dir $ clau. 334 00:16:13,780 --> 00:16:22,340 Així que $ clau es converteix en un àlies per a cada índex de la seva PHP matriu associativa, 335 00:16:22,340 --> 00:16:23,710 i perquè pugui usar-lo així. 336 00:16:23,710 --> 00:16:25,897 >> Així, per exemple, tenim Ara aconseguim la nostra gamma pizzes. 337 00:16:25,897 --> 00:16:27,730 He tipus de vaig ficar a la cantonada hi 338 00:16:27,730 --> 00:16:31,080 pel que podem usar-lo per fer un exemple ràpid. 339 00:16:31,080 --> 00:16:36,420 Si dic foreach ($ pizzes com $ Pizza), bé, ¿què està passant? 340 00:16:36,420 --> 00:16:42,400 Bé, vaig a recórrer tots els sol element de la matriu $ pizzes, 341 00:16:42,400 --> 00:16:46,670 i en fer-ho, vaig a trucar a cada element, quan estic a l'interior 342 00:16:46,670 --> 00:16:49,400 del cos d'aquest bucle, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> Així que això és una mena de suplent, recordar, que la pizza $ 344 00:16:52,440 --> 00:16:59,140 és un substitut per dir $ Pizzes claudàtors $ i 345 00:16:59,140 --> 00:17:03,370 si estàvem usant un bucle for, on podria anar des de $ i = 0 a, en aquest cas, 346 00:17:03,370 --> 00:17:06,089 $ I = 3. 347 00:17:06,089 --> 00:17:09,780 Si no tinguéssim parells de valors clau aquí, això seria element 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 i ens agradaria utilitzar un bucle per anar $ 0 pizzes, pizzes $ 1, $ 2 pizzes, 349 00:17:16,390 --> 00:17:17,750 $ 3 pizzes. 350 00:17:17,750 --> 00:17:23,130 Així que ara només $ pizzes està substituint per aquesta tecla individual. 351 00:17:23,130 --> 00:17:25,630 >> Llavors, què és això va a imprimir? 352 00:17:25,630 --> 00:17:29,030 Estic imprimint $ pizza. 353 00:17:29,030 --> 00:17:35,270 Què vaig a trobar at-- si imprimeixo $ pizzes, $ i? 354 00:17:35,270 --> 00:17:35,770 Oi? 355 00:17:35,770 --> 00:17:38,680 Si vaig a imprimir l'element i de pizzes, 356 00:17:38,680 --> 00:17:40,070 ho vaig a imprimir? 357 00:17:40,070 --> 00:17:42,580 Vaig a imprimir el valors en aquest lloc, oi? 358 00:17:42,580 --> 00:17:45,370 Igual que si fèiem això en el context de C, 359 00:17:45,370 --> 00:17:49,786 no solem utilitzar el nostre Iterador variable int i = 0, i és menor que 3, 360 00:17:49,786 --> 00:17:52,900 i ++, per imprimir 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Estem imprimint sèrie 0, matriu 1, matriu 2, sèrie 3. 362 00:17:57,500 --> 00:17:59,580 I així el que això imprimeix és això. 363 00:17:59,580 --> 00:18:01,150 És el llistat de preus. 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 >> Ara una nota ràpida aquí. 366 00:18:06,900 --> 00:18:10,900 Un bucle foreach no necessàriament imprimir les coses en ordre. 367 00:18:10,900 --> 00:18:12,770 No està garantit. 368 00:18:12,770 --> 00:18:13,550 En general ho fa. 369 00:18:13,550 --> 00:18:17,667 En general, està basat en l'ordre en elements que s'afegeixen a la matriu, 370 00:18:17,667 --> 00:18:18,750 així que tenir això en compte. 371 00:18:18,750 --> 00:18:20,830 Potser no és la fi. 372 00:18:20,830 --> 00:18:23,930 Però un bucle foreach iterará a través de cada element 373 00:18:23,930 --> 00:18:25,060 de la matriu en qüestió. 374 00:18:25,060 --> 00:18:27,980 En aquest cas, de nou, aquesta matriu és de $ pizzes. 375 00:18:27,980 --> 00:18:32,920 >> Puc canviar la sintaxi, però, si Vull la clau i el valor. 376 00:18:32,920 --> 00:18:37,179 En lloc de dir $ pizzes com $ pizza, puc dir això. 377 00:18:37,179 --> 00:18:39,470 I si ens fixem en el que he ressaltat en verd aquí, 378 00:18:39,470 --> 00:18:42,130 es veu com una assignació de tecles parell de valors. 379 00:18:42,130 --> 00:18:45,980 I pel que si usted-- encara que no està tot segur del que va a fer, 380 00:18:45,980 --> 00:18:49,300 Probablement es pot endevinar que $ farcit va 381 00:18:49,300 --> 00:18:53,800 a ser la clau en aquest cas i $ Preu serà el valor. 382 00:18:53,800 --> 00:18:59,200 Així que estic substituint ara cada element de $ pizzes com un parell de valors clau, 383 00:18:59,200 --> 00:19:03,900 i ara puc fer referència a la clau i el valor, que podria molt bé, 384 00:19:03,900 --> 00:19:05,590 per exemple, com segueix. 385 00:19:05,590 --> 00:19:10,170 >> "Un conjunt" - es tracta d'una gran quantitat de impressió passant aquí-- "en el seu conjunt" 386 00:19:10,170 --> 00:19:17,300 superant "pizza costa $" preu, i després Imprimeixo un període i una barra invertida n. 387 00:19:17,300 --> 00:19:23,420 Així que ara, l'avís de nou em té accés a 1 clau, $ topping, i un valor, $ preu. 388 00:19:23,420 --> 00:19:26,647 Així que es pot endevinar el que això es va a imprimir? 389 00:19:26,647 --> 00:19:29,480 Hi ha una gran quantitat de declaracions d'impressió, però només hi ha una barra invertida n, 390 00:19:29,480 --> 00:19:33,410 així que va a imprimir alguna cosa en 1 entire-- en una sola línia de codi. 391 00:19:33,410 --> 00:19:36,965 >> Si puc fer referència a la clau i el valor, llavors ara, 392 00:19:36,965 --> 00:19:39,090 en lloc de només ser capaç per imprimir els preus, 393 00:19:39,090 --> 00:19:41,330 Puc imprimir alguna cosa com això. 394 00:19:41,330 --> 00:19:43,780 "Tota una pizza de formatge costa 8,99 $." 395 00:19:43,780 --> 00:19:47,150 I ara que estic fent servir tot el keys-- formatge, pepperoni, vegetal, 396 00:19:47,150 --> 00:19:49,640 búfal chicken-- i els valors. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Així això és només una manera diferent 398 00:19:53,980 --> 00:19:57,840 fer un bucle foreach que en lloc de simplement li dóna accés als valors, 399 00:19:57,840 --> 00:20:02,950 només dóna usted-- et dóna l'accés a les claus i els valors. 400 00:20:02,950 --> 00:20:04,411 >> Així imprimir informació. 401 00:20:04,411 --> 00:20:07,410 Jo ja he fet un parell de diferents maneres, t'hauràs adonat. 402 00:20:07,410 --> 00:20:11,080 Les dues funcions que hem principalment vist són d'impressió i ressò. 403 00:20:11,080 --> 00:20:14,380 I per pràcticament tots els intents i propòsits, són exactament el mateix. 404 00:20:14,380 --> 00:20:17,130 They're-- hi ha una molt subtil diferència que no és tan sols val la pena 405 00:20:17,130 --> 00:20:21,130 ficant, però bàsicament tot arreu pot utilitzar la impressió és probable que pugui utilitzar 406 00:20:21,130 --> 00:20:22,370 ressò també. 407 00:20:22,370 --> 00:20:23,610 >> I això no és l'únic 02:00. 408 00:20:23,610 --> 00:20:26,970 PHP té una gran quantitat de diferents formes d'imprimir les coses, 409 00:20:26,970 --> 00:20:30,520 i també té formes d'integrar variables en el mitjà de la cadena. 410 00:20:30,520 --> 00:20:32,860 Així que recordi de C, oi recordar el que la funció 411 00:20:32,860 --> 00:20:37,580 que podem utilitzar per substituir les variables en les coses que volem imprimir? 412 00:20:37,580 --> 00:20:40,160 És probable que utilitzi aquest funcionar bastant. 413 00:20:40,160 --> 00:20:42,290 printf, oi? 414 00:20:42,290 --> 00:20:45,290 Així que això és el que teníem abans a l'interior del context del nostre bucle foreach. 415 00:20:45,290 --> 00:20:48,000 Vam tenir aquests cinc declaracions d'impressió independents, 416 00:20:48,000 --> 00:20:50,330 perquè aquesta era l'única manera que realment sabia en el moment 417 00:20:50,330 --> 00:20:52,450 com imprimir missatges. 418 00:20:52,450 --> 00:20:59,560 Jo no sabia com integrar la variable $ superant en el meu codi PHP. 419 00:20:59,560 --> 00:21:03,700 Bé, si m'acaba de prendre una conjectura salvatge, printf, que en realitat hauria funcionat. 420 00:21:03,700 --> 00:21:08,980 printf és una funció que pugui utilitzar en PHP, igual que ho puc fer servir en C. 421 00:21:08,980 --> 00:21:11,880 >> I així alguna cosa com això, printf, de nou, estem familiaritzats amb això. 422 00:21:11,880 --> 00:21:16,420 El primer% s se substitueix amb el valor de $ topping. 423 00:21:16,420 --> 00:21:19,700 El segon% s es substitueix amb el valor de $ preu. 424 00:21:19,700 --> 00:21:22,630 I pel que estic interpel·lant, que és només una forma elegant 425 00:21:22,630 --> 00:21:25,400 de dir que estic pegant el variables en aquest lloc. 426 00:21:25,400 --> 00:21:31,000 Així que estic endollant $ superant on el vermella% s és i $ preu on el% s blau 427 00:21:31,000 --> 00:21:36,060 és, i després em anava a aconseguir el missatge, "Tota una pizza de formatge costa 8,99 $." 428 00:21:36,060 --> 00:21:37,750 >> No és l'única manera que puc fer-ho, però. 429 00:21:37,750 --> 00:21:39,760 Potser m'agradaria utilitzar aquest mètode. 430 00:21:39,760 --> 00:21:44,890 Això és en realitat el que és més comunament anomenada interpel·lació variable. 431 00:21:44,890 --> 00:21:45,690 Puc utilitzar un ressò. 432 00:21:45,690 --> 00:21:47,737 Em vindria bé una impressió també, com veurem. 433 00:21:47,737 --> 00:21:48,820 Però, què està passant aquí? 434 00:21:48,820 --> 00:21:51,520 >> En primer lloc, he de escapar de la mostra de dòlar. 435 00:21:51,520 --> 00:21:55,140 Perquè recordeu, quan estàvem en realitat impressió dels preus de les pizzes, 436 00:21:55,140 --> 00:21:59,370 Jo estava en realitat donar-los format com xifres monetàries amb un signe de dòlar. 437 00:21:59,370 --> 00:22:05,635 Però estem fent servir signes de dòlar també per representar els noms de variables en PHP, 438 00:22:05,635 --> 00:22:08,010 i en particular quan estic l'ús d'aquest mètode de la arrissat 439 00:22:08,010 --> 00:22:10,040 variable de reforç mètode de la interpel·lació, necessito 440 00:22:10,040 --> 00:22:13,490 per escapar de la meva signe del dòlar en el que no ho fa Crec que estic parlant d'una variable. 441 00:22:13,490 --> 00:22:16,920 Va a realitat, literalment imprimir un signe de dòlar. 442 00:22:16,920 --> 00:22:19,530 >> Així espècie de analogize a el que es veu al final allà. 443 00:22:19,530 --> 00:22:22,832 No ho fa realitat print barra invertida n, oi? 444 00:22:22,832 --> 00:22:24,290 S'imprimeix un caràcter de nova línia. 445 00:22:24,290 --> 00:22:26,750 Aquesta és-- no va a print signe de dòlar barra invertida, 446 00:22:26,750 --> 00:22:30,130 que va a imprimir només un caràcter de signe de dòlar. 447 00:22:30,130 --> 00:22:30,640 La mateixa idea. 448 00:22:30,640 --> 00:22:32,760 Les seqüències d'escapament, el que aquestes coses es diuen. 449 00:22:32,760 --> 00:22:37,080 >> Però noto que no estic fent qualsevol tipus de substitucions% s, 450 00:22:37,080 --> 00:22:40,050 Estic literalment endollar en aquestes variables. 451 00:22:40,050 --> 00:22:45,110 I així, en esto-- el que succeiria aquí és que el valor de $ topping-- de nou, 452 00:22:45,110 --> 00:22:48,390 només mantenir amb el que hem estat parlant de formatge tan far-- obtindria 453 00:22:48,390 --> 00:22:49,720 endollat ​​allà. 454 00:22:49,720 --> 00:22:54,780 I $ preu seria qualsevol valor és en pizzes, entre claudàtors, el formatge, 455 00:22:54,780 --> 00:22:56,270 que era 8,99. 456 00:22:56,270 --> 00:23:01,860 I així això també imprimir "Tota una pizza de formatge costa 8,99 $." 457 00:23:01,860 --> 00:23:05,160 I com he dit, em vindria bé imprimir aquí en comptes d'eco, 458 00:23:05,160 --> 00:23:08,040 i la funcionalitat sigui gairebé exactament el mateix. 459 00:23:08,040 --> 00:23:09,660 Seria imprimir la mateixa cosa. 460 00:23:09,660 --> 00:23:12,680 >> Hi ha una altra manera de fer-ho, i això és un altre avantatge 461 00:23:12,680 --> 00:23:14,710 de PHP treballar amb cadenes. 462 00:23:14,710 --> 00:23:17,130 Podem fer la concatenació de cadenes. 463 00:23:17,130 --> 00:23:19,660 Podríem fer això en C, també, usant una funció anomenada strcat, 464 00:23:19,660 --> 00:23:21,180 però una vegada més, vam haver de cridar a funcions separades. 465 00:23:21,180 --> 00:23:22,640 Va ser tot aquest embolic que fer. 466 00:23:22,640 --> 00:23:24,590 Vam haver lliura incloure string.h. 467 00:23:24,590 --> 00:23:25,780 Va ser una producció, no? 468 00:23:25,780 --> 00:23:30,070 Però ara puc simplement usar aquest operador punt per concatenar cadenes junts. 469 00:23:30,070 --> 00:23:34,910 >> Així que estic concatenant "en el seu conjunt" i a continuació, qualsevol que sigui el valor de $ desmoche és, 470 00:23:34,910 --> 00:23:38,860 i després un altre cadena, "pizza costa $" 471 00:23:38,860 --> 00:23:42,340 i després concatenant el el valor de $ preu és, 472 00:23:42,340 --> 00:23:45,670 i després al final estic virades en període barra invertida n. 473 00:23:45,670 --> 00:23:47,926 I el que també faria imprimir "en el seu conjunt" - de nou, 474 00:23:47,926 --> 00:23:50,550 si estem parlant de la primera element d'aquesta array-- pizzes 475 00:23:50,550 --> 00:23:54,710 "Tota una pizza de formatge costa 8,99 $." 476 00:23:54,710 --> 00:24:01,260 Període, barra invertida n, una altra vegada, amb el desmoche $ i $ preu substitució 477 00:24:01,260 --> 00:24:06,580 pel que havíem especificat en la nostra foreach bucle com la clau d'assignació parell de valors. 478 00:24:06,580 --> 00:24:08,050 >> PHP pot gestionar funcions. 479 00:24:08,050 --> 00:24:11,250 Funcions eren una mena de integrant de C, com hem vist. 480 00:24:11,250 --> 00:24:14,870 Igual que les variables, no necessitem a especifiqui el tipus de retorn de la funció, 481 00:24:14,870 --> 00:24:16,350 perquè en realitat no importa. 482 00:24:16,350 --> 00:24:18,660 I no especifiquem la tipus de dades dels paràmetres, 483 00:24:18,660 --> 00:24:21,410 perquè en realitat no matèria, com hem vist en PHP. 484 00:24:21,410 --> 00:24:24,510 Cada funció s'introdueix amb la paraula clau funció. 485 00:24:24,510 --> 00:24:27,920 Així és com ho vam indicar a PHP que el que estem parlant és d'una funció. 486 00:24:27,920 --> 00:24:29,720 >> I nosaltres no hem de davant principal en absolut, 487 00:24:29,720 --> 00:24:33,690 pel fet que l'intèrpret, el PHP intèrpret, funciona de dalt a baix, 488 00:24:33,690 --> 00:24:34,190 independentment. 489 00:24:34,190 --> 00:24:35,640 Si veu vostè pot fer una trucada de funció, que va 490 00:24:35,640 --> 00:24:37,850 anar a buscar a la crida de funció, fins i tot si es tracta més endavant. 491 00:24:37,850 --> 00:24:40,360 Però va a llegir de dalt part inferior, de manera que no necessitem especificar, 492 00:24:40,360 --> 00:24:41,500 aquí és on vostè comença. 493 00:24:41,500 --> 00:24:46,700 Vostè comença en la línia 1 del seu PHP i treballar des d'allà. 494 00:24:46,700 --> 00:24:49,690 >> Així que aquí és com crearíem una funció anomenada hard_square. 495 00:24:49,690 --> 00:24:54,100 Pel que sembla, es necessita un paràmetre, que estic trucant $ x. 496 00:24:54,100 --> 00:24:58,424 Aquesta funció es complica només per il·lustrar diverses coses. 497 00:24:58,424 --> 00:24:59,590 Encara tenim valors de retorn. 498 00:24:59,590 --> 00:25:00,870 Estic usant un bucle for aquí. 499 00:25:00,870 --> 00:25:04,970 Però és bàsicament, el que això ascendeix a està a només $ x $ x vegades. 500 00:25:04,970 --> 00:25:10,520 El que en realitat estic fent és simplement afegint x 0 x vegades o $ X a zero $ x vegades. 501 00:25:10,520 --> 00:25:15,850 Però és efectivament exactament el mateix que multiplicar $ x vegades $ x. 502 00:25:15,850 --> 00:25:18,700 Encara puc tornar un valor, en aquest cas $ resultat, 503 00:25:18,700 --> 00:25:22,060 i he fet una funció en PHP. 504 00:25:22,060 --> 00:25:24,160 >> Heus aquí com vostè pot utilitzar-lo en el seu context. 505 00:25:24,160 --> 00:25:26,020 Així que potser estic dins d'algun arxiu PHP. 506 00:25:26,020 --> 00:25:29,240 Fixeu-vos en blau cal He fet servir les meves delimitadors PHP, 507 00:25:29,240 --> 00:25:31,010 claudàtor angular signe d'interrogació php. 508 00:25:31,010 --> 00:25:35,180 Entre els que es troben tots el PHP que vull escriure. 509 00:25:35,180 --> 00:25:37,840 Així que estic pel que sembla va a get-- Vaig a demanar a l'usuari 510 00:25:37,840 --> 00:25:41,550 que em donés un nombre, botiga que variables, botiga a la variable $ x, 511 00:25:41,550 --> 00:25:43,320 el que em van donar. 512 00:25:43,320 --> 00:25:48,590 Llavors em vaig a repetir hard_square d'aquest valor, 513 00:25:48,590 --> 00:25:50,370 i pel que sembla va per virar en una nova línia 514 00:25:50,370 --> 00:25:53,590 també, i més tard vaig a definir la funció de manera hard_square 515 00:25:53,590 --> 00:25:55,550 que quan faig la trucar a hard_square, 516 00:25:55,550 --> 00:25:58,160 que sap del que estic parlant. 517 00:25:58,160 --> 00:26:00,705 >> Ara, jo també podia fer alguna cosa com això. 518 00:26:00,705 --> 00:26:02,050 Aquesta xifra és lleugerament diferent. 519 00:26:02,050 --> 00:26:04,190 És gairebé exactament el mateix que el que hem vist abans, 520 00:26:04,190 --> 00:26:08,400 excepte que en lloc de dir simplement $ x allí com el paràmetre per hard_square, 521 00:26:08,400 --> 00:26:11,730 Estic dient $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Així que aquest és un exemple de programació defensiva, 523 00:26:14,330 --> 00:26:17,070 guarda els teus programes contra els usuaris maliciosos. 524 00:26:17,070 --> 00:26:20,020 >> Aquesta és una manera de fer una mica d'error la comprovació que no hem fet realment 525 00:26:20,020 --> 00:26:24,670 tenen com a opció en C. Mai vaig poder especificar el valor per defecte d'alguna cosa. 526 00:26:24,670 --> 00:26:27,010 Sempre havíem de comprovar si el, per exemple, 527 00:26:27,010 --> 00:26:30,820 si fem una crida a GetString, era més adequada si immediatament després que 528 00:26:30,820 --> 00:26:33,300 comprovat que, ens vam registrar si la cadena 529 00:26:33,300 --> 00:26:35,504 que l'usuari ens va donar no és igual a null, 530 00:26:35,504 --> 00:26:37,920 perquè no volem començar treballar amb una cadena nul·la. 531 00:26:37,920 --> 00:26:39,670 >> Aquí, aquesta és una manera per protegir-se contra això. 532 00:26:39,670 --> 00:26:43,480 Si l'usuari no ens proporciona una mica d'alguna manera, ¿què farem? 533 00:26:43,480 --> 00:26:46,080 Bé, només haurem de dir el que sigui que no ens proporcionen, 534 00:26:46,080 --> 00:26:47,705 només anem a connectar 10 al seu lloc. 535 00:26:47,705 --> 00:26:52,030 Així que si no ens donen un valor, només ha d'utilitzar 10 per defecte. Així que aquí, 536 00:26:52,030 --> 00:26:53,940 Noto que estic fent Una crida a hard_square, 537 00:26:53,940 --> 00:26:55,980 però no hi ha ràpida per a l'usuari, oi? 538 00:26:55,980 --> 00:26:57,540 Només estic fent una trucada buida. 539 00:26:57,540 --> 00:27:00,860 >> Però la meva funció hard_square s'espera un paràmetre. 540 00:27:00,860 --> 00:27:02,222 Què és això va a imprimir? 541 00:27:02,222 --> 00:27:03,680 Es va a imprimir 100, oi? 542 00:27:03,680 --> 00:27:05,720 A causa de que l'usuari no ho va fer donar-me res. 543 00:27:05,720 --> 00:27:08,970 I així que només vaig a assumir que 10-- 10 és el valor per omissió. 544 00:27:08,970 --> 00:27:13,760 I pel que aquest seria imprimir el 100 en la seva pròpia línia. 545 00:27:13,760 --> 00:27:16,390 >> Arxius PHP no han de ser només un únic arxiu. 546 00:27:16,390 --> 00:27:19,480 Es poden combinar diversos arxius junts, de la mateixa manera que es pot en C. La forma 547 00:27:19,480 --> 00:27:24,330 ho vam fer en C era típicament per fer un #include per obtenir arxius de capçalera tirats a. 548 00:27:24,330 --> 00:27:26,180 Nosaltres no fem això en PHP. 549 00:27:26,180 --> 00:27:29,110 Fem una cosa anomenada require_once. 550 00:27:29,110 --> 00:27:33,360 I després hi ha aquest tot cosa, què és això __dir__? 551 00:27:33,360 --> 00:27:36,510 Això és només un especial variable o constant especial, 552 00:27:36,510 --> 00:27:39,030 realment, que s'especifica el seu directori actual. 553 00:27:39,030 --> 00:27:41,320 I pel que va a veure en el directori actual 554 00:27:41,320 --> 00:27:44,900 un arxiu anomenat cs50.php en aquest exemple aquí, 555 00:27:44,900 --> 00:27:50,490 i que seguirà aquest arxiu a la part superior del seu programa PHP, 556 00:27:50,490 --> 00:27:56,980 assumint que vostè posa la requereixen una vegada que la línia a la part superior del seu arxiu PHP. 557 00:27:56,980 --> 00:28:01,474 >> Així que PHP és útil sobretot, però no d'ús exclusiu, 558 00:28:01,474 --> 00:28:03,140 com un llenguatge per a la programació basada en la web. 559 00:28:03,140 --> 00:28:05,270 Això és realment la forma en què va arribar a ser. 560 00:28:05,270 --> 00:28:06,980 Però és un complet idioma, com hem vist. 561 00:28:06,980 --> 00:28:10,105 Hem vist gairebé totes les coses que pot fer que són similars a C, 562 00:28:10,105 --> 00:28:13,290 i es pot fer una diables d' molt més que això. 563 00:28:13,290 --> 00:28:16,950 >> Però perquè és un llenguatge complet i ens pot fer la programació de línia d'ordres en el mateix. 564 00:28:16,950 --> 00:28:18,630 Podem executar programes de línia d'ordres. 565 00:28:18,630 --> 00:28:22,580 Tot el que es requereix per executar una ordre programa de línia que està escrit en PHP 566 00:28:22,580 --> 00:28:24,260 és que vostè té un intèrpret de PHP. 567 00:28:24,260 --> 00:28:27,460 Així que és una espècie d'anàleg a tenir un compilador en el seu sistema 568 00:28:27,460 --> 00:28:31,100 si vols compilar el codi C per convertir-lo en arxius executables. 569 00:28:31,100 --> 00:28:33,810 Vostè necessita tenir un intèrpret de PHP el que existeix en el seu sistema 570 00:28:33,810 --> 00:28:37,330 perquè pugui interpretar els arxius PHP. 571 00:28:37,330 --> 00:28:40,370 >> Suposant que vostè fa, i en general aquest intèrpret es diu PHP, 572 00:28:40,370 --> 00:28:44,300 i és en general inclou amb la majoria descàrrega o instal lació de PHP 573 00:28:44,300 --> 00:28:47,430 que es pot obtenir en línia, i, certament, el nom de l'intèrpret PHP 574 00:28:47,430 --> 00:28:49,550 tenim en CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Tot el que fem és arxiu php tipus. 576 00:28:51,819 --> 00:28:53,610 I el que el seu programa de farem és que és 577 00:28:53,610 --> 00:28:55,360 va executar a través de l'intèrpret, és 578 00:28:55,360 --> 00:28:58,040 va ignorar tot el que és no en qüestió entre mark-- 579 00:28:58,040 --> 00:29:03,160 o, angle del suport signe d'interrogació php, els delimitadors PHP, i imprimir-lo, 580 00:29:03,160 --> 00:29:07,660 i va a interpretar i executar el codi dins de les seves delimitadors PHP. 581 00:29:07,660 --> 00:29:12,850 >> Així que anem a pop a IDE CS50 i fer una ullada a un parell d'arxius de PHP, 582 00:29:12,850 --> 00:29:19,850 corrent un parell d'arxius de PHP, en interfície de línia d'ordres de CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Així que aquí estem en IDE CS50, i m'he pres la llibertat 584 00:29:22,100 --> 00:29:25,800 d'obrir un arxiu anomenat hello1.php. 585 00:29:25,800 --> 00:29:29,920 I pel que sembla, el contingut d'aquest arxius són només els delimitadors PHP allà, 586 00:29:29,920 --> 00:29:32,220 i en el medi, echo ("hola, món"). 587 00:29:32,220 --> 00:29:34,710 Aquest és un programa PHP bastant simple. 588 00:29:34,710 --> 00:29:37,670 Jo només vaig a desplaçar-se cap avall a la meva finestra de terminal aquí, 589 00:29:37,670 --> 00:29:44,320 i jo vaig a escriure php hello1.php, prem enter. 590 00:29:44,320 --> 00:29:44,950 Hola món. 591 00:29:44,950 --> 00:29:48,110 Això és probablement el que vam ser esperant que ho faci, oi? 592 00:29:48,110 --> 00:29:51,140 >> Anem a pujar i prendre Una altra mirada a un programa. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Més o menys el mateix, No hi ha molt a fer aquí. 595 00:29:55,090 --> 00:29:57,190 Aquest cop, però, vaig a incitar l'usuari per donar-me els seus noms. 596 00:29:57,190 --> 00:29:59,290 Estic usant aquesta funció readline nou. 597 00:29:59,290 --> 00:30:01,340 $ Name = readline. 598 00:30:01,340 --> 00:30:03,070 Aquest és el missatge "Quin és el seu nom?" 599 00:30:03,070 --> 00:30:04,880 >> Pel que sembla sóc la impressió que en la seva pròpia línia. 600 00:30:04,880 --> 00:30:07,220 I llavors, de manera que la línia de sota que serà el símbol 601 00:30:07,220 --> 00:30:08,750 on l'usuari pot introduir el seu nom. 602 00:30:08,750 --> 00:30:12,030 I llavors jo estic fent servir una mica de interpel·lació variable d'aquí a la línia 3 603 00:30:12,030 --> 00:30:14,780 imprimir "Hola" i qualsevol que sigui l'usuari. 604 00:30:14,780 --> 00:30:22,040 Així que això és anàleg a dir, Hola, coma,% s si estàvem usant printf en C. 605 00:30:22,040 --> 00:30:24,910 >> Així que anirem i interpretar aquest programa. 606 00:30:24,910 --> 00:30:27,400 Així que de nou, vaig a desplaceu-vos cap avall a la meva finestra de terminal. 607 00:30:27,400 --> 00:30:29,070 hello2.php php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Quin és el teu nom? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Hola, Doug. 612 00:30:36,526 --> 00:30:39,440 També tinc un altre arxiu anomenat hello3.php. 613 00:30:39,440 --> 00:30:42,850 Vaig a netejar el meu pantalla amb control L, 614 00:30:42,850 --> 00:30:46,210 i jo vaig a executar aquesta. 615 00:30:46,210 --> 00:30:47,640 Quin és el teu nom? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Hola, Doug. 618 00:30:49,780 --> 00:30:56,540 Així que el comportament és idèntic al hello2.php, però per què és hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Bé, aquí està la diferència. 620 00:30:58,040 --> 00:31:00,620 En aquest cas, l'avís que en la línia 1 aquí, 621 00:31:00,620 --> 00:31:04,270 Tinc una cosa que no és entre els delimitadors de PHP. 622 00:31:04,270 --> 00:31:07,760 Només estic imprimint fora-- o jo acaba d'escriure, "Quin és el seu nom?" 623 00:31:07,760 --> 00:31:12,060 Quan l'intèrpret PHP veu això, no té idea de com interpretar-ho com PHP, 624 00:31:12,060 --> 00:31:15,060 i així que en comptes de fallar, que només va a escopir. 625 00:31:15,060 --> 00:31:19,010 >> Així que notar en la línia 3, la meva crida a readline, no hi ha símbol més. 626 00:31:19,010 --> 00:31:21,750 Estic realment va A-- quan l'intèrpret PHP veu això, 627 00:31:21,750 --> 00:31:23,400 que va a imprimir "Quin és el teu nom?" 628 00:31:23,400 --> 00:31:25,941 Llavors es veu, oh, bé, here's-- tota la resta serà 629 00:31:25,941 --> 00:31:29,970 interpretat com PHP, de manera que és per això que això funciona. 630 00:31:29,970 --> 00:31:34,990 Jo no tinc que demanarà necessàriament el A-- usuari dins de readline, 631 00:31:34,990 --> 00:31:37,490 Jo només puc tenir fora dels delimitadors de PHP 632 00:31:37,490 --> 00:31:41,490 i permetre que l'intèrpret simplement imprimir per a mi. 633 00:31:41,490 --> 00:31:45,364 >> Així que en realitat no és suficient tenir un conjunt de delimitadors de PHP 634 00:31:45,364 --> 00:31:46,030 en el seu programa. 635 00:31:46,030 --> 00:31:49,887 En realitat pot tenir diversos d'ells, obrir i tancar segons sigui necessari. 636 00:31:49,887 --> 00:31:51,720 Així que anem a fer una ullada en un parell de programes 637 00:31:51,720 --> 00:31:55,070 en IDE CS50 on il·lustrar aquesta idea de tenir 638 00:31:55,070 --> 00:31:58,376 diversos conjunts de PHP delimitat. 639 00:31:58,376 --> 00:32:02,010 >> OK, així que m'he obert un fitxer aquí es diu add1.php. 640 00:32:02,010 --> 00:32:03,390 I adonar-se del que està passant aquí. 641 00:32:03,390 --> 00:32:08,077 Igual que abans, tinc un només PHP conjunt de delimitadors. 642 00:32:08,077 --> 00:32:10,660 Vaig a imprimir el missatge: "Si us plau, dóna'm un nombre." 643 00:32:10,660 --> 00:32:13,394 Llavors em vaig a llegir una línia i emmagatzemar-lo en el $ num1 variable. 644 00:32:13,394 --> 00:32:14,810 Llavors em vaig a imprimir. 645 00:32:14,810 --> 00:32:16,310 Dóna'm un segon número. 646 00:32:16,310 --> 00:32:20,450 Llegir una línia des de l'usuari, emmagatzemar el que escriuen en a $ num2. 647 00:32:20,450 --> 00:32:23,980 Afegir junts i emmagatzemar aquesta resultar en una variable anomenada $ suma, 648 00:32:23,980 --> 00:32:26,180 i després imprimir, "El suma d'aquests dos nombres 649 00:32:26,180 --> 00:32:29,254 és, "i després interpel·lar allí la suma $ variable. 650 00:32:29,254 --> 00:32:31,170 Així que anem a executar aquest a través de l'intèrpret 651 00:32:31,170 --> 00:32:33,720 per confirmar que això és el que esperem. 652 00:32:33,720 --> 00:32:37,540 add1.php php. 653 00:32:37,540 --> 00:32:38,665 Si us plau, dóna'm un nombre, 3. 654 00:32:38,665 --> 00:32:40,410 Si us plau, dóna'm un segon número, 4. 655 00:32:40,410 --> 00:32:43,370 La suma d'aquests dos nombres és 7. 656 00:32:43,370 --> 00:32:45,030 Això és 3 més 4. 657 00:32:45,030 --> 00:32:45,530 D'ACORD? 658 00:32:45,530 --> 00:32:47,770 Així que res terriblement luxós allà. 659 00:32:47,770 --> 00:32:51,080 >> I ara anem a obrir add2.php. 660 00:32:51,080 --> 00:32:54,460 Aquí, tinc un parell de PHP delimitat conjunts allà, oi? 661 00:32:54,460 --> 00:32:59,107 Línies 1, 3-- línies 1 i 3 no tenen delimitadors de PHP. 662 00:32:59,107 --> 00:33:00,940 Així que quan l'intèrpret els veu, és només 663 00:33:00,940 --> 00:33:03,220 va escopir exactament el que he escrit allà. 664 00:33:03,220 --> 00:33:05,011 Així que aquí és on sóc fent tota la meva preguntar. 665 00:33:05,011 --> 00:33:11,220 En les línies 2 i 4, veiem el mateix $ Familiar? Php tipus de delimitadors, 666 00:33:11,220 --> 00:33:15,210 per la qual cosa aquestes dues línies són va a executar com PHP. 667 00:33:15,210 --> 00:33:18,270 I després a la línia 5, tinc aquest L'estrany aquí, oi? 668 00:33:18,270 --> 00:33:20,480 Aquest suport angular signe d'interrogació signe igual. 669 00:33:20,480 --> 00:33:22,660 Jo fins i tot el zoom una mica més lluny. 670 00:33:22,660 --> 00:33:29,270 Es pot veure que això és el que sóc parlant d'aquí, aquests $? =. 671 00:33:29,270 --> 00:33:33,420 >> Resulta que és tan comú que la raó per la qual obrim un conjunt de PHP 672 00:33:33,420 --> 00:33:36,055 delimitadors és imprimir un valor. 673 00:33:36,055 --> 00:33:37,430 I això és tot el que farem. 674 00:33:37,430 --> 00:33:39,220 Però hi ha fins i tot taquigrafia per això. 675 00:33:39,220 --> 00:33:46,490 $? = És la taquigrafia PHP per dir alguna cosa així com $? php echo la suma 676 00:33:46,490 --> 00:33:48,350 de num1 i num2. 677 00:33:48,350 --> 00:33:51,900 Així que això és només una altra taquigrafia per això. 678 00:33:51,900 --> 00:33:55,550 >> Així que si va executar aquest programa, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Vaig zoom cap avall una mica. 680 00:33:57,530 --> 00:33:59,000 Si us plau, dóna'm un nombre 4. 681 00:33:59,000 --> 00:34:00,350 Si us plau, dóna'm un segon número. 682 00:34:00,350 --> 00:34:04,650 I com jo no em preocupo per tipus de dades en PHP, puc dir 4.8. 683 00:34:04,650 --> 00:34:07,160 La suma d'aquests dos nombres és 8,8. 684 00:34:07,160 --> 00:34:10,179 Aquesta funció es comporta més o menys exactament la mateixa que s'esperaria, 685 00:34:10,179 --> 00:34:10,989 tant be. 686 00:34:10,989 --> 00:34:13,114 I jo en tinc un més obert aquí anomenat dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Prova aquest nou. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Tinc un més anomenat aquí dice1.php, que també, veure, 691 00:34:33,280 --> 00:34:37,440 té aquesta pregunta parèntesi angular marcar la notació signe igual en aquest país, 692 00:34:37,440 --> 00:34:40,659 però noto que en aquest cas estic cridant a la funció rand, que com vostès 693 00:34:40,659 --> 00:34:42,790 podria esperar que genera un nombre aleatori. 694 00:34:42,790 --> 00:34:46,889 "Vostè rodar una", i que va calcular un nombre aleatori, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Així que em donarà el nombre en el rang d'1 a 6. 697 00:34:49,989 --> 00:34:53,040 >> Recordeu que mod 6 em donaria un nombre en l'interval de 0 a 5, 698 00:34:53,040 --> 00:34:56,630 però si estic simulant tirades de daus, que és el que estic fent aquí, 699 00:34:56,630 --> 00:35:00,040 No vull que aquests donats per passar de 0 a 5, vull daus que van d'1 a 6. 700 00:35:00,040 --> 00:35:02,800 I el que aquesta és una manera d'aconseguir em en el rang d'1 a 6. 701 00:35:02,800 --> 00:35:04,720 Estic fent això dues vegades. 702 00:35:04,720 --> 00:35:08,630 Així que pel que sembla estic rodant dos daus en aquest programa. 703 00:35:08,630 --> 00:35:15,210 >> Així que vaig a esborrar la meva pantalla, i faré php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Vostè va rodar abril 1 i un 2. 705 00:35:16,640 --> 00:35:19,156 I si se m'acaba el programa de nou, vostè va rodar maig 1 i un 5. 706 00:35:19,156 --> 00:35:21,780 Així que cada vegada que s'executi el programa, M'estic posant diferents números, 707 00:35:21,780 --> 00:35:24,280 perquè cada vegada que ho faig Així que és començar de nou. 708 00:35:24,280 --> 00:35:27,250 Es generarà una nova un conjunt de nombres aleatoris per a mi. 709 00:35:27,250 --> 00:35:29,790 >> Així que si estem acostumats a executar programes de C, 710 00:35:29,790 --> 00:35:32,520 estem acostumats a escriure ./ la nom d'un programa, no? 711 00:35:32,520 --> 00:35:35,090 Això és el que hem fet tot dels nostres programes en C fins al moment. 712 00:35:35,090 --> 00:35:37,555 Podem fer això en PHP, així mitjançant l'addició d'una cosa que es diu 713 00:35:37,555 --> 00:35:40,026 un tinglado al cim del nostre arxiu PHP. 714 00:35:40,026 --> 00:35:41,400 Sé que és una mica una paraula ximple. 715 00:35:41,400 --> 00:35:44,540 És l'abreviatura d'explosió hash. 716 00:35:44,540 --> 00:35:46,300 Aquests són els dos primers caràcters allà. 717 00:35:46,300 --> 00:35:50,030 Recordeu que anomenem signe d'exclamació amb freqüència una explosió en la informàtica. 718 00:35:50,030 --> 00:35:51,690 També podria ser d'explosió agut. 719 00:35:51,690 --> 00:35:53,273 Hi ha un parell de maneres d'interpretar la mateixa. 720 00:35:53,273 --> 00:35:57,320 Però és bàsicament un tipus especial d'ordenar que l'intèrpret PHP 721 00:35:57,320 --> 00:36:00,160 entén com, oh, vull que permet executar aquest programa, 722 00:36:00,160 --> 00:36:05,250 que aparentment és / user / bin / php, que és en realitat on l'intèrpret PHP 723 00:36:05,250 --> 00:36:08,590 viu específicament en el nostre sistema. 724 00:36:08,590 --> 00:36:12,530 Així és-- el que passa aquí és l'intèrpret entén, oh, 725 00:36:12,530 --> 00:36:17,270 Pel que sembla, se suposa que he d'utilitzar en aquest programa s'executi aquest arxiu. 726 00:36:17,270 --> 00:36:20,010 I pel que li permet saltar-se el pas 727 00:36:20,010 --> 00:36:22,979 d'haver de dir php something.php. 728 00:36:22,979 --> 00:36:25,020 Hi ha una altra captura aquí, que és que si 729 00:36:25,020 --> 00:36:27,320 volem que els nostres programes a funcionarà com s'espera, es 730 00:36:27,320 --> 00:36:30,220 cal fer alguna cosa que es diu un canvi de permisos de fitxers. 731 00:36:30,220 --> 00:36:33,380 I anem a vaya-- i parlem una mica poc més canvis de permisos sobre arxius 732 00:36:33,380 --> 00:36:37,550 en el nostre vídeo en MVC, però n'hi ha prou amb dir que això és el que cal fer 733 00:36:37,550 --> 00:36:42,760 per tal de fer la seva arxius .php executable. 734 00:36:42,760 --> 00:36:49,330 Així que donem una ullada a això com nostre últim exemple més en CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Així que aquí a IDE Tinc dos arxius d'aquesta Directori de PHP que no sembla ser 736 00:36:53,910 --> 00:36:55,310 anomenada .php. 737 00:36:55,310 --> 00:36:58,170 Tinc una funció anomenada add-- Tinc un arxiu anomenat add3 738 00:36:58,170 --> 00:37:00,650 i un arxiu anomenat dice2. 739 00:37:00,650 --> 00:37:03,680 Així que donem un ràpid buscar i obrir add3. 740 00:37:03,680 --> 00:37:08,300 I com es pot veure, al principi del meu arxiu tinc aquest tinglado, oi? 741 00:37:08,300 --> 00:37:11,420 Aquest punt de hash signe d'exclamació. 742 00:37:11,420 --> 00:37:15,115 Ara, vostè també pot ser que notar que per alguna raó, 743 00:37:15,115 --> 00:37:16,990 Jo no tinc cap sintaxi destacant més, 744 00:37:16,990 --> 00:37:20,198 i això és el que he al·ludit abans, que era que si no dic el meu arxiu 745 00:37:20,198 --> 00:37:23,040 .php, no tinc el benefici de ressaltat de sintaxi ja. 746 00:37:23,040 --> 00:37:26,220 Aquest fitxer només es diu add3. 747 00:37:26,220 --> 00:37:30,960 Perquè jo pugui executar més tard amb ./ add3 i no ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Així que la reason-- encara bé, segueix sent vàlida PHP, 749 00:37:33,680 --> 00:37:37,000 però no és la sintaxi ressaltada, perquè aquest arxiu no es diu something.php. 750 00:37:37,000 --> 00:37:41,580 Aquesta és l'única diferència real aquí, més el tinglado. 751 00:37:41,580 --> 00:37:45,170 Així que anem a veure el que passa quan Tracte d'executar aquest programa. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, igual que ho faria amb C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Permís add3 negar. 754 00:37:53,190 --> 00:37:55,390 Això és el que vas per veure si s'oblida 755 00:37:55,390 --> 00:37:59,280 utilitzar la comanda chmod per canviar els permisos de l'arxiu. 756 00:37:59,280 --> 00:38:03,845 >> Doncs resulta que, PHP regulars arxius no poden simplement ser executats. 757 00:38:03,845 --> 00:38:06,970 Ells poden ser interpretats, però estem fer alguna cosa una mica diferent aquí. 758 00:38:06,970 --> 00:38:07,761 Estem executar-lo. 759 00:38:07,761 --> 00:38:12,970 I així que he de afegir el permís de l'execució, chmod a + x per add3. 760 00:38:12,970 --> 00:38:15,680 Llavors puc dir ./ add3. 761 00:38:15,680 --> 00:38:16,860 Si us plau, dóna'm un nombre. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 La suma d'aquests dos nombres és 11. 764 00:38:20,490 --> 00:38:26,530 >> De la mateixa manera, ja he chmod dice2, de manera que només pot escriure ./ dice2, 765 00:38:26,530 --> 00:38:31,260 vostè va rodar un 1 i un 1, que laminat en un 5 i un 4, i així successivament. 766 00:38:31,260 --> 00:38:33,680 >> Així que això és més o menys la idea d'una sintaxi de PHP, oi? 767 00:38:33,680 --> 00:38:35,221 Hi ha molt per aconseguir a través, ho sé. 768 00:38:35,221 --> 00:38:39,160 Però és d'esperar que hi hagi vist ara que PHP en realitat no és tan diferent de C 769 00:38:39,160 --> 00:38:43,670 i realment ens dóna la capacitat prendre les coses a un nivell superior o dos. 770 00:38:43,670 --> 00:38:48,230 Nosaltres realment no hem de preocupar massa sobre-- no ho fem de veritat 771 00:38:48,230 --> 00:38:51,605 ha de preocupar massa sobre els detalls de baix nivell que nosaltres 772 00:38:51,605 --> 00:38:52,980 havia de preocupar amb C, oi? 773 00:38:52,980 --> 00:38:56,170 Podem centrar-nos en la més alta coses de nivell que PHP 774 00:38:56,170 --> 00:39:01,090 ens permet fer i donem per fet que va a treballar per a nosaltres. 775 00:39:01,090 --> 00:39:04,350 Pel que ens dóna la possibilitat ara, la transició de C a PHP, 776 00:39:04,350 --> 00:39:08,280 perquè els programes que són molt més complexa i potser molt més robust. 777 00:39:08,280 --> 00:39:13,070 >> Així que espero que es diverteixin de treball amb PHP, i estic Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Això és CS50. 779 00:39:15,050 --> 00:39:17,637