1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> Doug LLOYD: zato smo naredil veliko delo v C, 3 00:00:07,370 --> 00:00:09,536 in C je res kul jezik, saj vam daje 4 00:00:09,536 --> 00:00:12,840 sposobnost res potop nizka raven v svoje programe. 5 00:00:12,840 --> 00:00:16,810 Smo dobili storiti stvari, kot res minute kot manipulacijo 6 00:00:16,810 --> 00:00:18,800 Posamezne bajtov pomnilnika. 7 00:00:18,800 --> 00:00:21,420 Spomnimo se, da kazalci res nam je omogočilo, da je fleksibilnost. 8 00:00:21,420 --> 00:00:25,260 >> Ampak ne bomo vedno morali imeti da je raven fino zrno podrobnosti 9 00:00:25,260 --> 00:00:26,820 v naših programih? 10 00:00:26,820 --> 00:00:28,210 Verjetno ne, kajne? 11 00:00:28,210 --> 00:00:30,376 In če bomo imeli kompromis med biti 12 00:00:30,376 --> 00:00:32,911 sposoben narediti res, res minute stvari in res, res 13 00:00:32,911 --> 00:00:35,910 velike stvari, da ne bomo imeli, da razmišljajo o tem, mi ne bi bilo treba izvajati 14 00:00:35,910 --> 00:00:40,290 te res velike ideje če oni so že zgrajena za nas, 15 00:00:40,290 --> 00:00:43,980 na splošno za gradnjo velike programi ali veliki projekti, 16 00:00:43,980 --> 00:00:49,130 bomo verjetno bo napačno na strani imajo več jezikov stvari zgrajena v 17 00:00:49,130 --> 00:00:51,300 Za nas, namesto da bi stuff nizko raven. 18 00:00:51,300 --> 00:00:53,970 In to je, če PHP res pride. 19 00:00:53,970 --> 00:00:58,200 >> Zdaj, eden izmed razlogov da učimo PHP v CS50 20 00:00:58,200 --> 00:01:01,020 je, da je to v veliki meri zgleduje po C. In v resnici, po mojem mnenju, 21 00:01:01,020 --> 00:01:05,140 tam so res dva predniških jeziki 22 00:01:05,140 --> 00:01:08,200 so zelo pogosti danes. 23 00:01:08,200 --> 00:01:10,110 C in LISP. 24 00:01:10,110 --> 00:01:13,280 In oni matičnih jezikov ker vsak drugi sodobni programiranje 25 00:01:13,280 --> 00:01:17,380 jezik, ki se je razvila od takrat se zgleduje 26 00:01:17,380 --> 00:01:20,330 z eno ali drugo sintaktično. 27 00:01:20,330 --> 00:01:26,160 PHP je zelo podobna skladenjsko do C, medtem ko jezikih, kot so sheme, 28 00:01:26,160 --> 00:01:27,900 na primer, ki je ste morda slišali, 29 00:01:27,900 --> 00:01:32,070 se močno zgleduje po jeziku imenovano LISP, ki je starejši jezik. 30 00:01:32,070 --> 00:01:34,220 >> Torej je razlog učimo PHP v CS50 je, da 31 00:01:34,220 --> 00:01:37,730 s poznavanjem C kot bistveno kot vi na tej točki, 32 00:01:37,730 --> 00:01:41,280 pobiral PHP, ki daje vam sposobnost delati veliko višje stvari ravni 33 00:01:41,280 --> 00:01:44,710 kot C počne, ni da veliko oviro, 34 00:01:44,710 --> 00:01:48,230 ker že imajo Osnovna ideja sintakse. 35 00:01:48,230 --> 00:01:50,590 C je bila približno za skoraj 45 let na tej točki. 36 00:01:50,590 --> 00:01:52,780 PHP je bila približno za približno 20 let. 37 00:01:52,780 --> 00:01:57,080 In v tem, da 25 let med, programerji 38 00:01:57,080 --> 00:02:01,540 ugotovil, da bi jih veliko raje imajo višje sposobnosti ravni, 39 00:02:01,540 --> 00:02:04,970 in napake in boji od 20 let med 40 00:02:04,970 --> 00:02:08,210 privedla do PHP in drugih sodobnih jezikih. 41 00:02:08,210 --> 00:02:11,039 >> PHP velika izbira jezik za programsko opremo 42 00:02:11,039 --> 00:02:14,042 da allow-- za Programska oprema that-- kjer vas 43 00:02:14,042 --> 00:02:16,250 morali delati stvari, ki v C so dejansko zapletena. 44 00:02:16,250 --> 00:02:18,480 Tako na primer, delovne z vrvicami v C 45 00:02:18,480 --> 00:02:21,709 je zelo zapleten, ker kot vemo, godala v C 46 00:02:21,709 --> 00:02:23,250 so res samo nizi znakov. 47 00:02:23,250 --> 00:02:25,230 To ni vgrajen podatkovni tip. 48 00:02:25,230 --> 00:02:28,220 Ali pa morda bolj bistveno, nekaj, kar ne pokriva niti v C, 49 00:02:28,220 --> 00:02:30,360 Kaj pa, če morate storiti nekateri Računalniška omrežja? 50 00:02:30,360 --> 00:02:30,860 V redu? 51 00:02:30,860 --> 00:02:34,920 >> C ima sposobnost, da to storite, ampak to je tako Skrivnosten in tako težko dejansko storiti. 52 00:02:34,920 --> 00:02:37,580 Ali ne bi bilo lepo, če jezik je imel vgrajen, enostaven način 53 00:02:37,580 --> 00:02:38,910 izvajati mreženje? 54 00:02:38,910 --> 00:02:43,420 In PHP je jezik, ki omogoča, da ali omogoča, da precej malo več. 55 00:02:43,420 --> 00:02:47,740 Kot sem rekel, PHP je zelo močno zgleduje s C sintaksa je zelo podobna. 56 00:02:47,740 --> 00:02:51,760 In tako naj bi, upajmo, da Prehod iz ene v drugo 57 00:02:51,760 --> 00:02:54,710 malo mehkejše kot nekateri drugih jezikov lahko. 58 00:02:54,710 --> 00:02:58,800 >> Če želite začeti pisati PHP, samo odpirajo datoteka z .php končnico datoteke. 59 00:02:58,800 --> 00:03:00,670 Tehnično to ni dejansko potrebno, 60 00:03:00,670 --> 00:03:04,495 ampak, če hočeš stvari, kot so sintaksa poudarkom na IDE, tako da ta tip 61 00:03:04,495 --> 00:03:07,620 imena ali imena spremenljivke, funkcije, veste, ključne besede iz jezika 62 00:03:07,620 --> 00:03:10,090 so poudarjen v posebno barvo, ki jih običajno 63 00:03:10,090 --> 00:03:14,020 želeli, da ime datoteke z posebno pripono. 64 00:03:14,020 --> 00:03:18,430 Tako smo poimenovali našo datoteko z Php podaljšek, nato pa tudi s PHP, 65 00:03:18,430 --> 00:03:23,310 vse PHP kodo smo napisali, da Datoteka mora biti zaprti v teh PHP 66 00:03:23,310 --> 00:03:25,190 Ločila, ki jih vidimo tukaj na zaslonu. 67 00:03:25,190 --> 00:03:27,910 Pritrdilni kotnik? Php za začetek. 68 00:03:27,910 --> 00:03:30,860 Potem smo napisali vse naše PHP Koda, ki jih želimo v med. 69 00:03:30,860 --> 00:03:32,260 In potem ? 70 00:03:32,260 --> 00:03:34,710 Kot nosilec zapreti. 71 00:03:34,710 --> 00:03:37,170 >> Če tega ne bomo storili, potem kaj se bo zgodilo? 72 00:03:37,170 --> 00:03:38,170 To ne bo crash. 73 00:03:38,170 --> 00:03:39,410 To se ne bo res pokvaril naš program. 74 00:03:39,410 --> 00:03:41,440 Ampak to se ne dogaja, da imajo učinek, ki ga želimo. 75 00:03:41,440 --> 00:03:44,540 Kaj se bo zgodilo, res, je da, ko smo poskušali zagnati ta program, 76 00:03:44,540 --> 00:03:50,330 vse, kar ni med temi ločila se bo izpisal dobesedno. 77 00:03:50,330 --> 00:03:52,210 To se ne bo dejansko izvrši kodo, 78 00:03:52,210 --> 00:03:56,010 to se dogaja, samo ga natisnite dobesedno. 79 00:03:56,010 --> 00:03:57,320 >> Zdaj, zakaj je tako? 80 00:03:57,320 --> 00:04:00,416 Torej C je tisto, kar je znano kot sestavljenih jeziku. 81 00:04:00,416 --> 00:04:03,040 Vi ste verjetno seznanjeni z korak za izdelavo vaših programov, 82 00:04:03,040 --> 00:04:07,820 obračanja .c datotek in .h datotek v enem samem izvršljiv z znamko, 83 00:04:07,820 --> 00:04:11,130 zlasti z uporabo Jek kot naš prevajalnik. 84 00:04:11,130 --> 00:04:13,030 PHP, čeprav ne imajo to enakovredno. 85 00:04:13,030 --> 00:04:15,600 PHP je tisto, kar imenujemo razlaga jezik. 86 00:04:15,600 --> 00:04:16,760 In kaj to pomeni? 87 00:04:16,760 --> 00:04:20,680 >> No, to pomeni, da nimamo za pretvorbo naša izvorna koda na ničel in enic 88 00:04:20,680 --> 00:04:21,470 vnaprej. 89 00:04:21,470 --> 00:04:23,900 Namesto, da je program, ki se prav tako imenuje 90 00:04:23,900 --> 00:04:29,771 PHP, da razume, PHP in lahko nekako uspelo na letenje. 91 00:04:29,771 --> 00:04:32,520 To ni res ravno točni, ampak to je zelo dobra analogija 92 00:04:32,520 --> 00:04:33,760 o tem, kaj se dogaja. 93 00:04:33,760 --> 00:04:37,230 To je tolmačenje tistih, ničel in tisti na letenje. 94 00:04:37,230 --> 00:04:40,160 In tako, če ne veste, kako obdelati nekaj, 95 00:04:40,160 --> 00:04:42,800 če ne veš, kako Proces PHP, ste verjetno 96 00:04:42,800 --> 00:04:44,680 Želeli bi dal, da je besedilo v tam, kajne? 97 00:04:44,680 --> 00:04:48,960 >> Boste verjetno želeli postaviti kodo v tam, tudi če je ni med PHP-- 98 00:04:48,960 --> 00:04:50,035 PHP ločila. 99 00:04:50,035 --> 00:04:51,910 Ampak-- tako da to ne bo da jo izbrišete za vas, 100 00:04:51,910 --> 00:04:53,576 to je le, da bo to v bistvu zavreči. 101 00:04:53,576 --> 00:04:55,550 Tako se dogaja, da natisnete ven na zaslon. 102 00:04:55,550 --> 00:04:57,150 >> To se zdi kot, da je slaba stvar, ampak dejansko je 103 00:04:57,150 --> 00:04:58,220 bo res dobra stvar, saj bomo 104 00:04:58,220 --> 00:05:00,390 glej, ko govorimo o Razvoj spletnih PHP, 105 00:05:00,390 --> 00:05:04,010 ker to pomeni, da smo lahko Razasuti PHP in HTML. 106 00:05:04,010 --> 00:05:06,640 Lahko jih uporabite skupaj ustvariti bolj dinamično spletno stran. 107 00:05:06,640 --> 00:05:10,650 Ampak več o tem v video na spletni razvoj PHP. 108 00:05:10,650 --> 00:05:12,021 >> Torej, kaj je sintaksa PHP? 109 00:05:12,021 --> 00:05:13,520 To je tisto, kar ta video je vse okoli. 110 00:05:13,520 --> 00:05:14,850 Pogovorimo se o tem. 111 00:05:14,850 --> 00:05:16,490 >> Torej začeti, spremenljivke. 112 00:05:16,490 --> 00:05:18,030 Obstajajo PHP spremenljivke. 113 00:05:18,030 --> 00:05:20,067 Obstajata samo dve veliki Razlike iz C. 114 00:05:20,067 --> 00:05:21,900 Prvi je, da je nobena vrsta določilo. 115 00:05:21,900 --> 00:05:24,245 Nimamo reči int, char, float, vse te stvari. 116 00:05:24,245 --> 00:05:25,620 Nimamo storiti več. 117 00:05:25,620 --> 00:05:26,810 PHP je sodoben jezik. 118 00:05:26,810 --> 00:05:28,910 To lahko ugotovimo, kaj ste poskuša narediti ali narediti najbolje 119 00:05:28,910 --> 00:05:30,451 ugibati, kaj skušaš narediti. 120 00:05:30,451 --> 00:05:31,700 Torej, to je zelo lepo. 121 00:05:31,700 --> 00:05:35,330 >> Druga stvar je, da vse spremenljivke Imena se morajo začeti s znak za dolar. 122 00:05:35,330 --> 00:05:36,940 To je samo nekaj, da se navadiš. 123 00:05:36,940 --> 00:05:39,496 To je malo čudno, ker to je tako, da lahko PHP razumeli 124 00:05:39,496 --> 00:05:40,870 kaj je spremenljivka in kaj ne. 125 00:05:40,870 --> 00:05:43,340 Zato je vsaka spremenljivka ime Začne se z znak za dolar. 126 00:05:43,340 --> 00:05:46,884 Torej, v C lahko rečemo nekaj kot je ta, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Nimamo storiti več v PHP. 128 00:05:48,550 --> 00:05:52,540 Lahko samo povem, $ x = 54. 129 00:05:52,540 --> 00:05:55,920 In lahko rečemo, na primer, v C, če smo funt vključevala CS50 .h 130 00:05:55,920 --> 00:06:00,314 header datoteke, lahko rečemo, Niz stavek = "To je CS50." 131 00:06:00,314 --> 00:06:01,980 Ne bomo morali storiti, da v PHP, čeprav. 132 00:06:01,980 --> 00:06:04,865 Lahko samo rečem $ stavek = "To je CS50." 133 00:06:04,865 --> 00:06:08,760 In dejansko niz je sedaj vgrajen podatkovni tip v PHP, 134 00:06:08,760 --> 00:06:10,950 oziroma PHP razume kakšen niz. 135 00:06:10,950 --> 00:06:15,612 To je ločen od matrike znakov, kot je to v C. 136 00:06:15,612 --> 00:06:17,570 Vse vaše najljubše pogojni stavki iz C 137 00:06:17,570 --> 00:06:19,520 so še vedno na voljo za vas, da uporabite. 138 00:06:19,520 --> 00:06:21,140 Torej ni nič prehod tam. 139 00:06:21,140 --> 00:06:23,400 Mi lahko say-- lahko imamo če izjavami, kot je ta. 140 00:06:23,400 --> 00:06:28,210 če $ y 43, ali $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Torej, to je precej preprosta. 142 00:06:29,690 --> 00:06:31,980 Imamo lahko, če in drugje. 143 00:06:31,980 --> 00:06:34,210 Imamo če in drugega, če lahko. 144 00:06:34,210 --> 00:06:36,430 >> In opazili nekaj zelo lepo tukaj, in to 145 00:06:36,430 --> 00:06:39,620 nekako enega od tistih Prednosti PHP primerjavi C, obvestila 146 00:06:39,620 --> 00:06:41,510 kakšno funkcijo smo ne uporabljate tukaj? 147 00:06:41,510 --> 00:06:47,737 Mi smo z uporabo == da primerjati spremenljivka, $ ime, v niz. 148 00:06:47,737 --> 00:06:49,070 Mi ne bi mogel storiti, da v C, kajne? 149 00:06:49,070 --> 00:06:53,200 Smo morali uporabiti funkcijo imenovano StrComp ali StrEndComp ali kateri koli 150 00:06:53,200 --> 00:06:54,840 od njenih povezanih bratranci. 151 00:06:54,840 --> 00:06:56,980 >> In tako že vidimo te prednosti. 152 00:06:56,980 --> 00:07:00,930 Nimamo nekaj storiti kot neumno ali morda unintuitive 153 00:07:00,930 --> 00:07:03,540 kot poklicati funkcijo imenovano StrComp če želim preizkusiti 154 00:07:03,540 --> 00:07:05,237 ali je vrednost enaka niz. 155 00:07:05,237 --> 00:07:07,820 Jaz lahko samo uporabljati enaka enaka, kot sem mogel storiti ničesar drugega. 156 00:07:07,820 --> 00:07:09,560 Tako da je prednost. 157 00:07:09,560 --> 00:07:13,350 >> Včasih, mimogrede, boste morda glej else if kot eno besedo, elseif stavkih. 158 00:07:13,350 --> 00:07:14,910 In to je v redu v PHP, kot dobro. 159 00:07:14,910 --> 00:07:17,020 Tako da včasih morda videti. 160 00:07:17,020 --> 00:07:17,790 To ni slovnične napake. 161 00:07:17,790 --> 00:07:21,830 PHP dejansko razume elseif stavkih. 162 00:07:21,830 --> 00:07:23,980 Ne vem, zakaj so odločila za izvajanje, da 163 00:07:23,980 --> 00:07:28,220 ampak kot smo videli že večkrat vsej naši videov doslej, 164 00:07:28,220 --> 00:07:30,460 smo programerji je všeč, če moremo narediti stvari hitro, 165 00:07:30,460 --> 00:07:33,660 tako da se znebi tega prostora je očitno velika prednost. 166 00:07:33,660 --> 00:07:34,800 >> Torej, to je, če in elseif stavkih. 167 00:07:34,800 --> 00:07:37,540 Imamo tudi trikomponentne operaterja, Odpoklic vprašaj debelega črevesa, 168 00:07:37,540 --> 00:07:43,262 za res skrajšani obliki, če je ostalo ali pogojno razvejane. 169 00:07:43,262 --> 00:07:45,470 In očitno je v tem, kar smo poskušali narediti tukaj 170 00:07:45,470 --> 00:07:49,720 se dodeli spremenljivko $ pismo bodisi resnična ali neresnična, 171 00:07:49,720 --> 00:07:54,110 odvisno od tega, ali $ var je abecedna znak. 172 00:07:54,110 --> 00:07:57,320 Torej, to je precej podobna isalpha da smo seznanjeni z od C. 173 00:07:57,320 --> 00:07:59,010 To je nekako v protivrednosti v PHP. 174 00:07:59,010 --> 00:08:01,550 Funkcija je očitno imenuje ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 ampak to je, kako to počnemo v PHP. 176 00:08:03,450 --> 00:08:08,560 Torej, vse to se dogaja, da se je, če $ var je pismo, $ pismo je res. 177 00:08:08,560 --> 00:08:13,820 Če $ var ni pismo, $ pismo je napačen. 178 00:08:13,820 --> 00:08:15,820 >> Imamo tudi izjave stikal vedno. 179 00:08:15,820 --> 00:08:17,870 Se spomnimo tistih, od C, kot tudi. 180 00:08:17,870 --> 00:08:22,480 Na samem vrhu tam, to je, kako delamo nekaj podobnega get int ali dobili niz. 181 00:08:22,480 --> 00:08:23,845 Torej PHP je, da je zgrajena v. 182 00:08:23,845 --> 00:08:25,470 Mi ne potrebujemo knjižnico CS50 več. 183 00:08:25,470 --> 00:08:27,237 Mi lahko uporabite samo funkcijo readline. 184 00:08:27,237 --> 00:08:29,820 Kaj se dogaja, da storiti, je print iz sporočila, "Vaša država, 185 00:08:29,820 --> 00:08:33,820 please, "in nato utripa poziv čakanja na uporabnika na vhodu 186 00:08:33,820 --> 00:08:34,739 nekaj informacij. 187 00:08:34,739 --> 00:08:36,530 Zdaj opazili kaj drugega lahko storimo s stikalom. 188 00:08:36,530 --> 00:08:39,105 Če ste ga uporabili prej, se morda spomniš, da stikalo 189 00:08:39,105 --> 00:08:44,960 je omejena precej na cela števila in znaki, zdaj pa lahko uporabite strune. 190 00:08:44,960 --> 00:08:50,190 In v resnici, je izjava stikalo v PHP je precej malo bolj fleksibilno 191 00:08:50,190 --> 00:08:54,880 kot njegov bratranec od C 192 00:08:54,880 --> 00:08:55,380 Zank. 193 00:08:55,380 --> 00:08:58,130 Tako kot pogojnih, vse vaši stari favoriti so še vedno tam. 194 00:08:58,130 --> 00:09:00,740 Imamo while zanke, ki računajo od 1 do 100 v tem primeru. 195 00:09:00,740 --> 00:09:03,940 Smo storili, ko zank to šteje od 1 do 100, 196 00:09:03,940 --> 00:09:06,200 in imamo za zanke to šteje od 1 do 100. 197 00:09:06,200 --> 00:09:07,220 Torej ni velik preskok tam. 198 00:09:07,220 --> 00:09:09,360 Sintaksa je precej veliko popolnoma enako, 199 00:09:09,360 --> 00:09:11,760 razen zdaj smo s pomočjo znak za dolar spremenljivka namesto 200 00:09:11,760 --> 00:09:17,260 o razglasitvi celoštevilskih spremenljivk ali nekaj podobnega, da je za naše števci. 201 00:09:17,260 --> 00:09:20,090 >> Tukaj je, kjer se stvari veliko bolje kot C, čeprav. 202 00:09:20,090 --> 00:09:21,020 Polja. 203 00:09:21,020 --> 00:09:23,020 Torej, spomnimo, ko smo bili govorimo o C, da 204 00:09:23,020 --> 00:09:25,560 za nas, da raste in psihiater sklopov informacij 205 00:09:25,560 --> 00:09:28,310 smo morali razvrstiti neplačila na to idejo, povezanega seznama, 206 00:09:28,310 --> 00:09:30,780 ker nizi C so bile določene velikosti. 207 00:09:30,780 --> 00:09:31,800 Mi jih ne bi psihiater. 208 00:09:31,800 --> 00:09:32,930 Mi jih ne bi rasla. 209 00:09:32,930 --> 00:09:36,074 Imeli smo, da prerazporedi spomin in vso to norost 210 00:09:36,074 --> 00:09:38,490 ali uporabite povezane sezname, ki zavzamejo zelo malo več prostora. 211 00:09:38,490 --> 00:09:41,590 Toda v PHP, nizi so ni določen v velikosti več. 212 00:09:41,590 --> 00:09:43,240 Prav tako lahko rastejo in se lahko skrči. 213 00:09:43,240 --> 00:09:46,660 Torej še enkrat, ti 20 let, ki je obstajala med prvo sprostitvijo C 214 00:09:46,660 --> 00:09:49,440 in prvim PHP sproščanjem, smo se odločili, da veste, 215 00:09:49,440 --> 00:09:51,670 to bi bilo res super če bi lahko to naredili. 216 00:09:51,670 --> 00:09:54,100 In tako smo se to izvaja. 217 00:09:54,100 --> 00:09:58,040 >> Torej so PHP nizi ni določena velikost, in ker PHP ne res 218 00:09:58,040 --> 00:10:03,090 imajo programer prednja pojmi tipov, 219 00:10:03,090 --> 00:10:05,110 bomo lahko mix podatkovnih tipov v naših nizi, preveč. 220 00:10:05,110 --> 00:10:08,100 Torej nimamo niti uporabljati vse cela ali vse plavajoče točke, 221 00:10:08,100 --> 00:10:12,826 imamo lahko mešanica vseh različne vrste v enem nizu. 222 00:10:12,826 --> 00:10:14,700 Razglasitvi matrika je precej preprosta. 223 00:10:14,700 --> 00:10:16,116 To je tako kot vsako drugo spremenljivko. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), matrika predstavlja funkcijo 225 00:10:20,020 --> 00:10:22,760 ki je vgrajen v PHP, ki bo ustvarila niz za vas. 226 00:10:22,760 --> 00:10:28,315 To ustvarja niz štirih vrednosti, Številke v tem primeru, ki se imenuje $ nums. 227 00:10:28,315 --> 00:10:29,940 In tam je več kot en način, da to storite. 228 00:10:29,940 --> 00:10:32,420 In bomo glej to je veliko v PHP. 229 00:10:32,420 --> 00:10:36,380 PHP je razvil veliko različnih ljudje in raste in raste in raste. 230 00:10:36,380 --> 00:10:40,050 Tam je ponavadi ne samo dva ali trije načini, da storite nekaj v PHP, 231 00:10:40,050 --> 00:10:42,170 tam je ponavadi kot 10 ali 20. 232 00:10:42,170 --> 00:10:45,300 Tukaj je samo še ena skupna način, da se razglasi array. 233 00:10:45,300 --> 00:10:48,310 $ nums = kvadratnih nosilec 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Torej, to je nekako podobno kota C je Br- zavit oklepaj zapis, ne. $ - 235 00:10:53,170 --> 00:10:58,525 ali bi bilo int nums square oklepaja enaka kodrasti oklepaja 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 V PHP je $ nums = square nosilci 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Ampak oba primerov tukaj mi daje niz štirih v tem primeru celih števil. 238 00:11:08,920 --> 00:11:10,920 >> Kaj pa, če želim prečenje nekaj na zdaj? 239 00:11:10,920 --> 00:11:14,760 No, jaz lahko samo rečem $ nums 4, ki spet smo še vedno šteje od 0 tukaj 240 00:11:14,760 --> 00:11:17,800 v PHP, bi bila peta element matrike. 241 00:11:17,800 --> 00:11:18,990 Jaz lahko samo povem, da. 242 00:11:18,990 --> 00:11:22,860 Ne bom utrpel SEG kriv, ker je moj matrika je pravkar 243 00:11:22,860 --> 00:11:24,337 dogaja, da raste, da sprejme to. 244 00:11:24,337 --> 00:11:25,420 To je zelo lepo, kajne? 245 00:11:25,420 --> 00:11:28,400 In v resnici, mi ni treba niti določite, kam želim, da ga proda. 246 00:11:28,400 --> 00:11:31,220 Jaz lahko samo povem to in samo je prečenje desno na koncu, 247 00:11:31,220 --> 00:11:34,099 ali sem lahko tudi samo pravijo, $ nums 20 ali 1000. 248 00:11:34,099 --> 00:11:35,140 To sploh ni pomembno. 249 00:11:35,140 --> 00:11:38,330 To je še vedno le, da bo je prečenje desno na koncu. 250 00:11:38,330 --> 00:11:41,490 >> Tako sem lahko rastejo in as-- smo Ne bo ga pokriva tukaj, 251 00:11:41,490 --> 00:11:45,360 vendar sem lahko podaljšujte ali trak elementi od matrike, kot tudi, 252 00:11:45,360 --> 00:11:50,064 in array skrči za sprejem ki zdaj manjka ali je prazen prostor. 253 00:11:50,064 --> 00:11:52,230 Obstaja še en način za prečenje nekaj na vrsto, 254 00:11:52,230 --> 00:11:54,330 ki je funkcija imenuje array_push. 255 00:11:54,330 --> 00:11:57,860 Torej še enkrat, samo ta ideja, da so sposoben narediti stvari mnogo različnih načinov. 256 00:11:57,860 --> 00:12:01,950 Tako smo videli tri različne načine zdaj za prečenje drug element na paleto. 257 00:12:01,950 --> 00:12:06,900 Torej, to dodaja še en element na koncu $ nums matrike. 258 00:12:06,900 --> 00:12:08,340 In bomo lahko pomešajo naše vrste podatkov. 259 00:12:08,340 --> 00:12:13,110 Torej, jaz bi imela vrsto ne 1, 2, 3, 4, a 1, res, 3, 4, 260 00:12:13,110 --> 00:12:16,420 kjer velja je logično, in nato če želim prečenje na drugem elementu 261 00:12:16,420 --> 00:12:20,860 na tem polju, morda niz, niz "pet", lahko storim, da. 262 00:12:20,860 --> 00:12:26,110 In zdaj bi moj niz je 1, res, 3, 4, pet. 263 00:12:26,110 --> 00:12:28,640 Beseda pet, ne pa celo 5. 264 00:12:28,640 --> 00:12:31,270 Torej, veliko fleksibilnost tam. 265 00:12:31,270 --> 00:12:33,290 >> Prilagodljivost dobi še bolje, čeprav, 266 00:12:33,290 --> 00:12:37,530 ker ima PHP podporo za nečim imenovano asociativno paleto. 267 00:12:37,530 --> 00:12:40,660 In smo nekako nejasno govoril o asociativne nize v C 268 00:12:40,660 --> 00:12:44,740 v okviru hash tabel, ker kaj asociativne nize so res vse 269 00:12:44,740 --> 00:12:48,950 o tem so kar ključ vrednost par preslikave. 270 00:12:48,950 --> 00:12:53,410 In v tem primeru, keys-- če da smo seznanjeni z nizi od C, 271 00:12:53,410 --> 00:12:55,440 tipke so številke indeksa. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 In vrednote, kar smo ugotovili, da Niz 0, matrika 1, matrika 2, in tako naprej. 274 00:13:03,070 --> 00:13:06,310 Torej tipke so indeksi, in vrednosti 275 00:13:06,310 --> 00:13:10,060 kaj je v tej matriki lokaciji, določil tega indeksa. 276 00:13:10,060 --> 00:13:15,130 >> Toda v PHP, nimamo za to Pojem matrike 0, matrika 1, matrika 2 277 00:13:15,130 --> 00:13:15,830 več. 278 00:13:15,830 --> 00:13:21,025 Mi lahko zdaj uporabljajo dejanske besede zemljevid tipke za vrednote. 279 00:13:21,025 --> 00:13:22,650 In tako bi lahko rekel kaj takega. 280 00:13:22,650 --> 00:13:26,710 Jaz lahko ustvarite matriko z uporabo oglati oklepaj sintaksa, kot sledi. 281 00:13:26,710 --> 00:13:30,685 $ pizze = square bracket "sir" in nato 282 00:13:30,685 --> 00:13:37,210 to neke vrste dvojne puščice zapis, 8.99, "feferoni" arrow 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 in tako naprej. 284 00:13:37,880 --> 00:13:39,060 In kaj se dogaja tukaj? 285 00:13:39,060 --> 00:13:41,040 Kaj sem pravzaprav počne? 286 00:13:41,040 --> 00:13:43,990 Jaz sem ustvarjanju ključna vrednost par preslikave. 287 00:13:43,990 --> 00:13:49,060 Torej, namesto da bi rekel, na primer, pice 0, koščki 1, pizze 2, 288 00:13:49,060 --> 00:13:52,350 Zdaj lahko rečem pice sir, pizze feferoni, 289 00:13:52,350 --> 00:13:55,120 in se nanašajo na vrednosti povezane z njimi. 290 00:13:55,120 --> 00:13:56,970 >> Torej, tukaj so naši tipke v zeleni barvi. 291 00:13:56,970 --> 00:13:59,870 Sir, feferoni, zelenjave, buffalo piščanca. 292 00:13:59,870 --> 00:14:04,200 Tu je puščica, ki omogoča Ta ključna vrednota par kartiranje. 293 00:14:04,200 --> 00:14:07,420 In potem tukaj so vrednosti na tej lokaciji diod. 294 00:14:07,420 --> 00:14:10,330 Torej, to je, kot pravijo, matrika 0 znaša 8,99. 295 00:14:10,330 --> 00:14:11,720 Ključ je 0. 296 00:14:11,720 --> 00:14:13,600 Vrednost je 8,99. 297 00:14:13,600 --> 00:14:19,370 Zdaj lahko rečem matrično sir, ali ta Primer pizze sir, sir je ključnega pomena, 298 00:14:19,370 --> 00:14:23,340 in kaj sem našel na pizze sir je 8,99. 299 00:14:23,340 --> 00:14:25,540 To je vrednost, ki se mi zdi tam. 300 00:14:25,540 --> 00:14:28,124 >> Torej lahko rečem, stvari všeč. $ pizza sir = 7,99. 301 00:14:28,124 --> 00:14:29,040 Reci Imam prodajo. 302 00:14:29,040 --> 00:14:31,750 Hočem dis-- želim spusti cena pice sira. 303 00:14:31,750 --> 00:14:35,620 Ali lahko uporabim zelenjave pico kot del pod pogojem, 304 00:14:35,620 --> 00:14:39,990 ali sem lahko dodate nov element my matrika, tako kot sem se prej lahko storite. 305 00:14:39,990 --> 00:14:44,680 Jaz lahko dodate nov element za to asociativno paleto s tipko "slanina" 306 00:14:44,680 --> 00:14:49,250 in vrednost 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Ampak to nekako predstavlja težave, Če menite, da o tem za sekundo. 308 00:14:53,820 --> 00:14:55,721 Kako bi Ponovil skozi ta niz? 309 00:14:55,721 --> 00:14:56,220 Prav? 310 00:14:56,220 --> 00:14:59,820 V C, bi mi samo še zanko, tipično, da 311 00:14:59,820 --> 00:15:03,650 bi potekal od 0 do velikost matrike minus 1. 312 00:15:03,650 --> 00:15:08,060 Matrika ima n elementov na je veljavni indeksi so od 0 do n minus 1. 313 00:15:08,060 --> 00:15:11,530 Tako smo lahko uporabite za zanke korak skozi vsak element. 314 00:15:11,530 --> 00:15:13,530 >> Ampak to ni res velja več, kajne? 315 00:15:13,530 --> 00:15:17,360 Zdaj, ko imamo par ključev vrednost preslikave, kjer so tipke besede, 316 00:15:17,360 --> 00:15:19,970 kako Ponovil nad vsemi besedami? 317 00:15:19,970 --> 00:15:22,420 No, na srečo, PHP ima način, da se ukvarjajo s tem preveč, 318 00:15:22,420 --> 00:15:24,580 in tako bomo skoči nazaj da zank za sekundo 319 00:15:24,580 --> 00:15:30,780 uvesti četrto vrste zanke, ki obstaja v PHP imenuje foreach zanke. 320 00:15:30,780 --> 00:15:34,430 In kaj foreach zanke pa je to je v bistvu ista ideja. 321 00:15:34,430 --> 00:15:36,060 Lahko jo uporabite za vse vrste matrike. 322 00:15:36,060 --> 00:15:38,100 Ampak to je v bistvu Isto idejo kot za zanke, 323 00:15:38,100 --> 00:15:40,750 razen namesto uporabe številke indeksa, ki ste jo pravkar 324 00:15:40,750 --> 00:15:45,830 imajo to čudno sintakso kjer pokličete vsak element 325 00:15:45,830 --> 00:15:47,550 ime za namene te zanke. 326 00:15:47,550 --> 00:15:49,258 >> Torej v tem primeru, foreach ($ niz kot $ ključu). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 V bistvu, kot je ta pripomba pojasnili, znotraj tega foreach zanke, 329 00:15:56,450 --> 00:16:00,466 to se dogaja, da gredo čez vsak element $ array, ki je običajno 330 00:16:00,466 --> 00:16:03,340 bo asociativno matrika, vendar se lahko res vsaka vrsta matrike 331 00:16:03,340 --> 00:16:05,419 da želite v PHP. 332 00:16:05,419 --> 00:16:07,210 In vsakič, ko v za zanke boste morda 333 00:16:07,210 --> 00:16:13,780 so rekli $ zaporedji oglati oklepaj $ i, si lahko samo rečem $ ključ. 334 00:16:13,780 --> 00:16:22,340 Tako da $ ključ postane vzdevka za vsak indeks vaše PHP asociativno paleto, 335 00:16:22,340 --> 00:16:23,710 zato ga lahko uporabljate tako. 336 00:16:23,710 --> 00:16:25,897 >> Tako, na primer, ki smo jih Zdaj imam našo pice paleto. 337 00:16:25,897 --> 00:16:27,730 Sem nekako tako pritegnjen v kotu 338 00:16:27,730 --> 00:16:31,080 tako da bomo lahko uporabite narediti hiter primer. 339 00:16:31,080 --> 00:16:36,420 Če rečem, foreach ($ pizze kot $ pizza), no, kaj se dogaja? 340 00:16:36,420 --> 00:16:42,400 No, jaz grem Ponovil skozi vsako single element matrike $ pice s, 341 00:16:42,400 --> 00:16:46,670 in pri tem, bom poklicati vsak element, ko sem notri 342 00:16:46,670 --> 00:16:49,400 telesa, ki za zanke, $ pico. 343 00:16:49,400 --> 00:16:52,440 >> Torej, to je neke vrste stand-v, odpoklic, da $ pizza 344 00:16:52,440 --> 00:16:59,140 je stand-v za rek $ pice oglati oklepaji $ i 345 00:16:59,140 --> 00:17:03,370 če smo bili z uporabo za zanke, kjer smo bi šel od $ i = 0, da je v tem primeru, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Če nismo imeli parov ključev vrednosti tod bi bilo to element 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 in bi jih uporabljamo za zanke, da gredo $ pizze 0, $ pice 1, $ pice 2, 349 00:17:16,390 --> 00:17:17,750 $ pizze 3. 350 00:17:17,750 --> 00:17:23,130 Torej, zdaj samo $ pizza je nadomeščanje za posamezen ključ. 351 00:17:23,130 --> 00:17:25,630 >> Torej, kaj se to dogaja, da natisnete? 352 00:17:25,630 --> 00:17:29,030 Jaz tiskanje $ pico. 353 00:17:29,030 --> 00:17:35,270 Kaj bom najti at-- če sem izpisal $ pice, $ i? 354 00:17:35,270 --> 00:17:35,770 Prav? 355 00:17:35,770 --> 00:17:38,680 Če se bom, da natisnete i-ta element pice, 356 00:17:38,680 --> 00:17:40,070 kaj bom za tiskanje? 357 00:17:40,070 --> 00:17:42,580 Grem izpisati Vrednosti na tem mestu, kajne? 358 00:17:42,580 --> 00:17:45,370 Like, če bomo počeli to v okviru C, 359 00:17:45,370 --> 00:17:49,786 mi ponavadi ne uporabite našo iterator spremenljivka, int i = 0, i manj kot 3, 360 00:17:49,786 --> 00:17:52,900 i ++, da natisnete 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Mi tiskanje paleto 0, matrika 1, matrika 2, matrika 3. 362 00:17:57,500 --> 00:17:59,580 In kaj to natisne to. 363 00:17:59,580 --> 00:18:01,150 To je seznam cen. 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 >> Zdaj pa hitro note tukaj. 366 00:18:06,900 --> 00:18:10,900 Foreach zanke ni nujno natisnite stvari v redu. 367 00:18:10,900 --> 00:18:12,770 To ni zagotovljena. 368 00:18:12,770 --> 00:18:13,550 To ponavadi počne. 369 00:18:13,550 --> 00:18:17,667 To je običajno temelji na sklepu kateri elementi so dodani k vrsti, 370 00:18:17,667 --> 00:18:18,750 tako da samo imeti v mislih. 371 00:18:18,750 --> 00:18:20,830 To ne bi bilo v redu. 372 00:18:20,830 --> 00:18:23,930 Ampak bo foreach zanke Ponovil po vsakem posameznem elementu 373 00:18:23,930 --> 00:18:25,060 array v vprašanje. 374 00:18:25,060 --> 00:18:27,980 V tem primeru spet da array je $ pice. 375 00:18:27,980 --> 00:18:32,920 >> Ne morem spremeniti sintakso, čeprav, če Hočem tako ključ in vrednost. 376 00:18:32,920 --> 00:18:37,179 Namesto da bi rekel $ pice kot $ pice, to lahko rečem. 377 00:18:37,179 --> 00:18:39,470 In če pogledaš na kaj sem obarvana zeleno tukaj, 378 00:18:39,470 --> 00:18:42,130 izgleda, da je ključni vrednost par kartiranja. 379 00:18:42,130 --> 00:18:45,980 In tako, če you-- niste četudi povsem prepričan, kaj se dogaja, da ne, 380 00:18:45,980 --> 00:18:49,300 si verjetno lahko uganiti da $ prehiteli se dogaja 381 00:18:49,300 --> 00:18:53,800 da je ključ v tem primeru in $ cena se bo vrednost. 382 00:18:53,800 --> 00:18:59,200 Tako da sem zdaj zamenjavi vsak element od $ pice kot ključni par vrednosti, 383 00:18:59,200 --> 00:19:03,900 in zdaj sem lahko nanašajo na ključ in vrednost, ki bi lahko v priročno, 384 00:19:03,900 --> 00:19:05,590 na primer, kot sledi. 385 00:19:05,590 --> 00:19:10,170 >> "Cela" - to je veliko tiskanje dogaja here-- "celoto" 386 00:19:10,170 --> 00:19:17,300 prehiteli "pizza stane $" ceno, nato pa Sem izpisal obdobje in poševnica nazaj n. 387 00:19:17,300 --> 00:19:23,420 Torej sedaj, obvestilo spet imam dostop do ključna, $ prehiteli, in vrednost, $ cena. 388 00:19:23,420 --> 00:19:26,647 Torej si lahko uganiti, kaj je to se bo izpisal? 389 00:19:26,647 --> 00:19:29,480 Tam je veliko izjav tiskanja vendar pa je le ena poševnica nazaj n, 390 00:19:29,480 --> 00:19:33,410 tako se dogaja, da natisnete nekaj na entire-- na eno vrstico kode. 391 00:19:33,410 --> 00:19:36,965 >> Če bi se lahko nanašajo na ključ in vrednost, nato pa zdaj, 392 00:19:36,965 --> 00:19:39,090 namesto samo bi mogli natisniti s cenami, 393 00:19:39,090 --> 00:19:41,330 Jaz lahko natisnete nekaj takega. 394 00:19:41,330 --> 00:19:43,780 "Cel pizza sir stane 8,99 $." 395 00:19:43,780 --> 00:19:47,150 In zdaj sem z vsemi keys-- sir, feferoni, zelenjave, 396 00:19:47,150 --> 00:19:49,640 buffalo chicken-- in vrednote. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Torej to je samo drugačen način 398 00:19:53,980 --> 00:19:57,840 narediti foreach zanke, ki namesto samo vam daje dostop do vrednot, 399 00:19:57,840 --> 00:20:02,950 to samo daje you-- vam daje dostop do tipk in vrednot. 400 00:20:02,950 --> 00:20:04,411 >> Torej tiskanje informacij. 401 00:20:04,411 --> 00:20:07,410 Sem že to naredil nekaj različne načine, ste morda opazili. 402 00:20:07,410 --> 00:20:11,080 Dve funkciji, ki smo jih v prvi vrsti videla sta tisk in odmev. 403 00:20:11,080 --> 00:20:14,380 In za precej vse namene in namene, oni so popolnoma enake. 404 00:20:14,380 --> 00:20:17,130 They're-- tam je zelo subtilna Razlika, ki je sploh ni vredno 405 00:20:17,130 --> 00:20:21,130 dobili v, ampak v bistvu povsod lahko uporabite print boste verjetno lahko uporabite 406 00:20:21,130 --> 00:20:22,370 odmeva, kot dobro. 407 00:20:22,370 --> 00:20:23,610 >> In to ni samo dva. 408 00:20:23,610 --> 00:20:26,970 PHP ima veliko drugačna načinov za tiskanje stvari, 409 00:20:26,970 --> 00:20:30,520 in ima tudi možnosti za vključitev spremenljivke v sredini niza. 410 00:20:30,520 --> 00:20:32,860 Torej spomnite iz C, kajne se spomnite, kaj funkcija 411 00:20:32,860 --> 00:20:37,580 lahko uporabimo za nadomestitev spremenljivk v stvari, ki jih želite natisniti ven? 412 00:20:37,580 --> 00:20:40,160 Verjetno ste to uporabijo delujejo precej veliko. 413 00:20:40,160 --> 00:20:42,290 printf, kajne? 414 00:20:42,290 --> 00:20:45,290 Torej, to je tisto, kar smo imeli prej v notranjosti v okviru našega foreach zanke. 415 00:20:45,290 --> 00:20:48,000 Imeli smo teh petih ločene izjave za tisk, 416 00:20:48,000 --> 00:20:50,330 ker je to edini Tako sem res vedel, v času, ko 417 00:20:50,330 --> 00:20:52,450 kako natisniti sporočil. 418 00:20:52,450 --> 00:20:59,560 Nisem vedel, kako se povezovale Spremenljivka $ prehiteli v mojo PHP kodo. 419 00:20:59,560 --> 00:21:03,700 No, če sem sprejela divji ugibati, printf, da dejansko ne bi delal. 420 00:21:03,700 --> 00:21:08,980 printf je funkcija, ki jo lahko uporabite v PHP, tako kot sem ga lahko uporabite v C. 421 00:21:08,980 --> 00:21:11,880 >> In tako nekako takole, printf, spet smo seznanjeni s tem. 422 00:21:11,880 --> 00:21:16,420 Prvi% s nadomesti z vrednostjo $ prehiteli. 423 00:21:16,420 --> 00:21:19,700 Druga% s nadomesti z vrednostjo $ ceno. 424 00:21:19,700 --> 00:21:22,630 In tako sem interpellating, ki je samo fancy način 425 00:21:22,630 --> 00:21:25,400 rekel sem zalepi spremenljivke v tej lokaciji. 426 00:21:25,400 --> 00:21:31,000 Torej sem priklopom na $ prehiteli kjer rdeča% s $ in cena kjer modro% s 427 00:21:31,000 --> 00:21:36,060 je, in potem bi dobili sporočilo, "Cel pizza sir stane 8,99 $." 428 00:21:36,060 --> 00:21:37,750 >> Ni edini način, da lahko to storite, čeprav. 429 00:21:37,750 --> 00:21:39,760 Mogoče bi si želel uporabiti to metodo. 430 00:21:39,760 --> 00:21:44,890 To je pravzaprav tisto, kar je najpogosteje imenujemo spremenljivka interpelacijo. 431 00:21:44,890 --> 00:21:45,690 Lahko uporabite odmev. 432 00:21:45,690 --> 00:21:47,737 Sem lahko uporabite tiskanje preveč, saj bomo videli. 433 00:21:47,737 --> 00:21:48,820 Toda kaj se dogaja? 434 00:21:48,820 --> 00:21:51,520 >> Najprej moram pobeg znak za dolar. 435 00:21:51,520 --> 00:21:55,140 Saj se spomniš, ko smo bili dejansko tiskanje cene za pice, 436 00:21:55,140 --> 00:21:59,370 Sem jih dejansko oblikovanje kot denarni zneski z znak za dolar. 437 00:21:59,370 --> 00:22:05,635 Vendar smo s pomočjo dolar znake tudi da predstavljajo imena spremenljivk v PHP, 438 00:22:05,635 --> 00:22:08,010 in še posebej, ko sem uporabo te metode kodrasti 439 00:22:08,010 --> 00:22:10,040 brace spremenljivka Metoda interpelacija, rabim 440 00:22:10,040 --> 00:22:13,490 pobegniti svoj znak za dolar, tako da ne Mislim, da govorim o spremenljivko. 441 00:22:13,490 --> 00:22:16,920 To se dogaja, da dejansko, dobesedno natisnete znak za dolar. 442 00:22:16,920 --> 00:22:19,530 >> Tako nekako je analogize za kar vidite na koncu tam. 443 00:22:19,530 --> 00:22:22,832 To dejansko ne print poševnica nazaj n, kajne? 444 00:22:22,832 --> 00:22:24,290 To natisne novo linijo značaj. 445 00:22:24,290 --> 00:22:26,750 To is-- to ne dogaja, da print poševnica nazaj znak za dolar, 446 00:22:26,750 --> 00:22:30,130 da se bo izpisal samo dolar znak za. 447 00:22:30,130 --> 00:22:30,640 Ista ideja. 448 00:22:30,640 --> 00:22:32,760 Escape sekvence, kar te stvari se imenujejo. 449 00:22:32,760 --> 00:22:37,080 >> Ampak obvestilo, da ne počnem kakršnakoli% s substitucij, 450 00:22:37,080 --> 00:22:40,050 Jaz sem samo dobesedno čepi pri teh spremenljivkah. 451 00:22:40,050 --> 00:22:45,110 In tako v this-- kaj bi se zgodilo tukaj je vrednost $ topping-- spet 452 00:22:45,110 --> 00:22:48,390 samo vodenje s tem, kar smo bili Govorimo o tako far-- sir bi dobil 453 00:22:48,390 --> 00:22:49,720 priključen na električno omrežje tam. 454 00:22:49,720 --> 00:22:54,780 In bi $ cena glede na vrednost na pizze, oglati oklepaji, sir, 455 00:22:54,780 --> 00:22:56,270 ki je bila 8,99. 456 00:22:56,270 --> 00:23:01,860 In tako bi to tudi natisnete "Cel pizza sir stane 8,99 $." 457 00:23:01,860 --> 00:23:05,160 In kot sem rekel, sem lahko uporabite natisnete tukaj namesto odmeva, 458 00:23:05,160 --> 00:23:08,040 in funkcionalnost biti precej povsem enako. 459 00:23:08,040 --> 00:23:09,660 To bi izpisal isto stvar. 460 00:23:09,660 --> 00:23:12,680 >> Obstaja še en način, da to storite, in to je nadaljnja prednost 461 00:23:12,680 --> 00:23:14,710 PHP delo s strunami. 462 00:23:14,710 --> 00:23:17,130 Mi lahko naredimo niz združevanje. 463 00:23:17,130 --> 00:23:19,660 Mi lahko to storite v C, preveč, uporabljate funkcijo imenovano strcat, 464 00:23:19,660 --> 00:23:21,180 ampak še enkrat, smo morali pokličite ločene funkcije. 465 00:23:21,180 --> 00:23:22,640 To je bil ves ta nered storiti. 466 00:23:22,640 --> 00:23:24,590 Imeli smo za funt, vključujejo string.h. 467 00:23:24,590 --> 00:23:25,780 To je bila proizvodnja, kajne? 468 00:23:25,780 --> 00:23:30,070 Ampak zdaj sem lahko samo uporabljati to dot operaterja za združevanje nizov skupaj. 469 00:23:30,070 --> 00:23:34,910 >> Torej sem concatenating "celoto" in potem ne glede na vrednost $ prelivom je, 470 00:23:34,910 --> 00:23:38,860 nato pa še niz "Stroški pizza $" 471 00:23:38,860 --> 00:23:42,340 in nato concatenating karkoli vrednost $ ceno, je, 472 00:23:42,340 --> 00:23:45,670 nato pa na samem koncu sem prečenjem na obdobje poševnica nazaj n. 473 00:23:45,670 --> 00:23:47,926 In tako bi to tudi izpisal "celoto" - še enkrat, 474 00:23:47,926 --> 00:23:50,550 če govorimo o prvi element te pizze array-- 475 00:23:50,550 --> 00:23:54,710 "Cel pizza sir stane 8,99 $." 476 00:23:54,710 --> 00:24:01,260 Obdobje, poševnica nazaj n, še enkrat, z Na $ prehiteli in $ cena nadomeščanjem 477 00:24:01,260 --> 00:24:06,580 za tisto, kar smo opredelili v naši foreach zanka kot ključna vrednost paru kartiranja. 478 00:24:06,580 --> 00:24:08,050 >> PHP zmorem funkcij. 479 00:24:08,050 --> 00:24:11,250 Naloge so bile neke vrste sestavni C, kot smo videli. 480 00:24:11,250 --> 00:24:14,870 Like spremenljivk, ne potrebujemo, da opredelite vrsto povratni funkcije, 481 00:24:14,870 --> 00:24:16,350 saj ni važno. 482 00:24:16,350 --> 00:24:18,660 In ne bomo se opredelijo Podatkovni tipi vseh parametrov, 483 00:24:18,660 --> 00:24:21,410 ker se v resnici ne glede na to, kot smo videli v PHP. 484 00:24:21,410 --> 00:24:24,510 Vsak funkcija uvedemo s funkcijo ključno besedo. 485 00:24:24,510 --> 00:24:27,920 To je, kako smo se kažejo v PHP, ki kaj smo govoriš je funkcija. 486 00:24:27,920 --> 00:24:29,720 >> In mi ne bi bilo treba Ukvarjamo se z glavne na vse, 487 00:24:29,720 --> 00:24:33,690 ker tolmača, PHP tolmač, deluje od vrha do dna, 488 00:24:33,690 --> 00:24:34,190 glede na to. 489 00:24:34,190 --> 00:24:35,640 Ste, če vidi lahko klic funkcije, se bo 490 00:24:35,640 --> 00:24:37,850 poišči klic funkcije, tudi če gre kasneje. 491 00:24:37,850 --> 00:24:40,360 Ampak to se dogaja, da se glasi od vrha do dno, tako da nam ni treba določiti, 492 00:24:40,360 --> 00:24:41,500 Tukaj je, kjer ste začeli. 493 00:24:41,500 --> 00:24:46,700 Začnete na liniji 1 vaš PHP in deluje navzdol od tam. 494 00:24:46,700 --> 00:24:49,690 >> Torej, tukaj je, kako bomo ustvarili funkcija imenuje hard_square. 495 00:24:49,690 --> 00:24:54,100 To očitno traja eno parameter, ki kličem $ x. 496 00:24:54,100 --> 00:24:58,424 Ta funkcija je zapleteno samo za ponazoritev različne stvari. 497 00:24:58,424 --> 00:24:59,590 Še vedno imamo vrednote vračanja. 498 00:24:59,590 --> 00:25:00,870 Jaz sem z uporabo zanke for tukaj. 499 00:25:00,870 --> 00:25:04,970 Ampak to je v bistvu samo, kaj je to znaša je samo $ x krat $ x. 500 00:25:04,970 --> 00:25:10,520 Kaj sem pravzaprav počne je le dodajanje x 0 x-krat ali $ x na nič $ x-krat. 501 00:25:10,520 --> 00:25:15,850 Ampak to je dejansko popolnoma Enako kot pomnoži $ x-krat $ x. 502 00:25:15,850 --> 00:25:18,700 Jaz lahko še vedno vrne vrednost, v tem primeru $ rezultat, 503 00:25:18,700 --> 00:25:22,060 in sem naredila funkcije v PHP. 504 00:25:22,060 --> 00:25:24,160 >> Tukaj je, kako bi ga uporabili v kontekstu. 505 00:25:24,160 --> 00:25:26,020 Torej, morda sem znotraj neke PHP datoteke. 506 00:25:26,020 --> 00:25:29,240 Opazili v modrem tam, da Uporabil sem svoje PHP ločila, 507 00:25:29,240 --> 00:25:31,010 Kot nosilec vprašaj php. 508 00:25:31,010 --> 00:25:35,180 Med tistimi so vsi PHP, da želim pisati. 509 00:25:35,180 --> 00:25:37,840 Tako da sem očitno dogaja, da get-- Bom poziv uporabniku 510 00:25:37,840 --> 00:25:41,550 da mi številko, trgovino, spremenljivka, trgovina v tem spremenljivka $ x, 511 00:25:41,550 --> 00:25:43,320 karkoli so mi ga dali. 512 00:25:43,320 --> 00:25:48,590 Potem bom odmeva hard_square te vrednosti, 513 00:25:48,590 --> 00:25:50,370 in očitno bo za prečenje v novo vrstico 514 00:25:50,370 --> 00:25:53,590 kot tudi, in potem kasneje bom opredeliti funkcijo hard_square tako 515 00:25:53,590 --> 00:25:55,550 da ko naredim pokličite na hard_square, 516 00:25:55,550 --> 00:25:58,160 ve, kaj sem govoril. 517 00:25:58,160 --> 00:26:00,705 >> Zdaj, jaz bi tudi storila kaj takega. 518 00:26:00,705 --> 00:26:02,050 To je nekoliko drugačna. 519 00:26:02,050 --> 00:26:04,190 To je skoraj povsem enako kot tisto, kar smo videli doslej, 520 00:26:04,190 --> 00:26:08,400 razen namesto da bi rekel samo $ x tam kot parameter za hard_square, 521 00:26:08,400 --> 00:26:11,730 Pravim $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Torej je to primer defenzivno programiranje, 523 00:26:14,330 --> 00:26:17,070 varovanje vaših programov pred zlonamernimi uporabniki. 524 00:26:17,070 --> 00:26:20,020 >> To je eden od načinov, da naredite nekaj napako preverjanje, da nismo zares 525 00:26:20,020 --> 00:26:24,670 imajo kot možnost v C. Lahko bi nikoli določite privzeto vrednost nečesa. 526 00:26:24,670 --> 00:26:27,010 Vedno smo imeli, da preverite ali, na primer, 527 00:26:27,010 --> 00:26:30,820 če smo naredili klic GetString, je bilo najbolj pravilno, če takoj, ko 528 00:26:30,820 --> 00:26:33,300 preveri, da smo preverili ali niza 529 00:26:33,300 --> 00:26:35,504 da nas je uporabnik dal ni enaka NULL, 530 00:26:35,504 --> 00:26:37,920 saj ne želimo, da začnete delo z ničelno vrvico. 531 00:26:37,920 --> 00:26:39,670 >> Tu gre pot za zaščito pred tem. 532 00:26:39,670 --> 00:26:43,480 Če se uporabnik ne nam zagotavljajo nekaj nekako, kaj bomo storili? 533 00:26:43,480 --> 00:26:46,080 No, bomo samo reči karkoli oni nam ne zagotavlja, 534 00:26:46,080 --> 00:26:47,705 smo le, da bo namesto tega priključite v 10. 535 00:26:47,705 --> 00:26:52,030 Torej, če ga niso nam vrednost, samo uporabo 10 privzeto. In tako sem, 536 00:26:52,030 --> 00:26:53,940 opazili, da delam klic k hard_square, 537 00:26:53,940 --> 00:26:55,980 vendar ni poziv za uporabnika, kajne? 538 00:26:55,980 --> 00:26:57,540 Jaz sem samo tako prazen klic. 539 00:26:57,540 --> 00:27:00,860 >> Ampak moja funkcija hard_square pričakuje parameter. 540 00:27:00,860 --> 00:27:02,222 Kaj se to dogaja, da natisnete? 541 00:27:02,222 --> 00:27:03,680 To se dogaja, da natisnete 100, kajne? 542 00:27:03,680 --> 00:27:05,720 Saj uporabnik ni daj mi ničesar. 543 00:27:05,720 --> 00:27:08,970 In tako sem šele tekoč, da prevzame da 10-- 10 je privzeta vrednost. 544 00:27:08,970 --> 00:27:13,760 In tako bi to natisnete od 100 v svoji vrstici. 545 00:27:13,760 --> 00:27:16,390 >> PHP datoteke, ne bi bilo treba lahko samo eno datoteko. 546 00:27:16,390 --> 00:27:19,480 Lahko združite več datotek skupaj, tako kot si lahko v C. pot 547 00:27:19,480 --> 00:27:24,330 smo, da je bilo v C običajno narediti #include dobiti datoteke glave potegnil. 548 00:27:24,330 --> 00:27:26,180 Mi tega ne počnemo v PHP. 549 00:27:26,180 --> 00:27:29,110 Naredimo nekaj, kar ti require_once. 550 00:27:29,110 --> 00:27:33,360 In potem je tu še cela stvar, kaj je to __dir__? 551 00:27:33,360 --> 00:27:36,510 To je samo poseben spremenljivka, ali posebna konstanta, 552 00:27:36,510 --> 00:27:39,030 res, da določa, kaj vaš trenutni imenik. 553 00:27:39,030 --> 00:27:41,320 In tako se dogaja, da poiščete v vašem trenutnem imeniku 554 00:27:41,320 --> 00:27:44,900 za datoteke imenovane cs50.php V tem primeru tod 555 00:27:44,900 --> 00:27:50,490 in to se dogaja, da se držijo te datoteke na vrhu vašega PHP programa, 556 00:27:50,490 --> 00:27:56,980 ob predpostavki, da si dal zahtevajo enkrat črto na vrhu vašega PHP datoteke. 557 00:27:56,980 --> 00:28:01,474 >> Torej se PHP uporablja predvsem, vendar ne izključno, 558 00:28:01,474 --> 00:28:03,140 kot jezik za spletno programiranje. 559 00:28:03,140 --> 00:28:05,270 To je res, kako je prišlo do tega. 560 00:28:05,270 --> 00:28:06,980 Vendar je polna jezik, kot smo videli. 561 00:28:06,980 --> 00:28:10,105 Videli smo precej vse stvari da lahko to storite, da so podobna C, 562 00:28:10,105 --> 00:28:13,290 in lahko naredi vraga veliko več kot to. 563 00:28:13,290 --> 00:28:16,950 >> Ampak zato, ker je poln jezik in mi lahko storite ukazno programiranje postavo v njej. 564 00:28:16,950 --> 00:28:18,630 Mi lahko zagon programov ukazni vrstici. 565 00:28:18,630 --> 00:28:22,580 Vse, kar je potrebno za zagon ukaza Program linija, ki je napisana v PHP 566 00:28:22,580 --> 00:28:24,260 je, da imate PHP tolmača. 567 00:28:24,260 --> 00:28:27,460 Torej, to je nekako analogno ob prevajalnik na vašem sistemu 568 00:28:27,460 --> 00:28:31,100 če želite, da pripravijo svoje C kodo da se spremeni v izvršljive datoteke. 569 00:28:31,100 --> 00:28:33,810 Morate imeti PHP tolmača da obstaja na vašem sistemu 570 00:28:33,810 --> 00:28:37,330 tako da lahko razlagajo PHP datoteke. 571 00:28:37,330 --> 00:28:40,370 >> Ste ob predpostavki, da ne, in ponavadi Ta tolmač se imenuje PHP, 572 00:28:40,370 --> 00:28:44,300 in to je ponavadi v paketu z najbolj opreme ali naprav PHP 573 00:28:44,300 --> 00:28:47,430 da lahko dobite na spletu, in prav gotovo ime PHP tolmača 574 00:28:47,430 --> 00:28:49,550 imamo v CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Vse, kar morate storiti, je tip php datoteke. 576 00:28:51,819 --> 00:28:53,610 In kaj je tvoj program, je tekoč storiti, je, da je 577 00:28:53,610 --> 00:28:55,360 tekoč teči skozi tolmač, je 578 00:28:55,360 --> 00:28:58,040 gre prezreti vse, kar je ne med zadevno mark-- 579 00:28:58,040 --> 00:29:03,160 ali, kot nosilec question mark php, PHP oklepaji in ga natisnete, 580 00:29:03,160 --> 00:29:07,660 in bo tolmačila in izvršitev Koda znotraj vaših PHP ločila. 581 00:29:07,660 --> 00:29:12,850 >> Torej, kaj je pop prenesejo CS50 IDE in imajo pogled na nekaj PHP datotek, 582 00:29:12,850 --> 00:29:19,850 teče nekaj PHP datotek, v ukazni vrstici vmesnik CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Torej, tukaj smo v CS50 IDE, in sem vzel svobodo 584 00:29:22,100 --> 00:29:25,800 odpiranja datoteko z imenom hello1.php. 585 00:29:25,800 --> 00:29:29,920 In očitno je, da je vsebina tega datoteke so le PHP ločila tam, 586 00:29:29,920 --> 00:29:32,220 in vmes, echo ("Hello, world"). 587 00:29:32,220 --> 00:29:34,710 To je zelo preprosta PHP programa. 588 00:29:34,710 --> 00:29:37,670 Jaz sem šele tekoč, da se pomaknete navzdol na mojo terminalsko okno tukaj, 589 00:29:37,670 --> 00:29:44,320 in grem tip php hello1.php, zadeti nastopiti. 590 00:29:44,320 --> 00:29:44,950 Pozdravljen, svet. 591 00:29:44,950 --> 00:29:48,110 To je verjetno tisto, kar smo bili Pričakoval je, da ne, kajne? 592 00:29:48,110 --> 00:29:51,140 >> Pojdimo in sprejme en pogled na programu. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Precej isto stvar, ni veliko dogaja. 595 00:29:55,090 --> 00:29:57,190 Ta čas, čeprav, jaz grem na poziv uporabniku, da mi njihova imena. 596 00:29:57,190 --> 00:29:59,290 Jaz sem spet uporabljati to funkcijo readline. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 To je poziv: "Kako ti je ime?" 599 00:30:03,070 --> 00:30:04,880 >> Očitno sem tiskanje je v svoji vrstici. 600 00:30:04,880 --> 00:30:07,220 In potem, da je linija spodaj da bo poziv 601 00:30:07,220 --> 00:30:08,750 kjer uporabnik lahko vnesete svoje ime. 602 00:30:08,750 --> 00:30:12,030 In potem sem z malo spremenljivka interpelacija tukaj na liniji 3 603 00:30:12,030 --> 00:30:14,780 natisniti "Hello" in ne glede na vrste uporabnikov. 604 00:30:14,780 --> 00:30:22,040 Torej, to je analogna rekel, Hello, vejica,% s, če smo bili z uporabo printf v C. 605 00:30:22,040 --> 00:30:24,910 >> Torej, pojdimo in interpretirati ta program. 606 00:30:24,910 --> 00:30:27,400 Torej še enkrat, bom se pomaknite navzdol na mojo terminalsko okno. 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 Kako ti je ime? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Pozdravljeni, Doug. 612 00:30:36,526 --> 00:30:39,440 Imam tudi druga datoteka z imenom hello3.php. 613 00:30:39,440 --> 00:30:42,850 Grem zbistriti zaslon z nadzorno L, 614 00:30:42,850 --> 00:30:46,210 in bom za izvedbo tega. 615 00:30:46,210 --> 00:30:47,640 Kako ti je ime? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Pozdravljeni, Doug. 618 00:30:49,780 --> 00:30:56,540 Tako ravnanje je identična hello2.php, ampak zakaj je hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> No, tukaj je razlika. 620 00:30:58,040 --> 00:31:00,620 V tem primeru obvestilo da je na liniji 1 tukaj, 621 00:31:00,620 --> 00:31:04,270 Imam nekaj, kar ne med PHP ločila. 622 00:31:04,270 --> 00:31:07,760 Jaz sem samo tiskanje out-- ali I pravkar vnesli, "Kako ti je ime?" 623 00:31:07,760 --> 00:31:12,060 Ko je PHP interpreter to vidi, ga nima pojma, kako se razlaga kot PHP, 624 00:31:12,060 --> 00:31:15,060 in tako namesto ni, to je le, da bo izpljuni. 625 00:31:15,060 --> 00:31:19,010 >> Tako obvestilo v vrstici 3 zdaj, moj klic readline, ni poziv več. 626 00:31:19,010 --> 00:31:21,750 Jaz sem samo dejansko dogaja to-- ko PHP interpreter to vidi, 627 00:31:21,750 --> 00:31:23,400 to se dogaja, da natisnete "Kako ti je ime?" 628 00:31:23,400 --> 00:31:25,941 Potem pa vidi, oh, OK, here's-- vse ostalo se bo 629 00:31:25,941 --> 00:31:29,970 razlagati tako, PHP, tako da je, zakaj to deluje. 630 00:31:29,970 --> 00:31:34,990 Nimam za nujno spodbuditi to-- uporabnik znotraj readline, 631 00:31:34,990 --> 00:31:37,490 Jaz lahko samo še zunaj od PHP ločila 632 00:31:37,490 --> 00:31:41,490 in omogočajo tolmača da ga samo natisnete zame. 633 00:31:41,490 --> 00:31:45,364 >> Tako da dejansko ne samo da imajo en komplet PHP ločila 634 00:31:45,364 --> 00:31:46,030 v vašem programu. 635 00:31:46,030 --> 00:31:49,887 Lahko dejansko imajo več od njih, odpiranja in zapiranja, kot je potrebno. 636 00:31:49,887 --> 00:31:51,720 Torej, vzemimo si oglejte na nekaj programov 637 00:31:51,720 --> 00:31:55,070 v CS50 IDE kje smo ponazarjajo to idejo o 638 00:31:55,070 --> 00:31:58,376 več sklopov razmejeno PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, tako da sem odprl datoteko tu imenujejo add1.php. 640 00:32:02,010 --> 00:32:03,390 In opazil, kaj se dogaja tukaj. 641 00:32:03,390 --> 00:32:08,077 Tako kot prej, imam single PHP niz ločila. 642 00:32:08,077 --> 00:32:10,660 Grem izpisati sporočilo, "Prosim, daj mi številko." 643 00:32:10,660 --> 00:32:13,394 Potem bom prebral črto in ga shranite v spremenljivko $ num1. 644 00:32:13,394 --> 00:32:14,810 Potem grem natisniti znova. 645 00:32:14,810 --> 00:32:16,310 Daj mi še eno številko. 646 00:32:16,310 --> 00:32:20,450 Preberite črto od uporabnika, trgovina karkoli so vnesli v na $ num2. 647 00:32:20,450 --> 00:32:23,980 Dodajte jih skupaj in shranjevanje, ki povzroči spremenljivko z imenom $ vsota, 648 00:32:23,980 --> 00:32:26,180 in nato natisnete, "The Vsota teh dveh številk 649 00:32:26,180 --> 00:32:29,254 je, "in nato komunicirati je spremenljivka $ vsota. 650 00:32:29,254 --> 00:32:31,170 Torej, kaj je samo teči ta preko tolmača 651 00:32:31,170 --> 00:32:33,720 potrditi, da je to tisto, kar smo pričakovali. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Prosim, daj mi številko, 3. 654 00:32:38,665 --> 00:32:40,410 Prosim, daj mi še eno številko, 4. 655 00:32:40,410 --> 00:32:43,370 Vsota teh dveh številk je 7. 656 00:32:43,370 --> 00:32:45,030 To je 3 plus 4. 657 00:32:45,030 --> 00:32:45,530 V REDU? 658 00:32:45,530 --> 00:32:47,770 Torej, nič strašno fancy tam. 659 00:32:47,770 --> 00:32:51,080 >> In zdaj pa odpirajo add2.php. 660 00:32:51,080 --> 00:32:54,460 Tukaj imam nekaj PHP razmeji kompleti tam, kajne? 661 00:32:54,460 --> 00:32:59,107 Lines 1, 3-- linije 1 in 3 nimajo PHP ločila. 662 00:32:59,107 --> 00:33:00,940 Torej, ko je tolmač jih vidi, da je samo 663 00:33:00,940 --> 00:33:03,220 bo izpljuni točno kaj sem tam tipkal. 664 00:33:03,220 --> 00:33:05,011 Torej, to je, kjer sem delaš vse moje česar. 665 00:33:05,011 --> 00:33:11,220 Na progah 2 in 4, vidimo zelo seznanjeni $? php nekako ločila, 666 00:33:11,220 --> 00:33:15,210 tako da ta dva linije so dogaja, da izvajajo kot PHP. 667 00:33:15,210 --> 00:33:18,270 In potem na liniji 5, imam to čudna stvar tukaj, kajne? 668 00:33:18,270 --> 00:33:20,480 Ta kot nosilec Vprašanje znak enačaj. 669 00:33:20,480 --> 00:33:22,660 Bom še povečate malo dlje. 670 00:33:22,660 --> 00:33:29,270 Vidite lahko, da je to tisto, kar sem govorimo o tam, to $? =. 671 00:33:29,270 --> 00:33:33,420 >> Izkazalo se je, da je tako pogost, da Razlog, da smo odprli niz PHP 672 00:33:33,420 --> 00:33:36,055 Ločila je izpisal vrednost. 673 00:33:36,055 --> 00:33:37,430 In to je vse, kar smo počeli. 674 00:33:37,430 --> 00:33:39,220 Ampak tam je tudi okrajšava za to. 675 00:33:39,220 --> 00:33:46,490 $? = Je PHP okrajšava za rek nekaj podobnega $? php echo vsota 676 00:33:46,490 --> 00:33:48,350 od num1 in num2. 677 00:33:48,350 --> 00:33:51,900 Torej, to je samo še en okrajšava za to. 678 00:33:51,900 --> 00:33:55,550 >> Torej, če sem teči ta program, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Bom povečavo dol malo. 680 00:33:57,530 --> 00:33:59,000 Prosim, daj mi številko, 4. 681 00:33:59,000 --> 00:34:00,350 Prosim, daj mi še eno številko. 682 00:34:00,350 --> 00:34:04,650 In ker sem v resnici ne skrbi podatkovni tipi v PHP, lahko rečem, 4.8. 683 00:34:04,650 --> 00:34:07,160 Vsota teh dveh številk je 8,8. 684 00:34:07,160 --> 00:34:10,179 Ta funkcija obnaša precej povsem enako, kot bi pričakovali, 685 00:34:10,179 --> 00:34:10,989 kot dobro. 686 00:34:10,989 --> 00:34:13,114 In imam eno bolj odprt tu imenuje dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Poskusite to še enkrat. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Imam eno tu imenujejo dice1.php, ki je prav tako, glejte, 691 00:34:33,280 --> 00:34:37,440 je, da kot nosilec vprašanje označi enačaj zapis tam, 692 00:34:37,440 --> 00:34:40,659 ampak obvestilo, da v tem primeru sem kliče funkcijo rand, ki je, kot ste 693 00:34:40,659 --> 00:34:42,790 morda pričakovali generira naključno število. 694 00:34:42,790 --> 00:34:46,889 "Valjanih Si," in to se dogaja, izračunati nekaj naključno število, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Tako, da mi bo dal številko v območju od 1 do 6. 697 00:34:49,989 --> 00:34:53,040 >> Ne pozabite, da bi mod 6 daj mi število v območju od 0 do 5, 698 00:34:53,040 --> 00:34:56,630 ampak če sem simuliranje kocke zvitki, ki je to, kar delam tukaj, 699 00:34:56,630 --> 00:35:00,040 Nočem te kocke, da gredo od 0 do 5, želim kocke, ki gredo od 1 do 6. 700 00:35:00,040 --> 00:35:02,800 In tako je to način, da dobite mi v območju od 1 do 6. 701 00:35:02,800 --> 00:35:04,720 To delam dvakrat. 702 00:35:04,720 --> 00:35:08,630 Torej, očitno sem valjanje dve kocke v tem programu. 703 00:35:08,630 --> 00:35:15,210 >> Torej bom zbistriti zaslon, in jaz bom naredil php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Valjanih si je 4 in 2. 705 00:35:16,640 --> 00:35:19,156 In če sem teči program spet si valjanih 5 in 5. 706 00:35:19,156 --> 00:35:21,780 Torej, vsakič, ko sem teči program, Dobivam različne številke, 707 00:35:21,780 --> 00:35:24,280 ker vsakič, ko naredim Torej, to je nov začetek. 708 00:35:24,280 --> 00:35:27,250 To se dogaja, da ustvari novo niz naključnih številk za mene. 709 00:35:27,250 --> 00:35:29,790 >> Torej, če si bomo uporabili za poganjanje programov iz C, 710 00:35:29,790 --> 00:35:32,520 smo uporabili za tipkanje ./ ime programa, kajne? 711 00:35:32,520 --> 00:35:35,090 To je, kako smo storili vse naših programov v C doslej. 712 00:35:35,090 --> 00:35:37,555 To lahko storite v PHP, kot tudi z dodatkom nekaj imenuje 713 00:35:37,555 --> 00:35:40,026 shebang na vrhu našega PHP datoteke. 714 00:35:40,026 --> 00:35:41,400 Vem, da je nekako neumno besedo. 715 00:35:41,400 --> 00:35:44,540 To je okrajšava za hash bang. 716 00:35:44,540 --> 00:35:46,300 To je prva dva znaka tam. 717 00:35:46,300 --> 00:35:50,030 Zapomni pravimo klicaj pogosto pok v računalništvu. 718 00:35:50,030 --> 00:35:51,690 Prav tako bi bilo za oster pok. 719 00:35:51,690 --> 00:35:53,273 Obstaja nekaj načinov, da jo razlagajo. 720 00:35:53,273 --> 00:35:57,320 Ampak to je v bistvu posebna vrsta poveljevanja, da PHP interpreter 721 00:35:57,320 --> 00:36:00,160 razume kot, oh, hočem da izvajajo ta program, 722 00:36:00,160 --> 00:36:05,250 ki je očitno / uporabnik / bin / php, ki je pravzaprav kjer PHP tolmač 723 00:36:05,250 --> 00:36:08,590 posebej živi v našem sistemu. 724 00:36:08,590 --> 00:36:12,530 Torej it's-- kaj se zgodi, tukaj je tolmač razume, oh, 725 00:36:12,530 --> 00:36:17,270 Jaz sem očitno moral uporabiti v ta program zagnati to datoteko. 726 00:36:17,270 --> 00:36:20,010 In tako vam omogoča, preskočiti preko koraku 727 00:36:20,010 --> 00:36:22,979 imajo za povedati php something.php. 728 00:36:22,979 --> 00:36:25,020 Tam je ena ulov tukaj, kar je, da če želimo 729 00:36:25,020 --> 00:36:27,320 želijo naše programe deluje po pričakovanjih, smo 730 00:36:27,320 --> 00:36:30,220 morate narediti nekaj, kar ti sprememba datoteka dovoljenje. 731 00:36:30,220 --> 00:36:33,380 In bomo go-- in govorimo malo malo več o datotečnih dovolilnice spremembe 732 00:36:33,380 --> 00:36:37,550 V našem video na MVC, ampak je dovolj, da pravijo, da je to tisto, kar morate storiti 733 00:36:37,550 --> 00:36:42,760 da bi si .php datoteke izvršljiv. 734 00:36:42,760 --> 00:36:49,330 Tako da je lahko pogled na to kot naš končni primer preko v CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Torej, tukaj v IDE Imam dve datoteki v to Imenika PHP da ne kaže, da bi 736 00:36:53,910 --> 00:36:55,310 imenuje .php. 737 00:36:55,310 --> 00:36:58,170 Imam funkcijo imenovano add-- Imam datoteko z imenom ADD3 738 00:36:58,170 --> 00:37:00,650 in datoteka z imenom dice2. 739 00:37:00,650 --> 00:37:03,680 Torej, vzemimo na hitro poglej in odpirajo ADD3. 740 00:37:03,680 --> 00:37:08,300 In kot vidite, na začetku moje datoteke imam to shebang, kajne? 741 00:37:08,300 --> 00:37:11,420 Ta lojtra klicaj. 742 00:37:11,420 --> 00:37:15,115 Zdaj bom tudi morda opazili, da iz nekega razloga, 743 00:37:15,115 --> 00:37:16,990 Nimam nobene sintakse poudarjanje več, 744 00:37:16,990 --> 00:37:20,198 in to je tisto, kar sem namignil že prej, ki je bil, da če jaz ne imenujem svojo datoteko 745 00:37:20,198 --> 00:37:23,040 .php, nimam koristi sintakse poudarjanje več. 746 00:37:23,040 --> 00:37:26,220 Ta datoteka je pravkar klical ADD3. 747 00:37:26,220 --> 00:37:30,960 Tako, da sem lahko zaženete pozneje z ./ ADD3 in ne ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Torej reason-- je še vedno v redu, je še vedno veljaven PHP, 749 00:37:33,680 --> 00:37:37,000 vendar je ne sintaksa poudarjeno, ker Ta datoteka se ne imenuje something.php. 750 00:37:37,000 --> 00:37:41,580 To je edina prava razlika tukaj, plus shebang. 751 00:37:41,580 --> 00:37:45,170 Torej, da vidimo, kaj se zgodi, ko Sem poskusil in zaženete ta program. 752 00:37:45,170 --> 00:37:50,780 ./ ADD3, tako kot sem bi s C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ ADD3 permission denied. 754 00:37:53,190 --> 00:37:55,390 To je tisto, kar boste da vidim, če ste pozabili 755 00:37:55,390 --> 00:37:59,280 z ukazom chmod spremenite so dovoljenja za datoteko. 756 00:37:59,280 --> 00:38:03,845 >> Kot se je izkazalo, redno PHP Datoteke samo ne more izvršiti. 757 00:38:03,845 --> 00:38:06,970 Jih je mogoče razlagati tako, vendar smo delaš nekaj malo drugačnega tukaj. 758 00:38:06,970 --> 00:38:07,761 Mi smo ga izvršuje. 759 00:38:07,761 --> 00:38:12,970 In tako moram dodati dovoljenja izvršbe, chmod a + x na ADD3. 760 00:38:12,970 --> 00:38:15,680 Potem pa lahko rečem ./ ADD3. 761 00:38:15,680 --> 00:38:16,860 Prosim, daj mi številko. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Vsota teh dveh številk je 11. 764 00:38:20,490 --> 00:38:26,530 >> Podobno sem že chmoded dice2, tako da sem lahko samo tip ./ dice2, 765 00:38:26,530 --> 00:38:31,260 ste valjanih 1 in 1, ki jih valjanih 5- in 4, in tako naprej. 766 00:38:31,260 --> 00:38:33,680 >> Tako da je precej Ideja o PHP sintakso, kajne? 767 00:38:33,680 --> 00:38:35,221 Tam je veliko priti skozi, vem. 768 00:38:35,221 --> 00:38:39,160 Ampak upam, da ste videli sedaj, PHP ni res, da je drugačen od C 769 00:38:39,160 --> 00:38:43,670 in res nam daje možnost, vzeti stvari gor zarezo ali dve. 770 00:38:43,670 --> 00:38:48,230 Mi res ne bo treba skrbeti Preveč about-- ne bomo res 771 00:38:48,230 --> 00:38:51,605 treba skrbeti preveč o Podrobnosti o nizki ravni smo 772 00:38:51,605 --> 00:38:52,980 moral skrbeti s C, kajne? 773 00:38:52,980 --> 00:38:56,170 Mi lahko osredotočijo na višji raven stvari, PHP 774 00:38:56,170 --> 00:39:01,090 nam omogoča, da naredite in da se za samoumevno, da bo to delo za nas. 775 00:39:01,090 --> 00:39:04,350 Tako da nam daje možnost, zdaj, prehod iz C v PHP, 776 00:39:04,350 --> 00:39:08,280 da bi programe, ki so veliko bolj zapleteni in morda veliko bolj robusten. 777 00:39:08,280 --> 00:39:13,070 >> Torej, upam, da boste zabavali delo s PHP, in sem Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 To je CS50. 779 00:39:15,050 --> 00:39:17,637