1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Takže máme udělal hodně práce v C, 3 00:00:07,370 --> 00:00:09,536 a C je opravdu v pohodě jazyka, protože vám dává 4 00:00:09,536 --> 00:00:12,840 schopnost se potápět skutečně nízká úroveň do vašich programů. 5 00:00:12,840 --> 00:00:16,810 Dostáváme se dělat věci tak, jak Opravdu minuta as manipulací 6 00:00:16,810 --> 00:00:18,800 Jednotlivé bajtů paměti. 7 00:00:18,800 --> 00:00:21,420 Připomeňme si, že opravdu na ukazatele umožnit nám, že pružnost. 8 00:00:21,420 --> 00:00:25,260 >> Ale vždy je třeba mít že úroveň jemnozrnná detailu 9 00:00:25,260 --> 00:00:26,820 v našich programech? 10 00:00:26,820 --> 00:00:28,210 Pravděpodobně ne, že jo? 11 00:00:28,210 --> 00:00:30,376 A pokud budeme mít kompromis mezi tím, 12 00:00:30,376 --> 00:00:32,911 schopný dělat opravdu, ale opravdu minute věci a opravdu, ale opravdu 13 00:00:32,911 --> 00:00:35,910 velké věci, které nemají myslet o, nemáme realizovat 14 00:00:35,910 --> 00:00:40,290 Tyto opravdu velké myšlenky pokud že jsou již postavena v roce pro nás, 15 00:00:40,290 --> 00:00:43,980 obecně pro budování big programy nebo velké projekty, 16 00:00:43,980 --> 00:00:49,130 budeme pravděpodobně bude chybovat na straně z toho, že další jazykové věci postavena v roce 17 00:00:49,130 --> 00:00:51,300 pro nás, místo toho, věci low-level. 18 00:00:51,300 --> 00:00:53,970 A to je místo, kde PHP opravdu přichází. 19 00:00:53,970 --> 00:00:58,200 >> Nyní, jeden z důvodů, proč že učíme PHP v CS50 20 00:00:58,200 --> 00:01:01,020 je, že je silně inspirovaná C. A ve skutečnosti, podle mého názoru, 21 00:01:01,020 --> 00:01:05,140 tam jsou opravdu dvou progenitorové jazyky, které 22 00:01:05,140 --> 00:01:08,200 jsou velmi časté v dnešní době. 23 00:01:08,200 --> 00:01:10,110 C a LISP. 24 00:01:10,110 --> 00:01:13,280 A jsou progenitorové jazyky protože každý jiný moderní programování 25 00:01:13,280 --> 00:01:17,380 jazyk, který vyvinula od té doby je inspirováno 26 00:01:17,380 --> 00:01:20,330 jednou nebo druhou syntakticky. 27 00:01:20,330 --> 00:01:26,160 PHP je velmi podobný syntakticky k C, zatímco jazyků jako Scheme, 28 00:01:26,160 --> 00:01:27,900 například, který jste možná slyšeli o, 29 00:01:27,900 --> 00:01:32,070 je silně inspirován jazykem volal LISP, který je starší jazyk. 30 00:01:32,070 --> 00:01:34,220 >> Takže z toho důvodu jsme se učit PHP v CS50 je to, že, 31 00:01:34,220 --> 00:01:37,730 tím, že zná C jako zásadně jako vy v tomto bodě, 32 00:01:37,730 --> 00:01:41,280 vyzvednutí PHP, který vám dává schopnost dělat mnohem vyšší úroveň věci 33 00:01:41,280 --> 00:01:44,710 než C dělá, není že hodně z překážku, 34 00:01:44,710 --> 00:01:48,230 proto, že již máte Základní myšlenkou syntaxe. 35 00:01:48,230 --> 00:01:50,590 C je to asi pro téměř 45 let v tomto bodě. 36 00:01:50,590 --> 00:01:52,780 PHP tu byl asi 20 let. 37 00:01:52,780 --> 00:01:57,080 A v tom, že 25 let mezi programátory, 38 00:01:57,080 --> 00:02:01,540 stanoveno, že by moc spíše mají vyšší schopnosti na úrovni, 39 00:02:01,540 --> 00:02:04,970 a chyby a boje z 20 let v rozmezí 40 00:02:04,970 --> 00:02:08,210 vedl k PHP a jiných moderních jazyků. 41 00:02:08,210 --> 00:02:11,039 >> PHP velký výběr jazyka pro software 42 00:02:11,039 --> 00:02:14,042 že allow-- pro software that-- kde na vás 43 00:02:14,042 --> 00:02:16,250 je třeba dělat věci, které v C jsou ve skutečnosti komplikované. 44 00:02:16,250 --> 00:02:18,480 Tak například, pracovní s řetězci v C 45 00:02:18,480 --> 00:02:21,709 je velmi komplikované, protože jak víme, řetězce v C 46 00:02:21,709 --> 00:02:23,250 jsou opravdu jen pole znaků. 47 00:02:23,250 --> 00:02:25,230 Není to vestavěný datový typ. 48 00:02:25,230 --> 00:02:28,220 Nebo snad ještě podstatnější, něco, co jsme neměli ani pokrýt v C, 49 00:02:28,220 --> 00:02:30,360 co když musíte udělat, Některé počítačové sítě? 50 00:02:30,360 --> 00:02:30,860 Dobře? 51 00:02:30,860 --> 00:02:34,920 >> C má schopnost dělat to, ale je to tak tajemný a tak těžké skutečně udělat. 52 00:02:34,920 --> 00:02:37,580 Nebylo by hezké, kdyby Jazyk měl vestavěný a snadný způsob, 53 00:02:37,580 --> 00:02:38,910 implementovat sítí? 54 00:02:38,910 --> 00:02:43,420 A PHP je jazyk, který dělá to, nebo usnadňuje to, že trochu víc. 55 00:02:43,420 --> 00:02:47,740 Jak jsem již řekl, PHP je velmi silně inspirovaný C. Syntaxe je velmi podobná. 56 00:02:47,740 --> 00:02:51,760 A tak to má snad aby se Přechod z jednoho na druhého 57 00:02:51,760 --> 00:02:54,710 trochu měkčí než některé další jazyky mohou být. 58 00:02:54,710 --> 00:02:58,800 >> Chcete-li začít psát PHP, stačí otevřít soubor s příponou .php. 59 00:02:58,800 --> 00:03:00,670 Technicky to není skutečně zapotřebí, 60 00:03:00,670 --> 00:03:04,495 ale pokud chcete, věci, jako je syntaxe zvýraznění v IDE, takže tento typ 61 00:03:04,495 --> 00:03:07,620 názvy, nebo názvy proměnných, funkce, víte, klíčová slova z jazyka 62 00:03:07,620 --> 00:03:10,090 jsou zvýrazněny v specifická barva, je obvykle 63 00:03:10,090 --> 00:03:14,020 chtějí pojmenovat své soubory s konkrétní příponu souboru. 64 00:03:14,020 --> 00:03:18,430 Takže jsme pojmenován náš soubor s .php rozšíření, ale pak také s PHP, 65 00:03:18,430 --> 00:03:23,310 všechny PHP kód budeme psát v tom, že Soubor musí být uzavřen v těchto PHP 66 00:03:23,310 --> 00:03:25,190 oddělovače, které vidíme tady na obrazovce. 67 00:03:25,190 --> 00:03:27,910 Úhel držák? Php začít. 68 00:03:27,910 --> 00:03:30,860 Pak jsme se napsat všechny naše PHP kód, který chceme mezi nimi. 69 00:03:30,860 --> 00:03:32,260 A pak ? 70 00:03:32,260 --> 00:03:34,710 úhelník uzavřít. 71 00:03:34,710 --> 00:03:37,170 >> Nebudeme-li to dělat, pak co se bude dít? 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 Opravdu zničit náš program. 74 00:03:39,410 --> 00:03:41,440 Ale je to nebude mít dopadu, který chceme. 75 00:03:41,440 --> 00:03:44,540 Co se stane, opravdu, je že když se snažíme a spustit tento program, 76 00:03:44,540 --> 00:03:50,330 vše, co není mezi těmito oddělovače se bude vytištěn doslovně. 77 00:03:50,330 --> 00:03:52,210 To nebude ve skutečnosti spustit kód, 78 00:03:52,210 --> 00:03:56,010 to bude jen vytisknout doslovně. 79 00:03:56,010 --> 00:03:57,320 >> A proč je tomu tak? 80 00:03:57,320 --> 00:04:00,416 Takže C je to, co je známo jako kompilované jazyk. 81 00:04:00,416 --> 00:04:03,040 Vy jste pravděpodobně obeznámeni s krok tvorby programy, 82 00:04:03,040 --> 00:04:07,820 soustružení .c souborů a .h soubory do jednoho spustitelného souboru s make, 83 00:04:07,820 --> 00:04:11,130 zejména s využitím Řinčení jako náš kompilátor. 84 00:04:11,130 --> 00:04:13,030 PHP, i když, ne mají tento ekvivalent. 85 00:04:13,030 --> 00:04:15,600 PHP je to, co se nazývá interpretovaný jazyk. 86 00:04:15,600 --> 00:04:16,760 A co to znamená? 87 00:04:16,760 --> 00:04:20,680 >> No, to znamená, že nebudeme muset převést náš zdrojový kód nul a jedniček 88 00:04:20,680 --> 00:04:21,470 být forhendový. 89 00:04:21,470 --> 00:04:23,900 Spíše, je tu program, který je také nazýván 90 00:04:23,900 --> 00:04:29,771 PHP, že chápe, PHP a může nějak dělat to v reálném čase. 91 00:04:29,771 --> 00:04:32,520 To opravdu není úplně přesné, ale je to docela dobrá analogie 92 00:04:32,520 --> 00:04:33,760 o tom, co se děje. 93 00:04:33,760 --> 00:04:37,230 Je to tlumočení ty, nuly a ty v reálném čase. 94 00:04:37,230 --> 00:04:40,160 A tak, pokud to neví jak zpracovat něco, 95 00:04:40,160 --> 00:04:42,800 pokud neví, jak se Proces PHP, budete pravděpodobně 96 00:04:42,800 --> 00:04:44,680 chtěl dát tento text tam, že jo? 97 00:04:44,680 --> 00:04:48,960 >> Pravděpodobně jste chtěl dát kód tam, i když to není mezi PHP-- 98 00:04:48,960 --> 00:04:50,035 PHP oddělovače. 99 00:04:50,035 --> 00:04:51,910 Ale-- takže to nebude ji smazat pro vás, 100 00:04:51,910 --> 00:04:53,576 to jen tak v podstatě zlikvidujte jej. 101 00:04:53,576 --> 00:04:55,550 Takže to bude tisknout to se na obrazovku. 102 00:04:55,550 --> 00:04:57,150 >> To vypadá, že je to špatný věc, ale ve skutečnosti je to 103 00:04:57,150 --> 00:04:58,220 Bude to opravdu dobrá věc, jak jsme to 104 00:04:58,220 --> 00:05:00,390 vidět, když hovoříme o PHP vývoj webu, 105 00:05:00,390 --> 00:05:04,010 protože to znamená, že můžeme promíchat PHP a HTML. 106 00:05:04,010 --> 00:05:06,640 Můžeme je použít společně vytvořit dynamičtější webové stránky. 107 00:05:06,640 --> 00:05:10,650 Ale o tom více v video na vývoj PHP webových aplikací. 108 00:05:10,650 --> 00:05:12,021 >> Takže to, co je syntaxe PHP? 109 00:05:12,021 --> 00:05:13,520 To je to, co toto video je vše kolem. 110 00:05:13,520 --> 00:05:14,850 Pojďme si o tom promluvit. 111 00:05:14,850 --> 00:05:16,490 >> Takže začít, proměnné. 112 00:05:16,490 --> 00:05:18,030 PHP proměnné existují. 113 00:05:18,030 --> 00:05:20,067 Tam jsou jen dva velké odlišnosti od C. 114 00:05:20,067 --> 00:05:21,900 První z nich je, že je tu č specifikátor typu. 115 00:05:21,900 --> 00:05:24,245 Nemusíme říkat int, char, float, všechny ty věci. 116 00:05:24,245 --> 00:05:25,620 Nemáme k tomu, že už ne. 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 přijít na to, co jste se snaží dělat, nebo aby nejlepší 119 00:05:28,910 --> 00:05:30,451 hádat, jak na to, co se snažíte udělat. 120 00:05:30,451 --> 00:05:31,700 Tak to je docela pěkné. 121 00:05:31,700 --> 00:05:35,330 >> Druhá věc je, že všechny proměnné jména mají začít s znak dolaru. 122 00:05:35,330 --> 00:05:36,940 Je to prostě něco, co se zvyknout. 123 00:05:36,940 --> 00:05:39,496 Je to trochu divné, protože je to tak, že PHP může pochopit 124 00:05:39,496 --> 00:05:40,870 co je proměnné a co ne. 125 00:05:40,870 --> 00:05:43,340 Takže každý název proměnné začíná s znak dolaru. 126 00:05:43,340 --> 00:05:46,884 Takže v C bychom mohli říct něco takhle, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Nemáme k tomu, že už v PHP. 128 00:05:48,550 --> 00:05:52,540 Můžeme jen říct, $ x = 54. 129 00:05:52,540 --> 00:05:55,920 A mohli bychom říci, například, v C, kdybychom libra-zahrnoval CS50 .h 130 00:05:55,920 --> 00:06:00,314 hlavičkový soubor, mohli bychom říci, string výraz = "Toto je CS50." 131 00:06:00,314 --> 00:06:01,980 Nemáme k tomu, že v PHP, ačkoli. 132 00:06:01,980 --> 00:06:04,865 Můžeme jen říci $ frázi = "Toto je CS50." 133 00:06:04,865 --> 00:06:08,760 A ve skutečnosti, řetězec je nyní vestavěný datový typ v PHP, 134 00:06:08,760 --> 00:06:10,950 nebo spíše PHP rozumí co je řetězec. 135 00:06:10,950 --> 00:06:15,612 Je to odděleně od pole znaků, jako je to v C. 136 00:06:15,612 --> 00:06:17,570 Všechny vaše oblíbené podmíněné příkazy z C 137 00:06:17,570 --> 00:06:19,520 jsou stále k dispozici pro vás k použití. 138 00:06:19,520 --> 00:06:21,140 Takže tam žádné velké přechod. 139 00:06:21,140 --> 00:06:23,400 Můžeme say-- můžeme mít if, jako je tento. 140 00:06:23,400 --> 00:06:28,210 pokud $ y 43, nebo $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Tak to je docela jednoduché. 142 00:06:29,690 --> 00:06:31,980 Můžeme mít, pokud i jinde. 143 00:06:31,980 --> 00:06:34,210 Můžeme mít, pokud a else if. 144 00:06:34,210 --> 00:06:36,430 >> A všimněte si něco tady docela pěkné, a to 145 00:06:36,430 --> 00:06:39,620 je něco jeden z těch Výhody PHP oproti C, oznámení 146 00:06:39,620 --> 00:06:41,510 jakou funkci nejsme tady používáte? 147 00:06:41,510 --> 00:06:47,737 Používáme == porovnat proměnná, $ name, na řetězec. 148 00:06:47,737 --> 00:06:49,070 Nemohli jsme to udělat v C, ne? 149 00:06:49,070 --> 00:06:53,200 Museli jsme použít funkci nazvanou StrComp nebo StrEndComp nebo jakékoliv 150 00:06:53,200 --> 00:06:54,840 z jejích přidružených bratranci. 151 00:06:54,840 --> 00:06:56,980 >> A tak už vidíme tyto výhody. 152 00:06:56,980 --> 00:07:00,930 Nemusíme dělat něco jak hloupé nebo možná unintuitive 153 00:07:00,930 --> 00:07:03,540 jako volání funkce nazývá StrComp pokud chci jen vyzkoušet 154 00:07:03,540 --> 00:07:05,237 zda hodnota se rovná řetězec. 155 00:07:05,237 --> 00:07:07,820 Jsem mohl použít jen rovná rovná, že bych mohl dělat něco jiného. 156 00:07:07,820 --> 00:07:09,560 Takže tam to výhoda. 157 00:07:09,560 --> 00:07:13,350 >> Někdy, mimochodem, můžete viz else if jako jedno slovo, elseif. 158 00:07:13,350 --> 00:07:14,910 A to je v pořádku, v PHP stejně. 159 00:07:14,910 --> 00:07:17,020 Takže někdy můžete vidět, že. 160 00:07:17,020 --> 00:07:17,790 Není to překlep. 161 00:07:17,790 --> 00:07:21,830 PHP vlastně chápe elseif. 162 00:07:21,830 --> 00:07:23,980 Nevím, proč se rozhodla implementovat to, 163 00:07:23,980 --> 00:07:28,220 ale jak jsme viděli mnohokrát v celé naší videa tak daleko, 164 00:07:28,220 --> 00:07:30,460 máme programátoři to líbí, pokud můžeme dělat věci rychle, 165 00:07:30,460 --> 00:07:33,660 tak, jak se zbavit tohoto prostoru je zřejmě velká výhoda. 166 00:07:33,660 --> 00:07:34,800 >> Tak to je v případě, a elseif. 167 00:07:34,800 --> 00:07:37,540 Máme také ternární operátor, Připomeňme, otazník tlustého střeva, 168 00:07:37,540 --> 00:07:43,262 za opravdu krátkou formu, pokud jiný nebo podmíněné větvení. 169 00:07:43,262 --> 00:07:45,470 A zdá se, že v tomto, co se snažíme udělat zde 170 00:07:45,470 --> 00:07:49,720 je přiřadit proměnné $ dopis jeden pravdivý nebo nepravdivý, 171 00:07:49,720 --> 00:07:54,110 V závislosti na tom, zda $ var je abecední znak. 172 00:07:54,110 --> 00:07:57,320 Tak to je docela podobný IsAlpha že jsme obeznámeni s od C. 173 00:07:57,320 --> 00:07:59,010 To je něco jako ekvivalent v PHP. 174 00:07:59,010 --> 00:08:01,550 Funkce je zřejmě volal ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 ale to je to, jak to děláme v PHP. 176 00:08:03,450 --> 00:08:08,560 Tak tohle všechno bude je, je-li $ var je dopis, $ dopis je pravda. 177 00:08:08,560 --> 00:08:13,820 Je-li $ var není dopis, $ dopis je false. 178 00:08:13,820 --> 00:08:15,820 >> Máme také prohlášení přepínače stále. 179 00:08:15,820 --> 00:08:17,870 Připomínáme, ty, které z C i. 180 00:08:17,870 --> 00:08:22,480 Na samém vrcholu se, že je to, jak to děláme něco jako get int nebo získat řetězec. 181 00:08:22,480 --> 00:08:23,845 PHP tak, že má postavena v roce. 182 00:08:23,845 --> 00:08:25,470 Nepotřebujeme knihovnu CS50 ještě. 183 00:08:25,470 --> 00:08:27,237 Můžeme stačí použít Readline funkci. 184 00:08:27,237 --> 00:08:29,820 Co to udělá, je pro tisk out zprávu: "Tvůj stát, 185 00:08:29,820 --> 00:08:33,820 prosím, "a pak bliká řádku čekání uživatele na vstup 186 00:08:33,820 --> 00:08:34,739 nějaké informace. 187 00:08:34,739 --> 00:08:36,530 Teď si všimnout, co jiného můžeme udělat s vypínačem. 188 00:08:36,530 --> 00:08:39,105 Pokud jste použil předtím, Možná si vzpomenete, že spínač 189 00:08:39,105 --> 00:08:44,960 je omezena do značné míry na celá čísla a postavy, ale teď můžeme použít řetězce. 190 00:08:44,960 --> 00:08:50,190 A ve skutečnosti, příkaz switch v PHP je trochu flexibilnější 191 00:08:50,190 --> 00:08:54,880 než jeho bratranec z C. 192 00:08:54,880 --> 00:08:55,380 Smyček. 193 00:08:55,380 --> 00:08:58,130 Stejně jako podmínkové, všichni vaše staré oblíbené jsou tam pořád. 194 00:08:58,130 --> 00:09:00,740 Máme zatímco smyčky, které počítají od 1 do 100 v tomto případě. 195 00:09:00,740 --> 00:09:03,940 While jsme dělat Počítá se od 1 do 100, 196 00:09:03,940 --> 00:09:06,200 a máme pro smyčky Počítá se od 1 do 100. 197 00:09:06,200 --> 00:09:07,220 Takže tam žádný velký skok. 198 00:09:07,220 --> 00:09:09,360 Syntaxe je docela mnohem přesně stejný, 199 00:09:09,360 --> 00:09:11,760 s výjimkou teď jsme pomocí znak dolaru variabilní místo 200 00:09:11,760 --> 00:09:17,260 deklarování proměnných celé číslo, nebo něco takového pro naše pulty. 201 00:09:17,260 --> 00:09:20,090 >> Tady je místo, kde se věci dostat mnohem lepší než C, ačkoli. 202 00:09:20,090 --> 00:09:21,020 Pole. 203 00:09:21,020 --> 00:09:23,020 Takže Vzpomínám si, když jsme byli mluví o C, v pořadí 204 00:09:23,020 --> 00:09:25,560 pro nás růst a zmenšit soubory informací, 205 00:09:25,560 --> 00:09:28,310 jsme potřebovali vyřešit selhání k této myšlence propojeného seznamu, 206 00:09:28,310 --> 00:09:30,780 protože C pole byly stanoveny ve velikosti. 207 00:09:30,780 --> 00:09:31,800 Nemohli jsme zmenšit je. 208 00:09:31,800 --> 00:09:32,930 Nemohli jsme pěstovat je. 209 00:09:32,930 --> 00:09:36,074 Museli jsme přerozdělit paměti a dělat všechnu tuto šílenství 210 00:09:36,074 --> 00:09:38,490 nebo použijte propojené seznamy, které zabírají dost víc prostoru. 211 00:09:38,490 --> 00:09:41,590 Ale v PHP, pole jsou není stanovena ve velikosti ještě. 212 00:09:41,590 --> 00:09:43,240 Mohou dorůst a mohou zmenšit. 213 00:09:43,240 --> 00:09:46,660 Takže znovu, těchto 20 let, která existovala mezi prvním vydání C 214 00:09:46,660 --> 00:09:49,440 a první vydání PHP, Rozhodli jsme se, že víte, 215 00:09:49,440 --> 00:09:51,670 to by bylo opravdu skvělé pokud bychom mohli udělat. 216 00:09:51,670 --> 00:09:54,100 A tak jsme realizovali to. 217 00:09:54,100 --> 00:09:58,040 >> Takže PHP pole nejsou stanoveny velikost, a proto, že PHP není opravdu 218 00:09:58,040 --> 00:10:03,090 mají programátor přední VGA pojmy typů, 219 00:10:03,090 --> 00:10:05,110 můžeme míchat datové typy v našich polích, taky. 220 00:10:05,110 --> 00:10:08,100 Takže nemáme ani muset použít všechny celá čísla nebo všechny plovoucí body, 221 00:10:08,100 --> 00:10:12,826 můžeme mít mix všeho různé druhy v jednom poli. 222 00:10:12,826 --> 00:10:14,700 Deklarace pole je docela jednoduché. 223 00:10:14,700 --> 00:10:16,116 Je to stejně jako všechny ostatní proměnné. 224 00:10:16,116 --> 00:10:20,020 $ nums = array (1, 2, 3, 4), pole je funkcí 225 00:10:20,020 --> 00:10:22,760 , který je vestavěný do PHP, který vytvoří pole pro vás. 226 00:10:22,760 --> 00:10:28,315 To vytvoří pole čtyř hodnot, Čísla v tomto případě, volal $ nums. 227 00:10:28,315 --> 00:10:29,940 A je tu víc než jeden způsob, jak to udělat. 228 00:10:29,940 --> 00:10:32,420 A jdeme vidět hodně v PHP. 229 00:10:32,420 --> 00:10:36,380 PHP byl vyvinut mnoho různých lidí a roste a roste a roste. 230 00:10:36,380 --> 00:10:40,050 Tam je obvykle není jen dva nebo tři způsoby, jak něco udělat v PHP, 231 00:10:40,050 --> 00:10:42,170 tam je obvykle jako 10 nebo 20. 232 00:10:42,170 --> 00:10:45,300 Tady je jen další obyčejný způsob, jak deklarovat pole. 233 00:10:45,300 --> 00:10:48,310 $ nums = čtverečních bracket 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Tak tohle je trochu podobný úhlu C je br-- složenou závorkou notaci, spíše. $ - 235 00:10:53,170 --> 00:10:58,525 nebo že by bylo int nums náměstí držáky rovná složená závorka 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 V PHP je to $ nums = náměstí držáky 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Oba tyto příklady, ale tady mi dát s polem čtyř v tomto případě celých čísel. 238 00:11:08,920 --> 00:11:10,920 >> Co když chci něco připínáček na teď? 239 00:11:10,920 --> 00:11:14,760 No můžu jen říct, $ nums 4, který Znovu, jsme stále počítat od 0 zde 240 00:11:14,760 --> 00:11:17,800 v PHP, by pátý prvek pole. 241 00:11:17,800 --> 00:11:18,990 Mohu jen říct, že. 242 00:11:18,990 --> 00:11:22,860 Nebudu trpět SEG chyba, protože moje pole je jen 243 00:11:22,860 --> 00:11:24,337 poroste ubytovat to. 244 00:11:24,337 --> 00:11:25,420 To je docela pěkné, ne? 245 00:11:25,420 --> 00:11:28,400 A ve skutečnosti, nemám ani potřeba určit, kde chci, aby to. 246 00:11:28,400 --> 00:11:31,220 Mohu jen říct to a jen připínáček to přímo až do konce, 247 00:11:31,220 --> 00:11:34,099 nebo jsem mohl dokonce jen říkají $ nums 20 nebo 1000. 248 00:11:34,099 --> 00:11:35,140 Je to opravdu nezáleží. 249 00:11:35,140 --> 00:11:38,330 Je to stále jen bude připínáček to přímo až do konce. 250 00:11:38,330 --> 00:11:41,490 >> Tak jsem se může růst, a my jsme as-- nebude pokrýt tady, 251 00:11:41,490 --> 00:11:45,360 ale mohu spojovat nebo pás Prvky z pole, jakož, 252 00:11:45,360 --> 00:11:50,064 a pole bude zmenšovat ubytovat že nyní chybí nebo je prázdný prostor. 253 00:11:50,064 --> 00:11:52,230 Je tu ještě jeden způsob, jak se křižovat něco, co se na pole, 254 00:11:52,230 --> 00:11:54,330 což je funkce nazvaná array_push. 255 00:11:54,330 --> 00:11:57,860 Takže znovu, právě tato myšlenka, že jsou schopný dělat věci mnoha různými způsoby. 256 00:11:57,860 --> 00:12:01,950 Takže jsme viděli tři různé způsoby, jak nyní křižovat další prvek na matici. 257 00:12:01,950 --> 00:12:06,900 Takže to přidává další prvek na konci $ nums pole. 258 00:12:06,900 --> 00:12:08,340 A můžeme míchat naše datové typy. 259 00:12:08,340 --> 00:12:13,110 Takže jsem mohl mít řadu ne 1, 2, 3, 4, ale 1, true, 3, 4, 260 00:12:13,110 --> 00:12:16,420 kde pravda je logická, a poté když chci přidají jiný prvek 261 00:12:16,420 --> 00:12:20,860 k tomuto poli, snad řetězec, řetězec "pět," já jsem mohl dělat, že. 262 00:12:20,860 --> 00:12:26,110 A teď můj array by být 1, true, 3, 4, pět. 263 00:12:26,110 --> 00:12:28,640 Slovo pět, ne celé číslo 5. 264 00:12:28,640 --> 00:12:31,270 Takže velká flexibilita tam. 265 00:12:31,270 --> 00:12:33,290 >> Flexibilita dostane ještě lepší, i když, 266 00:12:33,290 --> 00:12:37,530 proto, že PHP má podporu pro něco volal asociativní pole. 267 00:12:37,530 --> 00:12:40,660 A my jsme tak nějak neurčitě mluvil o asociativních polí v jazyce C 268 00:12:40,660 --> 00:12:44,740 v kontextu stoly mřížky, protože co asociativní pole jsou opravdu vše 269 00:12:44,740 --> 00:12:48,950 asi dělají klíč Hodnota pár mapování. 270 00:12:48,950 --> 00:12:53,410 A v tomto případě, pokud keys-- Jsme obeznámeni s poli z C, 271 00:12:53,410 --> 00:12:55,440 klávesy jsou 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 jsou to, co jsme zjistili, že pole 0, pole 1, pole 2, a tak dále. 274 00:13:03,070 --> 00:13:06,310 Takže jsou klíče indexy, a hodnoty jsou 275 00:13:06,310 --> 00:13:10,060 to, co je v tomto umístění pole, stanovenými tímto indexem. 276 00:13:10,060 --> 00:13:15,130 >> Ale v PHP, nemusíme to dělat Pojem pole 0, pole 1, pole 2 277 00:13:15,130 --> 00:13:15,830 už ne. 278 00:13:15,830 --> 00:13:21,025 Nyní můžeme použít aktuální slova mapovat klíče k hodnotám. 279 00:13:21,025 --> 00:13:22,650 A tak bych mohl říct něco takového. 280 00:13:22,650 --> 00:13:26,710 Mohl bych vytvořit pole pomocí hranatou závorku syntaxe takto. 281 00:13:26,710 --> 00:13:30,685 $ pizzy = hranatou závorku "sýr" a poté 282 00:13:30,685 --> 00:13:37,210 Tento druh dvojitou šipkou notaci, 8.99, "feferonky," šipka 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 a tak dále. 284 00:13:37,880 --> 00:13:39,060 A tak to, co se tady děje? 285 00:13:39,060 --> 00:13:41,040 Co mám vlastně dělat? 286 00:13:41,040 --> 00:13:43,990 Já jsem vytvořit klíčová hodnota pár mapování. 287 00:13:43,990 --> 00:13:49,060 Takže místo toho, říkal, například, pizzy 0, 1 ks, pizzy 2, 288 00:13:49,060 --> 00:13:52,350 Nyní mohu říci pizzy sýr, pizzy pepperoni, 289 00:13:52,350 --> 00:13:55,120 a odkazují na hodnoty jsou s nimi spojeny. 290 00:13:55,120 --> 00:13:56,970 >> Tak tady jsou naše klíče zeleně. 291 00:13:56,970 --> 00:13:59,870 Sýr, pepperoni, zeleniny, buvol kuře. 292 00:13:59,870 --> 00:14:04,200 Zde je šipka, která dělá Tento klíč mapování hodnotu dvojice. 293 00:14:04,200 --> 00:14:07,420 A pak tu jsou hodnoty na tomto místě pole. 294 00:14:07,420 --> 00:14:10,330 Takže je to jako říct pole 0 se rovná 8,99. 295 00:14:10,330 --> 00:14:11,720 Klíčem k úspěchu je 0. 296 00:14:11,720 --> 00:14:13,600 Hodnota je 8.99. 297 00:14:13,600 --> 00:14:19,370 Nyní mohu říci sýr pole, nebo v tomto případ pizzy sýr, sýr je klíč, 298 00:14:19,370 --> 00:14:23,340 a to, co najdu v pizzy sýr je 8.99. 299 00:14:23,340 --> 00:14:25,540 To je hodnota, která najdu tam. 300 00:14:25,540 --> 00:14:28,124 >> Takže můžu říct věci líbí. $ pizza sýr = 7,99. 301 00:14:28,124 --> 00:14:29,040 Řekněme, že jsem s prodejem. 302 00:14:29,040 --> 00:14:31,750 Chci dis-- chci k poklesu cena sýrové pizzy. 303 00:14:31,750 --> 00:14:35,620 Nebo mohu použít zeleninu pizza jako součást stavu, 304 00:14:35,620 --> 00:14:39,990 nebo mohu přidat nový element k mému pole, stejně jako jsem mohl dělat dříve. 305 00:14:39,990 --> 00:14:44,680 Mohu přidat nový element k tomu asociativní pole s klíčem "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 představuje problém, pokud si myslíte, že o tom na chvíli. 308 00:14:53,820 --> 00:14:55,721 Jak bychom iteraci tomto poli? 309 00:14:55,721 --> 00:14:56,220 Právo? 310 00:14:56,220 --> 00:14:59,820 V C, my bychom jen mít pro smyčku, typicky, že 311 00:14:59,820 --> 00:15:03,650 poběží od 0 do Velikost pole minus 1. 312 00:15:03,650 --> 00:15:08,060 Pole má n prvky na se platné indexy jsou 0 až n minus 1. 313 00:15:08,060 --> 00:15:11,530 Takže bychom mohli použít pro smyčku do krokovat každý jednotlivý prvek. 314 00:15:11,530 --> 00:15:13,530 >> Ale to není opravdu tento případ už, že jo? 315 00:15:13,530 --> 00:15:17,360 Tak kde máme pár hodnoty klíče Mapování kde klíče jsou slova, 316 00:15:17,360 --> 00:15:19,970 jak jsme se iteraci přes všechna slova? 317 00:15:19,970 --> 00:15:22,420 No, naštěstí, PHP má způsob, jak se vypořádat s tím taky, 318 00:15:22,420 --> 00:15:24,580 a tak budeme skočit zpět do smyčky na vteřinu 319 00:15:24,580 --> 00:15:30,780 zavést čtvrtou druh smyčky, které existuje v PHP s názvem smyčky foreach. 320 00:15:30,780 --> 00:15:34,430 A to, co dělá, je smyčka foreach je to v podstatě stejný nápad. 321 00:15:34,430 --> 00:15:36,060 Můžete ho použít pro jakýkoliv druh pole. 322 00:15:36,060 --> 00:15:38,100 Ale je to v podstatě Stejná myšlenka jako pro smyčka, 323 00:15:38,100 --> 00:15:40,750 s výjimkou toho, použití indexy, stačí 324 00:15:40,750 --> 00:15:45,830 mají takový divný syntaxi kde budete volat každý element 325 00:15:45,830 --> 00:15:47,550 název pro účely této smyčky. 326 00:15:47,550 --> 00:15:49,258 >> Takže v tomto případě, foreach ($ pole as $ klíče). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 V podstatě, jak tou poznámkou poznámky, uvnitř této smyčky foreach, 329 00:15:56,450 --> 00:16:00,466 to bude projít každý prvek $ pole, což je obvykle 330 00:16:00,466 --> 00:16:03,340 Bude asociativní pole, ale může být opravdu jakýkoliv druh pole 331 00:16:03,340 --> 00:16:05,419 že chcete v PHP. 332 00:16:05,419 --> 00:16:07,210 A pokaždé, že v cyklu for byste mohli 333 00:16:07,210 --> 00:16:13,780 řekl, $ pole hranaté závorky $ i, můžete jen říci $ klíč. 334 00:16:13,780 --> 00:16:22,340 Takže $ key stane alias pro každý Index PHP asociativní pole, 335 00:16:22,340 --> 00:16:23,710 a tak jej můžete použít takhle. 336 00:16:23,710 --> 00:16:25,897 >> Tak například, máme Nyní dostali náš pizzy pole. 337 00:16:25,897 --> 00:16:27,730 Já jsem trochu zastrčil do tam rohu 338 00:16:27,730 --> 00:16:31,080 takže ji můžeme použít k tomu rychlý příklad. 339 00:16:31,080 --> 00:16:36,420 Když řeknu foreach ($ pizzy as $ pizza), no, co se děje? 340 00:16:36,420 --> 00:16:42,400 No, já jdu iterovat každý jednotlivý prvek pole $ pizzy, 341 00:16:42,400 --> 00:16:46,670 a přitom budu volat každý prvek, když jsem uvnitř 342 00:16:46,670 --> 00:16:49,400 těla, které pro smyčky, $ pizzu. 343 00:16:49,400 --> 00:16:52,440 >> Takže je to něco jako stand-in, připomínají, že $ pizza 344 00:16:52,440 --> 00:16:59,140 je stand-in pro pořekadlo $ pizzy hranaté závorky $ I 345 00:16:59,140 --> 00:17:03,370 Pokud bychom použili pro smyčky, kde jsme může jít od $ i = 0 až, v tomto případě, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Pokud bychom neměli klíče a hodnoty, zde, by to bylo element 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 a my bychom použít pro smyčce jít $ 0, $ pizzy pizza 1, $ 2, pizzy 349 00:17:16,390 --> 00:17:17,750 $ pizzy 3. 350 00:17:17,750 --> 00:17:23,130 Takže teď jen $ pizza střídá pro tento individuální klíč. 351 00:17:23,130 --> 00:17:25,630 >> Takže to, co se to bude tisknout? 352 00:17:25,630 --> 00:17:29,030 Já vytisknout $ pizzu. 353 00:17:29,030 --> 00:17:35,270 Co mám najít at-- když jsem vytisknout $ pizzy, $ i? 354 00:17:35,270 --> 00:17:35,770 Právo? 355 00:17:35,770 --> 00:17:38,680 Jestli mám vytisknout i-tá prvek pizzy, 356 00:17:38,680 --> 00:17:40,070 co budu tisknout? 357 00:17:40,070 --> 00:17:42,580 Jdu pro vytištění Hodnoty na tomto místě, že jo? 358 00:17:42,580 --> 00:17:45,370 Stejně jako když jsme dělali to v kontextu C, 359 00:17:45,370 --> 00:17:49,786 my obvykle nepoužívají naší iterátoru variabilní, int i = 0, i je menší než 3, 360 00:17:49,786 --> 00:17:52,900 i ++, vytisknout 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Jsme vytištění pole 0, pole 1, pole 2, 3 pole. 362 00:17:57,500 --> 00:17:59,580 A tak to, co to vypíše je to. 363 00:17:59,580 --> 00:18:01,150 Je to 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 >> Nyní krátká poznámka zde. 366 00:18:06,900 --> 00:18:10,900 Smyčky foreach nemusí nutně vytisknout věci do pořádku. 367 00:18:10,900 --> 00:18:12,770 To není zaručena. 368 00:18:12,770 --> 00:18:13,550 Je to obvykle dělá. 369 00:18:13,550 --> 00:18:17,667 Je to obvykle na základě objednávky v které prvky jsou přidány do pole, 370 00:18:17,667 --> 00:18:18,750 tak jen to mít na paměti. 371 00:18:18,750 --> 00:18:20,830 To nemusí být v pořádku. 372 00:18:20,830 --> 00:18:23,930 Ale foreach smyčky bude opakovat po každé jednotlivé součásti 373 00:18:23,930 --> 00:18:25,060 matice se jedná. 374 00:18:25,060 --> 00:18:27,980 V tomto případě se opět, že pole je $ pizzy. 375 00:18:27,980 --> 00:18:32,920 >> Mohu změnit syntaxi, i když, pokud Chci jak klíč a hodnotu. 376 00:18:32,920 --> 00:18:37,179 Místo toho, říká $ pizzy as $ pizzy, mohu říci toto. 377 00:18:37,179 --> 00:18:39,470 A když se podíváte na to, co jsem zvýrazní zeleně tady, 378 00:18:39,470 --> 00:18:42,130 to vypadá jako klíčový mapování hodnota páru. 379 00:18:42,130 --> 00:18:45,980 A tak pokud vás--, i když nejste úplně jistý, co to bude dělat, 380 00:18:45,980 --> 00:18:49,300 asi tušíte že $ poleva se děje 381 00:18:49,300 --> 00:18:53,800 být klíčovým v tomto případě, a $ cena bude hodnota. 382 00:18:53,800 --> 00:18:59,200 Takže jsem náhradou teď každý prvek z $ pizzy jako dvojici klíč hodnota, 383 00:18:59,200 --> 00:19:03,900 a teď může odkazovat ke klíči a je hodnota, která by v vhod, 384 00:19:03,900 --> 00:19:05,590 například, následujícím způsobem. 385 00:19:05,590 --> 00:19:10,170 >> "Celá" - to je hodně tisk děje here-- "celku" 386 00:19:10,170 --> 00:19:17,300 poleva "pizza stojí $" cenu, a poté I vytisknout období a zpětné lomítko n. 387 00:19:17,300 --> 00:19:23,420 Takže teď, oznámení zase mám přístup k klíč, $ poleva, a hodnotu, $ cena. 388 00:19:23,420 --> 00:19:26,647 Takže můžete hádat, co to se chystá vytisknout? 389 00:19:26,647 --> 00:19:29,480 Je tu spousta tiskových prohlášení, ale je tu jen jedna zpětné lomítko n, 390 00:19:29,480 --> 00:19:33,410 tak to bude něco, co tisknout na entire-- na jeden řádek kódu. 391 00:19:33,410 --> 00:19:36,965 >> Mohu-li odkazovat na klíč a hodnota, pak nyní, 392 00:19:36,965 --> 00:19:39,090 místo toho tak, že v vytisknout cen, 393 00:19:39,090 --> 00:19:41,330 Mohu vytisknout něco takového. 394 00:19:41,330 --> 00:19:43,780 "Celý sýr pizza stojí $ 8,99." 395 00:19:43,780 --> 00:19:47,150 A teď jsem pomocí všechny keys-- sýr, feferonky, zeleniny, 396 00:19:47,150 --> 00:19:49,640 buvol chicken-- a hodnoty. 397 00:19:49,640 --> 00:19:53,980 8,99, 9,99, 10,99, 11,99 So to je jen jiný způsob, jak 398 00:19:53,980 --> 00:19:57,840 dělat smyčky foreach, že namísto jen dávat přístup k hodnotám, 399 00:19:57,840 --> 00:20:02,950 to prostě dává vás-- To vám dává přístup ke klíčům a hodnotami. 400 00:20:02,950 --> 00:20:04,411 >> Takže vytisknout informace. 401 00:20:04,411 --> 00:20:07,410 Už jsem to udělal pár různé způsoby, možná jste si všimli. 402 00:20:07,410 --> 00:20:11,080 Tyto dvě funkce máme v první řadě Viděl jsou tisk a echo. 403 00:20:11,080 --> 00:20:14,380 A pro skoro všechny záměry a účely, jsou přesně stejné. 404 00:20:14,380 --> 00:20:17,130 They're-- je tu velmi jemné Rozdíl to ani nestojí 405 00:20:17,130 --> 00:20:21,130 dostat se do, ale v podstatě všude můžete použít tisk můžete pravděpodobně používat 406 00:20:21,130 --> 00:20:22,370 echo stejně. 407 00:20:22,370 --> 00:20:23,610 >> A to není jen dva. 408 00:20:23,610 --> 00:20:26,970 PHP má hodně odlišný způsoby tisku věci, 409 00:20:26,970 --> 00:20:30,520 a má také způsoby, jak integrovat Proměnné do středu řetězce. 410 00:20:30,520 --> 00:20:32,860 A tak vzpomínám z C, viď Pamatuješ si, co funkce 411 00:20:32,860 --> 00:20:37,580 můžeme použít nahradit proměnné do věcí, chceme vytisknout? 412 00:20:37,580 --> 00:20:40,160 Pravděpodobně jste použít fungují docela hodně. 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, co jsme měli předtím uvnitř z kontextu našeho foreach smyčky. 415 00:20:45,290 --> 00:20:48,000 Měli jsme těchto pět samostatné tiskové prohlášení, 416 00:20:48,000 --> 00:20:50,330 proto, že byl jediný tak, jak jsem vlastně nevěděl, v té době 417 00:20:50,330 --> 00:20:52,450 jak tisknout zprávy. 418 00:20:52,450 --> 00:20:59,560 Nevěděl jsem, jak integrovat Proměnná $ poleva mi do PHP kódu. 419 00:20:59,560 --> 00:21:03,700 No, když jsem prostě vzít divoké hádat, printf, že ve skutečnosti by to fungovalo. 420 00:21:03,700 --> 00:21:08,980 printf je funkce, která mohu použít V PHP, stejně jako já ji použít v C. 421 00:21:08,980 --> 00:21:11,880 >> A tak něco takového, printf, Znovu, jsme obeznámeni s tím. 422 00:21:11,880 --> 00:21:16,420 První% s nahrazuje s hodnotou $ polevou. 423 00:21:16,420 --> 00:21:19,700 Druhý% s nahrazuje s hodnotou $ ceny. 424 00:21:19,700 --> 00:21:22,630 A tak jsem interpellating, což je jen ozdobný způsob, jak 425 00:21:22,630 --> 00:21:25,400 říkat Já jsem nalepení proměnné do tohoto umístění. 426 00:21:25,400 --> 00:21:31,000 Takže jsem zapojením $ zálivka, kde je red% s je cena $ a kde je modré% s 427 00:21:31,000 --> 00:21:36,060 je, a pak bych dostat zprávu, "Celý sýr pizza stojí $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Není to jediný způsob, jak mohu udělat to, ačkoli. 429 00:21:37,750 --> 00:21:39,760 Možná, že bych chtěl použít tuto metodu. 430 00:21:39,760 --> 00:21:44,890 To je vlastně to, co je nejčastěji volal variabilní interpelace. 431 00:21:44,890 --> 00:21:45,690 Mohu použít echo. 432 00:21:45,690 --> 00:21:47,737 Mohl bych použít tisk také, jak uvidíme. 433 00:21:47,737 --> 00:21:48,820 Ale co se tady děje? 434 00:21:48,820 --> 00:21:51,520 >> Za prvé, musím uniknout znak dolaru. 435 00:21:51,520 --> 00:21:55,140 Vzhledem k tomu, pamatujte, že když jsme byli vlastně vytištění ceny pizzy, 436 00:21:55,140 --> 00:21:59,370 Ve skutečnosti jsem formátování je jako peněžní postavy s znak dolaru. 437 00:21:59,370 --> 00:22:05,635 Ale my jsme s použitím znaky dolaru také zastupovat názvy proměnných v PHP, 438 00:22:05,635 --> 00:22:08,010 a zejména, když jsem použití této metody na kudrnaté 439 00:22:08,010 --> 00:22:10,040 rovnátka variabilní metoda interpelace, potřebuji 440 00:22:10,040 --> 00:22:13,490 uniknout můj dolaru, takže to není myslím, že mluvím o proměnné. 441 00:22:13,490 --> 00:22:16,920 Bude to vlastně, doslova vytisknout znak dolaru. 442 00:22:16,920 --> 00:22:19,530 >> Tak nějak to analogize to, co vidíte na tam na konci. 443 00:22:19,530 --> 00:22:22,832 To není ve skutečnosti vytisknout zpětné lomítko n, že jo? 444 00:22:22,832 --> 00:22:24,290 To vytiskne znak nového řádku. 445 00:22:24,290 --> 00:22:26,750 To je-- to nebude vytisknout zpětné lomítko znak dolaru, 446 00:22:26,750 --> 00:22:30,130 že to bude jen vytisknout Znak dolaru znak. 447 00:22:30,130 --> 00:22:30,640 Stejný nápad. 448 00:22:30,640 --> 00:22:32,760 Útěk sekvence, co tyto věci jsou nazývány. 449 00:22:32,760 --> 00:22:37,080 >> Ale všimněte si, že já nedělám nějaký druh% s substitucí, 450 00:22:37,080 --> 00:22:40,050 Jen jsem doslova zapojíte v těchto proměnných. 451 00:22:40,050 --> 00:22:45,110 A tak v tohle-- co by se stalo zde je to, že hodnota $ topping-- znovu 452 00:22:45,110 --> 00:22:48,390 jen držet s tím, co jsme byli mluví o tak far-- sýru by se 453 00:22:48,390 --> 00:22:49,720 zapojen tam. 454 00:22:49,720 --> 00:22:54,780 A $ cena by byla, co je hodnota na pizzu, hranaté závorky, sýr, 455 00:22:54,780 --> 00:22:56,270 který byl 8,99. 456 00:22:56,270 --> 00:23:01,860 A tak by to také vytisknout "Celý sýr pizza stojí $ 8,99." 457 00:23:01,860 --> 00:23:05,160 A jak jsem řekl, jsem mohl použít vytisknout zde místo echa, 458 00:23:05,160 --> 00:23:08,040 a funkce bude skoro přesně stejný. 459 00:23:08,040 --> 00:23:09,660 To by vytisknout totéž. 460 00:23:09,660 --> 00:23:12,680 >> Je tu ještě jeden způsob, jak to udělat, a to je další výhoda 461 00:23:12,680 --> 00:23:14,710 PHP práci s řetězci. 462 00:23:14,710 --> 00:23:17,130 Můžeme si dělat, zřetězení. 463 00:23:17,130 --> 00:23:19,660 Mohli bychom to udělat v C, taky, pomocí funkce s názvem strcat, 464 00:23:19,660 --> 00:23:21,180 ale zase jsme museli volání samostatné funkce. 465 00:23:21,180 --> 00:23:22,640 To byl celý tento nepořádek dělat. 466 00:23:22,640 --> 00:23:24,590 Museli jsme libru-zahrnout string.h. 467 00:23:24,590 --> 00:23:25,780 Byla to výroba, ne? 468 00:23:25,780 --> 00:23:30,070 Ale teď už stačí použít tento skalární operátor zřetězit řetězce dohromady. 469 00:23:30,070 --> 00:23:34,910 >> Takže jsem zřetězení "celek" a pak bez ohledu na hodnotu $ zálivky je, 470 00:23:34,910 --> 00:23:38,860 a pak další string, "náklady pizza $" 471 00:23:38,860 --> 00:23:42,340 a poté, co zřetězení hodnota $ ceny je, 472 00:23:42,340 --> 00:23:45,670 a pak v samotném závěru, že jsem připínání na období zpětného lomítka n. 473 00:23:45,670 --> 00:23:47,926 A tak to by také vytisknout "celek" - opět, 474 00:23:47,926 --> 00:23:50,550 Když už se bavíme o první prvkem této pizzy array-- 475 00:23:50,550 --> 00:23:54,710 "Celý sýr pizza stojí $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Období, zpětné lomítko n, opět s na $ polevou a $ cena substituce 477 00:24:01,260 --> 00:24:06,580 za to, co jsme je uvedeno v našich foreach smyčka jako mapování klíčové hodnoty páru. 478 00:24:06,580 --> 00:24:08,050 >> PHP zvládne funkce. 479 00:24:08,050 --> 00:24:11,250 Funkce byly druh nedílnou C, jak jsme viděli. 480 00:24:11,250 --> 00:24:14,870 Stejně jako proměnných, my nemusíme určit návratový typ funkce, 481 00:24:14,870 --> 00:24:16,350 protože to opravdu nezáleží. 482 00:24:16,350 --> 00:24:18,660 A nebudeme specifikovat datové typy parametrů, 483 00:24:18,660 --> 00:24:21,410 protože opravdu nemám ohledu na to, jak jsme viděli v PHP. 484 00:24:21,410 --> 00:24:24,510 Každá funkce je představen pomocí klíčového slova function. 485 00:24:24,510 --> 00:24:27,920 To je to, jak jsme se naznačit, PHP, který to, co jsme mluvili jen o funkce. 486 00:24:27,920 --> 00:24:29,720 >> A my nemusíme vypořádat s hlavní vůbec, 487 00:24:29,720 --> 00:24:33,690 protože tlumočníka, PHP tlumočník, pracuje od shora dolů, 488 00:24:33,690 --> 00:24:34,190 bez ohledu. 489 00:24:34,190 --> 00:24:35,640 Považuje-li to můžete udělat volání funkce, bude to 490 00:24:35,640 --> 00:24:37,850 jít najít volání funkce, i když se jedná později. 491 00:24:37,850 --> 00:24:40,360 Ale bude to čtou shora dno, takže se není třeba zadávat, 492 00:24:40,360 --> 00:24:41,500 Zde je místo, kde začít. 493 00:24:41,500 --> 00:24:46,700 Můžete začít na řádku 1 z vašich PHP a pracovat odtamtud. 494 00:24:46,700 --> 00:24:49,690 >> Tak tady je, jak bychom vytvářet funkce nazvaná hard_square. 495 00:24:49,690 --> 00:24:54,100 Je to prý trvá jeden parametr, který volám $ x. 496 00:24:54,100 --> 00:24:58,424 Tato funkce je komplikované jen ilustrovat různé věci. 497 00:24:58,424 --> 00:24:59,590 Pořád máme návratové hodnoty. 498 00:24:59,590 --> 00:25:00,870 Jsem pomocí cyklu for sem. 499 00:25:00,870 --> 00:25:04,970 Ale je to v podstatě jen, co to činí je pouhých $ x $ x krát. 500 00:25:04,970 --> 00:25:10,520 To, co jsem vlastně dělat, je pouhým přidáním x 0 x krát nebo $ x nula $ x krát. 501 00:25:10,520 --> 00:25:15,850 Ale to je přesně to účinně stejné jako násobení $ x krát $ x. 502 00:25:15,850 --> 00:25:18,700 Pořád vrátit hodnotu, v tomto případě $ výsledku, 503 00:25:18,700 --> 00:25:22,060 a já jsem udělal funkci v PHP. 504 00:25:22,060 --> 00:25:24,160 >> Zde je návod, jak ji může používat v kontextu. 505 00:25:24,160 --> 00:25:26,020 Takže možná, že jsem uvnitř nějakého souboru PHP. 506 00:25:26,020 --> 00:25:29,240 Všimněte si, že tam v modrém Použil jsem své oddělovače PHP, 507 00:25:29,240 --> 00:25:31,010 úhelník otazník php. 508 00:25:31,010 --> 00:25:35,180 Mezi těmi jsou splněny všechny PHP, že chci psát. 509 00:25:35,180 --> 00:25:37,840 Takže jsem zřejmě bude get-- Chystám se vyzve uživatele 510 00:25:37,840 --> 00:25:41,550 mi dát číslo, obchod, který proměnná, obchod v této proměnné $ x, 511 00:25:41,550 --> 00:25:43,320 všechno, co mi dal. 512 00:25:43,320 --> 00:25:48,590 Pak budu echo hard_square této hodnoty, 513 00:25:48,590 --> 00:25:50,370 a zřejmě bude k obratu na nový řádek 514 00:25:50,370 --> 00:25:53,590 jakož i, a pak o něco později budu vymezit funkci hard_square tak 515 00:25:53,590 --> 00:25:55,550 že když udělám zavolat na hard_square, 516 00:25:55,550 --> 00:25:58,160 že ví, o čem mluvím. 517 00:25:58,160 --> 00:26:00,705 >> A teď, mohl bych také udělat něco takového. 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 přesně téměř stejně jako to, co jsme viděli předtím, 520 00:26:04,190 --> 00:26:08,400 s výjimkou toho, jak říkat jen $ x tam jako parametr pro hard_square, 521 00:26:08,400 --> 00:26:11,730 Říkám $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Tak to je příklad defenzivní programování, 523 00:26:14,330 --> 00:26:17,070 střežení programy proti uživateli se zlými úmysly. 524 00:26:17,070 --> 00:26:20,020 >> To je jeden způsob, jak udělat nějaké chyby ověření, zda jsme opravdu 525 00:26:20,020 --> 00:26:24,670 mají jako možnost v C. Mohli bychom nikdy zadat výchozí hodnotu něčeho. 526 00:26:24,670 --> 00:26:27,010 Vždycky jsme měli zkontrolovat zda je, například, 527 00:26:27,010 --> 00:26:30,820 pokud jsme udělali výzvu k getString, to bylo nejvhodnějším pokud okamžitě poté, co 528 00:26:30,820 --> 00:26:33,300 ověřil, že, jsme ověřili zda řetězci 529 00:26:33,300 --> 00:26:35,504 že uživatel nám dala není rovno null, 530 00:26:35,504 --> 00:26:37,920 protože nechceme začít práce s prázdným řetězcem. 531 00:26:37,920 --> 00:26:39,670 >> Zde, je to způsob chránit proti tomu. 532 00:26:39,670 --> 00:26:43,480 Pokud uživatel nám neposkytuje něco nějak, co budeme dělat? 533 00:26:43,480 --> 00:26:46,080 No, prostě budeme říkat, co neměli nám poskytují, 534 00:26:46,080 --> 00:26:47,705 my jen tak místo toho připojit 10. 535 00:26:47,705 --> 00:26:52,030 Takže když nedali nám hodnotu, stačí použít 10 ve výchozím nastavení. A tak tady, 536 00:26:52,030 --> 00:26:53,940 Všimněte si, že dělám výzva k hard_square, 537 00:26:53,940 --> 00:26:55,980 ale není žádná výzva pro uživatele, že jo? 538 00:26:55,980 --> 00:26:57,540 Já jsem jen dělat prázdný volání. 539 00:26:57,540 --> 00:27:00,860 >> Ale moje funkce hard_square očekává parametr. 540 00:27:00,860 --> 00:27:02,222 Co se to bude tisknout? 541 00:27:02,222 --> 00:27:03,680 Bude to vytisknout 100, ne? 542 00:27:03,680 --> 00:27:05,720 Protože uživatel ne dej mi nic. 543 00:27:05,720 --> 00:27:08,970 A tak jsem jen tak předpokládat, že 10-- 10 je výchozí hodnota. 544 00:27:08,970 --> 00:27:13,760 A tak by to vytisknout out 100 na vlastním řádku. 545 00:27:13,760 --> 00:27:16,390 >> PHP soubory nemají na být jen jeden soubor. 546 00:27:16,390 --> 00:27:19,480 Můžete kombinovat více souborů dohromady, stejně jako je to možné v C. Cesta 547 00:27:19,480 --> 00:27:24,330 jsme, že v jazyce C byla typicky dělat #include se dostat hlavičkové soubory zajel. 548 00:27:24,330 --> 00:27:26,180 Nechceme udělat v PHP. 549 00:27:26,180 --> 00:27:29,110 Děláme něco jako require_once. 550 00:27:29,110 --> 00:27:33,360 A pak je tu celý tento věc, co je to __dir__? 551 00:27:33,360 --> 00:27:36,510 To je jen speciální variabilní, nebo speciální konstantní, 552 00:27:36,510 --> 00:27:39,030 Opravdu, který určuje, co váš aktuální adresář. 553 00:27:39,030 --> 00:27:41,320 A tak to bude vypadat v aktuálním adresáři 554 00:27:41,320 --> 00:27:44,900 pro soubor s názvem cs50.php v tomto příkladě, 555 00:27:44,900 --> 00:27:50,490 a to bude držet tento soubor v horní části programu PHP, 556 00:27:50,490 --> 00:27:56,980 za předpokladu, že jste dal require jakmile řádek v horní části souboru PHP. 557 00:27:56,980 --> 00:28:01,474 >> Takže PHP je primárně používán, ale ne výhradně používá, 558 00:28:01,474 --> 00:28:03,140 jako jazyk pro webové programování. 559 00:28:03,140 --> 00:28:05,270 To je opravdu, jak to přišlo být. 560 00:28:05,270 --> 00:28:06,980 Ale je to full jazyk, jak jsme viděli. 561 00:28:06,980 --> 00:28:10,105 Viděli jsme skoro všechny ty věci, že to může dělat, že jsou podobné C, 562 00:28:10,105 --> 00:28:13,290 a to může udělat sakra mnohem víc než to. 563 00:28:13,290 --> 00:28:16,950 >> Ale protože je to plná jazyk a my může udělat programování z příkazového řádku v něm. 564 00:28:16,950 --> 00:28:18,630 Můžeme spustit programy příkazového řádku. 565 00:28:18,630 --> 00:28:22,580 Vše, co je potřebné, abyste spustit příkaz linka program, který je napsán v PHP 566 00:28:22,580 --> 00:28:24,260 je to, že budete mít tlumočníka PHP. 567 00:28:24,260 --> 00:28:27,460 Takže je to něco analogický má kompilátor v systému 568 00:28:27,460 --> 00:28:31,100 Chcete-li zkompilovat C kód proměnit spustitelné soubory. 569 00:28:31,100 --> 00:28:33,810 Musíte mít tlumočníka PHP která existuje v systému 570 00:28:33,810 --> 00:28:37,330 takže můžete interpretovat PHP soubory. 571 00:28:37,330 --> 00:28:40,370 >> Za předpokladu, že jste, a obvykle tento interpret se nazývá PHP, 572 00:28:40,370 --> 00:28:44,300 a to je obvykle dodáván s většinou stahování nebo instalace PHP 573 00:28:44,300 --> 00:28:47,430 že můžete získat on-line, a jistě jméno tlumoč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še, co udělat, je typ php souboru. 576 00:28:51,819 --> 00:28:53,610 A jaký je váš program chystá udělat, je, že je to 577 00:28:53,610 --> 00:28:55,360 se projít tlumočník, je to 578 00:28:55,360 --> 00:28:58,040 bude ignorovat vše, co je není mezi otázce mark-- 579 00:28:58,040 --> 00:29:03,160 nebo, úhelník otazník php, oddělovače PHP, a vytisknout, 580 00:29:03,160 --> 00:29:07,660 a to bude interpretovat a spustit kód uvnitř vašich oddělovače PHP. 581 00:29:07,660 --> 00:29:12,850 >> Takže pojďme pop se k CS50 IDE a se podívat na pár PHP soubory, 582 00:29:12,850 --> 00:29:19,850 běží několik PHP soubory, v příkazového řádku rozhraní CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Tak tady jsme v CS50 IDE, a já jsem dovolil 584 00:29:22,100 --> 00:29:25,800 otevřít soubor s názvem hello1.php. 585 00:29:25,800 --> 00:29:29,920 A zdá se, že obsah tohoto Soubor jsou jen oddělovače PHP tam, 586 00:29:29,920 --> 00:29:32,220 a mezi tím, echo ("Hello, World"). 587 00:29:32,220 --> 00:29:34,710 To je docela jednoduchý PHP programu. 588 00:29:34,710 --> 00:29:37,670 Já jsem prostě jít posunout dolů do mého okna terminálu tady, 589 00:29:37,670 --> 00:29:44,320 a budu psát php hello1.php, stiskněte klávesu Enter. 590 00:29:44,320 --> 00:29:44,950 Ahoj světe. 591 00:29:44,950 --> 00:29:48,110 To je asi to, co jsme byli očekává, že k tomu, že jo? 592 00:29:48,110 --> 00:29:51,140 >> Pojďme nahoru a vzít jiný pohled na programu. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Víceméně totéž, není mnoho děje tady. 595 00:29:55,090 --> 00:29:57,190 Tentokrát však, budu výzvu Uživatel dát mi jejich jména. 596 00:29:57,190 --> 00:29:59,290 Já používám tuto funkci readline znovu. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 To je výzva, "Jak se jmenuješ?" 599 00:30:03,070 --> 00:30:04,880 >> Zřejmě Jsem tisk to na vlastním řádku. 600 00:30:04,880 --> 00:30:07,220 A pak, takže linie níže to bude výzva 601 00:30:07,220 --> 00:30:08,750 kde uživatel může zadat své jméno. 602 00:30:08,750 --> 00:30:12,030 A pak jsem pomocí trochu proměnná interpelace tady na lince 3 603 00:30:12,030 --> 00:30:14,780 vytisknout "ahoj" a co uživatel zadá. 604 00:30:14,780 --> 00:30:22,040 Tak tohle je analogický k tvrzení, Dobrý den, čárka,% s, když jsme používali printf v C. 605 00:30:22,040 --> 00:30:24,910 >> Takže pojďme a interpretovat tento program. 606 00:30:24,910 --> 00:30:27,400 Takže znovu, budu posunout dolů k mému okně 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 Jak se jmenuješ? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Dobrý den, Doug. 612 00:30:36,526 --> 00:30:39,440 Mám také další soubor s názvem hello3.php. 613 00:30:39,440 --> 00:30:42,850 Chystám se pročistil displej s Control L, 614 00:30:42,850 --> 00:30:46,210 a budu vykonávat to. 615 00:30:46,210 --> 00:30:47,640 Jak se jmenuješ? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Dobrý den, Doug. 618 00:30:49,780 --> 00:30:56,540 Takže chování je identické hello2.php, ale proč je to hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> No, tady je ten rozdíl. 620 00:30:58,040 --> 00:31:00,620 V tomto případě oznámení že na lince 1 zde, 621 00:31:00,620 --> 00:31:04,270 Mám něco, co není mezi oddělovače PHP. 622 00:31:04,270 --> 00:31:07,760 Já jsem jen tisk out-- nebo I právě zadali, "Jak se jmenuješ?" 623 00:31:07,760 --> 00:31:12,060 Když interpret PHP vidí, ho nemá ponětí, jak ji vykládat jako PHP, 624 00:31:12,060 --> 00:31:15,060 a tak místo toho selhání, je to jen bude vyplivnout. 625 00:31:15,060 --> 00:31:19,010 >> Takže si všimnout na řádku 3, můj volání readline, není výzva ještě. 626 00:31:19,010 --> 00:31:21,750 Jen jsem vlastně děje, když to-- interpret PHP vidí, 627 00:31:21,750 --> 00:31:23,400 to bude k vytištění "Jak se jmenuješ?" 628 00:31:23,400 --> 00:31:25,941 Pak se uvidí, oh, OK, here's-- vše ostatní bude 629 00:31:25,941 --> 00:31:29,970 interpretovány jako PHP, tak že je důvod, proč to funguje. 630 00:31:29,970 --> 00:31:34,990 Já nemusím nutně výzva uživatel to-- vnitřek readline, 631 00:31:34,990 --> 00:31:37,490 Já si jen mít to venku z oddělovače PHP 632 00:31:37,490 --> 00:31:41,490 a umožnit tlumočníka jen vytisknout pro mě. 633 00:31:41,490 --> 00:31:45,364 >> Takže nemáte skutečně mít pouze mít jednu sadu oddělovače PHP 634 00:31:45,364 --> 00:31:46,030 ve vašem programu. 635 00:31:46,030 --> 00:31:49,887 Můžete si skutečně mít několik z nich, otevírání a zavírání je podle potřeby. 636 00:31:49,887 --> 00:31:51,720 Takže pojďme se podívat na pár programů 637 00:31:51,720 --> 00:31:55,070 V CS50 IDE, kde jsme ilustrují tuto myšlenku mít 638 00:31:55,070 --> 00:31:58,376 více sad vymezeném PHP. 639 00:31:58,376 --> 00:32:02,010 >> OK, tak jsem otevřel soubor zde volal add1.php. 640 00:32:02,010 --> 00:32:03,390 A všimněte si, co se tady děje. 641 00:32:03,390 --> 00:32:08,077 Stejně jako předtím, mám jeden PHP soubor oddělovače. 642 00:32:08,077 --> 00:32:10,660 Jdu pro vytištění hlášení, "Prosím, dejte mi číslo." 643 00:32:10,660 --> 00:32:13,394 Pak budu číst linku a uložit jej do proměnné $ num1. 644 00:32:13,394 --> 00:32:14,810 Pak jsem Chystám se vytisknout znovu. 645 00:32:14,810 --> 00:32:16,310 Dej mi druhé číslo. 646 00:32:16,310 --> 00:32:20,450 Přečtěte si linku od uživatele, obchod všechno, co napsal ve v $ num2. 647 00:32:20,450 --> 00:32:23,980 Přidejte je dohromady a uložit, aby vést k proměnné nazvané $ součet, 648 00:32:23,980 --> 00:32:26,180 a pak vytisknout "The Součet těchto dvou čísel 649 00:32:26,180 --> 00:32:29,254 je, "a pak interpelovat tam proměnná $ částka. 650 00:32:29,254 --> 00:32:31,170 Takže pojďme stačí spustit tento přes tlumočníka 651 00:32:31,170 --> 00:32:33,720 potvrdit, že tohle je to, co očekáváme. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Prosím, dejte mi číslo, 3. 654 00:32:38,665 --> 00:32:40,410 Prosím, dejte mi druhé číslo, 4. 655 00:32:40,410 --> 00:32:43,370 Součet těchto dvou čí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 DOBŘE? 658 00:32:45,530 --> 00:32:47,770 Takže nic hrozně fantazie tam. 659 00:32:47,770 --> 00:32:51,080 >> A teď pojďme otevřít add2.php. 660 00:32:51,080 --> 00:32:54,460 Tady, mám pár PHP oddělený soupravy tam, že jo? 661 00:32:54,460 --> 00:32:59,107 Linky 1, 3-- řádky 1 a 3 nemají žádné oddělovače PHP. 662 00:32:59,107 --> 00:33:00,940 Takže když tlumočník vidí, že je to jen 663 00:33:00,940 --> 00:33:03,220 bude vyplivnout přesně to, co jsem napsal tam. 664 00:33:03,220 --> 00:33:05,011 Tak to je, kde jsem si dělá všechno moje výzvy. 665 00:33:05,011 --> 00:33:11,220 Na tratích 2 a 4, vidíme velmi povědomý $? php druh oddělovače, 666 00:33:11,220 --> 00:33:15,210 takže tyto dva řádky chystá spustit jako PHP. 667 00:33:15,210 --> 00:33:18,270 A pak na řádku 5, to mám divné tady, ne? 668 00:33:18,270 --> 00:33:20,480 Tento úhelník otazník rovnítko. 669 00:33:20,480 --> 00:33:22,660 Budu dokonce přiblížit trochu dál. 670 00:33:22,660 --> 00:33:29,270 Můžete vidět, je to, co chci mluví o právě tam, tento $? =. 671 00:33:29,270 --> 00:33:33,420 >> Ukazuje se, že je to tak běžné, že důvod, že jsme otevřít soubor PHP 672 00:33:33,420 --> 00:33:36,055 oddělovače je vytisknout hodnotu. 673 00:33:36,055 --> 00:33:37,430 A to je vše, co se chystáte udělat. 674 00:33:37,430 --> 00:33:39,220 Ale je tu i zkratka pro to. 675 00:33:39,220 --> 00:33:46,490 $? = Je zkratka pro PHP říká, něco jako $? php echo souč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 jen další zkratka pro to. 678 00:33:51,900 --> 00:33:55,550 >> Takže když jsem spustit tento program, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Budu přiblížení se trochu. 680 00:33:57,530 --> 00:33:59,000 Prosím, dejte mi číslo, 4. 681 00:33:59,000 --> 00:34:00,350 Prosím, dejte mi druhé číslo. 682 00:34:00,350 --> 00:34:04,650 A protože jsem opravdu nestarám o datové typy v PHP, mohu říci, 4.8. 683 00:34:04,650 --> 00:34:07,160 Součet těchto dvou čísel je 8.8. 684 00:34:07,160 --> 00:34:10,179 Tato funkce se chová docela hodně přesně to samé, jako bychom očekávali, 685 00:34:10,179 --> 00:34:10,989 také. 686 00:34:10,989 --> 00:34:13,114 A mám ještě jednu otevřel sem volal dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Zkuste to znovu. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Mám jednu více zde nazvaný dice1.php, který také, viz, 691 00:34:33,280 --> 00:34:37,440 má tento úhel konzoly otázku označit rovnítko notace tam, 692 00:34:37,440 --> 00:34:40,659 ale všimněte si, že v tomto případě nejsem volání funkce rand, který jako vy 693 00:34:40,659 --> 00:34:42,790 dalo očekávat vygeneruje náhodné číslo. 694 00:34:42,790 --> 00:34:46,889 "Válcované jsi," a bude to vypočítat nějaké 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 dát číslo v rozmezí od 1 do 6. 697 00:34:49,989 --> 00:34:53,040 >> Pamatujte si, že mod 6 by mi číslo v rozmezí od 0 do 5, 698 00:34:53,040 --> 00:34:56,630 ale když jsem simulovat hodů kostkou, což je to, co tady dělám, 699 00:34:56,630 --> 00:35:00,040 Nechci tyto kostky jít z 0 až 5, já chci kostky, které jdou od 1 do 6. 700 00:35:00,040 --> 00:35:02,800 A tak to je způsob, jak se dostat me v rozmezí od 1 do 6. 701 00:35:02,800 --> 00:35:04,720 Dělám to dvakrát. 702 00:35:04,720 --> 00:35:08,630 Tak prý jsem válcování dvě kostky v tomto programu. 703 00:35:08,630 --> 00:35:15,210 >> Tak jsem si pročistit obrazovku, a udělám php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Můžete válcované 4 a 2. 705 00:35:16,640 --> 00:35:19,156 A když jsem spustit program znovu, přivalil 5 a 5. 706 00:35:19,156 --> 00:35:21,780 Takže pokaždé, když jsem se spustit program, Začínám různá čísla, 707 00:35:21,780 --> 00:35:24,280 proto, že pokaždé, když jsem dělat ano, je to nový začátek. 708 00:35:24,280 --> 00:35:27,250 Bude to vytvářet nové sada náhodných čísel pro mě. 709 00:35:27,250 --> 00:35:29,790 >> Takže pokud jsme zvyklí spouštění programů z C, 710 00:35:29,790 --> 00:35:32,520 jsme zvyklí psát ./ název programu, je to tak? 711 00:35:32,520 --> 00:35:35,090 To je, jak jsme udělali vše, z našich programů v C tak daleko. 712 00:35:35,090 --> 00:35:37,555 Můžeme to udělat v PHP, stejně tím, že přidá něco, co nazývá 713 00:35:37,555 --> 00:35:40,026 shebang na vrchol našeho souboru PHP. 714 00:35:40,026 --> 00:35:41,400 Já vím, je to trochu hloupé slovo. 715 00:35:41,400 --> 00:35:44,540 Je to zkratka pro hash třesku. 716 00:35:44,540 --> 00:35:46,300 To je první dva znaky tam. 717 00:35:46,300 --> 00:35:50,030 Pamatujte si, říkáme vykřičník často bang ve vědě o počítačích. 718 00:35:50,030 --> 00:35:51,690 Rovněž by mohlo být pro ostrý třesku. 719 00:35:51,690 --> 00:35:53,273 Je tu pár způsobů, jak ji interpretovat. 720 00:35:53,273 --> 00:35:57,320 Ale je to v podstatě zvláštní druh velení, že interpret PHP 721 00:35:57,320 --> 00:36:00,160 chápe jako, oh, chci můžete spustit tento program, 722 00:36:00,160 --> 00:36:05,250 což je zřejmě / uživatel / bin / php, který je vlastně kdy tlumočník PHP 723 00:36:05,250 --> 00:36:08,590 konkrétně žije v našem systému. 724 00:36:08,590 --> 00:36:12,530 Tak it's-- co se stane, je zde tlumočník chápe, oh, 725 00:36:12,530 --> 00:36:17,270 Mám prý měla používat v tomto programu na spuštění tohoto souboru. 726 00:36:17,270 --> 00:36:20,010 A tak to vám umožní přeskočit kroku 727 00:36:20,010 --> 00:36:22,979 aby musel říct php something.php. 728 00:36:22,979 --> 00:36:25,020 Je tu ještě jedna další háček tu, která je, že pokud budeme 729 00:36:25,020 --> 00:36:27,320 aby naše programy na fungovat podle očekávání, my 730 00:36:27,320 --> 00:36:30,220 musíte udělat něco, co nazývá změna oprávnění souboru. 731 00:36:30,220 --> 00:36:33,380 A budeme go-- a budeme mluvit trochu bit další změny oprávnění o souboru 732 00:36:33,380 --> 00:36:37,550 v naší video na MVC, ale postačí říkají, že to je to, co musíte udělat, 733 00:36:37,550 --> 00:36:42,760 tak, aby vaše .php soubory spustitelný. 734 00:36:42,760 --> 00:36:49,330 Takže pojďme se podívat na to, jak náš poslední příklad než v CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Tak tady v IDE Mám dva soubory v této PHP adresář, který nezdá být 736 00:36:53,910 --> 00:36:55,310 volal .php. 737 00:36:55,310 --> 00:36:58,170 Mám funkce nazvaná add-- Mám soubor s názvem ADD3 738 00:36:58,170 --> 00:37:00,650 a soubor s názvem dice2. 739 00:37:00,650 --> 00:37:03,680 Takže pojďme se rychlou vypadat a otevřít ADD3. 740 00:37:03,680 --> 00:37:08,300 A jak můžete vidět, na začátku mého souboru Mám shebang, že jo? 741 00:37:08,300 --> 00:37:11,420 Tento hash značka vykřičník. 742 00:37:11,420 --> 00:37:15,115 Nyní, budete také možná budete Všimněte si, že z nějakého důvodu, 743 00:37:15,115 --> 00:37:16,990 Nemám žádnou syntaxi zvýraznění už, 744 00:37:16,990 --> 00:37:20,198 a to je to, co jsem zmínil dříve, což bylo, že pokud nemám nazvat svůj soubor 745 00:37:20,198 --> 00:37:23,040 .php, nemám výhodu syntaxe zvýraznění ještě. 746 00:37:23,040 --> 00:37:26,220 Tento soubor je právě volal ADD3. 747 00:37:26,220 --> 00:37:30,960 Takže můžu spustit později s ./ ADD3 a ne ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Takže je to stále reason-- v pořádku, je to stále platný PHP, 749 00:37:33,680 --> 00:37:37,000 ale to není syntaxe zvýrazněny, protože tento soubor není volána something.php. 750 00:37:37,000 --> 00:37:41,580 To je jediný skutečný rozdíl tady, plus shebang. 751 00:37:41,580 --> 00:37:45,170 Tak uvidíme, co se stane, když Snažím se spustit tento program. 752 00:37:45,170 --> 00:37:50,780 ./ ADD3, stejně jako bych s C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Povolení ADD3 odepřen. 754 00:37:53,190 --> 00:37:55,390 To je to, co budete zjistit, jestli jste zapomněl 755 00:37:55,390 --> 00:37:59,280 použití příkazu chmod ke změně oprávnění souboru. 756 00:37:59,280 --> 00:38:03,845 >> Jak se ukázalo, pravidelné PHP soubory nelze jen být provedeny. 757 00:38:03,845 --> 00:38:06,970 Ty mohou být interpretovány, ale my jsme dělá něco tady trochu jiného. 758 00:38:06,970 --> 00:38:07,761 Jsme spuštěním. 759 00:38:07,761 --> 00:38:12,970 A tak musím přidat oprávnění popravy, chmod a + x do ADD3. 760 00:38:12,970 --> 00:38:15,680 Pak mohu říci ./ ADD3. 761 00:38:15,680 --> 00:38:16,860 Prosím, dejte mi číslo. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Součet těchto dvou čísel je 11. 764 00:38:20,490 --> 00:38:26,530 >> Stejně tak, jsem již chmoded dice2, tak jsem si jen zadat ./ dice2, 765 00:38:26,530 --> 00:38:31,260 jste válcované 1 a 1, vy válcované 5 a 4, a tak dále. 766 00:38:31,260 --> 00:38:33,680 >> Tak to je docela hodně Myšlenka syntaxe PHP, že jo? 767 00:38:33,680 --> 00:38:35,221 Je tu hodně projít, já vím. 768 00:38:35,221 --> 00:38:39,160 Ale doufejme, že jste teď viděli, že PHP není opravdu tak odlišné od C 769 00:38:39,160 --> 00:38:43,670 a nám opravdu dává možnost vzít věci do zářezu nebo dva. 770 00:38:43,670 --> 00:38:48,230 Nemáme opravdu mít strach moc about-- my opravdu 771 00:38:48,230 --> 00:38:51,605 muset starat příliš o podrobnosti o low-úrovni se 772 00:38:51,605 --> 00:38:52,980 musel obávat s C, ne? 773 00:38:52,980 --> 00:38:56,170 Můžeme se soustředit na vyšší level věci, které PHP 774 00:38:56,170 --> 00:39:01,090 nám umožňuje dělat a brát za samozřejmé, že to bude fungovat pro nás. 775 00:39:01,090 --> 00:39:04,350 Tak nám to dává možnost teď, přechodu z C do PHP, 776 00:39:04,350 --> 00:39:08,280 aby programy, které jsou mnohem více komplexní a možná mnohem robustnější. 777 00:39:08,280 --> 00:39:13,070 >> Takže doufám, že se budete bavit práci s PHP, a já jsem Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 To je CS50. 779 00:39:15,050 --> 00:39:17,637