1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [§ 8] [méně komfortní] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [To je CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Vítejte v našem sekundě poslední části. 5 00:00:11,000 --> 00:00:13,000 V tomto týdnu budeme mluvit o PHP, a pak příští týden 6 00:00:13,000 --> 00:00:17,000 uděláme malou recenzi na Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Budeme začít na straně 3 tohoto problému sady pack, 8 00:00:20,000 --> 00:00:28,000 a budeme pracovat prostřednictvím sekce otázek poměrně rychle. 9 00:00:28,000 --> 00:00:34,000 Na stránce 3, začneme mluvit o tomto rozdílu mezi C a PHP 10 00:00:34,000 --> 00:00:38,000 v tom smyslu, že PHP je dynamicky typový jazyk, 11 00:00:38,000 --> 00:00:42,000 vzhledem k tomu, C je staticky zadali, 12 00:00:42,000 --> 00:00:46,000 a někdo opravdu rychle udělat nějaké kódování v něco jako PHP 13 00:00:46,000 --> 00:00:51,000 nebo Python nebo Ruby před JavaScriptu? 14 00:00:51,000 --> 00:00:53,000 Zcela nový? Dobře. 15 00:00:53,000 --> 00:00:56,000 >> Všechny z těchto jazyků, které jsem právě zmínil 16 00:00:56,000 --> 00:01:01,000 jsou velmi odlišné od jazyků, jako je C a C + + a Java 17 00:01:01,000 --> 00:01:04,000 v tom smyslu, že když deklarujete proměnnou nemusíte deklarovat 18 00:01:04,000 --> 00:01:09,000 jaké proměnné je, tak v C jsme přilepená museli vždycky říkám 19 00:01:09,000 --> 00:01:13,000 to bude int proměnné, nebo to bude char * variabilní, 20 00:01:13,000 --> 00:01:16,000 vzhledem k tomu, s PHP, Python, Ruby, s 21 00:01:16,000 --> 00:01:20,000 s mnoha z těchto více moderních jazyků nemusíte dělat, že vůbec. 22 00:01:20,000 --> 00:01:24,000 Stačí deklarovat svou proměnnou, a v případě PHP 23 00:01:24,000 --> 00:01:28,000 můžete prohlásit, že je to proměnná prefixing to s znakem $, 24 00:01:28,000 --> 00:01:35,000 a pak se typ proměnné je určen kterékoliv hodnoty to drží, 25 00:01:35,000 --> 00:01:38,000 což je docela fajn. 26 00:01:38,000 --> 00:01:44,000 Chcete-li hrát si s tímto trochu, máme ukázkový PHP kód přímo zde 27 00:01:44,000 --> 00:01:47,000 mezi počáteční a koncovou značku. 28 00:01:47,000 --> 00:01:53,000 Jsme použití tohoto druhu jako HTML v tom smyslu, že 29 00:01:53,000 --> 00:01:56,000 máme tyto úhelníky zde pro otevření a zavření. 30 00:01:56,000 --> 00:01:58,000 Uvidíte to s HTML. 31 00:01:58,000 --> 00:02:03,000 Uvidíte stejnou syntaxi s XML taky. 32 00:02:03,000 --> 00:02:06,000 >> To ukazuje na začátek bloku PHP. 33 00:02:06,000 --> 00:02:09,000 To? Php je specifické pro PHP. 34 00:02:09,000 --> 00:02:16,000 Zavřeme vše s> i. 35 00:02:16,000 --> 00:02:22,000 Pojďme otevřít soubor v našem zařízení za použití jakýchkoliv byste chtěli. 36 00:02:22,000 --> 00:02:25,000 V tomto paketu se říká, volat dynamic.php. 37 00:02:25,000 --> 00:02:29,000 Po pravdě řečeno, můžete volat to, co si přejete, ale název souboru přijde 38 00:02:29,000 --> 00:02:34,000 a být důležité později, takže stačí vzpomenout jak se tomu říká. 39 00:02:34,000 --> 00:02:36,000 Chystám se přejít na spotřebiče, 40 00:02:36,000 --> 00:02:43,000 a já budu dělat adresář pro 41 00:02:43,000 --> 00:02:48,000 oddíl 9 Věřím, že jsme teď. 42 00:02:48,000 --> 00:02:51,000 A půjdeme do sekce 9, 43 00:02:51,000 --> 00:02:54,000 a budu používat gedit. 44 00:02:54,000 --> 00:02:59,000 Pojďme se podívat, gedit, a budu volat moje dynamic.php. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 V dynamic.php, protože to je PHP souboru 47 00:03:06,000 --> 00:03:09,000 a chci spustit tak prostřednictvím tlumočníka PHP 48 00:03:09,000 --> 00:03:12,000 Musím začít všechno pryč s těmi otevřenými značek, 49 00:03:12,000 --> 00:03:17,000 takže budu začít ty hned, 50 00:03:17,000 --> 00:03:23,000 dávám málo místa v mezi značkami, 51 00:03:23,000 --> 00:03:26,000 a pak bod tohoto cvičení bylo hrát si s 52 00:03:26,000 --> 00:03:34,000 tato funkce se nazývá GetType, tak GetType, tuto funkci tady. 53 00:03:34,000 --> 00:03:38,000 >> Všimněte si, že tam je žádné podtržení nebo prostor nebo pomlčku nebo něco podobného, ​​že 54 00:03:38,000 --> 00:03:42,000 oddělení na 2 slova, získat a zadejte, jen jedno slovo úplně. 55 00:03:42,000 --> 00:03:46,000 Ale co to bude dělat, je-li jsem se projít v proměnné GetType, 56 00:03:46,000 --> 00:03:51,000 říkají, $ var nebo $ x, 57 00:03:51,000 --> 00:03:55,000 to mi druh ve ladění formátu 58 00:03:55,000 --> 00:03:59,000 to, co název tohoto typu je. 59 00:03:59,000 --> 00:04:03,000 Budeme experimentovat zde. 60 00:04:03,000 --> 00:04:07,000 Zejména, když se podíváte zpátky na PSet spec 61 00:04:07,000 --> 00:04:11,000 máme několik různých řádků kódu zde. 62 00:04:11,000 --> 00:04:16,000 V prvním řádku kódu jsme inicializovat proměnnou, $ var, 63 00:04:16,000 --> 00:04:21,000 se rovná 7, a pak máme tento printf linku 64 00:04:21,000 --> 00:04:25,000 , který říká, hey, printf var je prázdný. 65 00:04:25,000 --> 00:04:29,000 Printf je jedním z mnoha způsobů, jak lze vytisknout věci v PHP. 66 00:04:29,000 --> 00:04:33,000 Často uvidíte echo funkci použít místo printf, 67 00:04:33,000 --> 00:04:40,000 ale printf jsme všichni obeznámeni s mít been kódování v C na chvíli. 68 00:04:40,000 --> 00:04:42,000 Co můžete udělat, je skutečně uvidíme, jestli kopírování a vložení práce. 69 00:04:42,000 --> 00:04:46,000 Chystám se dát to zkusit. 70 00:04:46,000 --> 00:04:52,000 Vrátíme se k zařízení. 71 00:04:52,000 --> 00:05:00,000 Dobře, a tam jdeme. 72 00:05:00,000 --> 00:05:05,000 A rozestup je trochu funky, ale je to tady. 73 00:05:05,000 --> 00:05:08,000 Máme tento kód zde. 74 00:05:08,000 --> 00:05:11,000 >> [Student] Není to dobrý styl na kartě to? 75 00:05:11,000 --> 00:05:13,000 Je nám líto? 76 00:05:13,000 --> 00:05:15,000 [Student] Je to konvenční záložce? 77 00:05:15,000 --> 00:05:21,000 Správně, takže Sam se zeptá, zda je to konvence kartu, nebo ne. 78 00:05:21,000 --> 00:05:23,000 Typicky ano. 79 00:05:23,000 --> 00:05:26,000 V tomto případě jsem zvolil ne. 80 00:05:26,000 --> 00:05:33,000 Upřímně řečeno, uvidíte různé věci mezi různými programátory. 81 00:05:33,000 --> 00:05:40,000 PHP se obvykle používá často v kombinaci s HTML 82 00:05:40,000 --> 00:05:45,000 a další jazyky, a tak někdy tisk bude vypadat trochu funky 83 00:05:45,000 --> 00:05:50,000 Pokud odrážka v počáteční a koncovou PHP značku. 84 00:05:50,000 --> 00:05:53,000 To opravdu záleží. 85 00:05:53,000 --> 00:05:56,000 V tomto případě zkopírujte a vložte ani vložit karty v pro mě, 86 00:05:56,000 --> 00:06:02,000 ale rozhodně to, jak jsi říkal, aby to jasnější. 87 00:06:02,000 --> 00:06:06,000 Dobře, pokud si uložit tento kód do dynamic.php 88 00:06:06,000 --> 00:06:10,000 pak to, co můžete udělat, je přijít dolů do okna terminálu, kde jsem tady dole 89 00:06:10,000 --> 00:06:17,000 v gedit, a to ekvivalent kompilaci 90 00:06:17,000 --> 00:06:20,000 používání make a pak běží kód v C 91 00:06:20,000 --> 00:06:25,000 vše, co musíte udělat, se souborem PHP je nastartovat tlumočníka PHP, 92 00:06:25,000 --> 00:06:30,000 což je malý program, nazvaný PHP, 93 00:06:30,000 --> 00:06:35,000 a argument dát na tlumočníka, je soubor, který chcete interpretovat. 94 00:06:35,000 --> 00:06:40,000 V tomto případě, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Jejda, kde jsem dal to? 96 00:06:43,000 --> 00:06:52,000 Oh, jsem si ho v kapitole 9, a jsem tady. To je důvod, proč. 97 00:06:52,000 --> 00:06:57,000 >> Nyní, když jsem spustit znova 98 00:06:57,000 --> 00:07:02,000 vidíme, že v mé první výzvě GetType funkce 99 00:07:02,000 --> 00:07:04,000 var je celé číslo. 100 00:07:04,000 --> 00:07:12,000 V příští var je řetězec, a pak ve třetí var je boolean. 101 00:07:12,000 --> 00:07:15,000 Co je na tom zajímavé je, pokud bychom se posunout zpět, vidíme, že 102 00:07:15,000 --> 00:07:18,000 jsou typy podobné těm, které jsme měli v C. 103 00:07:18,000 --> 00:07:22,000 Měli jsme ints v C. 104 00:07:22,000 --> 00:07:26,000 Jsme trochu měli řetězců v C, 105 00:07:26,000 --> 00:07:31,000 takže řetězce nebyly úplně důvěryhodně typ v tom smyslu, že 106 00:07:31,000 --> 00:07:37,000 náš CS50 řetězec byl opravdu to, co? 107 00:07:37,000 --> 00:07:39,000 Je nám líto? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Jo, to byl tento char * jsme použili. 110 00:07:43,000 --> 00:07:47,000 Na samém začátku semestru jsme používali typ řetězce, 111 00:07:47,000 --> 00:07:52,000 ale bylo to opravdu char * pod kapotou. 112 00:07:52,000 --> 00:07:58,000 Právě jsme typem definoval to, že v PHP tyto řetězce jsou pro konkrétní typ. 113 00:07:58,000 --> 00:08:07,000 Není více o tomto char věci * typ. 114 00:08:07,000 --> 00:08:10,000 >> Uvidíte, že můžeme dělat mnohem více věcí s řetězci 115 00:08:10,000 --> 00:08:14,000 mnohem snadněji v PHP, než jsme mohli v C, 116 00:08:14,000 --> 00:08:17,000 a pak konečně, máme tuto booleovský typ, a velký rozdíl je, že 117 00:08:17,000 --> 00:08:21,000 pokud bychom se posunout zpět dolů, vidíme, že název těchto typů 118 00:08:21,000 --> 00:08:28,000 jsou nyní integer, string, a boolean místo int a bool, 119 00:08:28,000 --> 00:08:31,000 a jak si vyzvednout různé programovací jazyky, 120 00:08:31,000 --> 00:08:36,000 za předpokladu, že v určitém okamžiku ve vašich životech vám přijít do styku s 121 00:08:36,000 --> 00:08:40,000 různé ty si všimnete malé mouchy, jako je tato 122 00:08:40,000 --> 00:08:44,000 kde C volá celá čísla typu int. 123 00:08:44,000 --> 00:08:46,000 Někteří to nazývají celá čísla. 124 00:08:46,000 --> 00:08:51,000 Existují i ​​jiné pojmy, které budete spouštět do. 125 00:08:51,000 --> 00:08:55,000 Big int jsme dnes viděli v SQL. 126 00:08:55,000 --> 00:08:59,000 Tam jsou také množství a klepněte na bool, boolean, 127 00:08:59,000 --> 00:09:03,000 všechny druhy rozdílů tam. 128 00:09:03,000 --> 00:09:07,000 >> To není příliš zajímavé, ale teď budu vám trochu času, 129 00:09:07,000 --> 00:09:13,000 pokud se přiblížit zpět k práci toto cvičení na spodní straně 3 130 00:09:13,000 --> 00:09:20,000 kde se požaduje, jaké typy odpovídají tyto hodnoty zde dole. 131 00:09:20,000 --> 00:09:24,000 Máme 3,50. 132 00:09:24,000 --> 00:09:28,000 Máme tu věc tady, což je zajímavé. 133 00:09:28,000 --> 00:09:32,000 Neviděli jsme, že dříve, ale pokud jste sledovali společně v přednášce 134 00:09:32,000 --> 00:09:35,000 již pravděpodobně víte, co to je. 135 00:09:35,000 --> 00:09:40,000 Pak máme toto, což je druh funky. 136 00:09:40,000 --> 00:09:42,000 Poznáváte tohle. 137 00:09:42,000 --> 00:09:46,000 Co je to v C? 138 00:09:46,000 --> 00:09:50,000 Sam? Co by to dát v C? 139 00:09:50,000 --> 00:09:54,000 To by otevřít soubor s názvem dynamic.php a učinit z něj čitelné. 140 00:09:54,000 --> 00:09:58,000 Jo, a jaké by měly být typ proměnné, které bychom přiřadit to? Hvězdy souboru >>. 141 00:09:58,000 --> 00:10:02,000 Přesně tak, bychom přiřadit to do souboru hvězdy. 142 00:10:02,000 --> 00:10:08,000 To je legitimní PHP příliš. 143 00:10:08,000 --> 00:10:12,000 Spustit to. Podívejte se, co se stane, když minete, že do GetType. 144 00:10:12,000 --> 00:10:19,000 A pak také zjistit, co null, co by to mohlo být v PHP. 145 00:10:19,000 --> 00:10:21,000 Dám vám pár minut. 146 00:10:21,000 --> 00:10:24,000 Můžete si doslova zkopírovat a vložit tyto hodnoty, 147 00:10:24,000 --> 00:10:29,000 a pak budeme dělat trochu náhodný hovor na vás 148 00:10:29,000 --> 00:10:34,000 a uvidíte, co máš. 149 00:10:34,000 --> 00:10:36,000 >> [Student] Mám dotaz. << Jo. 150 00:10:36,000 --> 00:10:40,000 V jedné z přednášek David řekl, že je to něco, co si můžete dát v horní části souboru 151 00:10:40,000 --> 00:10:43,000 takže nemusíte psát v PHP pokaždé. 152 00:10:43,000 --> 00:10:45,000 Co to bylo? 153 00:10:45,000 --> 00:10:50,000 On byl pravděpodobně mluví o libře třesku, hash bang. 154 00:10:50,000 --> 00:10:57,000 Je to směrnice, která, pokud označíte soubor jako spustitelný 155 00:10:57,000 --> 00:11:01,000 pak to, co dělá, je při spuštění souboru 156 00:11:01,000 --> 00:11:06,000 bude vyprávět shell program 157 00:11:06,000 --> 00:11:12,000 používat PHP interpret interpretovat obsah souboru. 158 00:11:12,000 --> 00:11:16,000 Otázkou je, co je to speciální linka 159 00:11:16,000 --> 00:11:20,000 že jsme je mohli zařadit na vrcholu našich PHP souborů nemusí zahrnovat 160 00:11:20,000 --> 00:11:26,000 tento řádek PHP nebo tento příkaz PHP kdykoliv chceme spustit soubor? 161 00:11:26,000 --> 00:11:31,000 A můžete skutečně udělat s partou různých souborů. 162 00:11:31,000 --> 00:11:37,000 Věřím, že to záleží na tom, kde je uložen binární PHP, 163 00:11:37,000 --> 00:11:43,000 ale často usr / bin / php je dobré místo pro start. 164 00:11:43,000 --> 00:11:45,000 Můžete přijít na tohle přesně tím, že jde zpátky do svého zařízení 165 00:11:45,000 --> 00:11:50,000 a psát, jaké php. 166 00:11:50,000 --> 00:11:55,000 Který příkaz zjistí, když jste provádění binární 167 00:11:55,000 --> 00:12:01,000 nebo příkaz, kde odpovídající soubor. 168 00:12:01,000 --> 00:12:06,000 To mi říká, že PHP je opravdu aliasing tento binární soubor 169 00:12:06,000 --> 00:12:13,000 že jsou uloženy v usr / bin, což je, kde jsou nainstalovány mnoho systémových binárních souborů. 170 00:12:13,000 --> 00:12:21,000 Například, když jsem přejděte až na vrchol, teď, když jsem si tohle #! linka zde 171 00:12:21,000 --> 00:12:27,000 Mohu přejděte dolů, a můžu zkusit spustit 172 00:12:27,000 --> 00:12:35,000 dynamic.php, ale já jsem tuto chybu o povolení zbaven, 173 00:12:35,000 --> 00:12:42,000 a co to znamená, je to, že tento soubor není v současné době dává spustitelných oprávnění. 174 00:12:42,000 --> 00:12:46,000 Není to označeno jako soubor, který někdo může běžet. 175 00:12:46,000 --> 00:12:52,000 >> Když běžel iniciovat nebo zvonění a máte spustitelný z něj 176 00:12:52,000 --> 00:12:56,000 kompilátor byl dost chytrý, aby věděl, že hej, já stavím spustitelný. 177 00:12:56,000 --> 00:13:00,000 Pravděpodobně budete chtít provést, tak to by automaticky nakonfigurovat 178 00:13:00,000 --> 00:13:02,000 oprávnění pro vás. 179 00:13:02,000 --> 00:13:06,000 To není případ, i když, když vytvoříte normální soubor od nuly, 180 00:13:06,000 --> 00:13:13,000 Důvodem je obvykle nechcete mít libovolný soubor v systému být spustitelný, 181 00:13:13,000 --> 00:13:15,000 takže máte skutečně jít a ručně to. 182 00:13:15,000 --> 00:13:22,000 Nejjednodušší způsob, jak to udělat, je pomocí příkazu chmod, 183 00:13:22,000 --> 00:13:28,000 a chmod + x říká přidat spustitelný bit 184 00:13:28,000 --> 00:13:31,000 protože tam je čtení bit, zápisu bit a bit spouštění, 185 00:13:31,000 --> 00:13:35,000 r, w a x, 186 00:13:35,000 --> 00:13:39,000 a říká chmod + x zapne spustitelného bit 187 00:13:39,000 --> 00:13:46,000 pro pak soubor, který jsme určíte, která v tomto případě bude dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Student] je, že se obrátil na pro každého? 189 00:13:49,000 --> 00:13:52,000 Pojďme se podívat na tohle, tak jak bych zkontrolovat oprávnění? 190 00:13:52,000 --> 00:13:54,000 Víte, jak bych zkontrolovat oprávnění souboru? 191 00:13:54,000 --> 00:13:56,000 [Neslyšitelné Student odpověď] 192 00:13:56,000 --> 00:13:58,000 Je nám líto? >> [Student] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD nám dává soubor hacků. 194 00:14:03,000 --> 00:14:09,000 Výpis všech souborů,-l, ukáže mi všechny soubory v mém adresáři 195 00:14:09,000 --> 00:14:13,000 druh v jejich dlouhé, seznam podrobného, ​​a tak zde vidíme, že 196 00:14:13,000 --> 00:14:17,000 tento dynamic.php soubor 197 00:14:17,000 --> 00:14:23,000 byla naposledy editována 5.listopadu v 16:21. 198 00:14:23,000 --> 00:14:26,000 Majitel tohoto souboru je jharvard. 199 00:14:26,000 --> 00:14:28,000 To je uživatel, který je přihlášen 200 00:14:28,000 --> 00:14:31,000 To je uživatel pracuji jako, 201 00:14:31,000 --> 00:14:36,000 a pokud jste také v zařízení budete také pracovat jako uživatel jharvard. 202 00:14:36,000 --> 00:14:38,000 Jste ve skupině studentů, 203 00:14:38,000 --> 00:14:44,000 a to jsou věci, které uvidíte dost často. 204 00:14:44,000 --> 00:14:47,000 >> Můžeme jít do množství detailů zde 205 00:14:47,000 --> 00:14:50,000 ale z velké části to, co budete chtít podívat na když hledáte vidět 206 00:14:50,000 --> 00:14:55,000 zda je soubor spustitelný je primárně 207 00:14:55,000 --> 00:14:58,000 uživatel, který vlastní soubor, majitel, 208 00:14:58,000 --> 00:15:03,000 tak to jharvard, a pak máme 209 00:15:03,000 --> 00:15:07,000 oprávnění, bity přes tu na levé straně, 210 00:15:07,000 --> 00:15:13,000 a způsob čtení je to, že poslední bit 211 00:15:13,000 --> 00:15:18,000 obvykle se používá k označení, zda-alespoň v tomto případě 212 00:15:18,000 --> 00:15:21,000 Tento poslední bit bude často být nastaven na reklamní uvést 213 00:15:21,000 --> 00:15:24,000 že soubor je adresář a ne jen normální soubor. 214 00:15:24,000 --> 00:15:28,000 Pak následující 3 bity přímo zde 215 00:15:28,000 --> 00:15:34,000 určit oprávnění, že vlastníkem souboru má, 216 00:15:34,000 --> 00:15:38,000 takže v tomto případě jharvard, jako vlastníka souboru, umí číst a psát tento soubor, 217 00:15:38,000 --> 00:15:42,000 ale tam je pomlčka říká, že jharvard nelze spustit tento soubor. 218 00:15:42,000 --> 00:15:46,000 Dalších 3 bity jsou pro skupinu, takže toto je studenti skupina, 219 00:15:46,000 --> 00:15:49,000 takže pokud tam byly více uživatelů na mém zařízení, 220 00:15:49,000 --> 00:15:52,000 a my jsme více uživatelů jako součást studentů skupiny, 221 00:15:52,000 --> 00:15:55,000 pak mohou všichni tento soubor číst, ale neumí psát to, 222 00:15:55,000 --> 00:15:59,000 a podobně někdo jiný, svět 223 00:15:59,000 --> 00:16:01,000 lze pouze číst tento soubor také. 224 00:16:01,000 --> 00:16:03,000 Tam je dobrý, dlouho writeup o tom, 225 00:16:03,000 --> 00:16:05,000 takže si můžete přečíst on-line. 226 00:16:05,000 --> 00:16:10,000 V spec problému nastavené jdeme do toho podrobněji. 227 00:16:10,000 --> 00:16:12,000 >> [Student] Je 218 s odkazem na světě? 228 00:16:12,000 --> 00:16:17,000 The 218 je-off z vrcholu mé hlavě jsem zapomněla, 229 00:16:17,000 --> 00:16:20,000 ale ne. 230 00:16:20,000 --> 00:16:29,000 Pojďme se podívat,. Jsem zaslepení na tom teď. 231 00:16:29,000 --> 00:16:32,000 Zpět na to, co jsme měli co do činění s tímto chmod + x 232 00:16:32,000 --> 00:16:37,000 kde jsme chtěli dát dynamic.php spustitelné oprávnění, 233 00:16:37,000 --> 00:16:40,000 a bylo otázkou, zda nebo ne toto by spustitelné oprávnění pro každého 234 00:16:40,000 --> 00:16:44,000 nebo jen jharvard, a můžeme vidět podle 235 00:16:44,000 --> 00:16:48,000 spuštění příkazů a psaní ls-l, 236 00:16:48,000 --> 00:16:51,000 a teď vidíme, že je to označeno jako spustitelný. 237 00:16:51,000 --> 00:16:54,000 Můžete vidět, že tam byla změna barvy. 238 00:16:54,000 --> 00:16:57,000 Nyní dynamic.php je uveden v zelené, 239 00:16:57,000 --> 00:17:01,000 a vypadá to, že odpověď na otázku je to, co, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Pouze jharvard. >> Pouze jharvard, jo. 241 00:17:04,000 --> 00:17:08,000 >> Pokud bychom chtěli se otočit spustitelný bit pro všechny 242 00:17:08,000 --> 00:17:10,000 jak můžeme udělat, že? 243 00:17:10,000 --> 00:17:13,000 Jakékoliv myšlenky? >> + X? 244 00:17:13,000 --> 00:17:15,000 Jo, přesně tak. 245 00:17:15,000 --> 00:17:23,000 Charlotte řekla, co můžeme udělat chmod o + x z dynamic.php, 246 00:17:23,000 --> 00:17:26,000 a teď, když jsme se spustit ls-l vidíme, že spustitelné bity 247 00:17:26,000 --> 00:17:30,000 skutečně zapnuta pro každého. 248 00:17:30,000 --> 00:17:37,000 A můžete skutečně udělat opak tohoto, takže si můžete vypnout pro všechny 249 00:17:37,000 --> 00:17:41,000 pomocí minus. 250 00:17:41,000 --> 00:17:46,000 Nyní je vypnutý, a nyní můžeme jej znovu zapněte pro jharvard 251 00:17:46,000 --> 00:17:52,000 takže můžeme skutečně spustit hned, 252 00:17:52,000 --> 00:17:58,000 a teď vidíte, když jsme se spustit kód této speciální #! linka nahoře, 253 00:17:58,000 --> 00:18:04,000 #! line, řekl shell, 254 00:18:04,000 --> 00:18:08,000 řekl našemu terminálu hey, při spuštění tento soubor, 255 00:18:08,000 --> 00:18:14,000 použít / usr / bin / php interpretovat tento soubor 256 00:18:14,000 --> 00:18:20,000 a pak vytisknout výstup. 257 00:18:20,000 --> 00:18:22,000 [Neslyšitelné Student otázka] 258 00:18:22,000 --> 00:18:25,000 Jistě, dovolte mi, abych se posunout zpět. Stejně jako tento. 259 00:18:25,000 --> 00:18:36,000 Uvidíte všechny z těchto směrnic začít s tímto libru a pak vykřičník, 260 00:18:36,000 --> 00:18:39,000 někdy volal shebang, hash bang. 261 00:18:39,000 --> 00:18:48,000 >> [Student] Jak můžeme spustit s dynamic.php php, než jsme dělat to spustitelný? 262 00:18:48,000 --> 00:18:55,000 Otázkou bylo, jak můžeme spustit toto použití binární PHP 263 00:18:55,000 --> 00:18:58,000 zatímco dynamic.php není spustitelný? 264 00:18:58,000 --> 00:19:01,000 To je super důležité, protože to je přesně to, jak 265 00:19:01,000 --> 00:19:06,000 že to bude fungovat, když píšete problém sadu 7. 266 00:19:06,000 --> 00:19:09,000 Většinu času PHP soubory nejsou přímo spustitelný. 267 00:19:09,000 --> 00:19:14,000 Způsob, jakým funguje, je proto, že je to PHP binární, že je spustitelný. 268 00:19:14,000 --> 00:19:16,000 Tlumočník je věc, která je prováděna, 269 00:19:16,000 --> 00:19:20,000 a tak to, co to dělá je doslova slurping v části obsahu 270 00:19:20,000 --> 00:19:25,000 našeho dynamic.php souboru a jít řádek po řádku 271 00:19:25,000 --> 00:19:29,000 a provádění těchto příkazů, takže je to s použitím našeho PHP souboru 272 00:19:29,000 --> 00:19:31,000 jako seznam instrukcí. 273 00:19:31,000 --> 00:19:36,000 Není to přímo spuštěním. 274 00:19:36,000 --> 00:19:40,000 To je místo, kde můžeme říci, že tyto soubory jsou interpretovány v době běhu. 275 00:19:40,000 --> 00:19:46,000 Je to doba chodu jazyk místo něčeho, co v době překladu, 276 00:19:46,000 --> 00:19:49,000 není zkompilovaný jazyk jako C. 277 00:19:49,000 --> 00:19:54,000 >> Existuje způsob, jak získat běhovou jazyk chovat, jako by to kompilace čas jazyk, 278 00:19:54,000 --> 00:19:58,000 jako když máte všechny chodu udělal na serveru 279 00:19:58,000 --> 00:20:00,000 spíše než víte, co tím myslím? 280 00:20:00,000 --> 00:20:04,000 Ano, tak je otázkou 281 00:20:04,000 --> 00:20:11,000 Existuje způsob, jak se dostat doba chodu jazyky jednat více jako kompilace typy jazyků? 282 00:20:11,000 --> 00:20:18,000 A jsou tu, myslím, že je aktivní oblast výzkumu pro mnoho z těchto společností. 283 00:20:18,000 --> 00:20:22,000 Věřím, že Facebook udělal hodně práce s PHP 284 00:20:22,000 --> 00:20:25,000 a sestavování ho, což je rychlejší, optimalizací 285 00:20:25,000 --> 00:20:29,000 protože jejich stránky jsou založeny na PHP. 286 00:20:29,000 --> 00:20:34,000 Pokud jste sledovali node.js vůbec, 287 00:20:34,000 --> 00:20:40,000 který je tak trochu o tlumočníka JavaScript 288 00:20:40,000 --> 00:20:44,000 aby bylo možné spouštět JavaScript mimo prohlížeč, mimo Vašem webovém prohlížeči, 289 00:20:44,000 --> 00:20:47,000 protože tradičně JavaScript by jen spustit uvnitř Firefoxu nebo Chrome, 290 00:20:47,000 --> 00:20:52,000 a to by být použity, aby chladné animace stalo na webové stránce 291 00:20:52,000 --> 00:20:55,000 a aby vaše webové stránky dynamické. 292 00:20:55,000 --> 00:20:59,000 , Která byla postavena na hodně práce, že Google udělal 293 00:20:59,000 --> 00:21:03,000 aby JavaScript a C + + 294 00:21:03,000 --> 00:21:09,000 svázat dohromady, takže je tu spousta aktivního výzkumu na 295 00:21:09,000 --> 00:21:13,000 se tyto jazyky k interakci a optimalizovat, 296 00:21:13,000 --> 00:21:17,000 především proto, že mnoho lidí může kód v PHP a JavaScriptu 297 00:21:17,000 --> 00:21:19,000 protože je to mnohem jednodušší. 298 00:21:19,000 --> 00:21:21,000 Je to mnohem lepší. Nemáte ukazatele. 299 00:21:21,000 --> 00:21:27,000 Nemáte typy kolovat. 300 00:21:27,000 --> 00:21:31,000 Chtěli získat výhody z těchto kompilace jazycích 301 00:21:31,000 --> 00:21:36,000 se všemi kontrolu typu a rychlosti a nižší využití paměti a všechny, které 302 00:21:36,000 --> 00:21:42,000 při zachování flexibility a snadnosti použití těchto novějšími. 303 00:21:42,000 --> 00:21:46,000 >> Zpět k naší původní plán útoku. 304 00:21:46,000 --> 00:21:50,000 Máme některé z těchto otázek zde v naší spec problému set. 305 00:21:50,000 --> 00:21:54,000 Pojďme přes ně opravdu rychle, a půjdeme po místnosti. 306 00:21:54,000 --> 00:21:59,000 Charlotte, jaký typ je 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] To je dvojí. >> Je to double. 308 00:22:01,000 --> 00:22:03,000 Jimmy, co je ta další? >> Pole. 309 00:22:03,000 --> 00:22:09,000 Pole, úžasné, a Jared, co je fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Je to zdroj. >> Je to zdroj. 311 00:22:11,000 --> 00:22:15,000 To je trochu nového, ne soubor hvězdy, ne soubor. 312 00:22:15,000 --> 00:22:19,000 Je to zdroj typu v PHP, 313 00:22:19,000 --> 00:22:24,000 a je mi líto, Ella, poslední null je to, co? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, jak je napsána v PHP? >> Stejným způsobem. 316 00:22:28,000 --> 00:22:30,000 Stejným způsobem, hlavice? >> Jo. 317 00:22:30,000 --> 00:22:33,000 Jo, v pořádku. 318 00:22:33,000 --> 00:22:35,000 Jdeme na to, máme double, máme celou řadu, 319 00:22:35,000 --> 00:22:41,000 máme zdroj, a pak máme null. 320 00:22:41,000 --> 00:22:48,000 Pojďme se podívat teď jste viděli- 321 00:22:48,000 --> 00:22:51,000 uvidíme, takže teď myslím, že to, co jsem také chtějí udělat, je vytáhnout 322 00:22:51,000 --> 00:22:56,000 tato webová stránka přímo zde, tento php.net / manual, 323 00:22:56,000 --> 00:23:01,000 takže pokud jste rozumím a otevřít webový prohlížeč. 324 00:23:01,000 --> 00:23:07,000 Jdu vytáhnout Chrome, dej to dovnitř 325 00:23:07,000 --> 00:23:10,000 Chci ti ukáže to nejen proto, že 326 00:23:10,000 --> 00:23:13,000 můžeme mluvit celý den o typech a vše, co zábavné věci 327 00:23:13,000 --> 00:23:19,000 ale spíše proto, že to je manuál PHP, 328 00:23:19,000 --> 00:23:23,000 a existuje spousta PHP programátorů tam. 329 00:23:23,000 --> 00:23:26,000 Existuje mnoho internetových stránek PHP tam, 330 00:23:26,000 --> 00:23:31,000 a jako výsledek, tam je spousta dokumentace na PHP, 331 00:23:31,000 --> 00:23:36,000 a manuální, to php.net, je opravdu dobré místo, jít 332 00:23:36,000 --> 00:23:43,000 pokud máte otázky o tom, co je nejlepší způsob, jak to udělat X v PHP 333 00:23:43,000 --> 00:23:45,000 nebo co to funkce vypadat? 334 00:23:45,000 --> 00:23:49,000 Tak nějak, jak se seznámit s tím, co to vypadá, protože 335 00:23:49,000 --> 00:23:54,000 budete sem často, bit pro problém nastavit 7. 336 00:23:54,000 --> 00:23:57,000 >> Pokud jste skončili dělat závěrečný projekt, který používá PHP 337 00:23:57,000 --> 00:24:04,000 to bude místo, staneš se velmi dobře obeznámený s. 338 00:24:04,000 --> 00:24:09,000 Často tak lidé dělají, je, že používají Google k hledání místa, 339 00:24:09,000 --> 00:24:16,000 a nemají použijte vyhledávací pole, které je tady v pravém horním rohu, který je tak trochu malý. 340 00:24:16,000 --> 00:24:19,000 Pokud jste Googling asi něco dělat s PHP a uvidíte 341 00:24:19,000 --> 00:24:24,000 jeden z manuálních odkazů vyskočí můžete obvykle spolehnout na to 342 00:24:24,000 --> 00:24:31,000 jako docela dobrý zdroj. 343 00:24:31,000 --> 00:24:34,000 Úžasné, tak z těchto typů, jen tak ze zvědavosti, 344 00:24:34,000 --> 00:24:37,000 které z nich ještě jsme neviděli? 345 00:24:37,000 --> 00:24:40,000 Cokoliv jsme neviděli tu? 346 00:24:40,000 --> 00:24:44,000 [Student] Resource. >> Viděli jsme zdroj s fopen hovoru. 347 00:24:44,000 --> 00:24:48,000 [Student] objektů. >> Námitky jsme neviděli určitě. 348 00:24:48,000 --> 00:24:51,000 Volání jsme neviděli. 349 00:24:51,000 --> 00:24:54,000 K dispozici jsou některé z těchto pseudo-typů. 350 00:24:54,000 --> 00:24:57,000 Určitě viděl pouze integer a double. 351 00:24:57,000 --> 00:25:01,000 Neviděli jsme někteří jiní, takže pokud klikneme na celá čísla 352 00:25:01,000 --> 00:25:08,000 můžeme vidět, jsou ještě nějaké další celočíselné hodnoty, které oni mají tady? 353 00:25:08,000 --> 00:25:11,000 Jsou všichni-tak integer, integer, integer. 354 00:25:11,000 --> 00:25:14,000 Některé jazyky mají větší celočíselné typy, 355 00:25:14,000 --> 00:25:23,000 jak jsme viděli na MySQL dnes tam byl int a pak velké int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Takže, PHP manuál. 358 00:25:28,000 --> 00:25:37,000 Vraťme se k našemu problému spec set, a my nyní přejděte na stránku 4. 359 00:25:37,000 --> 00:25:41,000 Jedna z věcí, které se stane, když se dostanete tyto jazyky 360 00:25:41,000 --> 00:25:49,000 které nemají tuto statickou psaní, takže tyto jazyky, kde musíte deklarovat 361 00:25:49,000 --> 00:25:52,000 typ přední proměnné až 362 00:25:52,000 --> 00:26:00,000 je dostanete na případy, kdy můžete začít s proměnné různých typů 363 00:26:00,000 --> 00:26:04,000 interakce mezi sebou navzájem, 364 00:26:04,000 --> 00:26:09,000 a PHP dělá tuto věc, kde se snaží udělat 365 00:26:09,000 --> 00:26:13,000 to, co považuje za nejrozumnější věc 366 00:26:13,000 --> 00:26:18,000 když máte 2 různé typy na sebe vzájemně působí. 367 00:26:18,000 --> 00:26:24,000 Například, pokud se podíváme na tyto řádky kódu přímo zde 368 00:26:24,000 --> 00:26:29,000 vidíte, že jsme dostali to, co se stane, když 369 00:26:29,000 --> 00:26:38,000 snažíme přidat řetězec 1 na celé číslo 2. 370 00:26:38,000 --> 00:26:41,000 Co se stane, když se budeme snažit a přidat řetězec, který není číselná hodnota 371 00:26:41,000 --> 00:26:48,000 ale skutečné znaky, CS k počtu 50? 372 00:26:48,000 --> 00:26:51,000 Pak uvidíme, je tam něco jiného, ​​co se děje, kde 373 00:26:51,000 --> 00:26:56,000 místo přidání řetězec na číslo jsme zapsání čísla na řetězec, 374 00:26:56,000 --> 00:27:00,000 a tak dále a tak dále do bodu, kdy jsme získali 375 00:27:00,000 --> 00:27:05,000 nějaký divný věci tady, kde máme 7 + pravda. 376 00:27:05,000 --> 00:27:09,000 Co sakra to znamená? 377 00:27:09,000 --> 00:27:19,000 >> Pokud jste jít dopředu a vložte některé z tohoto kódu do vašeho přístroje. 378 00:27:19,000 --> 00:27:27,000 Můžete držet ji v dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Uvidíme, co se stane. 380 00:27:41,000 --> 00:27:43,000 [Student] Stačí použít tisk, ne printf? 381 00:27:43,000 --> 00:27:52,000 Jo, takže zjistíte, že tisk je také platný funkce pro tisk v PHP. 382 00:27:52,000 --> 00:27:54,000 Existuje mnoho různých způsobů, jak to udělat. 383 00:27:54,000 --> 00:27:58,000 Uvidíme se za pár příkladů později, jakmile začneme mluvit 384 00:27:58,000 --> 00:28:02,000 o unikátní problému, který budeme psát 385 00:28:02,000 --> 00:28:06,000 a pak koncentrace problém, který budeme psát 386 00:28:06,000 --> 00:28:09,000 že i když máme fopen a fclose 387 00:28:09,000 --> 00:28:15,000 to často není nejjednodušší způsob, jak číst v obsahu souboru. 388 00:28:15,000 --> 00:28:21,000 PHP má mnoho z těchto C-jako holdovers. 389 00:28:21,000 --> 00:28:28,000 [Student] Když jsem dal ve všech 6 těchto věcí, které jsem jen jednu řadu jako výstup. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Když dáš ve všech 6 těchto věcí. 391 00:28:36,000 --> 00:28:39,000 Pojďme se podívat, je to proto, že je to možná- 392 00:28:39,000 --> 00:28:46,000 jedna věc je, že tyto tiskové hovory nejsou ukončeny na konci se nových tratích. 393 00:28:46,000 --> 00:28:49,000 Tam je žádný nový přímka oddělující každý z těchto tiskových hovorů, 394 00:28:49,000 --> 00:28:51,000 takže možná, že jste stále jeden velký počet, 395 00:28:51,000 --> 00:28:58,000 a je to opravdu jen amalgám znaky nového řádku. 396 00:28:58,000 --> 00:29:00,000 [Student] Dobře, jak se mohu ujistit,- 397 00:29:00,000 --> 00:29:03,000 No, existuje banda různými způsoby. 398 00:29:03,000 --> 00:29:06,000 Dalo by se ručně dát do tisku nového řádku znak, 399 00:29:06,000 --> 00:29:09,000 ozvěna znak nového řádku, 400 00:29:09,000 --> 00:29:12,000 vytisknout nové řady. 401 00:29:12,000 --> 00:29:16,000 [Student] Tak echo je totéž jako printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf je jako C printf 403 00:29:21,000 --> 00:29:24,000 kde tisknete formátovaný řetězec. 404 00:29:24,000 --> 00:29:32,000 Ty dodává jí formátovací řetězec a pak všechny zástupné proměnné. 405 00:29:32,000 --> 00:29:39,000 Je to často něco, co se nepoužívá, 406 00:29:39,000 --> 00:29:42,000 uvidíme, jak vyloučení odpovědnosti, 407 00:29:42,000 --> 00:29:48,000 Jsem méně obeznámen s PHP, než jsem s jinými webovými jazyky, 408 00:29:48,000 --> 00:29:53,000 a když jsem se naprogramovat v PHP jsem obvykle nepoužívají printf 409 00:29:53,000 --> 00:29:59,000 protože mi to rychlejší použít Schopnosti řetězec interpolace, že to má, 410 00:29:59,000 --> 00:30:04,000 které půjdeme do a já vám ukážu, pár sekund, 411 00:30:04,000 --> 00:30:08,000 vzhledem k tomu, v C jsme trochu muset udělat hacky věc, aby si to vytisknout správně. 412 00:30:08,000 --> 00:30:16,000 Můžete totiž proměnné přímo do řetězce v PHP. 413 00:30:16,000 --> 00:30:22,000 Printf je trochu příliš dlouho na to, co obvykle dělám. Ano, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Obecně, pokud se dostanete chybě analýzy to znamená, 415 00:30:25,000 --> 00:30:30,000 jako na C to nemůžu říct, kde přesně je chyba, a co to je, 416 00:30:30,000 --> 00:30:34,000 Takže to znamená, podívej přes celou kódu a to přišel? 417 00:30:34,000 --> 00:30:39,000 Je to obvykle cíleněji než to. 418 00:30:39,000 --> 00:30:48,000 Myslím, že v tomto případě to bylo trochu mimo, 419 00:30:48,000 --> 00:30:51,000 takže myslím, že v tomto případě jsme byli chybí středník. 420 00:30:51,000 --> 00:30:54,000 To se snažil najít smysl všeho, 421 00:30:54,000 --> 00:30:57,000 tak jako těchto interpretovaných jazyků, tlumočník se bude snažit 422 00:30:57,000 --> 00:31:01,000 a co nejlépe, aby se všechno práci odpovídajícím způsobem. 423 00:31:01,000 --> 00:31:04,000 >> Uvidíte, například v JavaScriptu 424 00:31:04,000 --> 00:31:10,000 Budete často-line příkazy end se středníkem stejně, jako je tomu v PHP, 425 00:31:10,000 --> 00:31:13,000 stejně jako je tomu v C. 426 00:31:13,000 --> 00:31:15,000 V JavaScriptu některých tlumočníků JavaScript 427 00:31:15,000 --> 00:31:20,000 v mnoha prohlížečích se dát do středníky pro vás 428 00:31:20,000 --> 00:31:23,000 pokud jste náhodou, že chybí jim. 429 00:31:23,000 --> 00:31:29,000 Budou se snažit a přizpůsobit pro některé nedbalosti na vaší straně. 430 00:31:29,000 --> 00:31:34,000 To je místo, kde by to mohlo být se snaží a snaží a snaží věci fungují, 431 00:31:34,000 --> 00:31:36,000 a pak nakonec se dostaneme k bodu, kde se říká v pořádku, 432 00:31:36,000 --> 00:31:38,000 Nemůžu dělat věci pracovat na kauci, a to je místo, kde dostanete číslo řádku 433 00:31:38,000 --> 00:31:44,000 že by se mohlo zdát trochu mimo od přesného místa. 434 00:31:44,000 --> 00:31:47,000 Dobře, tak pojďme projít to opravdu rychle. 435 00:31:47,000 --> 00:31:50,000 Jsme skončili s Ellou, takže pojďme se k Missy, 436 00:31:50,000 --> 00:31:54,000 a Missy, co tisk řetězce 1 plus počet 2 vám? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Dává to smysl? Tak nějak? 439 00:31:59,000 --> 00:32:02,000 Znamená to dát číslo? Znamená to dát řetězec? 440 00:32:02,000 --> 00:32:05,000 [Missy] číslo. >> Je to číslo. 441 00:32:05,000 --> 00:32:09,000 Ale je to tisk, takže to bude dát nějaký řetězec. 442 00:32:09,000 --> 00:32:12,000 >> Jedna věc, kterou můžeme udělat, abychom zjistili, zda na to 443 00:32:12,000 --> 00:32:21,000 Je-li my $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 a pak řekneme, ozvěnu GetType, 445 00:32:28,000 --> 00:32:33,000 takže jsme použili třetí druh tisku zde. 446 00:32:33,000 --> 00:32:39,000 Nyní můžeme vidět, co se děje tady. 447 00:32:39,000 --> 00:32:42,000 Zde, co máme, je máme celé číslo z toho. 448 00:32:42,000 --> 00:32:45,000 I přesto, že se přidá tento řetězec na číslo, 449 00:32:45,000 --> 00:32:48,000 jsme nedostali řetězec z toho, stejně jako Missy řekla. 450 00:32:48,000 --> 00:32:52,000 Jsme dostávali celé číslo. 451 00:32:52,000 --> 00:32:57,000 Dobře, takže uvidíme, next up, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Dává to smysl? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Jo. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Proč? Proč má smysl pro vás? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Protože je to jen mít řetězec, s číslem hodnotu nula. 457 00:33:11,000 --> 00:33:16,000 Jo, skvělý. 458 00:33:16,000 --> 00:33:20,000 Druh nejednoznačných situací, ale je to dobré vědět, co se stane. 459 00:33:20,000 --> 00:33:25,000 Stella, co se bude dít dál s číslem 1 + string 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 znovu. 461 00:33:27,000 --> 00:33:30,000 A v tomto případě, získáme řetězec nebo číslo? 462 00:33:30,000 --> 00:33:36,000 >> Dejme to zkusit. 463 00:33:36,000 --> 00:33:43,000 Někdo rychleji než mi dostat odpověď? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, I didn't-v pořádku, uvidíme, budeme dělat stejný druh věci 465 00:33:46,000 --> 00:33:49,000 kde máme řadu plus řetězec, a budeme echo typu, 466 00:33:49,000 --> 00:33:51,000 uvidíme, co dostaneme. 467 00:33:51,000 --> 00:33:55,000 Také jsme si celé číslo. 468 00:33:55,000 --> 00:33:58,000 Nezáleží na tom, který z nich je řetězec, který z nich je číslo. 469 00:33:58,000 --> 00:34:00,000 Pořád dostaneme celé číslo. 470 00:34:00,000 --> 00:34:04,000 Je to stále bude dělat to, co bychom mohli očekávat. 471 00:34:04,000 --> 00:34:09,000 Dobře, takže Sam, co 90 + 9 lahví piva na zdi? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Žádné láhve piva na stěně, i když. 474 00:34:15,000 --> 00:34:17,000 To nám dává trochu více informací o tom, co se děje. 475 00:34:17,000 --> 00:34:21,000 [Sam] Pokud jste psal 9 v dopisech 476 00:34:21,000 --> 00:34:23,000 pak budete mít 90, ne? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Jo. 478 00:34:26,000 --> 00:34:30,000 Otázkou bylo, jestli bychom napsal 9 out jako N-I-N-E 479 00:34:30,000 --> 00:34:34,000 bychom dostali 99 nebo 90? 480 00:34:34,000 --> 00:34:38,000 Měli bychom si 90. 481 00:34:38,000 --> 00:34:42,000 Je to doslova jen hledá číslice znaky. 482 00:34:42,000 --> 00:34:46,000 Je to dost chytrý, aby rozpoznat počet slov, a že tak. Ano. 483 00:34:46,000 --> 00:34:48,000 >> [Student] Je tam taková věc jako obsadit v PHP? 484 00:34:48,000 --> 00:34:54,000 K dispozici je, a je to přesně tak, jak byste to udělat v C. 485 00:34:54,000 --> 00:34:56,000 Co 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Jo, takže to, co by mohlo být překvapivé o tom? 488 00:35:01,000 --> 00:35:04,000 Co by se stalo, kdyby jste stejný druh věci v C, 489 00:35:04,000 --> 00:35:06,000 pokud jste 10/7 v C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] To by jen vy-v závislosti na tom, jak jste typecasted Myslím, že 491 00:35:08,000 --> 00:35:12,000 to by vám pouze omezený počet číslic za desetinnou čárkou. 492 00:35:12,000 --> 00:35:16,000 Jo, takže omezený počet číslic za desetinnou čárkou. 493 00:35:16,000 --> 00:35:21,000 Co jiného by mohlo být, to by vám nějaké číslic za desetinnou? 494 00:35:21,000 --> 00:35:28,000 Často ne, tak znovu, v závislosti na tom, jak jste ji obsadit 495 00:35:28,000 --> 00:35:31,000 může nebo nemusí jej převést na desetinné číslo. 496 00:35:31,000 --> 00:35:35,000 Tady to bylo docela fajn, že to udělal. 497 00:35:35,000 --> 00:35:40,000 Kdybychom vám ukáže vám to zpátky, když jsme začali dělat tento druh věcí v C 498 00:35:40,000 --> 00:35:44,000 by pravděpodobně udělal trochu větší smysl 499 00:35:44,000 --> 00:35:48,000 že není jen tak, aby 1. 500 00:35:48,000 --> 00:35:51,000 A pak konečně, Jamie, co 7 + pravda? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Co to znamená? 503 00:35:56,000 --> 00:35:58,000 Myslím, že to dává jen pravda, hodnota 1. 504 00:35:58,000 --> 00:36:01,000 Jo. Co se stane, když změníme, že na false? 505 00:36:01,000 --> 00:36:04,000 [Student] 7. 506 00:36:04,000 --> 00:36:09,000 Jo, tak si pamatujte, kde budeme mluvit o těchto binárních hodnot, 507 00:36:09,000 --> 00:36:12,000 1 je zapnuto, 0 je vypnuto? 508 00:36:12,000 --> 00:36:17,000 Nyní máme pravda je 1, 0 je false, 509 00:36:17,000 --> 00:36:21,000 a nemusí to viděli v příkladech C, které jsme udělali letos v semestru, 510 00:36:21,000 --> 00:36:27,000 ale historicky bool typ v C nebyl typ real, 511 00:36:27,000 --> 00:36:32,000 takže lidé používají 0 a 1 v místě true a false. 512 00:36:32,000 --> 00:36:35,000 To je projevem, který. 513 00:36:35,000 --> 00:36:39,000 >> Dobře, takže jedna důležitá část o všem 514 00:36:39,000 --> 00:36:41,000 je to, že máme tyto různé typy. 515 00:36:41,000 --> 00:36:43,000 Mohou na sebe vzájemně působí. 516 00:36:43,000 --> 00:36:49,000 Oni mohou často na sebe vzájemně působí v cestách, které jsou hezké, jak jsme viděli tady. 517 00:36:49,000 --> 00:36:53,000 Je to pěkné, mít možnost řetězec 1 a číslo 2, přidejte je dohromady a dostanete 3. 518 00:36:53,000 --> 00:36:55,000 To dává smysl. 519 00:36:55,000 --> 00:36:59,000 Nicméně, když píšete webové stránky, a to zejména, když jste zpracování 520 00:36:59,000 --> 00:37:04,000 uživatelský vstup, takže říct, že jsi napsal webový formulář 521 00:37:04,000 --> 00:37:09,000 , který shromažďuje informace od uživatele a pak jde do zpracovávat 522 00:37:09,000 --> 00:37:13,000 na zadní konec, na straně serveru ve vašem PHP kódu 523 00:37:13,000 --> 00:37:18,000 pokud jste očekával, že hodnota, která uživatel napsaný a předložen 524 00:37:18,000 --> 00:37:23,000 Do formuláře se celé číslo nebo být číslo s plovoucí čárkou, nebo něco takového 525 00:37:23,000 --> 00:37:29,000 budete muset explicitně přetypovat 526 00:37:29,000 --> 00:37:34,000 a pak udělat nějaké kontroly typu. 527 00:37:34,000 --> 00:37:41,000 >> Vy nechcete jen spoléhat na tomto systému typu žonglování, aby to vyjde, 528 00:37:41,000 --> 00:37:48,000 zejména z bezpečnostních důvodů a jen pro robustnost své webové stránky. 529 00:37:48,000 --> 00:37:51,000 Jen něco mít na paměti, že když jste manipulaci dat z formulářů, 530 00:37:51,000 --> 00:37:57,000 cokoliv, co přijde v poště nebo get superglobálních 531 00:37:57,000 --> 00:38:01,000 ujistěte se, že jste vždy ověřit, a převést ji a obsadit jej. 532 00:38:01,000 --> 00:38:04,000 A stejně jako jsme mluvili o chvíli před tímto obsadit 533 00:38:04,000 --> 00:38:08,000 v PHP je přesně stejný jako v C, kde budete mít závorky 534 00:38:08,000 --> 00:38:14,000 a pak typ. 535 00:38:14,000 --> 00:38:16,000 Mějte na paměti, že. 536 00:38:16,000 --> 00:38:19,000 Jedna funkce, která přijde vhod, když to děláš 537 00:38:19,000 --> 00:38:22,000 je jsme používali a tohle je jako stranou, 538 00:38:22,000 --> 00:38:27,000 jsme používali tuto GetType funkce tady 539 00:38:27,000 --> 00:38:30,000 zjistit typ proměnné, 540 00:38:30,000 --> 00:38:37,000 a když je to užitečné pro ladění a zjistit, jaké proměnné je typ 541 00:38:37,000 --> 00:38:42,000 nechcete používat to, například, ve stavu, kdy 542 00:38:42,000 --> 00:38:57,000 máte kontrolu, zda GetType na $ var = integer něco udělat. 543 00:38:57,000 --> 00:39:01,000 To je špatný, špatný, špatný. 544 00:39:01,000 --> 00:39:09,000 Místo toho jsou tyto funkce nazývají je integer, je řetězec, 545 00:39:09,000 --> 00:39:14,000 je pole, které chcete použít místo toho, aby v tomto případě 546 00:39:14,000 --> 00:39:18,000 co bych chtěl dělat, místo toho chlapa tady 547 00:39:18,000 --> 00:39:31,000 je použít je celé číslo var. 548 00:39:31,000 --> 00:39:37,000 A oni často odkazoval se is_ * v tom smyslu, že byste mohli nahradit * s integer, 549 00:39:37,000 --> 00:39:43,000 string, et cetera, a jen aby se ujistil, opravdu rychlý 550 00:39:43,000 --> 00:39:50,000 je to int PHP. 551 00:39:50,000 --> 00:39:59,000 Vypadá to, že můžete udělat je buď int, nebo je tam je celé číslo, stejně? 552 00:39:59,000 --> 00:40:06,000 Ano, alias, takže int celočíselné pseudonymy. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Jak jsme na tom? 555 00:40:17,000 --> 00:40:20,000 Pojďme zvednout tempo trochu. 556 00:40:20,000 --> 00:40:24,000 Teď budeme mluvit o pole, tak jak můžete vidět 557 00:40:24,000 --> 00:40:28,000 V další části spec budeme mluvit o tom, jak pole v PHP 558 00:40:28,000 --> 00:40:31,000 jsou mírně odlišné, než jsou v C. 559 00:40:31,000 --> 00:40:34,000 Ve skutečnosti, oni jsou trochu amalgámu 560 00:40:34,000 --> 00:40:36,000 na pole, které jste poznali a lásku v C 561 00:40:36,000 --> 00:40:40,000 kde všechno je stejného typu 562 00:40:40,000 --> 00:40:43,000 uloženy po sobě a souvisle v paměti, 563 00:40:43,000 --> 00:40:46,000 a budete mít tyto číselné indexy. 564 00:40:46,000 --> 00:40:49,000 Máte index 0, index 1, index 2, 565 00:40:49,000 --> 00:40:53,000 a uložení hodnot v těchto indexů. 566 00:40:53,000 --> 00:40:57,000 Můžete také v C, když jste napsal pravopisu, hodně z vás 567 00:40:57,000 --> 00:41:00,000 udělal hash tabulky přístup, a viděl, že tam jsme měli 568 00:41:00,000 --> 00:41:03,000 jiný druh skladování, kde jsme byli mapování 569 00:41:03,000 --> 00:41:07,000 klíč na hodnotu, takže když jste se pokusili uložit něco v hašovací tabulce 570 00:41:07,000 --> 00:41:11,000 jste měli určit, že jste chtěli uložit s konkrétní klíč, 571 00:41:11,000 --> 00:41:17,000 a že klíč určuje umístění hodnoty a kde by to být uloženy. 572 00:41:17,000 --> 00:41:22,000 Jste trochu dostal obou těchto pojmů se děje v současně v poli PHP, 573 00:41:22,000 --> 00:41:27,000 a jako výsledek, často nazývají tyto asociativních polí 574 00:41:27,000 --> 00:41:33,000 kde jsme sdružující klíč v hodnotě. 575 00:41:33,000 --> 00:41:39,000 V této další části budeme mluvit o jednoduchou PHP pole 576 00:41:39,000 --> 00:41:45,000 kde máme klávesy A, B a C, 577 00:41:45,000 --> 00:41:53,000 všechny řetězce, mapování celých čísel 1, 2, a 3. 578 00:41:53,000 --> 00:41:57,000 A můžete mít klíče různých typů. 579 00:41:57,000 --> 00:42:00,000 >> Můžete mít některé klávesy, které jsou struny, některé klávesy, které jsou celá čísla. 580 00:42:00,000 --> 00:42:03,000 Můžete mít hodnoty různých typů. 581 00:42:03,000 --> 00:42:06,000 Můžete mít hodnotu, která je řetězec, hodnota, která je celé číslo, 582 00:42:06,000 --> 00:42:11,000 hodnota, která je předmět nebo další pole, například, 583 00:42:11,000 --> 00:42:16,000 vše v jednom poli objektu, který je trochu zvláštní. 584 00:42:16,000 --> 00:42:20,000 Nemusíte mít pole, které právě dostal jeden typ prvku v něm. 585 00:42:20,000 --> 00:42:26,000 Můžete mít mnoho různých věcí se tam děje. 586 00:42:26,000 --> 00:42:33,000 Druhá věc k poznámce je, že když vidím něco takového v kódu, 587 00:42:33,000 --> 00:42:38,000 který je platný PHP prohlásit pole právě tak jako to, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 že prohlásí inicializován $ arr být toto pole. 589 00:42:43,000 --> 00:42:48,000 Ale to, co jste vlastně stále pod kapotou je tento druh implicitní 590 00:42:48,000 --> 00:42:55,000 generace klíčů, kde jsme se dostali 0-0, 1-1, 2-2, 3-3. 591 00:42:55,000 --> 00:42:59,000 A ukázalo se, že i když máte pole, jako je ten chlap tady 592 00:42:59,000 --> 00:43:03,000 kde máte, B a C a klíče 593 00:43:03,000 --> 00:43:09,000 a pak začít používat pole metodu dodávání začít používat toto pole jako hromada, 594 00:43:09,000 --> 00:43:12,000 takže můžete vidět, že toto pole objekt, je toto pole opravdu stávat přetížení. 595 00:43:12,000 --> 00:43:15,000 Můžeme jej použít jako pole. Můžeme jej použít jako tabulky hash. 596 00:43:15,000 --> 00:43:19,000 Můžeme jej použít jako zásobník. 597 00:43:19,000 --> 00:43:22,000 Když začít tlačit věci na tomto poli 598 00:43:22,000 --> 00:43:30,000 První věc, kterou budete tlačit na to bude index 0 a pak index 1 a index 2. 599 00:43:30,000 --> 00:43:33,000 Můžete si tento druh implicitního generace klíčů 600 00:43:33,000 --> 00:43:38,000 pokud zadáte explicitně. 601 00:43:38,000 --> 00:43:43,000 Tak, jak si zadat klíče explicitně, samozřejmě, je pomocí tohoto držáku zápis, 602 00:43:43,000 --> 00:43:48,000 , který je podobný polí s výjimkou místo pouze umožňuje 603 00:43:48,000 --> 00:43:54,000 celočíselné indexy v tady a teď necháme něco. 604 00:43:54,000 --> 00:43:57,000 Pokud chcete, aby vaše klíčové být řetězec, měli byste zadat to takhle. 605 00:43:57,000 --> 00:44:06,000 Pokud chcete, aby to bylo int, zadáte jej s int, kterou chcete použít. 606 00:44:06,000 --> 00:44:13,000 >> Otázky týkající se, že tak daleko? 607 00:44:13,000 --> 00:44:18,000 Jednou z pěkné věci o této myšlence 608 00:44:18,000 --> 00:44:26,000 je, že můžete jen někdy mít jednu hodnotu uloženou s určitým klíčem. 609 00:44:26,000 --> 00:44:32,000 Vrátíme-li se k našemu zařízení, dovolte mi, abych odstranit některé z těchto věcí. 610 00:44:32,000 --> 00:44:47,000 A řekněme, že jsem inicializovat pole být 0, 1, 2, hotovo. 611 00:44:47,000 --> 00:44:55,000 Kdybych teď vím, že například, když jsem echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Jdu si hodnotu 0 vytisknout, 613 00:44:59,000 --> 00:45:05,000 a protože tam může být jedině jedna hodnota uložena pro konkrétní klíč 614 00:45:05,000 --> 00:45:11,000 pokud uložím něco na $ arr [0], řekněme, 615 00:45:11,000 --> 00:45:16,000 pak vím, že když jsem echo $ arr [0] znovu 616 00:45:16,000 --> 00:45:19,000 Nebudu se dostat 0 vytiskne stejně jako předtím. 617 00:45:19,000 --> 00:45:24,000 Já jsem jen dostanu. 618 00:45:24,000 --> 00:45:30,000 Takže to je v podstatě říká, že nemůžu mít $ arr [0] ukládání 2 různé hodnoty. 619 00:45:30,000 --> 00:45:34,000 To nemůže ukládat jak 0 a řetězec se, takhle doslova nahrazuje 620 00:45:34,000 --> 00:45:38,000 co je v $ arr [0] dříve. 621 00:45:38,000 --> 00:45:43,000 Důvod, proč jsem přinést to až se jej spustit, uvidíme, co se stane. 622 00:45:43,000 --> 00:45:47,000 Podívejte se zde, že jsem se dostal 0 vytisknout a pak tady dole. 623 00:45:47,000 --> 00:45:51,000 Není nový řádek tam, protože jsem byl líný a nedal, že dovnitř 624 00:45:51,000 --> 00:45:54,000 Co je v pohodě na tom je, můžeme použít jako způsob 625 00:45:54,000 --> 00:46:00,000 zachytit tuto myšlenku souboru 626 00:46:00,000 --> 00:46:07,000 kde nemůžeme mít více klíčů v rámci pole. 627 00:46:07,000 --> 00:46:10,000 Nemůžeme mít stejné klíče v poli. 628 00:46:10,000 --> 00:46:17,000 Nemůžu mít klíčovou 0 a hodnotu 1 a klíče 0 a hodnotu a 629 00:46:17,000 --> 00:46:21,000 nebo tlačítko 0 a hodnota true. 630 00:46:21,000 --> 00:46:27,000 Klíče jsou-je jen 1 klíč v poli. 631 00:46:27,000 --> 00:46:32,000 I když je možné mít stejný uloženou hodnotu 632 00:46:32,000 --> 00:46:35,000 několikrát v poli pod různými klíči 633 00:46:35,000 --> 00:46:42,000 to není možné, mají stejné klíčů vícekrát v PHP pole. 634 00:46:42,000 --> 00:46:47,000 >> Podíváme-li se na tento další problém, unique.php, 635 00:46:47,000 --> 00:46:51,000 tam, kde chceme otevřít PHP soubor 636 00:46:51,000 --> 00:46:54,000 obsahující seznam řetězců, jeden řetězec na řádek, 637 00:46:54,000 --> 00:47:01,000 a chceme najít všechny jedinečné řetězce v tomto souboru 638 00:47:01,000 --> 00:47:06,000 vše, co musíte udělat, je použít jeden z těchto PHP pole 639 00:47:06,000 --> 00:47:12,000 a používat řetězce v souboru klíče k tohoto pole 640 00:47:12,000 --> 00:47:17,000 a zachovat aktualizaci naší nabídku, jak budeme ukládat tyto nové klíče. 641 00:47:17,000 --> 00:47:22,000 Jak jsme si řádky z souboru, můžeme uložit v poli, 642 00:47:22,000 --> 00:47:28,000 a na konci budeme mít jako naše klíče v našem poli 643 00:47:28,000 --> 00:47:34,000 všechny jedinečné řetězce v souboru. 644 00:47:34,000 --> 00:47:37,000 Dává to smysl? 645 00:47:37,000 --> 00:47:41,000 Pojďme se podívat, jak to funguje. 646 00:47:41,000 --> 00:47:49,000 Budeme otevírat, podle specifikace, nový soubor s názvem unique.php. 647 00:47:49,000 --> 00:47:58,000 Otevřít. Jejda, omlouvám se, nový soubor. 648 00:47:58,000 --> 00:48:03,000 Budeme začít ho se stejným počátečním a koncovým tagy. 649 00:48:03,000 --> 00:48:17,000 Budeme jej uložit do oddílu 9, a budeme to nazývat unique.php. 650 00:48:17,000 --> 00:48:25,000 Dobře, teď Zoom 651 00:48:25,000 --> 00:48:32,000 Nápad tady je otevření souboru, 652 00:48:32,000 --> 00:48:38,000 číst v souboru řádek po řádku. 653 00:48:38,000 --> 00:48:46,000 Pro každý řádek v souboru 654 00:48:46,000 --> 00:48:51,000 budeme mít pole, kde jsme 655 00:48:51,000 --> 00:49:03,000  lince jako náš klíč. 656 00:49:03,000 --> 00:49:09,000 A pak, když se dostaneme na konec zde 657 00:49:09,000 --> 00:49:17,000 $ Arr tyto klávesy jsou jedinečné linie 658 00:49:17,000 --> 00:49:25,000 ze souboru, protože víme, že když jsem dal linky do tohoto pole 659 00:49:25,000 --> 00:49:33,000 několikrát to bude jen držet přepsání staré hodnoty, 660 00:49:33,000 --> 00:49:46,000 a můžeme skutečně dát pole řádek jako sám jen tak. 661 00:49:46,000 --> 00:49:48,000 >> To je divný. 662 00:49:48,000 --> 00:49:52,000 Jsme ukládání stejný klíč hodnota pár znovu a znovu a znovu, 663 00:49:52,000 --> 00:50:00,000 ale protože jsme zaručit, že tam bude jen 1 klíč nazývá řádek 664 00:50:00,000 --> 00:50:05,000 takže pokud máme soubor, který říká, že-soubor zvířecích zvuků a má Haf haf,, 665 00:50:05,000 --> 00:50:11,000 meow, meow, bučet, bučet, a pokaždé, když čteme zvířecí zvuk out 666 00:50:11,000 --> 00:50:15,000 jako tkanina a uložíme v našem poli dostaneme Haf, a pak podruhé 667 00:50:15,000 --> 00:50:20,000 uložíme Woof přepíše poprvé, že jsme uložené to. 668 00:50:20,000 --> 00:50:25,000 Na konci budeme mít pouze jednu položku v poli 669 00:50:25,000 --> 00:50:33,000 pro každou z zvířecí zvuky v našem souboru zvířecí zvuky. 670 00:50:33,000 --> 00:50:41,000 Myslíte si, kluci si jisti, že můžete řešit otevření souboru v PHP? 671 00:50:41,000 --> 00:50:45,000 Jeden způsob, jak to udělat, pojďme na tento rychle-jeden způsob, jak to udělat 672 00:50:45,000 --> 00:50:50,000 je funkce fopen, jak jsme viděli dříve. 673 00:50:50,000 --> 00:50:55,000 Můžete fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Můžete jej otevřít v režimu pro čtení, stejně jako v C. 675 00:50:59,000 --> 00:51:02,000 To je jeden naprosto dobrý způsob, jak to udělat. 676 00:51:02,000 --> 00:51:05,000 Můžete také pak pro čtení v souboru řádek po řádku 677 00:51:05,000 --> 00:51:12,000 mají stejné funkce, mnoho z nich, které jste udělali v C. 678 00:51:12,000 --> 00:51:14,000 Máte fgets. 679 00:51:14,000 --> 00:51:17,000 Máte feof, i když se nám nelíbí, že pomocí 680 00:51:17,000 --> 00:51:22,000 protože, pamatujte, že to není velký v C. 681 00:51:22,000 --> 00:51:25,000 Můžete to udělat stejným způsobem, 682 00:51:25,000 --> 00:51:34,000 ale tady je opravdu super věc. 683 00:51:34,000 --> 00:51:41,000 Je nám líto, nechci dělat $ file, ale tam je funkce nazvaná soubor v PHP, 684 00:51:41,000 --> 00:51:47,000 a tato funkce tady je v pohodě, protože to přečte celý obsah 685 00:51:47,000 --> 00:51:52,000 spisu, který určíte, tak some_file.txt, 686 00:51:52,000 --> 00:51:56,000 přečte celý obsah tohoto souboru do pole 687 00:51:56,000 --> 00:52:03,000 a pak umožňuje iteraci nad ním, což je docela šikovný. 688 00:52:03,000 --> 00:52:07,000 >> Pokud půjdeme, například pro náš webovém prohlížeči 689 00:52:07,000 --> 00:52:14,000 a my se podíváme na Google pro tento soubor PHP 690 00:52:14,000 --> 00:52:23,000 můžete vidět, že naše manuál říká, že soubor přečte celý soubor do pole, 691 00:52:23,000 --> 00:52:27,000 a můžeme file_get_contents vrátit obsah souboru jako řetězec, 692 00:52:27,000 --> 00:52:30,000 ale obvykle jen na to, jako pole, je opravdu pěkné, protože to, co dělá 693 00:52:30,000 --> 00:52:33,000 je to rozbije tak, že každý prvek 694 00:52:33,000 --> 00:52:37,000 v poli je jeden řádek souboru, 695 00:52:37,000 --> 00:52:41,000 takže pokud se podíváme na soubor 0, to je první řádek souboru. 696 00:52:41,000 --> 00:52:46,000 Soubor 1, druhý řádek, soubor 2, třetí řádek, a tak dále, a tak dále. 697 00:52:46,000 --> 00:52:50,000 Nebylo by hezké, kdyby to bylo všechno, co musel udělat v C? 698 00:52:50,000 --> 00:52:53,000 Docela šikovný. 699 00:52:53,000 --> 00:52:59,000 David ukázal to v přednášce, a účastníků stylu ukázal byl 700 00:52:59,000 --> 00:53:03,000 že kromě našeho standardu pro loop-v PHP jsme, že 701 00:53:03,000 --> 00:53:09,000 for ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 a můžete to udělat v PHP taky, to samé- 703 00:53:16,000 --> 00:53:27,000 máme také tuto skvělou konstrukci s názvem foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach je opravdu užitečné, když iterace poli nebo těchto datových struktur 705 00:53:32,000 --> 00:53:36,000 protože vám umožní vytáhnout každý prvek pole 706 00:53:36,000 --> 00:53:42,000 aniž byste museli ručně udělat Indexing sami, 707 00:53:42,000 --> 00:53:46,000 aniž by bylo nutné ručně vytvořit proměnnou indexu, zvyšte ji, 708 00:53:46,000 --> 00:53:51,000 vytáhněte hodnotu v poli v tomto bodě, protože to je velmi běžná věc dělat. 709 00:53:51,000 --> 00:53:54,000 >> Pravděpodobně jste udělal, že tuny době, kdy jste dělali C věci 710 00:53:54,000 --> 00:54:00,000 nad semestru, takže v této foreach 711 00:54:00,000 --> 00:54:06,000 můžeme smyčku tohoto souboru pole, 712 00:54:06,000 --> 00:54:12,000 a syntax je, že chceme nyní smyčce během tohoto pole 713 00:54:12,000 --> 00:54:18,000 a určit, že proměnná budeme používat pro ukládání 714 00:54:18,000 --> 00:54:27,000 prvek tohoto pole lokálně, místní oblasti působnosti této smyčky foreach, 715 00:54:27,000 --> 00:54:32,000 se budeme říkat line. 716 00:54:32,000 --> 00:54:38,000 Pokud je to soubor několika slov a tam je jedno slovo v řádku 717 00:54:38,000 --> 00:54:43,000 bychom mohli nazvat to slovo stejně, opravdu jen dáte to jméno, 718 00:54:43,000 --> 00:54:49,000 co chcete říkat, 719 00:54:49,000 --> 00:55:02,000 a pak uvnitř smyčky, můžete dělat, co chcete s tímto proměnných. 720 00:55:02,000 --> 00:55:08,000 Pokud to není dost, aby si hodnotu pole a budete také chtít, aby se 721 00:55:08,000 --> 00:55:17,000 index spolu s ním si můžete zadat název indexu 722 00:55:17,000 --> 00:55:22,000 stejně jako hodnota, a teď máte přístup k 2 proměnných. 723 00:55:22,000 --> 00:55:26,000 Máte $ i a vedení 724 00:55:26,000 --> 00:55:30,000 kde $ i je index v poli, 725 00:55:30,000 --> 00:55:38,000 a přímka je přímka, že získat ze souboru. 726 00:55:38,000 --> 00:55:49,000 Například, pokud chceme vytisknout echo řádku 0 v souboru jako je tento, 727 00:55:49,000 --> 00:55:57,000 bychom mohli udělat to stejně jako to, "Line $ i ze souboru $ line," 728 00:55:57,000 --> 00:56:02,000 a tady je něco, co také ještě neviděli ani 729 00:56:02,000 --> 00:56:13,000 kde jsem prostě úplně přeskočil celý tento% s% d podnikání 730 00:56:13,000 --> 00:56:16,000 že jsme se museli vypořádat v C, a místo toho jsem šel rovnou do 731 00:56:16,000 --> 00:56:19,000 psaní proměnné v souladu v mém řetězci. 732 00:56:19,000 --> 00:56:23,000 >> To se nazývá proměnná interpolace, interpolace string 733 00:56:23,000 --> 00:56:26,000 kam nádivkou proměnné přímo v, a interpret PHP 734 00:56:26,000 --> 00:56:31,000 je dost chytrý na to, když je to čtení přes řetězec, který začíná s uvozovkami- 735 00:56:31,000 --> 00:56:34,000 ne jediné citace, se samostatnými uvozovky, můžete to udělat, 736 00:56:34,000 --> 00:56:38,000 ale s dvojitými uvozovky, protože přečte to hledá proměnných. 737 00:56:38,000 --> 00:56:42,000 Je to lov je dolů, a pokud to bude považovat proměnné, bude mít hodnotu proměnné 738 00:56:42,000 --> 00:56:47,000 a nacpat si ho do řetězce, pokud to může převést do řetězcové vyjádření, 739 00:56:47,000 --> 00:56:51,000 což je docela šikovný. 740 00:56:51,000 --> 00:56:56,000 Pro tuto chvíli, pojďme komentář mimo zbytek všeho, 741 00:56:56,000 --> 00:57:00,000 uložte tento, a to, co můžeme udělat, je můžeme otevřít soubor 742 00:57:00,000 --> 00:57:06,000 že můžeme volat some_file.txt-let 's vytvoření nového souboru, 743 00:57:06,000 --> 00:57:15,000 a můžeme dát si pár věcí nesmysl sem jen vyzkoušet všechno ven, 744 00:57:15,000 --> 00:57:25,000 uložit, říkají some_file.txt, jak dělám tady nahoře, 745 00:57:25,000 --> 00:57:33,000 a teď když jsem oddálit jen ujistit, že všechno je ve stejném adresáři, 746 00:57:33,000 --> 00:57:36,000 vypadá to, že mám unique.php a some_file.txt ve stejném adresáři. 747 00:57:36,000 --> 00:57:42,000 Kdybych spustit php unique.php 748 00:57:42,000 --> 00:57:51,000 vidět, jak to vytiskne každý řádek v mém souboru a co linka je? 749 00:57:51,000 --> 00:57:56,000 >> To je dost silný, ne? 750 00:57:56,000 --> 00:58:03,000 Podívejte se, trvalo 3 řádky kódu otevřít soubor. 751 00:58:03,000 --> 00:58:08,000 No, 4 řádky kódu. Nedokážu spočítat dnes jasně. 752 00:58:08,000 --> 00:58:13,000 Ale opravdu jen 2 zajímavé řádky kódu, protože další 2 byly složené závorky, 753 00:58:13,000 --> 00:58:17,000 ale v tomto hodně kód, který jsme byli schopni otevřít soubor, iterovat přes to, 754 00:58:17,000 --> 00:58:20,000 vytáhněte číslo řádku a řádku sám 755 00:58:20,000 --> 00:58:24,000 a vytisknout. 756 00:58:24,000 --> 00:58:26,000 Vychytávky ke stažení. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Mám otázku o syntaxi. 758 00:58:28,000 --> 00:58:33,000 Takže foreach se zabývá každou jednotlivou řádku souboru, který si otevře, 759 00:58:33,000 --> 00:58:37,000 a pak, když chcete dělat věci s každým řádku stačí to udělat jako 760 00:58:37,000 --> 00:58:39,000 a pak přidružit hodnotu. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Co můžete udělat právě tady otázka byla 762 00:58:41,000 --> 00:58:46,000 foreach má co do činění s polem, takže foreach syntaxe 763 00:58:46,000 --> 00:58:51,000 je opravdu foreach, a všimněte si, že tam není prostor 764 00:58:51,000 --> 00:58:53,000 nebo něco mezi pro a každý. 765 00:58:53,000 --> 00:58:56,000 Musí jít přímo vedle sebe, 766 00:58:56,000 --> 00:59:00,000 a pak se v poli, 767 00:59:00,000 --> 00:59:05,000 a pak máte tento další klíčové slovo názvem jako má být tam, 768 00:59:05,000 --> 00:59:11,000 a pak po jak můžete buď dát jednu název proměnné, 769 00:59:11,000 --> 00:59:14,000 V takovém případě je to bude vytahovat hodnoty pole, 770 00:59:14,000 --> 00:59:20,000 ne indexy, nebo pokud si to, jak jsme napsal níže 771 00:59:20,000 --> 00:59:24,000 dostanete klíče a hodnoty. 772 00:59:24,000 --> 00:59:33,000 Ty mají foreach prvek pole nebo pár pole, jak výčnělkem, hodnoty 773 00:59:33,000 --> 00:59:38,000 nebo jako jen hodnota. 774 00:59:38,000 --> 00:59:40,000 V závislosti na tom, co budete potřebovat, pokud nepotřebujete klíče, 775 00:59:40,000 --> 00:59:42,000 pak může jít s hodnotou. 776 00:59:42,000 --> 00:59:45,000 Pokud chcete, aby tlačítek můžete jít s nimi taky. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Také jsem si uvědomila, že nikdy deklaroval i nebo linku. 778 00:59:48,000 --> 00:59:51,000 Jak to ani neví, co to je? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Co myslíš tím prohlásit? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Nikdy jsme jim řekli, co jsem nebo linka prostředky. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Nikdy jsme řekli počítači, co jsem nebo čára značí, pokud jde o- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] To, že jsou indexovány nebo Jsou v- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Nikdy jsme řekli, že to má být index nebo klíč a hodnota, 784 01:00:09,000 --> 01:00:13,000 a to proto, že to je PHP interpret. 785 01:00:13,000 --> 01:00:17,000 To slouží jako prohlášení a říká pořádku, klíč bude 786 01:00:17,000 --> 01:00:20,000 proměnné volal i uložen v proměnné s názvem i. 787 01:00:20,000 --> 01:00:24,000 Hodnota se bude uložen v proměnné s názvem linky, 788 01:00:24,000 --> 01:00:28,000 takže to slouží jako prohlášení o těchto proměnných 789 01:00:28,000 --> 01:00:35,000 a říká, že $ i je klíč, a $ line je hodnota. 790 01:00:35,000 --> 01:00:37,000 Jo, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Pokud jsou klíče neudělal číselně 792 01:00:41,000 --> 01:00:44,000 jak se rozhodnout, v jakém pořadí to bude tisknout vše? 793 01:00:44,000 --> 01:00:47,000 Je to stejně jako pořadí to zapsané v? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Pojďme to zkusit. 795 01:00:51,000 --> 01:00:57,000 Pojďme vytvořit proměnnou s názvem arr, 796 01:00:57,000 --> 01:01:06,000 a co můžeme udělat jde do 7. 797 01:01:06,000 --> 01:01:19,000 Řekněme, že 0 jde do dalšího pole s 1, 2, nebo jablko. 798 01:01:19,000 --> 01:01:30,000 Řekněme, že 7 jde do 1, b jde do 2, 799 01:01:30,000 --> 01:01:39,000 a 3 jde do 4. 800 01:01:39,000 --> 01:01:44,000 To je tak trochu blázen hledá například proto, že jsme míchání 801 01:01:44,000 --> 01:01:47,000 řetězce a celá čísla všude kolem. 802 01:01:47,000 --> 01:01:50,000 Není tam žádný skutečný aby na toto pole. 803 01:01:50,000 --> 01:01:55,000 Chci říct, že jsme objednat vše v abecedním pořadí podle klíče. 804 01:01:55,000 --> 01:01:57,000 Jsme si mohli objednat vše abecedně hodnotou. 805 01:01:57,000 --> 01:02:00,000 >> Mohli bychom zkusit a vzít v úvahu, že některé řetězce, některé jsou ints, 806 01:02:00,000 --> 01:02:03,000 a jsme si mohli vyzkoušet a převést je všechny do stejného typu a uvidíme, co se stane, 807 01:02:03,000 --> 01:02:09,000 nebo můžeme uvažovat je v hodnotě, ve kterém jsme již zadali 808 01:02:09,000 --> 01:02:14,000 kam jsme toho chlapa do první, ten chlap na druhém, ten chlap ve třetích, 809 01:02:14,000 --> 01:02:19,000 ten chlap ve čtvrtém, et cetera. 810 01:02:19,000 --> 01:02:23,000 Podívejme se, co se stane, když jsme se spustit tento kód. 811 01:02:23,000 --> 01:02:29,000 Pokud budeme posouvat dolů a udělat stejný druh věci, 812 01:02:29,000 --> 01:02:31,000 a tady to není vytištění nových linek. 813 01:02:31,000 --> 01:02:35,000 Když číst věci z tohoto souboru bylo včetně nových tratí v hodnotách, 814 01:02:35,000 --> 01:02:38,000 který byl důvod, proč se vytisknout pěkně, zatímco tady to ne, 815 01:02:38,000 --> 01:02:40,000 tak to je důvod, proč je všechno smushed dohromady. 816 01:02:40,000 --> 01:02:44,000 Dodejme, že v této nové řadě jen proto, aby se věci pěkné. 817 01:02:44,000 --> 01:02:51,000 Pojďme spusťte ji, a tak zde 818 01:02:51,000 --> 01:02:54,000 podívejte se na to, co se stalo. 819 01:02:54,000 --> 01:03:00,000 Je vytištěn všechno v pořadí, ve kterém se dát do pole. 820 01:03:00,000 --> 01:03:10,000 To zachovat pořádek v tomto smyslu. 821 01:03:10,000 --> 01:03:15,000 >> Vraťme se zpět k tomuto problému unikátů 822 01:03:15,000 --> 01:03:20,000 tam, kde chceme být schopni iteraci souboru, 823 01:03:20,000 --> 01:03:24,000 a dáme to some_file.txt, 824 01:03:24,000 --> 01:03:27,000 a budeme iterovat přes to takhle. 825 01:03:27,000 --> 01:03:31,000 Řekli jsme, že jsme chtěli použít pole, aby se ujistil, že bychom dostali všechny 826 01:03:31,000 --> 01:03:36,000 jedinečné linie ven, a tak bychom mohli udělat velmi snadno 827 01:03:36,000 --> 01:03:49,000 jen o skladování v poli, které jsme samozřejmě prohlásí mimo rámec smyčky, 828 01:03:49,000 --> 01:03:55,000 A my jsme řekli, že pokud jsme použili řádky v souboru jako klíče v našem poli 829 01:03:55,000 --> 01:03:59,000 pokud jsme vstoupili duplicitní řádek bychom být přepsání předchozí hodnotu. 830 01:03:59,000 --> 01:04:08,000 To není vůbec možné mít 2 klíče, které jsou shodné v jednom poli. 831 01:04:08,000 --> 01:04:13,000 Můžeme dělat jen to. 832 01:04:13,000 --> 01:04:17,000 Budeme se zbavit tohoto echo prohlášení tady. 833 01:04:17,000 --> 01:04:24,000 Zde jsme uložení řádek v souboru na našem poli 834 01:04:24,000 --> 01:04:28,000 pomocí se jako klíč. 835 01:04:28,000 --> 01:04:32,000 Nic na tom není, a ukázalo se, že nemáme ani potřebovat klíč. 836 01:04:32,000 --> 01:04:38,000 Nepotřebujeme, aby i proměnná. 837 01:04:38,000 --> 01:04:43,000 V tomto bodě, pokud bychom měli udělat další smyčky foreach 838 01:04:43,000 --> 01:04:48,000 a my jsme byli ve smyčce na každém arr 839 01:04:48,000 --> 01:04:56,000 a linka teď, když jsme echo-oops, sorry. 840 01:04:56,000 --> 01:05:00,000 Nemůžeme používat čárku. Musíme použít jako klíčové slovo. 841 01:05:00,000 --> 01:05:05,000 Nyní, když jsme echo řádek bychom se měli dostat všechny unikátních slov v souboru. 842 01:05:05,000 --> 01:05:10,000 Pokud půjdeme do some_file.txt, 843 01:05:10,000 --> 01:05:19,000 a řekněme, že to jablko, banán, jablko, jablko, banán, 844 01:05:19,000 --> 01:05:22,000 Pokud máme vytištění všech unikátních slov v tomto souboru bychom měli získat pouze 845 01:05:22,000 --> 01:05:30,000 jablko a banán vytisknout. 846 01:05:30,000 --> 01:05:36,000 Pokud šetříme to, teď tady budeme přibližování se 847 01:05:36,000 --> 01:05:44,000 php unique.php, a ta-da. 848 01:05:44,000 --> 01:05:51,000 Úspěšně jsme uniqued soubor. 849 01:05:51,000 --> 01:05:55,000 >> Závěrečná část tohoto problému je výzvou k třídění tohoto pole před vytisknout to 850 01:05:55,000 --> 01:05:58,000 protože v tomto jednoduchém příkladu, který jsme právě udělali 851 01:05:58,000 --> 01:06:04,000 jsme měli štěstí v tom smyslu, že soubor- 852 01:06:04,000 --> 01:06:06,000 Udělali jsme to vymyslel příklad s jablky a banány. 853 01:06:06,000 --> 01:06:08,000 To už jsou seřazena. 854 01:06:08,000 --> 01:06:19,000 Ale pomocí jednoduchého třídění funkce můžete třídit pole, což je docela šikovný. 855 01:06:19,000 --> 01:06:24,000 Poslední věc, že ​​chci mluvit s vámi asi opravdu rychle 856 01:06:24,000 --> 01:06:31,000 je, že tento druh PHP je všechno v pořádku a dobré, a je to super padnoucí do ruky 857 01:06:31,000 --> 01:06:43,000 vědět, jak to udělat, pokud budete někdy potřebovat udělat malé, rychlé věci programově. 858 01:06:43,000 --> 01:06:48,000 Například, když budu muset napsat program, který, řekněme, 859 01:06:48,000 --> 01:06:53,000 dává všem do sekcí nebudu chodit a psát v jazyce C. 860 01:06:53,000 --> 01:06:55,000 Bude to trvat dlouho. 861 01:06:55,000 --> 01:06:57,000 Bude to mít trochu bolesti, zejména v případě, že se jedná o soubory, 862 01:06:57,000 --> 01:07:00,000 stejně jako vy jsem viděl. 863 01:07:00,000 --> 01:07:05,000 Je to tak hezké, že se právě v tomto hodně kódu přímo zde 864 01:07:05,000 --> 01:07:08,000 jsme byli schopni prorazit souboru, vytáhněte všechny jedinečné hodnoty 865 01:07:08,000 --> 01:07:11,000 a vytisknout je zpátky. 866 01:07:11,000 --> 01:07:16,000 >> Nicméně, pro vaše úkoly, pro vaše projekty, 867 01:07:16,000 --> 01:07:20,000 pokud stavíte webové stránky s PHP je síla, která 868 01:07:20,000 --> 01:07:25,000 utíkáme naše PHP soubory prostřednictvím tohoto tlumočníka, 869 01:07:25,000 --> 01:07:29,000 a tlumočník je zpracování všechno uvnitř tagů PHP, 870 01:07:29,000 --> 01:07:34,000 takže vše ostatní nedotčené a vyplivl výsledky. 871 01:07:34,000 --> 01:07:40,000 Můžeme to udělat stavět HTML programově. 872 01:07:40,000 --> 01:07:46,000 Teď, když jsme se vrátit k spec, poslední problém v spec 873 01:07:46,000 --> 01:07:56,000 mluví o této myšlence spojování 874 01:07:56,000 --> 01:08:01,000 a vytvoření drop-down menu, 875 01:08:01,000 --> 01:08:06,000 které mohou nebo nemusí chtít dělat, v závislosti na tom, co vaše konečné projekt dělá, 876 01:08:06,000 --> 01:08:13,000 který umožňuje uživateli vybrat ze seznamu všech možných koncentrací 877 01:08:13,000 --> 01:08:15,000 jejich jedné koncentraci. 878 01:08:15,000 --> 01:08:21,000 Nyní, to je tak trochu bolesti typu na to 879 01:08:21,000 --> 01:08:25,000 a udělat vše ručně, a to zejména, když jste museli ujistit, 880 01:08:25,000 --> 01:08:28,000 že máte všechny lomené závorky na správném místě a všechny citace na správném místě, 881 01:08:28,000 --> 01:08:34,000 tak s PHP můžete dělat programově, a můžete to udělat opravdu rychle. 882 01:08:34,000 --> 01:08:36,000 >> Pojďme se podívat, jak to udělat. 883 01:08:36,000 --> 01:08:42,000 Budeme otevřít nový soubor. 884 01:08:42,000 --> 01:08:46,000 Budeme dát v našich PHP tagy. 885 01:08:46,000 --> 01:08:53,000 Budeme říkat, že concentrations.php, 886 01:08:53,000 --> 01:08:58,000 a teď, když to děláš, trochu dobrá věc myslet 887 01:08:58,000 --> 01:09:02,000 když se snažíte kombinovat a zápas si PHP a vaše HTML 888 01:09:02,000 --> 01:09:08,000 je přijít na to,, jo, co je ta část, která chci programově generovat? 889 01:09:08,000 --> 01:09:11,000 Co je ta část, která mohu programově vytvářet? 890 01:09:11,000 --> 01:09:17,000 Je pravda, že můžete udělat všechny vaše HTML 891 01:09:17,000 --> 01:09:19,000 uvnitř PHP bloků. 892 01:09:19,000 --> 01:09:24,000 Můžete echo všechny HTML jako řetězce. 893 01:09:24,000 --> 01:09:30,000 Například, když chci začít dělat zvolte značky uvnitř PHP 894 01:09:30,000 --> 01:09:46,000 Mohu říci, echo, říkají vyberte název = koncentrace, 895 01:09:46,000 --> 01:09:49,000 a pak dole bych mohl mít jiný echo tag 896 01:09:49,000 --> 01:09:57,000 nebo jiný echo nazývá zavřete vyberte. 897 01:09:57,000 --> 01:10:00,000 To je jeden způsob, jak to udělat, protože to, co to je doslova dělat 898 01:10:00,000 --> 01:10:09,000 je vytisknout tento řetězec, když je to běh přes tlumočníka PHP, 899 01:10:09,000 --> 01:10:12,000 takže výsledek bude HTML. 900 01:10:12,000 --> 01:10:18,000 Pokud bych tento soubor uložit jako je teď 901 01:10:18,000 --> 01:10:24,000 a běžím php concentrations.php 902 01:10:24,000 --> 01:10:26,000 podívat se na to, co jsem dostal. 903 01:10:26,000 --> 01:10:30,000 Dostal jsem tento otevřený Zavřít Vyberte značku. 904 01:10:30,000 --> 01:10:36,000 >> Pokud bych měl udělat, a já jsme byli uložit tento výsledek do souboru, 905 01:10:36,000 --> 01:10:45,000 říkají, concentrations.html-wait, to vypadá, že l je pryč na druhou stranu- 906 01:10:45,000 --> 01:11:02,000 Nyní když otevřu tady concentrations.html vidíte mám validní HTML soubor. 907 01:11:02,000 --> 01:11:05,000 Je to trochu divné? 908 01:11:05,000 --> 01:11:09,000 Jsme používáte PHP pro vytvoření HTML, vytvořit validní HTML. 909 01:11:09,000 --> 01:11:13,000 Způsob, jakým jsme to udělat, je budeme mít jen tiskové PHP 910 01:11:13,000 --> 01:11:16,000 HTML, že chceme, aby se tisklo. 911 01:11:16,000 --> 01:11:20,000 To je doslova jak PHP webové stránky fungují. 912 01:11:20,000 --> 01:11:24,000 Když navštívíte webovou stránku, která vás pošle k něčemu, jako je 913 01:11:24,000 --> 01:11:30,000 něco, něco, něco, co dot com lomítko index.php 914 01:11:30,000 --> 01:11:33,000 Počítač je doslova vyvolání index.php, 915 01:11:33,000 --> 01:11:38,000 běží přes PHP interpretru, a bez ohledu na nevyžádanou vyjde 916 01:11:38,000 --> 01:11:49,000 to posílá zpět do prohlížeče a říká hej, prohlížeč, interpretovat to jako HTML. 917 01:11:49,000 --> 01:11:54,000 Pěkná věc je, že to může být bolest neustále psát echo, echo, echo, echo 918 01:11:54,000 --> 01:11:59,000 a uzavřít vše v uvozovkách, jako je tento, takže pokud chcete psát 919 01:11:59,000 --> 01:12:04,000 HTML, které to bude statické sami, můžete to udělat takhle, 920 01:12:04,000 --> 01:12:16,000 dát ven, zavřete jej, 921 01:12:16,000 --> 01:12:21,000 a pak zde dal jen uvnitř PHP značek, které znáte 922 01:12:21,000 --> 01:12:26,000 Chcete-li programově vytvářet, a v tomto případě je to tato možnost tagy 923 01:12:26,000 --> 01:12:31,000 , které jsou bolest generovat. 924 01:12:31,000 --> 01:12:37,000 >> Například bychom mohli generovat tisíce možností tagy 925 01:12:37,000 --> 01:12:48,000 tím, že dělá něco podobného, ​​$ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 a říkat echo hodnoty opce = $-jejda, to nemůžu udělat, že. 927 01:13:00,000 --> 01:13:03,000 Dobře, pojďme to zkusit a uvidíme, co se stane. 928 01:13:03,000 --> 01:13:22,000 $ I a pak říká $ i 01:13:27,000 Spíše než by museli psát na to, že možnost označit tisíc různých časů 930 01:13:27,000 --> 01:13:33,000 Jsem pomocí PHP kódu generovat automaticky, programově. 931 01:13:33,000 --> 01:13:38,000 Druh šikovný. Jo. 932 01:13:38,000 --> 01:13:41,000 Pamatuji si to, že je zmiňován v jeden přednášky nebo návodu, 933 01:13:41,000 --> 01:13:43,000 ale jaký je rozdíl mezi uvozovkami, 934 01:13:43,000 --> 01:13:45,000 normální ty a tyto jednotlivé věci? 935 01:13:45,000 --> 01:13:49,000 To je vlastně něco, co jsem udělal špatně tady, že jsem vám ukážu. 936 01:13:49,000 --> 01:13:52,000 Jednotlivé citace neumožňují žádné speciální znaky, 937 01:13:52,000 --> 01:13:57,000 takže vše uvnitř jednotného citovaného řetězec je interpretován doslova. 938 01:13:57,000 --> 01:14:02,000 Kdybych měl \ n vnitřek apostrofů a jsem zachránit to, například, 939 01:14:02,000 --> 01:14:07,000 a teď jdu sem a spusťte jej, 940 01:14:07,000 --> 01:14:12,000 oops, kam jdu? 941 01:14:12,000 --> 01:14:19,000 Oh, je to proto, že jsem zapomněl $. 942 01:14:19,000 --> 01:14:25,000 >> Nyní, když jsem otevřít-vlastně, tady, budeme se zbavit psaní do souboru. 943 01:14:25,000 --> 01:14:27,000 Budeme jen číst. 944 01:14:27,000 --> 01:14:34,000 Zde vidíte, že mám tento doslovný \ n v řetězci, jako ne skutečné novém řádku, 945 01:14:34,000 --> 01:14:38,000 a podobně, místo toho, aby ve skutečnosti interpolací hodnotu této proměnné 946 01:14:38,000 --> 01:14:42,000 to mi $ i sama o sobě, která je tak trochu bolesti. 947 01:14:42,000 --> 01:14:46,000 Cesta kolem tohoto je použít uvozovky, 948 01:14:46,000 --> 01:14:52,000 a pak při použití uvozovek se bude skutečně 949 01:14:52,000 --> 01:14:56,000 správně interpolovat hodnoty všech těchto proměnných v zde 950 01:14:56,000 --> 01:14:59,000 a také rozpoznat tento \ n být nová linka, která je 951 01:14:59,000 --> 01:15:02,000 a ne \ n. 952 01:15:02,000 --> 01:15:07,000 Použití jednotlivých ty je pěkné, když máte 953 01:15:07,000 --> 01:15:10,000 znaky, které by mohly být interpretovány jako speciální znaky, protože pak nemusíte 954 01:15:10,000 --> 01:15:15,000 uniknout jim neustále. 955 01:15:15,000 --> 01:15:18,000 Věci se mohou dostat chaotický, a často se tak, jak jsem to udělat, 956 01:15:18,000 --> 01:15:24,000 jen dělat věci jednoduše, je to, že pokud budu mít nic 957 01:15:24,000 --> 01:15:31,000 HTML jako v mém kódu budu zahrnovat edit v apostrofech 958 01:15:31,000 --> 01:15:36,000 a pak použijte tento operátor zřetězení 959 01:15:36,000 --> 01:15:43,000 zřetězit proměnné a. 960 01:15:43,000 --> 01:15:47,000 To je další způsob, jak to dělá 961 01:15:47,000 --> 01:15:52,000 kde máme tečku, co se děje se připojit je to řetězec 962 01:15:52,000 --> 01:15:56,000 s tím s tím s tím, 963 01:15:56,000 --> 01:15:59,000 a teď nemám uniknout tyto uvozovky. 964 01:15:59,000 --> 01:16:02,000 Nemám použít tento chlapa k útěku. 965 01:16:02,000 --> 01:16:08,000 Budou doslova vytisknout jako uvozovek a pak ten chlap tady. 966 01:16:08,000 --> 01:16:11,000 To je další způsob, jak míchat všechno dohromady. 967 01:16:11,000 --> 01:16:14,000 >> [Student] Také, když zopakoval GetType tam byly žádné uvozovky vůbec. 968 01:16:14,000 --> 01:16:22,000 Správně, takže echo je trochu zvláštní v tom smyslu, že nepotřebujete závorky. 969 01:16:22,000 --> 01:16:29,000 Nemusíte mít uvozovky nutně kolem proměnných, 970 01:16:29,000 --> 01:16:37,000 jako je platný říci echo $ i, a to bude interpretovat jako řetězec. 971 01:16:37,000 --> 01:16:44,000 Bude to dělat obsazení, takže jsme mohli udělat, a to je platné taky, ale nepotřebujeme ji. 972 01:16:44,000 --> 01:16:48,000 Je to volitelné. 973 01:16:48,000 --> 01:16:53,000 V tomto týdnu se problém sadě pozor na spoustu tohoto druhu věcí 974 01:16:53,000 --> 01:16:58,000 kam míchání a odpovídající HTML s PHP 975 01:16:58,000 --> 01:17:08,000 stejně jako to, a teď, když jsme se posunout zpět a my spustit tento 976 01:17:08,000 --> 01:17:13,000 můžeme vidět, že máme spoustu možností hodnot 977 01:17:13,000 --> 01:17:15,000 že zrovna vytisknout. 978 01:17:15,000 --> 01:17:20,000 Máme všechny tyto HTML, který dostal generován opravdu rychle pro nás. 979 01:17:20,000 --> 01:17:22,000 Nechám to jako cvičení. 980 01:17:22,000 --> 01:17:24,000 Je to velmi podobný souboru čtení, které jsme dělali dříve. 981 01:17:24,000 --> 01:17:31,000 >> K dispozici je concentrations.txt soubor, který si můžete stáhnout dolů z CDN, 982 01:17:31,000 --> 01:17:34,000 a můžete ho otevřít pomocí stejné foreach trik, který jsme udělali dříve, 983 01:17:34,000 --> 01:17:39,000 a foreach stačí echo možnost a zapojte 984 01:17:39,000 --> 01:17:44,000 odpovídající hodnoty, příslušné klíče a indexy, 985 01:17:44,000 --> 01:17:49,000 a pak dostanete drop-down, který doslova vytváří 986 01:17:49,000 --> 01:17:54,000 programově pro ty všechny různé koncentrace na Harvardu. 987 01:17:54,000 --> 01:17:57,000 Šikovný věc mít. 988 01:17:57,000 --> 01:18:02,000 Tam je spousta konfigurace věci pro tento úkol. 989 01:18:02,000 --> 01:18:07,000 Pokud jste tak dosud neučinily, že už se další půlhodinu, hodinu, 990 01:18:07,000 --> 01:18:10,000 nějaký čas dnes rozhodně pro jistotu, 991 01:18:10,000 --> 01:18:14,000 projít spec problému set, 992 01:18:14,000 --> 01:18:20,000 vidět, co se děje s zřízení vhost, místní hostitel, všechny ty věci. 993 01:18:20,000 --> 01:18:24,000 Jedna věc je poukázat právě teď, je, že 994 01:18:24,000 --> 01:18:30,000 ve většině problémových sad jsme se jít do složky Dropbox 995 01:18:30,000 --> 01:18:34,000 a pak stahování problém nastavenou soubor zip a rozepínací jej. 996 01:18:34,000 --> 01:18:36,000 Pro tento problém soubor, který nechcete. 997 01:18:36,000 --> 01:18:40,000 Chcete-li jít do této vhosts adresáře. 998 01:18:40,000 --> 01:18:45,000 Budete chtít jít do vhostů a jít do místního hostitele adresáře v něm, 999 01:18:45,000 --> 01:18:50,000 a to je místo, kde budete chtít strhnout zip soubor, 1000 01:18:50,000 --> 01:18:55,000 rozbalte ho, a připravte se na to. 1001 01:18:55,000 --> 01:18:57,000 Budete muset následovat kroky pečlivě. 1002 01:18:57,000 --> 01:19:02,000 >> Máte-li jakékoli dotazy, pošlete e-mail, poslat ho na Diskutujte, přišel úřední hodiny. 1003 01:19:02,000 --> 01:19:08,000 Díky hoši. Příští týden budeme mít recenzi relace pro kvíz. 1004 01:19:08,000 --> 01:19:12,000 Užijte si poslední problém sadu. Doufám, že to všechno jde velmi dobře. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]