1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Takže máme urobil veľa práce v C, 3 00:00:07,370 --> 00:00:09,536 a C je naozaj v pohode jazyka, pretože vám dáva 4 00:00:09,536 --> 00:00:12,840 schopnosť sa potápať skutočne nízka úroveň do vašich programov. 5 00:00:12,840 --> 00:00:16,810 Dostávame sa robiť veci tak, ako Naozaj minúta as manipuláciou 6 00:00:16,810 --> 00:00:18,800 Jednotlivé bajtov pamäte. 7 00:00:18,800 --> 00:00:21,420 Pripomeňme si, že naozaj na ukazovatele umožniť nám, že pružnosť. 8 00:00:21,420 --> 00:00:25,260 >> Ale vždy je potrebné mať že úroveň jemnozrnná detailu 9 00:00:25,260 --> 00:00:26,820 v našich programoch? 10 00:00:26,820 --> 00:00:28,210 Pravdepodobne nie, že jo? 11 00:00:28,210 --> 00:00:30,376 A ak budeme mať kompromis medzi tým, 12 00:00:30,376 --> 00:00:32,911 schopný robiť naozaj, ale naozaj minute veci a naozaj, ale naozaj 13 00:00:32,911 --> 00:00:35,910 veľké veci, ktoré nemajú myslieť o, nemáme realizovať 14 00:00:35,910 --> 00:00:40,290 Tieto naozaj veľké myšlienky pokiaľ že sú už postavená v roku pre nás, 15 00:00:40,290 --> 00:00:43,980 všeobecne pre budovanie big programy alebo veľké projekty, 16 00:00:43,980 --> 00:00:49,130 budeme pravdepodobne bude chybu na strane z toho, že ďalšie jazykové veci postavená v roku 17 00:00:49,130 --> 00:00:51,300 pre nás, namiesto toho, veci low-level. 18 00:00:51,300 --> 00:00:53,970 A to je miesto, kde PHP naozaj prichádza. 19 00:00:53,970 --> 00:00:58,200 >> Teraz, jeden z dôvodov, prečo že učíme PHP v CS50 20 00:00:58,200 --> 00:01:01,020 je, že je silne inšpirovaná C. A v skutočnosti, podľa môjho názoru, 21 00:01:01,020 --> 00:01:05,140 tam sú naozaj dvoch progenitorové jazyky, ktoré 22 00:01:05,140 --> 00:01:08,200 sú veľmi časté v dnešnej dobe. 23 00:01:08,200 --> 00:01:10,110 C a LISP. 24 00:01:10,110 --> 00:01:13,280 A sú progenitorové jazyky pretože každý iný moderný programovanie 25 00:01:13,280 --> 00:01:17,380 jazyk, ktorý vyvinula od tej doby je inšpirované 26 00:01:17,380 --> 00:01:20,330 jednou alebo druhou syntakticky. 27 00:01:20,330 --> 00:01:26,160 PHP je veľmi podobný syntakticky k C, zatiaľ čo jazykov ako Scheme, 28 00:01:26,160 --> 00:01:27,900 napríklad, ktorý ste možno počuli o, 29 00:01:27,900 --> 00:01:32,070 je silne inšpirovaný jazykom volal LISP, ktorý je starší jazyk. 30 00:01:32,070 --> 00:01:34,220 >> Takže z toho dôvodu sme sa učiť PHP v CS50 je to, že, 31 00:01:34,220 --> 00:01:37,730 tým, že pozná C ako zásadne ako vy v tomto bode, 32 00:01:37,730 --> 00:01:41,280 vyzdvihnutie PHP, ktorý vám dáva schopnosť robiť oveľa vyššiu úroveň veci 33 00:01:41,280 --> 00:01:44,710 ako C robí, nie je že veľa z prekážku, 34 00:01:44,710 --> 00:01:48,230 preto, že už máte Základnou myšlienkou syntaxe. 35 00:01:48,230 --> 00:01:50,590 C je to asi pre takmer 45 rokov v tomto bode. 36 00:01:50,590 --> 00:01:52,780 PHP tu bol asi 20 rokov. 37 00:01:52,780 --> 00:01:57,080 A v tom, že 25 rokov medzi programátormi, 38 00:01:57,080 --> 00:02:01,540 stanovené, že by moc skôr majú vyššie schopnosti na úrovni, 39 00:02:01,540 --> 00:02:04,970 a chyby a boja z 20 rokov v rozmedzí 40 00:02:04,970 --> 00:02:08,210 viedol k PHP a iných moderných jazykov. 41 00:02:08,210 --> 00:02:11,039 >> PHP veľký výber jazyka pre softvér 42 00:02:11,039 --> 00:02:14,042 že allow-- pre softvér that-- kde na vás 43 00:02:14,042 --> 00:02:16,250 treba robiť veci, ktoré v C sú v skutočnosti komplikované. 44 00:02:16,250 --> 00:02:18,480 Tak napríklad, pracovné s reťazcami v C 45 00:02:18,480 --> 00:02:21,709 je veľmi komplikované, pretože ako vieme, reťazca v C 46 00:02:21,709 --> 00:02:23,250 sú naozaj len pole znakov. 47 00:02:23,250 --> 00:02:25,230 Nie je to vstavaný dátový typ. 48 00:02:25,230 --> 00:02:28,220 Alebo snáď ešte podstatnejšie, niečo, čo sme nemali ani pokryť v C, 49 00:02:28,220 --> 00:02:30,360 čo keď musíte urobiť, Niektoré počítačové siete? 50 00:02:30,360 --> 00:02:30,860 Dobre? 51 00:02:30,860 --> 00:02:34,920 >> C má schopnosť robiť to, ale je to tak tajomný a tak ťažké skutočne urobiť. 52 00:02:34,920 --> 00:02:37,580 Nebolo by pekné, keby Jazyk mal vstavaný a jednoduchý spôsob, 53 00:02:37,580 --> 00:02:38,910 implementovať sietí? 54 00:02:38,910 --> 00:02:43,420 A PHP je jazyk, ktorý robí to, alebo uľahčuje to, že trochu viac. 55 00:02:43,420 --> 00:02:47,740 Ako som už povedal, PHP je veľmi silne inšpirovaný C. Syntax je veľmi podobná. 56 00:02:47,740 --> 00:02:51,760 A tak to má snáď aby sa Prechod z jedného na druhého 57 00:02:51,760 --> 00:02:54,710 trochu mäkšie ako niektoré ďalšie jazyky môžu byť. 58 00:02:54,710 --> 00:02:58,800 >> Ak chcete začať písať PHP, stačí otvoriť súbor s príponou .php. 59 00:02:58,800 --> 00:03:00,670 Technicky to nie je skutočne potrebné, 60 00:03:00,670 --> 00:03:04,495 ale ak chcete, veci, ako je syntaxe zvýraznenie v IDE, takže tento typ 61 00:03:04,495 --> 00:03:07,620 názvy, alebo názvy premenných, funkcie, viete, kľúčové slová z jazyka 62 00:03:07,620 --> 00:03:10,090 sú zvýraznené v špecifická farba, je zvyčajne 63 00:03:10,090 --> 00:03:14,020 chcú pomenovať svoje súbory s konkrétne príponu súboru. 64 00:03:14,020 --> 00:03:18,430 Takže sme pomenovaný náš súbor s .php rozšírenie, ale potom tiež s PHP, 65 00:03:18,430 --> 00:03:23,310 všetky PHP kód budeme písať v tom, že Súbor musí byť uzavretý v týchto PHP 66 00:03:23,310 --> 00:03:25,190 oddeľovača, ktoré vidíme tu na obrazovke. 67 00:03:25,190 --> 00:03:27,910 Uhol držiak? Php začať. 68 00:03:27,910 --> 00:03:30,860 Potom sme sa napísať všetky naše PHP kód, ktorý chceme medzi nimi. 69 00:03:30,860 --> 00:03:32,260 A potom ? 70 00:03:32,260 --> 00:03:34,710 uholník uzavrieť. 71 00:03:34,710 --> 00:03:37,170 >> Ak nebudeme to robiť, potom čo sa bude diať? 72 00:03:37,170 --> 00:03:38,170 Nebude to k havárii. 73 00:03:38,170 --> 00:03:39,410 To nebude Naozaj zničiť náš program. 74 00:03:39,410 --> 00:03:41,440 Ale je to nebude mať dopadu, ktorý chceme. 75 00:03:41,440 --> 00:03:44,540 Čo sa stane, naozaj, je že keď sa snažíme a spustiť tento program, 76 00:03:44,540 --> 00:03:50,330 všetko, čo nie je medzi týmito oddeľovača sa bude vytlačený doslovne. 77 00:03:50,330 --> 00:03:52,210 To nebude v skutočnosti spustiť kód, 78 00:03:52,210 --> 00:03:56,010 to bude len vytlačiť doslovne. 79 00:03:56,010 --> 00:03:57,320 >> A prečo je tomu tak? 80 00:03:57,320 --> 00:04:00,416 Takže C je to, čo je známe ako kompilované jazyk. 81 00:04:00,416 --> 00:04:03,040 Vy ste pravdepodobne oboznámení s krok tvorby programy, 82 00:04:03,040 --> 00:04:07,820 sústruženie .c súborov a .h súbory do jedného spustiteľného súboru s make, 83 00:04:07,820 --> 00:04:11,130 najmä s využitím Rinčanie ako náš kompilátor. 84 00:04:11,130 --> 00:04:13,030 PHP, aj keď, nie majú tento ekvivalent. 85 00:04:13,030 --> 00:04:15,600 PHP je to, čo sa nazýva interpretovaný jazyk. 86 00:04:15,600 --> 00:04:16,760 A čo to znamená? 87 00:04:16,760 --> 00:04:20,680 >> No, to znamená, že nebudeme musieť previesť náš zdrojový kód núl a jednotiek 88 00:04:20,680 --> 00:04:21,470 vopred. 89 00:04:21,470 --> 00:04:23,900 Skôr, je tu program, ktorý je tiež nazývaný 90 00:04:23,900 --> 00:04:29,771 PHP, že chápe, PHP a môže nejako robiť to v reálnom čase. 91 00:04:29,771 --> 00:04:32,520 To naozaj nie je úplne presné, ale je to celkom dobrá analógia 92 00:04:32,520 --> 00:04:33,760 o tom, čo sa deje. 93 00:04:33,760 --> 00:04:37,230 Je to tlmočenie tých, nuly a tie v reálnom čase. 94 00:04:37,230 --> 00:04:40,160 A tak, ak to nevie ako spracovať niečo, 95 00:04:40,160 --> 00:04:42,800 ak nevie, ako sa Proces PHP, budete pravdepodobne 96 00:04:42,800 --> 00:04:44,680 chcel dať tento text tam, že jo? 97 00:04:44,680 --> 00:04:48,960 >> Pravdepodobne ste chcel dať kód tam, aj keď to nie je medzi PHP-- 98 00:04:48,960 --> 00:04:50,035 PHP oddeľovača. 99 00:04:50,035 --> 00:04:51,910 Ale-- takže to nebude ju zmazať pre vás, 100 00:04:51,910 --> 00:04:53,576 to len tak v podstate zlikvidujte ho. 101 00:04:53,576 --> 00:04:55,550 Takže to bude tlačiť to sa na obrazovku. 102 00:04:55,550 --> 00:04:57,150 >> To vyzerá, že je to zlý vec, ale v skutočnosti je to 103 00:04:57,150 --> 00:04:58,220 Bude to naozaj dobrá vec, ako sme to 104 00:04:58,220 --> 00:05:00,390 vidieť, keď hovoríme o PHP vývoj webu, 105 00:05:00,390 --> 00:05:04,010 pretože to znamená, že môžeme premiešať PHP a HTML. 106 00:05:04,010 --> 00:05:06,640 Môžeme ich použiť spoločne vytvoriť dynamickejší webové stránky. 107 00:05:06,640 --> 00:05:10,650 Ale o tom viac v video na vývoj PHP webových aplikácií. 108 00:05:10,650 --> 00:05:12,021 >> Takže to, čo je syntax PHP? 109 00:05:12,021 --> 00:05:13,520 To je to, čo toto video je všetko okolo. 110 00:05:13,520 --> 00:05:14,850 Poďme si o tom pohovoriť. 111 00:05:14,850 --> 00:05:16,490 >> Takže začať, premenné. 112 00:05:16,490 --> 00:05:18,030 PHP premenné existujú. 113 00:05:18,030 --> 00:05:20,067 Tam sú len dva veľké odlišnosti od C. 114 00:05:20,067 --> 00:05:21,900 Prvý z nich je, že je tu č Špecifikátor typu. 115 00:05:21,900 --> 00:05:24,245 Nemusíme hovoriť int, char, float, všetky tie veci. 116 00:05:24,245 --> 00:05:25,620 Nemáme na to, že už nie. 117 00:05:25,620 --> 00:05:26,810 PHP je moderný jazyk. 118 00:05:26,810 --> 00:05:28,910 To môže prísť na to, čo ste sa snaží robiť, alebo aby najlepší 119 00:05:28,910 --> 00:05:30,451 hádať, ako na to, čo sa snažíte urobiť. 120 00:05:30,451 --> 00:05:31,700 Tak to je celkom pekné. 121 00:05:31,700 --> 00:05:35,330 >> Druhá vec je, že všetky premenné mená majú začať s znak dolára. 122 00:05:35,330 --> 00:05:36,940 Je to proste niečo, čo sa zvyknúť. 123 00:05:36,940 --> 00:05:39,496 Je to trochu divné, pretože je to tak, že PHP môže pochopiť 124 00:05:39,496 --> 00:05:40,870 čo je premenné a čo nie. 125 00:05:40,870 --> 00:05:43,340 Takže každý názov premennej začína s znak dolára. 126 00:05:43,340 --> 00:05:46,884 Takže v C by sme mohli povedať niečo takto, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Nemáme na to, že už v PHP. 128 00:05:48,550 --> 00:05:52,540 Môžeme len povedať, $ x = 54. 129 00:05:52,540 --> 00:05:55,920 A mohli by sme povedať, napríklad, v C, keby sme libra-zahŕňal CS50 .h 130 00:05:55,920 --> 00:06:00,314 hlavičkový súbor, mohli by sme povedať, string výraz = "Toto je CS50." 131 00:06:00,314 --> 00:06:01,980 Nemáme na to, že v PHP, hoci. 132 00:06:01,980 --> 00:06:04,865 Môžeme len povedať $ frázu = "Toto je CS50." 133 00:06:04,865 --> 00:06:08,760 A v skutočnosti, reťazec je teraz vstavaný dátový typ v PHP, 134 00:06:08,760 --> 00:06:10,950 alebo skôr PHP rozumie čo je reťazec. 135 00:06:10,950 --> 00:06:15,612 Je to oddelene od poľa znakov, ako je to v C. 136 00:06:15,612 --> 00:06:17,570 Všetky vaše obľúbené podmienené príkazy z C 137 00:06:17,570 --> 00:06:19,520 sú stále k dispozícii pre vás na použitie. 138 00:06:19,520 --> 00:06:21,140 Takže tam žiadne veľké prechod. 139 00:06:21,140 --> 00:06:23,400 Môžeme say-- môžeme mať if, ako je tento. 140 00:06:23,400 --> 00:06:28,210 ak $ y 43, alebo $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Tak to je celkom jednoduché. 142 00:06:29,690 --> 00:06:31,980 Môžeme mať, ak aj inde. 143 00:06:31,980 --> 00:06:34,210 Môžeme mať, ak a else if. 144 00:06:34,210 --> 00:06:36,430 >> A všimnite si niečo tu celkom pekné, a to 145 00:06:36,430 --> 00:06:39,620 je niečo jeden z tých Výhody PHP oproti C, oznámenie 146 00:06:39,620 --> 00:06:41,510 akú funkciu nie sme tu používate? 147 00:06:41,510 --> 00:06:47,737 Používame == porovnať premenná, $ name, na reťazec. 148 00:06:47,737 --> 00:06:49,070 Nemohli sme to urobiť v C, nie? 149 00:06:49,070 --> 00:06:53,200 Museli sme použiť funkciu nazvanú StrComp alebo StrEndComp alebo akékoľvek 150 00:06:53,200 --> 00:06:54,840 z jej pridružených bratranci. 151 00:06:54,840 --> 00:06:56,980 >> A tak už vidíme tieto výhody. 152 00:06:56,980 --> 00:07:00,930 Nemusíme robiť niečo ako hlúpe alebo možno unintuitive 153 00:07:00,930 --> 00:07:03,540 ako volanie funkcie nazýva StrComp ak chcem len vyskúšať 154 00:07:03,540 --> 00:07:05,237 či hodnota sa rovná reťazec. 155 00:07:05,237 --> 00:07:07,820 Som mohol použiť len rovná rovná, že by som mohol robiť niečo iné. 156 00:07:07,820 --> 00:07:09,560 Takže tam to výhoda. 157 00:07:09,560 --> 00:07:13,350 >> Niekedy, mimochodom, môžete pozri else if ako jedno slovo, ElseIf. 158 00:07:13,350 --> 00:07:14,910 A to je v poriadku, v PHP rovnako. 159 00:07:14,910 --> 00:07:17,020 Takže niekedy môžete vidieť, že. 160 00:07:17,020 --> 00:07:17,790 Nie je to preklep. 161 00:07:17,790 --> 00:07:21,830 PHP vlastne chápe ElseIf. 162 00:07:21,830 --> 00:07:23,980 Neviem, prečo sa rozhodla implementovať to, 163 00:07:23,980 --> 00:07:28,220 ale ako sme videli mnohokrát v celej našej videa tak ďaleko, 164 00:07:28,220 --> 00:07:30,460 máme programátori to páči, ak môžeme robiť veci rýchlo, 165 00:07:30,460 --> 00:07:33,660 tak, ako sa zbaviť tohto priestoru je zrejme veľká výhoda. 166 00:07:33,660 --> 00:07:34,800 >> Tak to je v prípade, a ElseIf. 167 00:07:34,800 --> 00:07:37,540 Máme tiež ternárnu operátor, Pripomeňme, otáznik hrubého čreva, 168 00:07:37,540 --> 00:07:43,262 za naozaj krátku formu, ak iný alebo podmienené vetvenia. 169 00:07:43,262 --> 00:07:45,470 A zdá sa, že v tomto, čo sa snažíme urobiť tu 170 00:07:45,470 --> 00:07:49,720 je priradiť premenné $ List jeden pravdivý alebo nepravdivý, 171 00:07:49,720 --> 00:07:54,110 V závislosti na tom, či $ var je abecedný znak. 172 00:07:54,110 --> 00:07:57,320 Tak to je celkom podobný IsAlpha že sme oboznámení s od C. 173 00:07:57,320 --> 00:07:59,010 To je niečo ako ekvivalent v PHP. 174 00:07:59,010 --> 00:08:01,550 Funkcia je zrejme volal ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 ale to je to, ako to robíme v PHP. 176 00:08:03,450 --> 00:08:08,560 Tak toto všetko bude je, ak je $ Var je list, $ list je pravda. 177 00:08:08,560 --> 00:08:13,820 Ak je $ var nie je list, $ List je false. 178 00:08:13,820 --> 00:08:15,820 >> Máme tiež vyhlásenie prepínača stále. 179 00:08:15,820 --> 00:08:17,870 Pripomíname, tie, ktoré z C i. 180 00:08:17,870 --> 00:08:22,480 Na samom vrchole sa, že je to, ako to robíme niečo ako get int alebo získať reťazec. 181 00:08:22,480 --> 00:08:23,845 PHP tak, že má postavená v roku. 182 00:08:23,845 --> 00:08:25,470 Nepotrebujeme knižnicu CS50 ešte. 183 00:08:25,470 --> 00:08:27,237 Môžeme stačí použiť readline funkciu. 184 00:08:27,237 --> 00:08:29,820 Čo to urobí, je pre tlač out správu: "Tvoj stať, 185 00:08:29,820 --> 00:08:33,820 prosím, "a potom bliká riadku čakanie užívateľa na vstup 186 00:08:33,820 --> 00:08:34,739 Niektoré informácie. 187 00:08:34,739 --> 00:08:36,530 Teraz si všimnúť, čo iného môžeme urobiť s vypínačom. 188 00:08:36,530 --> 00:08:39,105 Ak ste použil predtým, Možno si spomeniete, že spínač 189 00:08:39,105 --> 00:08:44,960 je obmedzená do značnej miery na celé čísla a postavy, ale teraz môžeme použiť reťazca. 190 00:08:44,960 --> 00:08:50,190 A v skutočnosti, príkaz switch v PHP je trochu flexibilnejší 191 00:08:50,190 --> 00:08:54,880 ako jeho bratranec z C. 192 00:08:54,880 --> 00:08:55,380 Slučiek. 193 00:08:55,380 --> 00:08:58,130 Rovnako ako podmienkové, všetci vaše staré obľúbené sú tam stále. 194 00:08:58,130 --> 00:09:00,740 Máme zatiaľ čo slučky, ktoré počítajú od 1 do 100 v tomto prípade. 195 00:09:00,740 --> 00:09:03,940 While sme robiť Počíta sa od 1 do 100, 196 00:09:03,940 --> 00:09:06,200 a máme pre slučky Počíta sa od 1 do 100. 197 00:09:06,200 --> 00:09:07,220 Takže tam žiadny veľký skok. 198 00:09:07,220 --> 00:09:09,360 Syntax je celkom oveľa presne rovnaký, 199 00:09:09,360 --> 00:09:11,760 s výnimkou teraz sme pomocou znak dolára variabilný miesto 200 00:09:11,760 --> 00:09:17,260 deklarovanie premenných celé číslo, alebo niečo také pre naše pulty. 201 00:09:17,260 --> 00:09:20,090 >> Tu je miesto, kde sa veci dostať oveľa lepší ako C, hoci. 202 00:09:20,090 --> 00:09:21,020 Poľa. 203 00:09:21,020 --> 00:09:23,020 Takže Spomínam si, keď sme boli hovorí o C, v poradí 204 00:09:23,020 --> 00:09:25,560 pre nás rast a zmenšiť súbory informácií, 205 00:09:25,560 --> 00:09:28,310 sme potrebovali vyriešiť zlyhanie k tejto myšlienke prepojeného zoznamu, 206 00:09:28,310 --> 00:09:30,780 pretože C polia boli stanovené vo veľkosti. 207 00:09:30,780 --> 00:09:31,800 Nemohli sme zmenšiť ich. 208 00:09:31,800 --> 00:09:32,930 Nemohli sme pestovať ich. 209 00:09:32,930 --> 00:09:36,074 Museli sme prerozdeliť pamäte a robiť všetku túto šialenstvo 210 00:09:36,074 --> 00:09:38,490 alebo použite prepojené zoznamy, ktoré zaberajú dosť viac priestoru. 211 00:09:38,490 --> 00:09:41,590 Ale v PHP, pole sú nie je stanovená vo veľkosti ešte. 212 00:09:41,590 --> 00:09:43,240 Môžu dorásť a môžu zmenšiť. 213 00:09:43,240 --> 00:09:46,660 Takže znovu, týchto 20 rokov, ktorá existovala medzi prvom vydaní C 214 00:09:46,660 --> 00:09:49,440 a prvé vydanie PHP, Rozhodli sme sa, že viete, 215 00:09:49,440 --> 00:09:51,670 to by bolo naozaj skvelé ak by sme mohli urobiť. 216 00:09:51,670 --> 00:09:54,100 A tak sme realizovali to. 217 00:09:54,100 --> 00:09:58,040 >> Takže PHP polia nie sú stanovené veľkosť, a preto, že PHP nie je naozaj 218 00:09:58,040 --> 00:10:03,090 majú programátor predné VGA pojmy typov, 219 00:10:03,090 --> 00:10:05,110 môžeme miešať dátové typy v našich poliach, taky. 220 00:10:05,110 --> 00:10:08,100 Takže nemáme ani musieť použiť všetky celé čísla alebo všetky plávajúce body, 221 00:10:08,100 --> 00:10:12,826 môžeme mať mix všetkého rôzne druhy v jednom poli. 222 00:10:12,826 --> 00:10:14,700 Deklarácia poľa je celkom jednoduché. 223 00:10:14,700 --> 00:10:16,116 Je to rovnako ako všetky ostatné premenné. 224 00:10:16,116 --> 00:10:20,020 $ Nums = array (1, 2, 3, 4), pole je funkciou 225 00:10:20,020 --> 00:10:22,760 , Ktorý je vstavaný do PHP, ktorý vytvorí pole pre vás. 226 00:10:22,760 --> 00:10:28,315 To vytvorí pole štyroch hodnôt, Čísla v tomto prípade, volal $ nums. 227 00:10:28,315 --> 00:10:29,940 A je tu viac ako jeden spôsob, ako to urobiť. 228 00:10:29,940 --> 00:10:32,420 A ideme vidieť veľa v PHP. 229 00:10:32,420 --> 00:10:36,380 PHP bol vyvinutý mnoho rôznych ľudí a rastie a rastie a rastie. 230 00:10:36,380 --> 00:10:40,050 Tam je zvyčajne nie je len dva alebo tri spôsoby, ako niečo urobiť v PHP, 231 00:10:40,050 --> 00:10:42,170 tam je zvyčajne ako 10 alebo 20. 232 00:10:42,170 --> 00:10:45,300 Tu je len ďalší obyčajný spôsob, ako deklarovať pole. 233 00:10:45,300 --> 00:10:48,310 $ Nums = štvorcových bracket 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Tak toto je trochu podobný uhla C je br-- zloženú zátvorkou notáciu, skôr. $ - 235 00:10:53,170 --> 00:10:58,525 alebo že by bolo int nums námestie držiaky rovná zložená zátvorka 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 V PHP je to $ nums = námestí držiaky 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Oba tieto príklady, ale tu mi dať s poľom štyroch v tomto prípade celých čísel. 238 00:11:08,920 --> 00:11:10,920 >> Čo keď chcem niečo pripináčika na teraz? 239 00:11:10,920 --> 00:11:14,760 No môžem len povedať, $ nums 4, ktorý Znova, sme stále počítať od 0 tu 240 00:11:14,760 --> 00:11:17,800 v PHP, by piaty prvok poľa. 241 00:11:17,800 --> 00:11:18,990 Môžem len povedať, že. 242 00:11:18,990 --> 00:11:22,860 Nebudem trpieť SEG chyba, pretože moje pole je len 243 00:11:22,860 --> 00:11:24,337 porastie ubytovať to. 244 00:11:24,337 --> 00:11:25,420 To je celkom pekné, nie? 245 00:11:25,420 --> 00:11:28,400 A v skutočnosti, nemám ani potreba určiť, kde chcem, aby to. 246 00:11:28,400 --> 00:11:31,220 Môžem len povedať to a len pripináčika to priamo až do konca, 247 00:11:31,220 --> 00:11:34,099 alebo som mohol dokonca len hovoria $ nums 20 alebo 1000. 248 00:11:34,099 --> 00:11:35,140 Je to naozaj nezáleží. 249 00:11:35,140 --> 00:11:38,330 Je to stále len bude pripináčika to priamo až do konca. 250 00:11:38,330 --> 00:11:41,490 >> Tak som sa môže rásť, a my sme as-- nebude pokryť tu, 251 00:11:41,490 --> 00:11:45,360 ale môžem spájať alebo pás Prvky z poľa, ako, 252 00:11:45,360 --> 00:11:50,064 a pole bude zmenšovať ubytovať že teraz chýba alebo je prázdny priestor. 253 00:11:50,064 --> 00:11:52,230 Je tu ešte jeden spôsob, ako sa križovať niečo, čo sa na pole, 254 00:11:52,230 --> 00:11:54,330 čo je funkcia nazvaná array_push. 255 00:11:54,330 --> 00:11:57,860 Takže znovu, práve táto myšlienka, že sú schopný robiť veci mnohými rôznymi spôsobmi. 256 00:11:57,860 --> 00:12:01,950 Takže sme videli tri rôzne spôsoby, ako teraz križovať ďalší prvok na maticu. 257 00:12:01,950 --> 00:12:06,900 Takže to pridáva ďalší prvok na konci $ nums poľa. 258 00:12:06,900 --> 00:12:08,340 A môžeme miešať naše dátové typy. 259 00:12:08,340 --> 00:12:13,110 Takže som mohol mať niekoľko nie 1, 2, 3, 4, ale 1, true, 3, 4, 260 00:12:13,110 --> 00:12:16,420 kde pravda je logická, a potom keď chcem pridajú iný prvok 261 00:12:16,420 --> 00:12:20,860 k tomuto poli, snáď reťazec, reťazec "päť," ja som mohol robiť, že. 262 00:12:20,860 --> 00:12:26,110 A teraz môj array by byť 1, true, 3, 4, päť. 263 00:12:26,110 --> 00:12:28,640 Slovo päť, nie celé číslo 5. 264 00:12:28,640 --> 00:12:31,270 Takže veľká flexibilita tam. 265 00:12:31,270 --> 00:12:33,290 >> Flexibilita dostane ešte lepšie, aj keď, 266 00:12:33,290 --> 00:12:37,530 preto, že PHP má podporu pre niečo volal asociatívne pole. 267 00:12:37,530 --> 00:12:40,660 A my sme tak nejako neurčito hovoril o asociatívnych polí v jazyku C 268 00:12:40,660 --> 00:12:44,740 v kontexte stoly mriežky, pretože čo asociatívne polia sú naozaj všetko 269 00:12:44,740 --> 00:12:48,950 asi robia kľúč Hodnota pár mapovanie. 270 00:12:48,950 --> 00:12:53,410 A v tomto prípade, ak keys-- Sme oboznámení s poľami z C, 271 00:12:53,410 --> 00:12:55,440 klávesy sú indexy. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 A hodnoty sú to, čo sme zistili, že pole 0, pole 1, pole 2, a tak ďalej. 274 00:13:03,070 --> 00:13:06,310 Takže sú kľúče indexy, a hodnoty sú 275 00:13:06,310 --> 00:13:10,060 to, čo je v tomto umiestnení poľa, ustanovenými týmto indexom. 276 00:13:10,060 --> 00:13:15,130 >> Ale v PHP, nemusíme to robiť Pojem pole 0, pole 1, pole 2 277 00:13:15,130 --> 00:13:15,830 už nie. 278 00:13:15,830 --> 00:13:21,025 Teraz môžeme použiť aktuálne slová mapovať kľúče k hodnotám. 279 00:13:21,025 --> 00:13:22,650 A tak by som mohol povedať niečo také. 280 00:13:22,650 --> 00:13:26,710 Mohol by som vytvoriť pole pomocou zátvorka syntaxe takto. 281 00:13:26,710 --> 00:13:30,685 $ Pizze = hranatú zátvorku "syr" a potom 282 00:13:30,685 --> 00:13:37,210 Tento druh dvojitou šípkou notáciu, 8.99, "feferónky," šípka 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 a tak ďalej. 284 00:13:37,880 --> 00:13:39,060 A tak to, čo sa tu deje? 285 00:13:39,060 --> 00:13:41,040 Čo mám vlastne robiť? 286 00:13:41,040 --> 00:13:43,990 Ja som vytvoriť kľúčové hodnota pár mapovanie. 287 00:13:43,990 --> 00:13:49,060 Takže namiesto toho, hovoril, napríklad, pizze 0, 1 ks, pizze 2, 288 00:13:49,060 --> 00:13:52,350 Teraz môžem povedať pizze syr, pizze pepperoni, 289 00:13:52,350 --> 00:13:55,120 a odkazujú na hodnoty sú s nimi spojené. 290 00:13:55,120 --> 00:13:56,970 >> Tak tu sú naše kľúče zelene. 291 00:13:56,970 --> 00:13:59,870 Syr, pepperoni, zeleniny, byvol kurča. 292 00:13:59,870 --> 00:14:04,200 Tu je šípka, ktorá robí Tento kľúč mapovanie hodnotu dvojice. 293 00:14:04,200 --> 00:14:07,420 A potom tu sú hodnoty na tomto mieste poľa. 294 00:14:07,420 --> 00:14:10,330 Takže je to ako povedať pole 0 sa rovná 8,99. 295 00:14:10,330 --> 00:14:11,720 Kľúčom k úspechu je 0. 296 00:14:11,720 --> 00:14:13,600 Hodnota je 8,99. 297 00:14:13,600 --> 00:14:19,370 Teraz môžem povedať syr poľa, alebo v tomto prípad pizze syr, syr je kľúč, 298 00:14:19,370 --> 00:14:23,340 a to, čo nájdem v pizze syr je 8.99. 299 00:14:23,340 --> 00:14:25,540 To je hodnota, ktorá nájdem tam. 300 00:14:25,540 --> 00:14:28,124 >> Takže môžem povedať veci páči. $ Pizza syr = 7,99. 301 00:14:28,124 --> 00:14:29,040 Povedzme, že som s predajom. 302 00:14:29,040 --> 00:14:31,750 Chcem dis-- chcem k poklesu cena syrové pizze. 303 00:14:31,750 --> 00:14:35,620 Alebo môžem použiť zeleninu pizza ako súčasť stavu, 304 00:14:35,620 --> 00:14:39,990 alebo môžem pridať nový element k môjmu pole, rovnako ako som mohol robiť skôr. 305 00:14:39,990 --> 00:14:44,680 Môžem pridať nový element na to asociatívne pole s kľúčom "slaniny" 306 00:14:44,680 --> 00:14:49,250 a hodnota 13,49. 307 00:14:49,250 --> 00:14:53,820 >> Ale tento druh predstavuje problém, ak si myslíte, že o tom na chvíľu. 308 00:14:53,820 --> 00:14:55,721 Ako by sme iteráciu tomto poli? 309 00:14:55,721 --> 00:14:56,220 Je to tak? 310 00:14:56,220 --> 00:14:59,820 V C, my by sme len mať pre slučku, typicky, že 311 00:14:59,820 --> 00:15:03,650 pobeží od 0 do Veľkosť poľa mínus 1. 312 00:15:03,650 --> 00:15:08,060 Pole má n prvky na sa platné indexy sú 0 až n mínus 1. 313 00:15:08,060 --> 00:15:11,530 Takže by sme mohli použiť pre slučku do krokovať každý jednotlivý prvok. 314 00:15:11,530 --> 00:15:13,530 >> Ale to nie je naozaj tento prípad už, že jo? 315 00:15:13,530 --> 00:15:17,360 Tak kde máme pár hodnoty kľúča Mapovanie kde kľúče sú slová, 316 00:15:17,360 --> 00:15:19,970 ako sme sa iterácii cez všetky slová? 317 00:15:19,970 --> 00:15:22,420 No, našťastie, PHP má spôsob, ako sa vysporiadať s tým taky, 318 00:15:22,420 --> 00:15:24,580 a tak budeme skočiť späť do slučky na sekundu 319 00:15:24,580 --> 00:15:30,780 zaviesť štvrtú druh slučky, ktoré existuje v PHP s názvom slučky foreach. 320 00:15:30,780 --> 00:15:34,430 A to, čo robí, je slučka foreach je to v podstate rovnaký nápad. 321 00:15:34,430 --> 00:15:36,060 Môžete ho použiť pre akýkoľvek druh poľa. 322 00:15:36,060 --> 00:15:38,100 Ale je to v podstate Rovnaká myšlienka ako pre slučka, 323 00:15:38,100 --> 00:15:40,750 s výnimkou toho, použitie indexy, stačí 324 00:15:40,750 --> 00:15:45,830 majú taký divný syntax kde budete volať každý element 325 00:15:45,830 --> 00:15:47,550 názov pre účely tejto slučky. 326 00:15:47,550 --> 00:15:49,258 >> Takže v tomto prípade, foreach ($ pole as $ kľúča). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 V podstate, ako tou poznámkou poznámky, vnútri tejto slučky foreach, 329 00:15:56,450 --> 00:16:00,466 to bude prejsť každý prvok $ pole, čo je zvyčajne 330 00:16:00,466 --> 00:16:03,340 Bude asociatívne pole, ale môže byť naozaj akýkoľvek druh poľa 331 00:16:03,340 --> 00:16:05,419 že chcete v PHP. 332 00:16:05,419 --> 00:16:07,210 A zakaždým, že v cykle for by ste mohli 333 00:16:07,210 --> 00:16:13,780 povedal, $ pole hranaté zátvorky $ I, môžete len povedať $ kľúč. 334 00:16:13,780 --> 00:16:22,340 Takže $ key stane alias pre každý Index PHP asociatívne pole, 335 00:16:22,340 --> 00:16:23,710 a tak ho môžete použiť takhle. 336 00:16:23,710 --> 00:16:25,897 >> Tak napríklad, máme Teraz dostali náš pizze poľa. 337 00:16:25,897 --> 00:16:27,730 Ja som trochu zastrčil do tam rohu 338 00:16:27,730 --> 00:16:31,080 takže ju môžeme použiť k tomu rýchly príklad. 339 00:16:31,080 --> 00:16:36,420 Keď poviem foreach ($ pizze as $ Pizza), no, čo sa deje? 340 00:16:36,420 --> 00:16:42,400 No, ja idem iterovat každý jednotlivý prvok poľa $ pizze, 341 00:16:42,400 --> 00:16:46,670 a pritom budem volať každý prvok, keď som vo vnútri 342 00:16:46,670 --> 00:16:49,400 tela, ktoré pre slučky, $ pizzu. 343 00:16:49,400 --> 00:16:52,440 >> Takže je to niečo ako stand-in, pripomínajú, že $ pizza 344 00:16:52,440 --> 00:16:59,140 je stand-in pre porekadlo $ Pizze hranaté zátvorky $ I 345 00:16:59,140 --> 00:17:03,370 Ak by sme použili pre slučky, kde sme môže ísť od $ i = 0 až, v tomto prípade, 346 00:17:03,370 --> 00:17:06,089 $ I = 3. 347 00:17:06,089 --> 00:17:09,780 Ak by sme nemali kľúče a hodnoty, tu, by to bolo element 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 a my by sme použiť pre sláčiky ísť $ 0, $ pizze pizza 1, $ 2, pizze 349 00:17:16,390 --> 00:17:17,750 $ Pizze 3. 350 00:17:17,750 --> 00:17:23,130 Takže teraz len $ pizza strieda pre tento individuálny kľúč. 351 00:17:23,130 --> 00:17:25,630 >> Takže to, čo sa to bude tlačiť? 352 00:17:25,630 --> 00:17:29,030 Ja vytlačiť $ pizzu. 353 00:17:29,030 --> 00:17:35,270 Čo mám nájsť at-- keď som vytlačiť $ pizze, $ i? 354 00:17:35,270 --> 00:17:35,770 Je to tak? 355 00:17:35,770 --> 00:17:38,680 Či mám vytlačiť i-tá prvok pizze, 356 00:17:38,680 --> 00:17:40,070 čo budem tlačiť? 357 00:17:40,070 --> 00:17:42,580 Idem pre vytlačenie Hodnoty na tomto mieste, že jo? 358 00:17:42,580 --> 00:17:45,370 Rovnako ako keď sme robili to v kontexte C, 359 00:17:45,370 --> 00:17:49,786 my bežne nepoužívajú našej iterátory variabilné, int i = 0, aj je menšia ako 3, 360 00:17:49,786 --> 00:17:52,900 i ++, vytlačiť 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Sme vytlačenie pole 0, pole 1, pole 2, 3 polia. 362 00:17:57,500 --> 00:17:59,580 A tak to, čo to vypíše je to. 363 00:17:59,580 --> 00:18:01,150 Je to zoznam cien. 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 >> Teraz krátka poznámka tu. 366 00:18:06,900 --> 00:18:10,900 Slučky foreach nemusí nutne vytlačiť veci do poriadku. 367 00:18:10,900 --> 00:18:12,770 To nie je zaručená. 368 00:18:12,770 --> 00:18:13,550 Je to zvyčajne robí. 369 00:18:13,550 --> 00:18:17,667 Je to zvyčajne na základe objednávky v ktoré prvky sú pridané do poľa, 370 00:18:17,667 --> 00:18:18,750 tak len to mať na pamäti. 371 00:18:18,750 --> 00:18:20,830 To nemusí byť v poriadku. 372 00:18:20,830 --> 00:18:23,930 Ale foreach slučky bude opakovať po každej jednotlivé súčasti 373 00:18:23,930 --> 00:18:25,060 matice sa jedná. 374 00:18:25,060 --> 00:18:27,980 V tomto prípade sa opäť, že pole je $ pizze. 375 00:18:27,980 --> 00:18:32,920 >> Môžem zmeniť syntax, aj keď, ak Chcem ako kľúč a hodnotu. 376 00:18:32,920 --> 00:18:37,179 Namiesto toho, hovorí $ pizze as $ pizze, môžem povedať toto. 377 00:18:37,179 --> 00:18:39,470 A keď sa pozriete na to, čo som zvýrazní zelene tu, 378 00:18:39,470 --> 00:18:42,130 to vyzerá ako kľúčový mapovanie hodnota páru. 379 00:18:42,130 --> 00:18:45,980 A tak ak vás--, aj keď nie ste úplne istý, čo to bude robiť, 380 00:18:45,980 --> 00:18:49,300 asi tušíte že $ poleva sa deje 381 00:18:49,300 --> 00:18:53,800 byť kľúčovým v tomto prípade, a $ Cena bude hodnota. 382 00:18:53,800 --> 00:18:59,200 Takže som náhradou teraz každý prvok z $ pizze ako dvojicu kľúč hodnota, 383 00:18:59,200 --> 00:19:03,900 a teraz môže odkazovať ku kľúču a je hodnota, ktorá by v vhod, 384 00:19:03,900 --> 00:19:05,590 napríklad, nasledujúcim spôsobom. 385 00:19:05,590 --> 00:19:10,170 >> "Celá" - to je veľa tlač deje here-- "celku" 386 00:19:10,170 --> 00:19:17,300 poleva "pizza stojí $" cenu, a potom Aj vytlačiť obdobie a spätné lomítko n. 387 00:19:17,300 --> 00:19:23,420 Takže teraz, oznámenia zase mám prístup k kľúč, $ poleva, a hodnotu, $ cena. 388 00:19:23,420 --> 00:19:26,647 Takže môžete hádať, čo to sa chystá vytlačiť? 389 00:19:26,647 --> 00:19:29,480 Je tu veľa tlačových vyhlásení, ale je tu len jedna spätné lomítko n, 390 00:19:29,480 --> 00:19:33,410 tak to bude niečo, čo tlačiť na entire-- na jeden riadok kódu. 391 00:19:33,410 --> 00:19:36,965 >> Môžem Ak odkazovať na kľúč a hodnota, potom teraz, 392 00:19:36,965 --> 00:19:39,090 namiesto toho tak, že v vytlačiť cien, 393 00:19:39,090 --> 00:19:41,330 Môžem vytlačiť niečo také. 394 00:19:41,330 --> 00:19:43,780 "Celý syr pizza stojí $ 8,99." 395 00:19:43,780 --> 00:19:47,150 A teraz som pomocou všetky keys-- syr, feferónky, zeleniny, 396 00:19:47,150 --> 00:19:49,640 byvol chicken-- a hodnoty. 397 00:19:49,640 --> 00:19:53,980 8,99, 9,99, 10,99, 11,99 So to je len iný spôsob, ako 398 00:19:53,980 --> 00:19:57,840 robiť slučky foreach, že namiesto len dávať prístup k hodnotám, 399 00:19:57,840 --> 00:20:02,950 to proste dáva vás-- To vám dáva prístup ku kľúčom a hodnotami. 400 00:20:02,950 --> 00:20:04,411 >> Takže vytlačiť informácie. 401 00:20:04,411 --> 00:20:07,410 Už som to urobil pár rôzne spôsoby, možno ste si všimli. 402 00:20:07,410 --> 00:20:11,080 Tieto dve funkcie máme v prvom rade Videl sú tlač a echo. 403 00:20:11,080 --> 00:20:14,380 A pre skoro všetky zámery a účely, sú presne rovnaké. 404 00:20:14,380 --> 00:20:17,130 They're-- je tu veľmi jemné Rozdiel to ani nestojí 405 00:20:17,130 --> 00:20:21,130 dostať sa do, ale v podstate všade môžete použiť tlač môžete pravdepodobne používať 406 00:20:21,130 --> 00:20:22,370 echo rovnako. 407 00:20:22,370 --> 00:20:23,610 >> A to nie je len dva. 408 00:20:23,610 --> 00:20:26,970 PHP má veľa odlišný spôsoby tlače veci, 409 00:20:26,970 --> 00:20:30,520 a má tiež spôsoby, ako integrovať Premenné do stredu reťazca. 410 00:20:30,520 --> 00:20:32,860 A tak spomínam z C, viď Pamätáš si, čo funkcie 411 00:20:32,860 --> 00:20:37,580 môžeme použiť nahradiť premenné do vecí, chceme vytlačiť? 412 00:20:37,580 --> 00:20:40,160 Pravdepodobne ste použiť fungujú celkom veľa. 413 00:20:40,160 --> 00:20:42,290 printf, že jo? 414 00:20:42,290 --> 00:20:45,290 Takže to je to, čo sme mali predtým vnútri z kontextu nášho foreach slučky. 415 00:20:45,290 --> 00:20:48,000 Mali sme týchto päť samostatné tlačové vyhlásenie, 416 00:20:48,000 --> 00:20:50,330 preto, že bol jediný tak, ako som vlastne nevedel, v tej dobe 417 00:20:50,330 --> 00:20:52,450 ako tlačiť správy. 418 00:20:52,450 --> 00:20:59,560 Nevedel som, ako integrovať Premenná $ poleva mi do PHP kódu. 419 00:20:59,560 --> 00:21:03,700 No, keď som jednoducho vziať divokej hádať, printf, že v skutočnosti by to fungovalo. 420 00:21:03,700 --> 00:21:08,980 printf je funkcia, ktorá môžem použiť V PHP, rovnako ako ja ju použiť v C. 421 00:21:08,980 --> 00:21:11,880 >> A tak niečo také, printf, Znova, sme oboznámení s tým. 422 00:21:11,880 --> 00:21:16,420 Prvá% s nahrádza s hodnotou $ polevou. 423 00:21:16,420 --> 00:21:19,700 Druhý% s nahrádza s hodnotou $ ceny. 424 00:21:19,700 --> 00:21:22,630 A tak som interpellating, čo je len ozdobný spôsob, ako 425 00:21:22,630 --> 00:21:25,400 hovoriť Ja som nalepení premenné do tohto umiestnenia. 426 00:21:25,400 --> 00:21:31,000 Takže som zapojením $ zálievka, kde je red% s je cena $ a kde je modré% s 427 00:21:31,000 --> 00:21:36,060 je, a potom by som dostať správu, "Celý syr pizza stojí $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Nie je to jediný spôsob, ako môžem urobiť to, hoci. 429 00:21:37,750 --> 00:21:39,760 Možno, že by som chcel použiť túto metódu. 430 00:21:39,760 --> 00:21:44,890 To je vlastne to, čo je najčastejšie volal variabilný interpelácie. 431 00:21:44,890 --> 00:21:45,690 Môžem použiť echo. 432 00:21:45,690 --> 00:21:47,737 Mohol by som použiť tlač tiež, ako uvidíme. 433 00:21:47,737 --> 00:21:48,820 Ale čo sa tu deje? 434 00:21:48,820 --> 00:21:51,520 >> Po prvé, musím uniknúť znak dolára. 435 00:21:51,520 --> 00:21:55,140 Vzhľadom k tomu, pamätajte, že keď sme boli vlastne vytlačenie ceny pizze, 436 00:21:55,140 --> 00:21:59,370 V skutočnosti som formátovanie je ako peňažné postavy s znak dolára. 437 00:21:59,370 --> 00:22:05,635 Ale my sme s použitím znaky dolára tiež zastupovať názvy premenných v PHP, 438 00:22:05,635 --> 00:22:08,010 a najmä, keď som použitie tejto metódy na kučeravé 439 00:22:08,010 --> 00:22:10,040 rovnátka variabilný metóda interpelácie, potrebujem 440 00:22:10,040 --> 00:22:13,490 uniknúť môj dolára, takže to nie je myslím, že hovorím o premenné. 441 00:22:13,490 --> 00:22:16,920 Bude to vlastne, doslova vytlačiť znak dolára. 442 00:22:16,920 --> 00:22:19,530 >> Tak nejako to analogize to, čo vidíte na tam na konci. 443 00:22:19,530 --> 00:22:22,832 To nie je v skutočnosti vytlačiť spätné lomítko n, že jo? 444 00:22:22,832 --> 00:22:24,290 To vytlačí znak nového riadku. 445 00:22:24,290 --> 00:22:26,750 To je-- to nebude vytlačiť spätné lomítko znak dolára, 446 00:22:26,750 --> 00:22:30,130 že to bude len vytlačiť Znak dolára znak. 447 00:22:30,130 --> 00:22:30,640 Rovnaký nápad. 448 00:22:30,640 --> 00:22:32,760 Útek sekvencie, čo tieto veci sú nazývané. 449 00:22:32,760 --> 00:22:37,080 >> Ale všimnite si, že ja nerobím nejaký druh% s substitúciou, 450 00:22:37,080 --> 00:22:40,050 Len som doslova zapojíte v týchto premenných. 451 00:22:40,050 --> 00:22:45,110 A tak v tohle-- čo by sa stalo tu je to, že hodnota $ topping-- znovu 452 00:22:45,110 --> 00:22:48,390 len držať s tým, čo sme boli hovorí o tak far-- syre by sa 453 00:22:48,390 --> 00:22:49,720 zapojený tam. 454 00:22:49,720 --> 00:22:54,780 A $ cena by bola, čo je hodnota na pizzu, hranaté zátvorky, syr, 455 00:22:54,780 --> 00:22:56,270 ktorý bol 8,99. 456 00:22:56,270 --> 00:23:01,860 A tak by to tiež vytlačiť "Celý syr pizza stojí $ 8,99." 457 00:23:01,860 --> 00:23:05,160 A ako som povedal, som mohol použiť vytlačiť tu miesto echa, 458 00:23:05,160 --> 00:23:08,040 a funkcia bude skoro presne rovnaký. 459 00:23:08,040 --> 00:23:09,660 To by vytlačiť to isté. 460 00:23:09,660 --> 00:23:12,680 >> Je tu ešte jeden spôsob, ako to urobiť, a to je ďalšia výhoda 461 00:23:12,680 --> 00:23:14,710 PHP prácu s reťazcami. 462 00:23:14,710 --> 00:23:17,130 Môžeme si robiť, zreťazenie. 463 00:23:17,130 --> 00:23:19,660 Mohli by sme to urobiť v C, taky, pomocou funkcie s názvom strčí, 464 00:23:19,660 --> 00:23:21,180 ale zase sme museli volanie samostatné funkcie. 465 00:23:21,180 --> 00:23:22,640 To bol celý tento neporiadok robiť. 466 00:23:22,640 --> 00:23:24,590 Museli sme libru-zahrnúť string.h. 467 00:23:24,590 --> 00:23:25,780 Bola to výroba, nie? 468 00:23:25,780 --> 00:23:30,070 Ale teraz už stačí použiť tento skalárne operátor zřetězit reťazca dohromady. 469 00:23:30,070 --> 00:23:34,910 >> Takže som zreťazenie "celok" a potom bez ohľadu na hodnotu $ zálievky je, 470 00:23:34,910 --> 00:23:38,860 a potom ďalšie string, "náklady pizza $" 471 00:23:38,860 --> 00:23:42,340 a potom, čo zreťazenie hodnota $ ceny je, 472 00:23:42,340 --> 00:23:45,670 a potom v samotnom závere, že som pripínanie na obdobie spätného lomítka n. 473 00:23:45,670 --> 00:23:47,926 A tak to by tiež vytlačiť "celok" - opäť, 474 00:23:47,926 --> 00:23:50,550 Keď už sa bavíme o prvé prvkom tejto pizze array-- 475 00:23:50,550 --> 00:23:54,710 "Celý syr pizza stojí $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Obdobie, spätné lomítko n, opäť s na $ polevou a $ cena substitúcie 477 00:24:01,260 --> 00:24:06,580 za to, čo sme je uvedené v našich foreach slučka ako mapovanie kľúčové hodnoty páru. 478 00:24:06,580 --> 00:24:08,050 >> PHP zvládne funkcie. 479 00:24:08,050 --> 00:24:11,250 Funkcie boli druh neoddeliteľnou C, ako sme videli. 480 00:24:11,250 --> 00:24:14,870 Rovnako ako premenných, my nemusíme určiť návratový typ funkcie, 481 00:24:14,870 --> 00:24:16,350 pretože to naozaj nezáleží. 482 00:24:16,350 --> 00:24:18,660 A nebudeme špecifikovať dátové typy parametrov, 483 00:24:18,660 --> 00:24:21,410 pretože naozaj nemám ohľadu na to, ako sme videli v PHP. 484 00:24:21,410 --> 00:24:24,510 Každá funkcia je predstavený pomocou kľúčového slova function. 485 00:24:24,510 --> 00:24:27,920 To je to, ako sme sa naznačiť, PHP, ktorý to, čo sme hovorili len o funkcie. 486 00:24:27,920 --> 00:24:29,720 >> A my nemusíme vysporiadať s hlavnou vôbec, 487 00:24:29,720 --> 00:24:33,690 pretože tlmočníka, PHP tlmočník, pracuje od zhora nadol, 488 00:24:33,690 --> 00:24:34,190 bez ohľadu na to. 489 00:24:34,190 --> 00:24:35,640 Ak to považuje môžete urobiť volanie funkcie, bude to 490 00:24:35,640 --> 00:24:37,850 ísť nájsť volanie funkcie, aj keď sa jedná neskôr. 491 00:24:37,850 --> 00:24:40,360 Ale bude to čítajú zhora dno, takže sa nie je potrebné zadávať, 492 00:24:40,360 --> 00:24:41,500 Tu je miesto, kde začať. 493 00:24:41,500 --> 00:24:46,700 Môžete začať na riadku 1 z vašich PHP a pracovať odtiaľ. 494 00:24:46,700 --> 00:24:49,690 >> Tak tu je, ako by sme vytvárať funkcia nazvaná hard_square. 495 00:24:49,690 --> 00:24:54,100 Je to vraj trvá jeden parameter, ktorý volám $ x. 496 00:24:54,100 --> 00:24:58,424 Táto funkcia je komplikované len ilustrovať rôzne veci. 497 00:24:58,424 --> 00:24:59,590 Stále máme návratovej hodnoty. 498 00:24:59,590 --> 00:25:00,870 Som pomocou cyklu for sem. 499 00:25:00,870 --> 00:25:04,970 Ale je to v podstate len, čo to činí je púhych $ x $ x krát. 500 00:25:04,970 --> 00:25:10,520 To, čo som vlastne robiť, je jednoduchým pridaním x 0 x krát alebo $ x nula $ x krát. 501 00:25:10,520 --> 00:25:15,850 Ale to je presne to účinne rovnaké ako násobenie $ x krát $ x. 502 00:25:15,850 --> 00:25:18,700 Stále vrátiť hodnotu, v tomto prípade $ výsledku, 503 00:25:18,700 --> 00:25:22,060 a ja som urobil funkciu v PHP. 504 00:25:22,060 --> 00:25:24,160 >> Tu je návod, ako ju môže používať v kontexte. 505 00:25:24,160 --> 00:25:26,020 Takže možno, že som vo vnútri nejakého súboru PHP. 506 00:25:26,020 --> 00:25:29,240 Všimnite si, že tam v modrom Použil som svoje oddeľovača PHP, 507 00:25:29,240 --> 00:25:31,010 uholník otáznik php. 508 00:25:31,010 --> 00:25:35,180 Medzi tými sú splnené všetky PHP, že chcem písať. 509 00:25:35,180 --> 00:25:37,840 Takže som zrejme bude get-- Chystám sa vyzve užívateľa 510 00:25:37,840 --> 00:25:41,550 mi dať číslo, obchod, ktorý premenná, obchod v tejto premennej $ x, 511 00:25:41,550 --> 00:25:43,320 všetko, čo mi dal. 512 00:25:43,320 --> 00:25:48,590 Potom budem echo hard_square tejto hodnoty, 513 00:25:48,590 --> 00:25:50,370 a zrejme bude k obratu na nový riadok 514 00:25:50,370 --> 00:25:53,590 ako aj, a potom o niečo neskôr budem definovať funkciu hard_square tak 515 00:25:53,590 --> 00:25:55,550 že keď urobím zavolať na hard_square, 516 00:25:55,550 --> 00:25:58,160 že vie, o čom hovorím. 517 00:25:58,160 --> 00:26:00,705 >> A teraz, mohol by som tiež urobiť niečo také. 518 00:26:00,705 --> 00:26:02,050 To je trochu odlišný. 519 00:26:02,050 --> 00:26:04,190 Je to presne takmer rovnako ako to, čo sme videli predtým, 520 00:26:04,190 --> 00:26:08,400 s výnimkou toho, ako hovoriť len $ x tam ako parameter pre hard_square, 521 00:26:08,400 --> 00:26:11,730 Hovorím $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Tak to je príklad defenzívne programovania, 523 00:26:14,330 --> 00:26:17,070 stráženie programy proti užívateľovi so zlými úmyslami. 524 00:26:17,070 --> 00:26:20,020 >> To je jeden spôsob, ako urobiť nejaké chyby overenie, či sme naozaj 525 00:26:20,020 --> 00:26:24,670 majú ako možnosť v C. Mohli by sme nikdy zadať predvolenú hodnotu niečoho. 526 00:26:24,670 --> 00:26:27,010 Vždy sme mali skontrolovať či je, napríklad, 527 00:26:27,010 --> 00:26:30,820 ak sme urobili výzvu na getString, to bolo najvhodnejším ak okamžite potom, čo 528 00:26:30,820 --> 00:26:33,300 overil, že, sme overili či reťazci 529 00:26:33,300 --> 00:26:35,504 že užívateľ nám dala nerovná null, 530 00:26:35,504 --> 00:26:37,920 pretože nechceme začať práca s prázdnym reťazcom. 531 00:26:37,920 --> 00:26:39,670 >> Tu, je to spôsob chrániť proti tomu. 532 00:26:39,670 --> 00:26:43,480 Pokiaľ užívateľ nám neposkytuje niečo nejako, čo budeme robiť? 533 00:26:43,480 --> 00:26:46,080 No, proste budeme hovoriť, čo nemali nám poskytujú, 534 00:26:46,080 --> 00:26:47,705 my len tak namiesto toho pripojiť 10. 535 00:26:47,705 --> 00:26:52,030 Takže keď nedali nám hodnotu, stačí použiť 10 v predvolenom nastavení. A tak tu, 536 00:26:52,030 --> 00:26:53,940 Všimnite si, že robím výzva na hard_square, 537 00:26:53,940 --> 00:26:55,980 ale nie je žiadna výzva pre užívateľov, že jo? 538 00:26:55,980 --> 00:26:57,540 Ja som len robiť prázdny volanie. 539 00:26:57,540 --> 00:27:00,860 >> Ale moja funkcia hard_square očakáva parameter. 540 00:27:00,860 --> 00:27:02,222 Čo sa to bude tlačiť? 541 00:27:02,222 --> 00:27:03,680 Bude to vytlačiť 100, nie? 542 00:27:03,680 --> 00:27:05,720 Pretože používateľ nie daj mi nič. 543 00:27:05,720 --> 00:27:08,970 A tak som len tak predpokladať, že 10-- 10 je predvolená hodnota. 544 00:27:08,970 --> 00:27:13,760 A tak by to vytlačiť out 100 na vlastnom riadku. 545 00:27:13,760 --> 00:27:16,390 >> PHP súbory nemajú na byť len jeden súbor. 546 00:27:16,390 --> 00:27:19,480 Môžete kombinovať viac súborov dohromady, rovnako ako je to možné v C. Cesta 547 00:27:19,480 --> 00:27:24,330 sme, že v jazyku C bola typicky robiť #include sa dostať hlavičkové súbory zašiel. 548 00:27:24,330 --> 00:27:26,180 Nechceme urobiť v PHP. 549 00:27:26,180 --> 00:27:29,110 Robíme niečo ako require_once. 550 00:27:29,110 --> 00:27:33,360 A potom je tu celý tento vec, čo je to __dir__? 551 00:27:33,360 --> 00:27:36,510 To je len špeciálne variabilné, alebo špeciálne konštantný, 552 00:27:36,510 --> 00:27:39,030 Naozaj, ktorý určuje, čo váš aktuálny adresár. 553 00:27:39,030 --> 00:27:41,320 A tak to bude vyzerať v aktuálnom adresári 554 00:27:41,320 --> 00:27:44,900 pre súbor s názvom cs50.php v tomto príklade, 555 00:27:44,900 --> 00:27:50,490 a to bude držať tento súbor v hornej časti programu PHP, 556 00:27:50,490 --> 00:27:56,980 za predpokladu, že ste dal require akonáhle riadok v hornej časti súboru PHP. 557 00:27:56,980 --> 00:28:01,474 >> Takže PHP je primárne používaný, ale nie výhradne používa, 558 00:28:01,474 --> 00:28:03,140 ako jazyk pre webové programovanie. 559 00:28:03,140 --> 00:28:05,270 To je naozaj, ako to prišlo byť. 560 00:28:05,270 --> 00:28:06,980 Ale je to full jazyk, ako sme videli. 561 00:28:06,980 --> 00:28:10,105 Videli sme skoro všetky tie veci, že to môže robiť, že sú podobné C, 562 00:28:10,105 --> 00:28:13,290 a to môže urobiť sakra oveľa viac než to. 563 00:28:13,290 --> 00:28:16,950 >> Ale pretože je to plná jazyk a my môže urobiť programovanie z príkazového riadku v ňom. 564 00:28:16,950 --> 00:28:18,630 Môžeme spustiť programy príkazového riadka. 565 00:28:18,630 --> 00:28:22,580 Všetko, čo je potrebné, aby ste spustiť príkaz linka program, ktorý je napísaný v PHP 566 00:28:22,580 --> 00:28:24,260 je to, že budete mať tlmočníka PHP. 567 00:28:24,260 --> 00:28:27,460 Takže je to niečo analogický má kompilátor v systéme 568 00:28:27,460 --> 00:28:31,100 Ak chcete skompilovať C kód premeniť spustiteľné súbory. 569 00:28:31,100 --> 00:28:33,810 Musíte mať tlmočníka PHP ktorá existuje v systéme 570 00:28:33,810 --> 00:28:37,330 takže môžete interpretovať PHP súbory. 571 00:28:37,330 --> 00:28:40,370 >> Za predpokladu, že ste, a zvyčajne tento interpret sa nazýva PHP, 572 00:28:40,370 --> 00:28:44,300 a to je zvyčajne dodávaný s väčšinou sťahovanie alebo inštalácia PHP 573 00:28:44,300 --> 00:28:47,430 že môžete získať on-line, a iste meno tlmočníka PHP 574 00:28:47,430 --> 00:28:49,550 máme v CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Všetko, čo urobiť, je typ php súboru. 576 00:28:51,819 --> 00:28:53,610 A aký je váš program chystá urobiť, je, že je to 577 00:28:53,610 --> 00:28:55,360 sa prejsť tlmočník, je to 578 00:28:55,360 --> 00:28:58,040 bude ignorovať všetko, čo je nie je medzi otázke mark-- 579 00:28:58,040 --> 00:29:03,160 alebo, uholník otáznik php, oddeľovača PHP, a vytlačiť, 580 00:29:03,160 --> 00:29:07,660 a to bude interpretovať a spustiť kód vnútri vašich oddeľovača PHP. 581 00:29:07,660 --> 00:29:12,850 >> Takže poďme pop sa k CS50 IDE a sa pozrieť na pár PHP súbory, 582 00:29:12,850 --> 00:29:19,850 beží niekoľko PHP súbory, v príkazového riadku rozhranie CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Tak tu sme v CS50 IDE, a ja som dovolil 584 00:29:22,100 --> 00:29:25,800 otvoriť súbor s názvom hello1.php. 585 00:29:25,800 --> 00:29:29,920 A zdá sa, že obsah tohto Súbor sú len oddeľovače PHP tam, 586 00:29:29,920 --> 00:29:32,220 a medzi tým, echo ("Hello, World"). 587 00:29:32,220 --> 00:29:34,710 To je celkom jednoduchý PHP programu. 588 00:29:34,710 --> 00:29:37,670 Ja som jednoducho ísť posunúť nadol do môjho okna terminálu tu, 589 00:29:37,670 --> 00:29:44,320 a budem písať php hello1.php, stlačte Enter. 590 00:29:44,320 --> 00:29:44,950 Hello, world. 591 00:29:44,950 --> 00:29:48,110 To je asi to, čo sme boli očakáva, že na to, že jo? 592 00:29:48,110 --> 00:29:51,140 >> Poďme hore a vziať iný pohľad na programe. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Viacmenej to isté, nie je veľa deje tu. 595 00:29:55,090 --> 00:29:57,190 Tentoraz však, budem výzvu Užívateľ dať mi ich mená. 596 00:29:57,190 --> 00:29:59,290 Ja používam túto funkciu readline znova. 597 00:29:59,290 --> 00:30:01,340 $ Name = readline. 598 00:30:01,340 --> 00:30:03,070 To je výzva, "Ako sa voláš?" 599 00:30:03,070 --> 00:30:04,880 >> Zrejme Som tlač to na vlastnom riadku. 600 00:30:04,880 --> 00:30:07,220 A potom, takže línia nižšie to bude výzva 601 00:30:07,220 --> 00:30:08,750 kde užívateľ môže zadať svoje meno. 602 00:30:08,750 --> 00:30:12,030 A potom som pomocou trochu premenná interpelácie tu na linke 3 603 00:30:12,030 --> 00:30:14,780 vytlačiť "ahoj" a čo používateľ zadá. 604 00:30:14,780 --> 00:30:22,040 Tak toto je analogický k tvrdeniu, Dobrý deň, čiarka,% s, keď sme používali printf v C. 605 00:30:22,040 --> 00:30:24,910 >> Takže poďme a interpretovať tento program. 606 00:30:24,910 --> 00:30:27,400 Takže znovu, budem posunúť nadol k môjmu okne terminálu. 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 Ako sa voláš? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Dobrý deň, Doug. 612 00:30:36,526 --> 00:30:39,440 Mám tiež ďalšie súbor s názvom hello3.php. 613 00:30:39,440 --> 00:30:42,850 Chystám sa prečistil displej s Control L, 614 00:30:42,850 --> 00:30:46,210 a budem vykonávať to. 615 00:30:46,210 --> 00:30:47,640 Ako sa voláš? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Dobrý deň, Doug. 618 00:30:49,780 --> 00:30:56,540 Takže správanie je identické hello2.php, ale prečo je to hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> No, tu je ten rozdiel. 620 00:30:58,040 --> 00:31:00,620 V tomto prípade oznámenia že na linke 1 tu, 621 00:31:00,620 --> 00:31:04,270 Mám niečo, čo nie je medzi oddeľovača PHP. 622 00:31:04,270 --> 00:31:07,760 Ja som len tlač out-- alebo I práve zadali, "Ako sa voláš?" 623 00:31:07,760 --> 00:31:12,060 Keď interpret PHP vidia, ho nemá potuchy, ako sa interpretuje ako PHP, 624 00:31:12,060 --> 00:31:15,060 a tak namiesto toho zlyhanie, je to len bude vypľuť. 625 00:31:15,060 --> 00:31:19,010 >> Takže si všimnúť na riadku 3, môj volanie readline, nie je výzva ešte. 626 00:31:19,010 --> 00:31:21,750 Len som vlastne deje, keď to-- interpret PHP vidia, 627 00:31:21,750 --> 00:31:23,400 to bude na vytlačenie "Ako sa voláš?" 628 00:31:23,400 --> 00:31:25,941 Potom sa uvidí, oh, OK, here's-- všetko ostatné bude 629 00:31:25,941 --> 00:31:29,970 interpretované ako PHP, tak že je dôvod, prečo to funguje. 630 00:31:29,970 --> 00:31:34,990 Ja nemusím nutne výzva užívateľ to-- vnútro readline, 631 00:31:34,990 --> 00:31:37,490 Ja si len mať to vonku z oddeľovača PHP 632 00:31:37,490 --> 00:31:41,490 a umožniť tlmočníka len vytlačiť pre mňa. 633 00:31:41,490 --> 00:31:45,364 >> Takže nemáte skutočne mať iba mať jednu sadu oddeľovača PHP 634 00:31:45,364 --> 00:31:46,030 vo vašom programe. 635 00:31:46,030 --> 00:31:49,887 Môžete si skutočne mať niekoľko z nich, otváranie a zatváranie je podľa potreby. 636 00:31:49,887 --> 00:31:51,720 Takže poďme sa pozrieť na pár programov 637 00:31:51,720 --> 00:31:55,070 V CS50 IDE, kde sme ilustrujú túto myšlienku mať 638 00:31:55,070 --> 00:31:58,376 viac sád vymedzenom PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, tak som otvoril súbor tu volal add1.php. 640 00:32:02,010 --> 00:32:03,390 A všimnite si, čo sa tu deje. 641 00:32:03,390 --> 00:32:08,077 Rovnako ako predtým, mám jeden PHP súbor oddeľovača. 642 00:32:08,077 --> 00:32:10,660 Idem pre vytlačenie hlásenia, "Prosím, dajte mi číslo." 643 00:32:10,660 --> 00:32:13,394 Potom budem čítať linku a uložiť ho do premennej $ num1. 644 00:32:13,394 --> 00:32:14,810 Potom som Chystám sa vytlačiť znova. 645 00:32:14,810 --> 00:32:16,310 Daj mi druhé číslo. 646 00:32:16,310 --> 00:32:20,450 Prečítajte si linku od užívateľa, obchod všetko, čo napísal vo v $ num2. 647 00:32:20,450 --> 00:32:23,980 Pridajte ich dohromady a uložiť, aby viesť k premennej nazvanej $ súčet, 648 00:32:23,980 --> 00:32:26,180 a potom vytlačiť "The Súčet týchto dvoch čísel 649 00:32:26,180 --> 00:32:29,254 je, "a potom interpelovať tam premenná $ suma. 650 00:32:29,254 --> 00:32:31,170 Takže poďme stačí spustiť tento cez tlmočníka 651 00:32:31,170 --> 00:32:33,720 potvrdiť, že toto je to, čo očakávame. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Prosím, dajte mi číslo, 3. 654 00:32:38,665 --> 00:32:40,410 Prosím, dajte mi druhé číslo, 4. 655 00:32:40,410 --> 00:32:43,370 Súčet týchto dvoch čísel 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 OK? 658 00:32:45,530 --> 00:32:47,770 Takže nič hrozne fantázie tam. 659 00:32:47,770 --> 00:32:51,080 >> A teraz poďme otvoriť add2.php. 660 00:32:51,080 --> 00:32:54,460 Tu, mám pár PHP oddelený súpravy tam, že jo? 661 00:32:54,460 --> 00:32:59,107 Linky 1, 3-- riadky 1 a 3 nemajú žiadne oddeľovača PHP. 662 00:32:59,107 --> 00:33:00,940 Takže keď tlmočník vidí, že je to len 663 00:33:00,940 --> 00:33:03,220 bude vypľuť presne to, čo som napísal tam. 664 00:33:03,220 --> 00:33:05,011 Tak to je, kde som si robí všetko moja výzvy. 665 00:33:05,011 --> 00:33:11,220 Na tratiach 2 a 4, vidíme veľmi povedomý $? php druh oddeľovača, 666 00:33:11,220 --> 00:33:15,210 takže tieto dva riadky chystá spustiť ako PHP. 667 00:33:15,210 --> 00:33:18,270 A potom na riadku 5, to mám divné tu, nie? 668 00:33:18,270 --> 00:33:20,480 Tento uholník otáznik znamienko rovnosti. 669 00:33:20,480 --> 00:33:22,660 Budem dokonca priblížiť trochu ďalej. 670 00:33:22,660 --> 00:33:29,270 Môžete vidieť, je to, čo chcem hovorí o práve tam, tento $? =. 671 00:33:29,270 --> 00:33:33,420 >> Ukazuje sa, že je to tak bežné, že dôvod, že sme otvoriť súbor PHP 672 00:33:33,420 --> 00:33:36,055 oddeľovača je vytlačiť hodnotu. 673 00:33:36,055 --> 00:33:37,430 A to je všetko, čo sa chystáte urobiť. 674 00:33:37,430 --> 00:33:39,220 Ale je tu aj skratka pre to. 675 00:33:39,220 --> 00:33:46,490 $? = Je skratka pre PHP hovorí, niečo ako $? php echo súčet 676 00:33:46,490 --> 00:33:48,350 z num1 a num2. 677 00:33:48,350 --> 00:33:51,900 Takže je to len ďalší skratka pre to. 678 00:33:51,900 --> 00:33:55,550 >> Takže keď som spustiť tento program, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Budem priblíženie sa trochu. 680 00:33:57,530 --> 00:33:59,000 Prosím, dajte mi číslo, 4. 681 00:33:59,000 --> 00:34:00,350 Prosím, dajte mi druhé číslo. 682 00:34:00,350 --> 00:34:04,650 A pretože som naozaj nestarám o dátové typy v PHP, môžem povedať, 4.8. 683 00:34:04,650 --> 00:34:07,160 Súčet týchto dvoch čísel je 8.8. 684 00:34:07,160 --> 00:34:10,179 Táto funkcia sa chová celkom veľa presne to isté, ako by sme očakávali, 685 00:34:10,179 --> 00:34:10,989 tiež. 686 00:34:10,989 --> 00:34:13,114 A mám ešte jednu otvoril sem volal dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Skúste to znova. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Mám jednu viac tu nazvaný dice1.php, ktorý tiež, pozri, 691 00:34:33,280 --> 00:34:37,440 má tento uhol konzoly otázku označiť znamienko rovnosti notácie tam, 692 00:34:37,440 --> 00:34:40,659 ale všimnite si, že v tomto prípade nie som volanie funkcie rand, ktorý ako vy 693 00:34:40,659 --> 00:34:42,790 dalo očakávať vygeneruje náhodné číslo. 694 00:34:42,790 --> 00:34:46,889 "Valcované si," a bude to vypočítať nejaké náhodné číslo, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Takže to mi dať číslo v rozmedzí od 1 do 6. 697 00:34:49,989 --> 00:34:53,040 >> Pamätajte si, že mod 6 by mi číslo v rozmedzí od 0 do 5, 698 00:34:53,040 --> 00:34:56,630 ale keď som simulovať hodov kockou, čo je to, čo tu robím, 699 00:34:56,630 --> 00:35:00,040 Nechcem tieto kocky ísť z 0 až 5, ja chcem kocky, ktoré idú od 1 do 6. 700 00:35:00,040 --> 00:35:02,800 A tak to je spôsob, ako sa dostať me v rozmedzí od 1 do 6. 701 00:35:02,800 --> 00:35:04,720 Robím to dvakrát. 702 00:35:04,720 --> 00:35:08,630 Tak vraj som valcovanie dve kocky v tomto programe. 703 00:35:08,630 --> 00:35:15,210 >> Tak som si prečistiť obrazovku, a urobím php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Môžete valcované 4 a 2. 705 00:35:16,640 --> 00:35:19,156 A keď som spustiť program znova, privalil 5 a 5. 706 00:35:19,156 --> 00:35:21,780 Takže zakaždým, keď som sa spustiť program, Začínam rôzne čísla, 707 00:35:21,780 --> 00:35:24,280 preto, že zakaždým, keď som robiť áno, je to nový začiatok. 708 00:35:24,280 --> 00:35:27,250 Bude to vytvárať nové sada náhodných čísel pre mňa. 709 00:35:27,250 --> 00:35:29,790 >> Takže ak sme zvyknutí spúšťanie programov z C, 710 00:35:29,790 --> 00:35:32,520 sme zvyknutí písať ./ názov programu, je to tak? 711 00:35:32,520 --> 00:35:35,090 To je, ako sme urobili všetko, z našich programov v C tak ďaleko. 712 00:35:35,090 --> 00:35:37,555 Môžeme to urobiť v PHP, rovnako tým, že pridá niečo, čo nazýva 713 00:35:37,555 --> 00:35:40,026 shebang na vrchol nášho súboru PHP. 714 00:35:40,026 --> 00:35:41,400 Ja viem, je to trochu hlúpe slovo. 715 00:35:41,400 --> 00:35:44,540 Je to skratka pre hash tresku. 716 00:35:44,540 --> 00:35:46,300 To je prvé dva znaky tam. 717 00:35:46,300 --> 00:35:50,030 Pamätajte si, hovoríme výkričník často bang vo vede o počítačoch. 718 00:35:50,030 --> 00:35:51,690 Taktiež by mohlo byť pre ostrý tresku. 719 00:35:51,690 --> 00:35:53,273 Je tu pár spôsobov, ako ju interpretovať. 720 00:35:53,273 --> 00:35:57,320 Ale je to v podstate zvláštny druh velenia, že interpret PHP 721 00:35:57,320 --> 00:36:00,160 chápe ako, oh, chcem môžete spustiť tento program, 722 00:36:00,160 --> 00:36:05,250 čo je zrejme / užívateľ / bin / php, ktorý je vlastne kedy tlmočník PHP 723 00:36:05,250 --> 00:36:08,590 konkrétne žije v našom systéme. 724 00:36:08,590 --> 00:36:12,530 Tak it's-- čo sa stane, je tu tlmočník chápe, oh, 725 00:36:12,530 --> 00:36:17,270 Mám vraj mala používať v tomto programe na spustenie tohto súboru. 726 00:36:17,270 --> 00:36:20,010 A tak to vám umožní preskočiť kroku 727 00:36:20,010 --> 00:36:22,979 aby musel povedať php something.php. 728 00:36:22,979 --> 00:36:25,020 Je tu ešte jedna ďalšia háčik tú, ktorá je, že ak budeme 729 00:36:25,020 --> 00:36:27,320 aby naše programy na fungovať podľa očakávania, my 730 00:36:27,320 --> 00:36:30,220 musíte urobiť niečo, čo nazýva zmena povolenia súboru. 731 00:36:30,220 --> 00:36:33,380 A budeme go-- a budeme hovoriť trochu bit ďalšie zmeny povolenia o súbore 732 00:36:33,380 --> 00:36:37,550 v našej video na MVC, ale postačí hovoria, že to je to, čo musíte urobiť, 733 00:36:37,550 --> 00:36:42,760 tak, aby vaše .php súbory spustiteľný. 734 00:36:42,760 --> 00:36:49,330 Takže poďme sa pozrieť na to, ako náš posledný príklad ako v CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Tak tu v IDE Mám dva súbory v tejto PHP adresár, ktorý nezdá byť 736 00:36:53,910 --> 00:36:55,310 volal .php. 737 00:36:55,310 --> 00:36:58,170 Mám funkcia nazvaná add-- Mám súbor s názvom ADD3 738 00:36:58,170 --> 00:37:00,650 a súbor s názvom dice2. 739 00:37:00,650 --> 00:37:03,680 Takže poďme sa rýchlu vyzerať a otvoriť ADD3. 740 00:37:03,680 --> 00:37:08,300 A ako môžete vidieť, na začiatku môjho súboru Mám shebang, že jo? 741 00:37:08,300 --> 00:37:11,420 Tento hash značka výkričník. 742 00:37:11,420 --> 00:37:15,115 Teraz, budete tiež možno budete Všimnite si, že z nejakého dôvodu, 743 00:37:15,115 --> 00:37:16,990 Nemám žiadnu syntax zvýraznenie už, 744 00:37:16,990 --> 00:37:20,198 a to je to, čo som spomenul predtým, čo bolo, že ak nemám nazvať svoj súbor 745 00:37:20,198 --> 00:37:23,040 .php, nemám výhodu syntax zvýraznenie ešte. 746 00:37:23,040 --> 00:37:26,220 Tento súbor je práve volal ADD3. 747 00:37:26,220 --> 00:37:30,960 Takže môžem spustiť neskôr s ./ ADD3 a nie ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Takže je to stále reason-- v poriadku, je to stále platný PHP, 749 00:37:33,680 --> 00:37:37,000 ale to nie je syntaxe zvýraznené, pretože tento súbor nie je volaná something.php. 750 00:37:37,000 --> 00:37:41,580 To je jediný skutočný rozdiel tu, plus shebang. 751 00:37:41,580 --> 00:37:45,170 Tak uvidíme, čo sa stane, keď Snažím sa spustiť tento program. 752 00:37:45,170 --> 00:37:50,780 ./ ADD3, rovnako ako by som s C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Povolenie ADD3 nepovolený. 754 00:37:53,190 --> 00:37:55,390 To je to, čo budete zistiť, či ste zabudli 755 00:37:55,390 --> 00:37:59,280 použitie príkazu chmod k zmene oprávnenia súboru. 756 00:37:59,280 --> 00:38:03,845 >> Ako sa ukázalo, pravidelné PHP súbory nemožno len byť vykonané. 757 00:38:03,845 --> 00:38:06,970 Tie môžu byť interpretované, ale my sme robí niečo tu trochu iné. 758 00:38:06,970 --> 00:38:07,761 Sme spustením. 759 00:38:07,761 --> 00:38:12,970 A tak musím pridať oprávnenie popravy, chmod a + x do ADD3. 760 00:38:12,970 --> 00:38:15,680 Potom môžem povedať ./ ADD3. 761 00:38:15,680 --> 00:38:16,860 Prosím, dajte mi číslo. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Súčet týchto dvoch čísel je 11. 764 00:38:20,490 --> 00:38:26,530 >> Rovnako tak, som už chmoded dice2, tak som si len zadať ./ dice2, 765 00:38:26,530 --> 00:38:31,260 ste valcované 1 a 1, vy valcované 5 a 4, a tak ďalej. 766 00:38:31,260 --> 00:38:33,680 >> Tak to je celkom veľa Myšlienka syntaxe PHP, že jo? 767 00:38:33,680 --> 00:38:35,221 Je tu veľa prejsť, ja viem. 768 00:38:35,221 --> 00:38:39,160 Ale dúfajme, že ste teraz videli, že PHP nie je naozaj tak odlišné od C 769 00:38:39,160 --> 00:38:43,670 a nám naozaj dáva možnosť vziať veci do zárezu alebo dva. 770 00:38:43,670 --> 00:38:48,230 Nemáme naozaj mať strach moc about-- my naozaj 771 00:38:48,230 --> 00:38:51,605 musieť starať príliš o podrobnosti o low-úrovni sa 772 00:38:51,605 --> 00:38:52,980 musel obávať s C, nie? 773 00:38:52,980 --> 00:38:56,170 Môžeme sa sústrediť na vyššej level veci, ktoré PHP 774 00:38:56,170 --> 00:39:01,090 nám umožňuje robiť a brať za samozrejmé, že to bude fungovať pre nás. 775 00:39:01,090 --> 00:39:04,350 Tak nám to dáva možnosť teraz, prechodu z C do PHP, 776 00:39:04,350 --> 00:39:08,280 aby programy, ktoré sú oveľa viac komplexné a možno oveľa robustnejšie. 777 00:39:08,280 --> 00:39:13,070 >> Takže dúfam, že sa budete baviť prácu s PHP, a ja som Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 To je CS50. 779 00:39:15,050 --> 00:39:17,637