[Powered by Google Translate] [§ 8] [méně komfortní] [Nate Hardison] [Harvard University] [To je CS50.] [CS50.TV] Vítejte v našem sekundě poslední části. V tomto týdnu budeme mluvit o PHP, a pak příští týden uděláme malou recenzi na Quiz 1. Budeme začít na straně 3 tohoto problému sady pack, a budeme pracovat prostřednictvím sekce otázek poměrně rychle. Na stránce 3, začneme mluvit o tomto rozdílu mezi C a PHP v tom smyslu, že PHP je dynamicky typový jazyk, vzhledem k tomu, C je staticky zadali, a někdo opravdu rychle udělat nějaké kódování v něco jako PHP nebo Python nebo Ruby před JavaScriptu? Zcela nový? Dobře. Všechny z těchto jazyků, které jsem právě zmínil jsou velmi odlišné od jazyků, jako je C a C + + a Java v tom smyslu, že když deklarujete proměnnou nemusíte deklarovat jaké proměnné je, tak v C jsme přilepená museli vždycky říkám to bude int proměnné, nebo to bude char * variabilní, vzhledem k tomu, s PHP, Python, Ruby, s s mnoha z těchto více moderních jazyků nemusíte dělat, že vůbec. Stačí deklarovat svou proměnnou, a v případě PHP můžete prohlásit, že je to proměnná prefixing to s znakem $, a pak se typ proměnné je určen kterékoliv hodnoty to drží, což je docela fajn. Chcete-li hrát si s tímto trochu, máme ukázkový PHP kód přímo zde mezi počáteční a koncovou značku. Jsme použití tohoto druhu jako HTML v tom smyslu, že máme tyto úhelníky zde pro otevření a zavření. Uvidíte to s HTML. Uvidíte stejnou syntaxi s XML taky. To ukazuje na začátek bloku PHP. To? Php je specifické pro PHP. Zavřeme vše s> i. Pojďme otevřít soubor v našem zařízení za použití jakýchkoliv byste chtěli. V tomto paketu se říká, volat dynamic.php. Po pravdě řečeno, můžete volat to, co si přejete, ale název souboru přijde a být důležité později, takže stačí vzpomenout jak se tomu říká. Chystám se přejít na spotřebiče, a já budu dělat adresář pro oddíl 9 Věřím, že jsme teď. A půjdeme do sekce 9, a budu používat gedit. Pojďme se podívat, gedit, a budu volat moje dynamic.php. Boom. V dynamic.php, protože to je PHP souboru a chci spustit tak prostřednictvím tlumočníka PHP Musím začít všechno pryč s těmi otevřenými značek, takže budu začít ty hned, dávám málo místa v mezi značkami, a pak bod tohoto cvičení bylo hrát si s tato funkce se nazývá GetType, tak GetType, tuto funkci tady. Všimněte si, že tam je žádné podtržení nebo prostor nebo pomlčku nebo něco podobného, ​​že oddělení na 2 slova, získat a zadejte, jen jedno slovo úplně. Ale co to bude dělat, je-li jsem se projít v proměnné GetType, říkají, $ var nebo $ x, to mi druh ve ladění formátu to, co název tohoto typu je. Budeme experimentovat zde. Zejména, když se podíváte zpátky na PSet spec máme několik různých řádků kódu zde. V prvním řádku kódu jsme inicializovat proměnnou, $ var, se rovná 7, a pak máme tento printf linku , který říká, hey, printf var je prázdný. Printf je jedním z mnoha způsobů, jak lze vytisknout věci v PHP. Často uvidíte echo funkci použít místo printf, ale printf jsme všichni obeznámeni s mít been kódování v C na chvíli. Co můžete udělat, je skutečně uvidíme, jestli kopírování a vložení práce. Chystám se dát to zkusit. Vrátíme se k zařízení. Dobře, a tam jdeme. A rozestup je trochu funky, ale je to tady. Máme tento kód zde. [Student] Není to dobrý styl na kartě to? Je nám líto? [Student] Je to konvenční záložce? Správně, takže Sam se zeptá, zda je to konvence kartu, nebo ne. Typicky ano. V tomto případě jsem zvolil ne. Upřímně řečeno, uvidíte různé věci mezi různými programátory. PHP se obvykle používá často v kombinaci s HTML a další jazyky, a tak někdy tisk bude vypadat trochu funky Pokud odrážka v počáteční a koncovou PHP značku. To opravdu záleží. V tomto případě zkopírujte a vložte ani vložit karty v pro mě, ale rozhodně to, jak jsi říkal, aby to jasnější. Dobře, pokud si uložit tento kód do dynamic.php pak to, co můžete udělat, je přijít dolů do okna terminálu, kde jsem tady dole v gedit, a to ekvivalent kompilaci používání make a pak běží kód v C vše, co musíte udělat, se souborem PHP je nastartovat tlumočníka PHP, což je malý program, nazvaný PHP, a argument dát na tlumočníka, je soubor, který chcete interpretovat. V tomto případě, dynamic.php. Jejda, kde jsem dal to? Oh, jsem si ho v kapitole 9, a jsem tady. To je důvod, proč. Nyní, když jsem spustit znova vidíme, že v mé první výzvě GetType funkce var je celé číslo. V příští var je řetězec, a pak ve třetí var je boolean. Co je na tom zajímavé je, pokud bychom se posunout zpět, vidíme, že jsou typy podobné těm, které jsme měli v C. Měli jsme ints v C. Jsme trochu měli řetězců v C, takže řetězce nebyly úplně důvěryhodně typ v tom smyslu, že náš CS50 řetězec byl opravdu to, co? Je nám líto? Missy? [Missy] Char *. Jo, to byl tento char * jsme použili. Na samém začátku semestru jsme používali typ řetězce, ale bylo to opravdu char * pod kapotou. Právě jsme typem definoval to, že v PHP tyto řetězce jsou pro konkrétní typ. Není více o tomto char věci * typ. Uvidíte, že můžeme dělat mnohem více věcí s řetězci mnohem snadněji v PHP, než jsme mohli v C, a pak konečně, máme tuto booleovský typ, a velký rozdíl je, že pokud bychom se posunout zpět dolů, vidíme, že název těchto typů jsou nyní integer, string, a boolean místo int a bool, a jak si vyzvednout různé programovací jazyky, za předpokladu, že v určitém okamžiku ve vašich životech vám přijít do styku s různé ty si všimnete malé mouchy, jako je tato kde C volá celá čísla typu int. Někteří to nazývají celá čísla. Existují i ​​jiné pojmy, které budete spouštět do. Big int jsme dnes viděli v SQL. Tam jsou také množství a klepněte na bool, boolean, všechny druhy rozdílů tam. To není příliš zajímavé, ale teď budu vám trochu času, pokud se přiblížit zpět k práci toto cvičení na spodní straně 3 kde se požaduje, jaké typy odpovídají tyto hodnoty zde dole. Máme 3,50. Máme tu věc tady, což je zajímavé. Neviděli jsme, že dříve, ale pokud jste sledovali společně v přednášce již pravděpodobně víte, co to je. Pak máme toto, což je druh funky. Poznáváte tohle. Co je to v C? Sam? Co by to dát v C? To by otevřít soubor s názvem dynamic.php a učinit z něj čitelné. Jo, a jaké by měly být typ proměnné, které bychom přiřadit to? Hvězdy souboru >>. Přesně tak, bychom přiřadit to do souboru hvězdy. To je legitimní PHP příliš. Spustit to. Podívejte se, co se stane, když minete, že do GetType. A pak také zjistit, co null, co by to mohlo být v PHP. Dám vám pár minut. Můžete si doslova zkopírovat a vložit tyto hodnoty, a pak budeme dělat trochu náhodný hovor na vás a uvidíte, co máš. [Student] Mám dotaz. << Jo. V jedné z přednášek David řekl, že je to něco, co si můžete dát v horní části souboru takže nemusíte psát v PHP pokaždé. Co to bylo? On byl pravděpodobně mluví o libře třesku, hash bang. Je to směrnice, která, pokud označíte soubor jako spustitelný pak to, co dělá, je při spuštění souboru bude vyprávět shell program používat PHP interpret interpretovat obsah souboru. Otázkou je, co je to speciální linka že jsme je mohli zařadit na vrcholu našich PHP souborů nemusí zahrnovat tento řádek PHP nebo tento příkaz PHP kdykoliv chceme spustit soubor? A můžete skutečně udělat s partou různých souborů. Věřím, že to záleží na tom, kde je uložen binární PHP, ale často usr / bin / php je dobré místo pro start. Můžete přijít na tohle přesně tím, že jde zpátky do svého zařízení a psát, jaké php. Který příkaz zjistí, když jste provádění binární nebo příkaz, kde odpovídající soubor. To mi říká, že PHP je opravdu aliasing tento binární soubor že jsou uloženy v usr / bin, což je, kde jsou nainstalovány mnoho systémových binárních souborů. Například, když jsem přejděte až na vrchol, teď, když jsem si tohle #! linka zde Mohu přejděte dolů, a můžu zkusit spustit dynamic.php, ale já jsem tuto chybu o povolení zbaven, a co to znamená, je to, že tento soubor není v současné době dává spustitelných oprávnění. Není to označeno jako soubor, který někdo může běžet. Když běžel iniciovat nebo zvonění a máte spustitelný z něj kompilátor byl dost chytrý, aby věděl, že hej, já stavím spustitelný. Pravděpodobně budete chtít provést, tak to by automaticky nakonfigurovat oprávnění pro vás. To není případ, i když, když vytvoříte normální soubor od nuly, Důvodem je obvykle nechcete mít libovolný soubor v systému být spustitelný, takže máte skutečně jít a ručně to. Nejjednodušší způsob, jak to udělat, je pomocí příkazu chmod, a chmod + x říká přidat spustitelný bit protože tam je čtení bit, zápisu bit a bit spouštění, r, w a x, a říká chmod + x zapne spustitelného bit pro pak soubor, který jsme určíte, která v tomto případě bude dynamic.php. [Student] je, že se obrátil na pro každého? Pojďme se podívat na tohle, tak jak bych zkontrolovat oprávnění? Víte, jak bych zkontrolovat oprávnění souboru? [Neslyšitelné Student odpověď] Je nám líto? >> [Student] XSD. XSD nám dává soubor hacků. Výpis všech souborů,-l, ukáže mi všechny soubory v mém adresáři druh v jejich dlouhé, seznam podrobného, ​​a tak zde vidíme, že tento dynamic.php soubor byla naposledy editována 5.listopadu v 16:21. Majitel tohoto souboru je jharvard. To je uživatel, který je přihlášen To je uživatel pracuji jako, a pokud jste také v zařízení budete také pracovat jako uživatel jharvard. Jste ve skupině studentů, a to jsou věci, které uvidíte dost často. Můžeme jít do množství detailů zde ale z velké části to, co budete chtít podívat na když hledáte vidět zda je soubor spustitelný je primárně uživatel, který vlastní soubor, majitel, tak to jharvard, a pak máme oprávnění, bity přes tu na levé straně, a způsob čtení je to, že poslední bit obvykle se používá k označení, zda-alespoň v tomto případě Tento poslední bit bude často být nastaven na reklamní uvést že soubor je adresář a ne jen normální soubor. Pak následující 3 bity přímo zde určit oprávnění, že vlastníkem souboru má, takže v tomto případě jharvard, jako vlastníka souboru, umí číst a psát tento soubor, ale tam je pomlčka říká, že jharvard nelze spustit tento soubor. Dalších 3 bity jsou pro skupinu, takže toto je studenti skupina, takže pokud tam byly více uživatelů na mém zařízení, a my jsme více uživatelů jako součást studentů skupiny, pak mohou všichni tento soubor číst, ale neumí psát to, a podobně někdo jiný, svět lze pouze číst tento soubor také. Tam je dobrý, dlouho writeup o tom, takže si můžete přečíst on-line. V spec problému nastavené jdeme do toho podrobněji. [Student] Je 218 s odkazem na světě? The 218 je-off z vrcholu mé hlavě jsem zapomněla, ale ne. Pojďme se podívat,. Jsem zaslepení na tom teď. Zpět na to, co jsme měli co do činění s tímto chmod + x kde jsme chtěli dát dynamic.php spustitelné oprávnění, a bylo otázkou, zda nebo ne toto by spustitelné oprávnění pro každého nebo jen jharvard, a můžeme vidět podle spuštění příkazů a psaní ls-l, a teď vidíme, že je to označeno jako spustitelný. Můžete vidět, že tam byla změna barvy. Nyní dynamic.php je uveden v zelené, a vypadá to, že odpověď na otázku je to, co, Charlotte? [Charlotte] Pouze jharvard. >> Pouze jharvard, jo. Pokud bychom chtěli se otočit spustitelný bit pro všechny jak můžeme udělat, že? Jakékoliv myšlenky? >> + X? Jo, přesně tak. Charlotte řekla, co můžeme udělat chmod o + x z dynamic.php, a teď, když jsme se spustit ls-l vidíme, že spustitelné bity skutečně zapnuta pro každého. A můžete skutečně udělat opak tohoto, takže si můžete vypnout pro všechny pomocí minus. Nyní je vypnutý, a nyní můžeme jej znovu zapněte pro jharvard takže můžeme skutečně spustit hned, a teď vidíte, když jsme se spustit kód této speciální #! linka nahoře, #! line, řekl shell, řekl našemu terminálu hey, při spuštění tento soubor, použít / usr / bin / php interpretovat tento soubor a pak vytisknout výstup. [Neslyšitelné Student otázka] Jistě, dovolte mi, abych se posunout zpět. Stejně jako tento. Uvidíte všechny z těchto směrnic začít s tímto libru a pak vykřičník, někdy volal shebang, hash bang. [Student] Jak můžeme spustit s dynamic.php php, než jsme dělat to spustitelný? Otázkou bylo, jak můžeme spustit toto použití binární PHP zatímco dynamic.php není spustitelný? To je super důležité, protože to je přesně to, jak že to bude fungovat, když píšete problém sadu 7. Většinu času PHP soubory nejsou přímo spustitelný. Způsob, jakým funguje, je proto, že je to PHP binární, že je spustitelný. Tlumočník je věc, která je prováděna, a tak to, co to dělá je doslova slurping v části obsahu našeho dynamic.php souboru a jít řádek po řádku a provádění těchto příkazů, takže je to s použitím našeho PHP souboru jako seznam instrukcí. Není to přímo spuštěním. To je místo, kde můžeme říci, že tyto soubory jsou interpretovány v době běhu. Je to doba chodu jazyk místo něčeho, co v době překladu, není zkompilovaný jazyk jako C. Existuje způsob, jak získat běhovou jazyk chovat, jako by to kompilace čas jazyk, jako když máte všechny chodu udělal na serveru spíše než víte, co tím myslím? Ano, tak je otázkou Existuje způsob, jak se dostat doba chodu jazyky jednat více jako kompilace typy jazyků? A jsou tu, myslím, že je aktivní oblast výzkumu pro mnoho z těchto společností. Věřím, že Facebook udělal hodně práce s PHP a sestavování ho, což je rychlejší, optimalizací protože jejich stránky jsou založeny na PHP. Pokud jste sledovali node.js vůbec, který je tak trochu o tlumočníka JavaScript aby bylo možné spouštět JavaScript mimo prohlížeč, mimo Vašem webovém prohlížeči, protože tradičně JavaScript by jen spustit uvnitř Firefoxu nebo Chrome, a to by být použity, aby chladné animace stalo na webové stránce a aby vaše webové stránky dynamické. , Která byla postavena na hodně práce, že Google udělal aby JavaScript a C + + svázat dohromady, takže je tu spousta aktivního výzkumu na se tyto jazyky k interakci a optimalizovat, především proto, že mnoho lidí může kód v PHP a JavaScriptu protože je to mnohem jednodušší. Je to mnohem lepší. Nemáte ukazatele. Nemáte typy kolovat. Chtěli získat výhody z těchto kompilace jazycích se všemi kontrolu typu a rychlosti a nižší využití paměti a všechny, které při zachování flexibility a snadnosti použití těchto novějšími. Zpět k naší původní plán útoku. Máme některé z těchto otázek zde v naší spec problému set. Pojďme přes ně opravdu rychle, a půjdeme po místnosti. Charlotte, jaký typ je 3,50? [Charlotte] To je dvojí. >> Je to double. Jimmy, co je ta další? >> Pole. Pole, úžasné, a Jared, co je fopen? [Jared] Je to zdroj. >> Je to zdroj. To je trochu nového, ne soubor hvězdy, ne soubor. Je to zdroj typu v PHP, a je mi líto, Ella, poslední null je to, co? Null. Null, jak je napsána v PHP? >> Stejným způsobem. Stejným způsobem, hlavice? >> Jo. Jo, v pořádku. Jdeme na to, máme double, máme celou řadu, máme zdroj, a pak máme null. Pojďme se podívat teď jste viděli- uvidíme, takže teď myslím, že to, co jsem také chtějí udělat, je vytáhnout tato webová stránka přímo zde, tento php.net / manual, takže pokud jste rozumím a otevřít webový prohlížeč. Jdu vytáhnout Chrome, dej to dovnitř Chci ti ukáže to nejen proto, že můžeme mluvit celý den o typech a vše, co zábavné věci ale spíše proto, že to je manuál PHP, a existuje spousta PHP programátorů tam. Existuje mnoho internetových stránek PHP tam, a jako výsledek, tam je spousta dokumentace na PHP, a manuální, to php.net, je opravdu dobré místo, jít pokud máte otázky o tom, co je nejlepší způsob, jak to udělat X v PHP nebo co to funkce vypadat? Tak nějak, jak se seznámit s tím, co to vypadá, protože budete sem často, bit pro problém nastavit 7. Pokud jste skončili dělat závěrečný projekt, který používá PHP to bude místo, staneš se velmi dobře obeznámený s. Často tak lidé dělají, je, že používají Google k hledání místa, a nemají použijte vyhledávací pole, které je tady v pravém horním rohu, který je tak trochu malý. Pokud jste Googling asi něco dělat s PHP a uvidíte jeden z manuálních odkazů vyskočí můžete obvykle spolehnout na to jako docela dobrý zdroj. Úžasné, tak z těchto typů, jen tak ze zvědavosti, které z nich ještě jsme neviděli? Cokoliv jsme neviděli tu? [Student] Resource. >> Viděli jsme zdroj s fopen hovoru. [Student] objektů. >> Námitky jsme neviděli určitě. Volání jsme neviděli. K dispozici jsou některé z těchto pseudo-typů. Určitě viděl pouze integer a double. Neviděli jsme někteří jiní, takže pokud klikneme na celá čísla můžeme vidět, jsou ještě nějaké další celočíselné hodnoty, které oni mají tady? Jsou všichni-tak integer, integer, integer. Některé jazyky mají větší celočíselné typy, jak jsme viděli na MySQL dnes tam byl int a pak velké int. Cool. Takže, PHP manuál. Vraťme se k našemu problému spec set, a my nyní přejděte na stránku 4. Jedna z věcí, které se stane, když se dostanete tyto jazyky které nemají tuto statickou psaní, takže tyto jazyky, kde musíte deklarovat typ přední proměnné až je dostanete na případy, kdy můžete začít s proměnné různých typů interakce mezi sebou navzájem, a PHP dělá tuto věc, kde se snaží udělat to, co považuje za nejrozumnější věc když máte 2 různé typy na sebe vzájemně působí. Například, pokud se podíváme na tyto řádky kódu přímo zde vidíte, že jsme dostali to, co se stane, když snažíme přidat řetězec 1 na celé číslo 2. Co se stane, když se budeme snažit a přidat řetězec, který není číselná hodnota ale skutečné znaky, CS k počtu 50? Pak uvidíme, je tam něco jiného, ​​co se děje, kde místo přidání řetězec na číslo jsme zapsání čísla na řetězec, a tak dále a tak dále do bodu, kdy jsme získali nějaký divný věci tady, kde máme 7 + pravda. Co sakra to znamená? Pokud jste jít dopředu a vložte některé z tohoto kódu do vašeho přístroje. Můžete držet ji v dynamic.php. Uvidíme, co se stane. [Student] Stačí použít tisk, ne printf? Jo, takže zjistíte, že tisk je také platný funkce pro tisk v PHP. Existuje mnoho různých způsobů, jak to udělat. Uvidíme se za pár příkladů později, jakmile začneme mluvit o unikátní problému, který budeme psát a pak koncentrace problém, který budeme psát že i když máme fopen a fclose to často není nejjednodušší způsob, jak číst v obsahu souboru. PHP má mnoho z těchto C-jako holdovers. [Student] Když jsem dal ve všech 6 těchto věcí, které jsem jen jednu řadu jako výstup. [Nate H.] Když dáš ve všech 6 těchto věcí. Pojďme se podívat, je to proto, že je to možná- jedna věc je, že tyto tiskové hovory nejsou ukončeny na konci se nových tratích. Tam je žádný nový přímka oddělující každý z těchto tiskových hovorů, takže možná, že jste stále jeden velký počet, a je to opravdu jen amalgám znaky nového řádku. [Student] Dobře, jak se mohu ujistit,- No, existuje banda různými způsoby. Dalo by se ručně dát do tisku nového řádku znak, ozvěna znak nového řádku, vytisknout nové řady. [Student] Tak echo je totéž jako printf? Printf je jako C printf kde tisknete formátovaný řetězec. Ty dodává jí formátovací řetězec a pak všechny zástupné proměnné. Je to často něco, co se nepoužívá, uvidíme, jak vyloučení odpovědnosti, Jsem méně obeznámen s PHP, než jsem s jinými webovými jazyky, a když jsem se naprogramovat v PHP jsem obvykle nepoužívají printf protože mi to rychlejší použít Schopnosti řetězec interpolace, že to má, které půjdeme do a já vám ukážu, pár sekund, vzhledem k tomu, v C jsme trochu muset udělat hacky věc, aby si to vytisknout správně. Můžete totiž proměnné přímo do řetězce v PHP. Printf je trochu příliš dlouho na to, co obvykle dělám. Ano, Ella. [Ella] Obecně, pokud se dostanete chybě analýzy to znamená, jako na C to nemůžu říct, kde přesně je chyba, a co to je, Takže to znamená, podívej přes celou kódu a to přišel? Je to obvykle cíleněji než to. Myslím, že v tomto případě to bylo trochu mimo, takže myslím, že v tomto případě jsme byli chybí středník. To se snažil najít smysl všeho, tak jako těchto interpretovaných jazyků, tlumočník se bude snažit a co nejlépe, aby se všechno práci odpovídajícím způsobem. Uvidíte, například v JavaScriptu Budete často-line příkazy end se středníkem stejně, jako je tomu v PHP, stejně jako je tomu v C. V JavaScriptu některých tlumočníků JavaScript v mnoha prohlížečích se dát do středníky pro vás pokud jste náhodou, že chybí jim. Budou se snažit a přizpůsobit pro některé nedbalosti na vaší straně. To je místo, kde by to mohlo být se snaží a snaží a snaží věci fungují, a pak nakonec se dostaneme k bodu, kde se říká v pořádku, Nemůžu dělat věci pracovat na kauci, a to je místo, kde dostanete číslo řádku že by se mohlo zdát trochu mimo od přesného místa. Dobře, tak pojďme projít to opravdu rychle. Jsme skončili s Ellou, takže pojďme se k Missy, a Missy, co tisk řetězce 1 plus počet 2 vám? [Missy] 3. >> 3. Dává to smysl? Tak nějak? Znamená to dát číslo? Znamená to dát řetězec? [Missy] číslo. >> Je to číslo. Ale je to tisk, takže to bude dát nějaký řetězec. Jedna věc, kterou můžeme udělat, abychom zjistili, zda na to Je-li my $ var = 1 + 2 a pak řekneme, ozvěnu GetType, takže jsme použili třetí druh tisku zde. Nyní můžeme vidět, co se děje tady. Zde, co máme, je máme celé číslo z toho. I přesto, že se přidá tento řetězec na číslo, jsme nedostali řetězec z toho, stejně jako Missy řekla. Jsme dostávali celé číslo. Dobře, takže uvidíme, next up, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Dává to smysl? [Kevin] Jo. [Nate H.] Proč? Proč má smysl pro vás? [Kevin] Protože je to jen mít řetězec, s číslem hodnotu nula. Jo, skvělý. Druh nejednoznačných situací, ale je to dobré vědět, co se stane. Stella, co se bude dít dál s číslem 1 + string 2? [Stella] 3. >> 3 znovu. A v tomto případě, získáme řetězec nebo číslo? Dejme to zkusit. Někdo rychleji než mi dostat odpověď? Charlotte? Oh, I didn't-v pořádku, uvidíme, budeme dělat stejný druh věci kde máme řadu plus řetězec, a budeme echo typu, uvidíme, co dostaneme. Také jsme si celé číslo. Nezáleží na tom, který z nich je řetězec, který z nich je číslo. Pořád dostaneme celé číslo. Je to stále bude dělat to, co bychom mohli očekávat. Dobře, takže Sam, co 90 + 9 lahví piva na zdi? [Sam] 99. >> 99. Žádné láhve piva na stěně, i když. To nám dává trochu více informací o tom, co se děje. [Sam] Pokud jste psal 9 v dopisech pak budete mít 90, ne? [Nate H.] Jo. Otázkou bylo, jestli bychom napsal 9 out jako N-I-N-E bychom dostali 99 nebo 90? Měli bychom si 90. Je to doslova jen hledá číslice znaky. Je to dost chytrý, aby rozpoznat počet slov, a že tak. Ano. [Student] Je tam taková věc jako obsadit v PHP? K dispozici je, a je to přesně tak, jak byste to udělat v C. Co 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Jo, takže to, co by mohlo být překvapivé o tom? Co by se stalo, kdyby jste stejný druh věci v C, pokud jste 10/7 v C? [Charlotte] To by jen vy-v závislosti na tom, jak jste typecasted Myslím, že to by vám pouze omezený počet číslic za desetinnou čárkou. Jo, takže omezený počet číslic za desetinnou čárkou. Co jiného by mohlo být, to by vám nějaké číslic za desetinnou? Často ne, tak znovu, v závislosti na tom, jak jste ji obsadit může nebo nemusí jej převést na desetinné číslo. Tady to bylo docela fajn, že to udělal. Kdybychom vám ukáže vám to zpátky, když jsme začali dělat tento druh věcí v C by pravděpodobně udělal trochu větší smysl že není jen tak, aby 1. A pak konečně, Jamie, co 7 + pravda? [Jamie] 8. >> 8. Co to znamená? Myslím, že to dává jen pravda, hodnota 1. Jo. Co se stane, když změníme, že na false? [Student] 7. Jo, tak si pamatujte, kde budeme mluvit o těchto binárních hodnot, 1 je zapnuto, 0 je vypnuto? Nyní máme pravda je 1, 0 je false, a nemusí to viděli v příkladech C, které jsme udělali letos v semestru, ale historicky bool typ v C nebyl typ real, takže lidé používají 0 a 1 v místě true a false. To je projevem, který. Dobře, takže jedna důležitá část o všem je to, že máme tyto různé typy. Mohou na sebe vzájemně působí. Oni mohou často na sebe vzájemně působí v cestách, které jsou hezké, jak jsme viděli tady. Je to pěkné, mít možnost řetězec 1 a číslo 2, přidejte je dohromady a dostanete 3. To dává smysl. Nicméně, když píšete webové stránky, a to zejména, když jste zpracování uživatelský vstup, takže říct, že jsi napsal webový formulář , který shromažďuje informace od uživatele a pak jde do zpracovávat na zadní konec, na straně serveru ve vašem PHP kódu pokud jste očekával, že hodnota, která uživatel napsaný a předložen Do formuláře se celé číslo nebo být číslo s plovoucí čárkou, nebo něco takového budete muset explicitně přetypovat a pak udělat nějaké kontroly typu. Vy nechcete jen spoléhat na tomto systému typu žonglování, aby to vyjde, zejména z bezpečnostních důvodů a jen pro robustnost své webové stránky. Jen něco mít na paměti, že když jste manipulaci dat z formulářů, cokoliv, co přijde v poště nebo get superglobálních ujistěte se, že jste vždy ověřit, a převést ji a obsadit jej. A stejně jako jsme mluvili o chvíli před tímto obsadit v PHP je přesně stejný jako v C, kde budete mít závorky a pak typ. Mějte na paměti, že. Jedna funkce, která přijde vhod, když to děláš je jsme používali a tohle je jako stranou, jsme používali tuto GetType funkce tady zjistit typ proměnné, a když je to užitečné pro ladění a zjistit, jaké proměnné je typ nechcete používat to, například, ve stavu, kdy máte kontrolu, zda GetType na $ var = integer něco udělat. To je špatný, špatný, špatný. Místo toho jsou tyto funkce nazývají je integer, je řetězec, je pole, které chcete použít místo toho, aby v tomto případě co bych chtěl dělat, místo toho chlapa tady je použít je celé číslo var. A oni často odkazoval se is_ * v tom smyslu, že byste mohli nahradit * s integer, string, et cetera, a jen aby se ujistil, opravdu rychlý je to int PHP. Vypadá to, že můžete udělat je buď int, nebo je tam je celé číslo, stejně? Ano, alias, takže int celočíselné pseudonymy. Cool. Jak jsme na tom? Pojďme zvednout tempo trochu. Teď budeme mluvit o pole, tak jak můžete vidět V další části spec budeme mluvit o tom, jak pole v PHP jsou mírně odlišné, než jsou v C. Ve skutečnosti, oni jsou trochu amalgámu na pole, které jste poznali a lásku v C kde všechno je stejného typu uloženy po sobě a souvisle v paměti, a budete mít tyto číselné indexy. Máte index 0, index 1, index 2, a uložení hodnot v těchto indexů. Můžete také v C, když jste napsal pravopisu, hodně z vás udělal hash tabulky přístup, a viděl, že tam jsme měli jiný druh skladování, kde jsme byli mapování klíč na hodnotu, takže když jste se pokusili uložit něco v hašovací tabulce jste měli určit, že jste chtěli uložit s konkrétní klíč, a že klíč určuje umístění hodnoty a kde by to být uloženy. Jste trochu dostal obou těchto pojmů se děje v současně v poli PHP, a jako výsledek, často nazývají tyto asociativních polí kde jsme sdružující klíč v hodnotě. V této další části budeme mluvit o jednoduchou PHP pole kde máme klávesy A, B a C, všechny řetězce, mapování celých čísel 1, 2, a 3. A můžete mít klíče různých typů. Můžete mít některé klávesy, které jsou struny, některé klávesy, které jsou celá čísla. Můžete mít hodnoty různých typů. Můžete mít hodnotu, která je řetězec, hodnota, která je celé číslo, hodnota, která je předmět nebo další pole, například, vše v jednom poli objektu, který je trochu zvláštní. Nemusíte mít pole, které právě dostal jeden typ prvku v něm. Můžete mít mnoho různých věcí se tam děje. Druhá věc k poznámce je, že když vidím něco takového v kódu, který je platný PHP prohlásit pole právě tak jako to, 0, 1, 2, 3, 4, 5, že prohlásí inicializován $ arr být toto pole. Ale to, co jste vlastně stále pod kapotou je tento druh implicitní generace klíčů, kde jsme se dostali 0-0, 1-1, 2-2, 3-3. A ukázalo se, že i když máte pole, jako je ten chlap tady kde máte, B a C a klíče a pak začít používat pole metodu dodávání začít používat toto pole jako hromada, takže můžete vidět, že toto pole objekt, je toto pole opravdu stávat přetížení. Můžeme jej použít jako pole. Můžeme jej použít jako tabulky hash. Můžeme jej použít jako zásobník. Když začít tlačit věci na tomto poli První věc, kterou budete tlačit na to bude index 0 a pak index 1 a index 2. Můžete si tento druh implicitního generace klíčů pokud zadáte explicitně. Tak, jak si zadat klíče explicitně, samozřejmě, je pomocí tohoto držáku zápis, , který je podobný polí s výjimkou místo pouze umožňuje celočíselné indexy v tady a teď necháme něco. Pokud chcete, aby vaše klíčové být řetězec, měli byste zadat to takhle. Pokud chcete, aby to bylo int, zadáte jej s int, kterou chcete použít. Otázky týkající se, že tak daleko? Jednou z pěkné věci o této myšlence je, že můžete jen někdy mít jednu hodnotu uloženou s určitým klíčem. Vrátíme-li se k našemu zařízení, dovolte mi, abych odstranit některé z těchto věcí. A řekněme, že jsem inicializovat pole být 0, 1, 2, hotovo. Kdybych teď vím, že například, když jsem echo $ arr [0] Jdu si hodnotu 0 vytisknout, a protože tam může být jedině jedna hodnota uložena pro konkrétní klíč pokud uložím něco na $ arr [0], řekněme, pak vím, že když jsem echo $ arr [0] znovu Nebudu se dostat 0 vytiskne stejně jako předtím. Já jsem jen dostanu. Takže to je v podstatě říká, že nemůžu mít $ arr [0] ukládání 2 různé hodnoty. To nemůže ukládat jak 0 a řetězec se, takhle doslova nahrazuje co je v $ arr [0] dříve. Důvod, proč jsem přinést to až se jej spustit, uvidíme, co se stane. Podívejte se zde, že jsem se dostal 0 vytisknout a pak tady dole. Není nový řádek tam, protože jsem byl líný a nedal, že dovnitř Co je v pohodě na tom je, můžeme použít jako způsob zachytit tuto myšlenku souboru kde nemůžeme mít více klíčů v rámci pole. Nemůžeme mít stejné klíče v poli. Nemůžu mít klíčovou 0 a hodnotu 1 a klíče 0 a hodnotu a nebo tlačítko 0 a hodnota true. Klíče jsou-je jen 1 klíč v poli. I když je možné mít stejný uloženou hodnotu několikrát v poli pod různými klíči to není možné, mají stejné klíčů vícekrát v PHP pole. Podíváme-li se na tento další problém, unique.php, tam, kde chceme otevřít PHP soubor obsahující seznam řetězců, jeden řetězec na řádek, a chceme najít všechny jedinečné řetězce v tomto souboru vše, co musíte udělat, je použít jeden z těchto PHP pole a používat řetězce v souboru klíče k tohoto pole a zachovat aktualizaci naší nabídku, jak budeme ukládat tyto nové klíče. Jak jsme si řádky z souboru, můžeme uložit v poli, a na konci budeme mít jako naše klíče v našem poli všechny jedinečné řetězce v souboru. Dává to smysl? Pojďme se podívat, jak to funguje. Budeme otevírat, podle specifikace, nový soubor s názvem unique.php. Otevřít. Jejda, omlouvám se, nový soubor. Budeme začít ho se stejným počátečním a koncovým tagy. Budeme jej uložit do oddílu 9, a budeme to nazývat unique.php. Dobře, teď Zoom Nápad tady je otevření souboru, číst v souboru řádek po řádku. Pro každý řádek v souboru budeme mít pole, kde jsme  lince jako náš klíč. A pak, když se dostaneme na konec zde $ Arr tyto klávesy jsou jedinečné linie ze souboru, protože víme, že když jsem dal linky do tohoto pole několikrát to bude jen držet přepsání staré hodnoty, a můžeme skutečně dát pole řádek jako sám jen tak. To je divný. Jsme ukládání stejný klíč hodnota pár znovu a znovu a znovu, ale protože jsme zaručit, že tam bude jen 1 klíč nazývá řádek takže pokud máme soubor, který říká, že-soubor zvířecích zvuků a má Haf haf,, meow, meow, bučet, bučet, a pokaždé, když čteme zvířecí zvuk out jako tkanina a uložíme v našem poli dostaneme Haf, a pak podruhé uložíme Woof přepíše poprvé, že jsme uložené to. Na konci budeme mít pouze jednu položku v poli pro každou z zvířecí zvuky v našem souboru zvířecí zvuky. Myslíte si, kluci si jisti, že můžete řešit otevření souboru v PHP? Jeden způsob, jak to udělat, pojďme na tento rychle-jeden způsob, jak to udělat je funkce fopen, jak jsme viděli dříve. Můžete fopen some_file.txt. Můžete jej otevřít v režimu pro čtení, stejně jako v C. To je jeden naprosto dobrý způsob, jak to udělat. Můžete také pak pro čtení v souboru řádek po řádku mají stejné funkce, mnoho z nich, které jste udělali v C. Máte fgets. Máte feof, i když se nám nelíbí, že pomocí protože, pamatujte, že to není velký v C. Můžete to udělat stejným způsobem, ale tady je opravdu super věc. Je nám líto, nechci dělat $ file, ale tam je funkce nazvaná soubor v PHP, a tato funkce tady je v pohodě, protože to přečte celý obsah spisu, který určíte, tak some_file.txt, přečte celý obsah tohoto souboru do pole a pak umožňuje iteraci nad ním, což je docela šikovný. Pokud půjdeme, například pro náš webovém prohlížeči a my se podíváme na Google pro tento soubor PHP můžete vidět, že naše manuál říká, že soubor přečte celý soubor do pole, a můžeme file_get_contents vrátit obsah souboru jako řetězec, ale obvykle jen na to, jako pole, je opravdu pěkné, protože to, co dělá je to rozbije tak, že každý prvek v poli je jeden řádek souboru, takže pokud se podíváme na soubor 0, to je první řádek souboru. Soubor 1, druhý řádek, soubor 2, třetí řádek, a tak dále, a tak dále. Nebylo by hezké, kdyby to bylo všechno, co musel udělat v C? Docela šikovný. David ukázal to v přednášce, a účastníků stylu ukázal byl že kromě našeho standardu pro loop-v PHP jsme, že for ($ i = 0; i <10; i + +), a můžete to udělat v PHP taky, to samé- máme také tuto skvělou konstrukci s názvem foreach. Foreach je opravdu užitečné, když iterace poli nebo těchto datových struktur protože vám umožní vytáhnout každý prvek pole aniž byste museli ručně udělat Indexing sami, aniž by bylo nutné ručně vytvořit proměnnou indexu, zvyšte ji, vytáhněte hodnotu v poli v tomto bodě, protože to je velmi běžná věc dělat. Pravděpodobně jste udělal, že tuny době, kdy jste dělali C věci nad semestru, takže v této foreach můžeme smyčku tohoto souboru pole, a syntax je, že chceme nyní smyčce během tohoto pole a určit, že proměnná budeme používat pro ukládání prvek tohoto pole lokálně, místní oblasti působnosti této smyčky foreach, se budeme říkat line. Pokud je to soubor několika slov a tam je jedno slovo v řádku bychom mohli nazvat to slovo stejně, opravdu jen dáte to jméno, co chcete říkat, a pak uvnitř smyčky, můžete dělat, co chcete s tímto proměnných. Pokud to není dost, aby si hodnotu pole a budete také chtít, aby se index spolu s ním si můžete zadat název indexu stejně jako hodnota, a teď máte přístup k 2 proměnných. Máte $ i a vedení kde $ i je index v poli, a přímka je přímka, že získat ze souboru. Například, pokud chceme vytisknout echo řádku 0 v souboru jako je tento, bychom mohli udělat to stejně jako to, "Line $ i ze souboru $ line," a tady je něco, co také ještě neviděli ani kde jsem prostě úplně přeskočil celý tento% s% d podnikání že jsme se museli vypořádat v C, a místo toho jsem šel rovnou do psaní proměnné v souladu v mém řetězci. To se nazývá proměnná interpolace, interpolace string kam nádivkou proměnné přímo v, a interpret PHP je dost chytrý na to, když je to čtení přes řetězec, který začíná s uvozovkami- ne jediné citace, se samostatnými uvozovky, můžete to udělat, ale s dvojitými uvozovky, protože přečte to hledá proměnných. Je to lov je dolů, a pokud to bude považovat proměnné, bude mít hodnotu proměnné a nacpat si ho do řetězce, pokud to může převést do řetězcové vyjádření, což je docela šikovný. Pro tuto chvíli, pojďme komentář mimo zbytek všeho, uložte tento, a to, co můžeme udělat, je můžeme otevřít soubor že můžeme volat some_file.txt-let 's vytvoření nového souboru, a můžeme dát si pár věcí nesmysl sem jen vyzkoušet všechno ven, uložit, říkají some_file.txt, jak dělám tady nahoře, a teď když jsem oddálit jen ujistit, že všechno je ve stejném adresáři, vypadá to, že mám unique.php a some_file.txt ve stejném adresáři. Kdybych spustit php unique.php vidět, jak to vytiskne každý řádek v mém souboru a co linka je? To je dost silný, ne? Podívejte se, trvalo 3 řádky kódu otevřít soubor. No, 4 řádky kódu. Nedokážu spočítat dnes jasně. Ale opravdu jen 2 zajímavé řádky kódu, protože další 2 byly složené závorky, ale v tomto hodně kód, který jsme byli schopni otevřít soubor, iterovat přes to, vytáhněte číslo řádku a řádku sám a vytisknout. Vychytávky ke stažení. Charlotte. [Charlotte] Mám otázku o syntaxi. Takže foreach se zabývá každou jednotlivou řádku souboru, který si otevře, a pak, když chcete dělat věci s každým řádku stačí to udělat jako a pak přidružit hodnotu. [Nate H.] Co můžete udělat právě tady otázka byla foreach má co do činění s polem, takže foreach syntaxe je opravdu foreach, a všimněte si, že tam není prostor nebo něco mezi pro a každý. Musí jít přímo vedle sebe, a pak se v poli, a pak máte tento další klíčové slovo názvem jako má být tam, a pak po jak můžete buď dát jednu název proměnné, V takovém případě je to bude vytahovat hodnoty pole, ne indexy, nebo pokud si to, jak jsme napsal níže dostanete klíče a hodnoty. Ty mají foreach prvek pole nebo pár pole, jak výčnělkem, hodnoty nebo jako jen hodnota. V závislosti na tom, co budete potřebovat, pokud nepotřebujete klíče, pak může jít s hodnotou. Pokud chcete, aby tlačítek můžete jít s nimi taky. [Charlotte] Také jsem si uvědomila, že nikdy deklaroval i nebo linku. Jak to ani neví, co to je? [Nate H.] Co myslíš tím prohlásit? [Charlotte] Nikdy jsme jim řekli, co jsem nebo linka prostředky. [Nate H.] Nikdy jsme řekli počítači, co jsem nebo čára značí, pokud jde o- [Charlotte] To, že jsou indexovány nebo Jsou v- [Nate H.] Nikdy jsme řekli, že to má být index nebo klíč a hodnota, a to proto, že to je PHP interpret. To slouží jako prohlášení a říká pořádku, klíč bude proměnné volal i uložen v proměnné s názvem i. Hodnota se bude uložen v proměnné s názvem linky, takže to slouží jako prohlášení o těchto proměnných a říká, že $ i je klíč, a $ line je hodnota. Jo, Ella. [Ella] Pokud jsou klíče neudělal číselně jak se rozhodnout, v jakém pořadí to bude tisknout vše? Je to stejně jako pořadí to zapsané v? [Nate H.] Pojďme to zkusit. Pojďme vytvořit proměnnou s názvem arr, a co můžeme udělat jde do 7. Řekněme, že 0 jde do dalšího pole s 1, 2, nebo jablko. Řekněme, že 7 jde do 1, b jde do 2, a 3 jde do 4. To je tak trochu blázen hledá například proto, že jsme míchání řetězce a celá čísla všude kolem. Není tam žádný skutečný aby na toto pole. Chci říct, že jsme objednat vše v abecedním pořadí podle klíče. Jsme si mohli objednat vše abecedně hodnotou. Mohli bychom zkusit a vzít v úvahu, že některé řetězce, některé jsou ints, a jsme si mohli vyzkoušet a převést je všechny do stejného typu a uvidíme, co se stane, nebo můžeme uvažovat je v hodnotě, ve kterém jsme již zadali kam jsme toho chlapa do první, ten chlap na druhém, ten chlap ve třetích, ten chlap ve čtvrtém, et cetera. Podívejme se, co se stane, když jsme se spustit tento kód. Pokud budeme posouvat dolů a udělat stejný druh věci, a tady to není vytištění nových linek. Když číst věci z tohoto souboru bylo včetně nových tratí v hodnotách, který byl důvod, proč se vytisknout pěkně, zatímco tady to ne, tak to je důvod, proč je všechno smushed dohromady. Dodejme, že v této nové řadě jen proto, aby se věci pěkné. Pojďme spusťte ji, a tak zde podívejte se na to, co se stalo. Je vytištěn všechno v pořadí, ve kterém se dát do pole. To zachovat pořádek v tomto smyslu. Vraťme se zpět k tomuto problému unikátů tam, kde chceme být schopni iteraci souboru, a dáme to some_file.txt, a budeme iterovat přes to takhle. Řekli jsme, že jsme chtěli použít pole, aby se ujistil, že bychom dostali všechny jedinečné linie ven, a tak bychom mohli udělat velmi snadno jen o skladování v poli, které jsme samozřejmě prohlásí mimo rámec smyčky, A my jsme řekli, že pokud jsme použili řádky v souboru jako klíče v našem poli pokud jsme vstoupili duplicitní řádek bychom být přepsání předchozí hodnotu. To není vůbec možné mít 2 klíče, které jsou shodné v jednom poli. Můžeme dělat jen to. Budeme se zbavit tohoto echo prohlášení tady. Zde jsme uložení řádek v souboru na našem poli pomocí se jako klíč. Nic na tom není, a ukázalo se, že nemáme ani potřebovat klíč. Nepotřebujeme, aby i proměnná. V tomto bodě, pokud bychom měli udělat další smyčky foreach a my jsme byli ve smyčce na každém arr a linka teď, když jsme echo-oops, sorry. Nemůžeme používat čárku. Musíme použít jako klíčové slovo. Nyní, když jsme echo řádek bychom se měli dostat všechny unikátních slov v souboru. Pokud půjdeme do some_file.txt, a řekněme, že to jablko, banán, jablko, jablko, banán, Pokud máme vytištění všech unikátních slov v tomto souboru bychom měli získat pouze jablko a banán vytisknout. Pokud šetříme to, teď tady budeme přibližování se php unique.php, a ta-da. Úspěšně jsme uniqued soubor. Závěrečná část tohoto problému je výzvou k třídění tohoto pole před vytisknout to protože v tomto jednoduchém příkladu, který jsme právě udělali jsme měli štěstí v tom smyslu, že soubor- Udělali jsme to vymyslel příklad s jablky a banány. To už jsou seřazena. Ale pomocí jednoduchého třídění funkce můžete třídit pole, což je docela šikovný. Poslední věc, že ​​chci mluvit s vámi asi opravdu rychle je, že tento druh PHP je všechno v pořádku a dobré, a je to super padnoucí do ruky vědět, jak to udělat, pokud budete někdy potřebovat udělat malé, rychlé věci programově. Například, když budu muset napsat program, který, řekněme, dává všem do sekcí nebudu chodit a psát v jazyce C. Bude to trvat dlouho. Bude to mít trochu bolesti, zejména v případě, že se jedná o soubory, stejně jako vy jsem viděl. Je to tak hezké, že se právě v tomto hodně kódu přímo zde jsme byli schopni prorazit souboru, vytáhněte všechny jedinečné hodnoty a vytisknout je zpátky. Nicméně, pro vaše úkoly, pro vaše projekty, pokud stavíte webové stránky s PHP je síla, která utíkáme naše PHP soubory prostřednictvím tohoto tlumočníka, a tlumočník je zpracování všechno uvnitř tagů PHP, takže vše ostatní nedotčené a vyplivl výsledky. Můžeme to udělat stavět HTML programově. Teď, když jsme se vrátit k spec, poslední problém v spec mluví o této myšlence spojování a vytvoření drop-down menu, které mohou nebo nemusí chtít dělat, v závislosti na tom, co vaše konečné projekt dělá, který umožňuje uživateli vybrat ze seznamu všech možných koncentrací jejich jedné koncentraci. Nyní, to je tak trochu bolesti typu na to a udělat vše ručně, a to zejména, když jste museli ujistit, že máte všechny lomené závorky na správném místě a všechny citace na správném místě, tak s PHP můžete dělat programově, a můžete to udělat opravdu rychle. Pojďme se podívat, jak to udělat. Budeme otevřít nový soubor. Budeme dát v našich PHP tagy. Budeme říkat, že concentrations.php, a teď, když to děláš, trochu dobrá věc myslet když se snažíte kombinovat a zápas si PHP a vaše HTML je přijít na to,, jo, co je ta část, která chci programově generovat? Co je ta část, která mohu programově vytvářet? Je pravda, že můžete udělat všechny vaše HTML uvnitř PHP bloků. Můžete echo všechny HTML jako řetězce. Například, když chci začít dělat zvolte značky uvnitř PHP Mohu říci, echo, říkají vyberte název = koncentrace, a pak dole bych mohl mít jiný echo tag nebo jiný echo nazývá zavřete vyberte. To je jeden způsob, jak to udělat, protože to, co to je doslova dělat je vytisknout tento řetězec, když je to běh přes tlumočníka PHP, takže výsledek bude HTML. Pokud bych tento soubor uložit jako je teď a běžím php concentrations.php podívat se na to, co jsem dostal. Dostal jsem tento otevřený Zavřít Vyberte značku. Pokud bych měl udělat, a já jsme byli uložit tento výsledek do souboru, říkají, concentrations.html-wait, to vypadá, že l je pryč na druhou stranu- Nyní když otevřu tady concentrations.html vidíte mám validní HTML soubor. Je to trochu divné? Jsme používáte PHP pro vytvoření HTML, vytvořit validní HTML. Způsob, jakým jsme to udělat, je budeme mít jen tiskové PHP HTML, že chceme, aby se tisklo. To je doslova jak PHP webové stránky fungují. Když navštívíte webovou stránku, která vás pošle k něčemu, jako je něco, něco, něco, co dot com lomítko index.php Počítač je doslova vyvolání index.php, běží přes PHP interpretru, a bez ohledu na nevyžádanou vyjde to posílá zpět do prohlížeče a říká hej, prohlížeč, interpretovat to jako HTML. Pěkná věc je, že to může být bolest neustále psát echo, echo, echo, echo a uzavřít vše v uvozovkách, jako je tento, takže pokud chcete psát HTML, které to bude statické sami, můžete to udělat takhle, dát ven, zavřete jej, a pak zde dal jen uvnitř PHP značek, které znáte Chcete-li programově vytvářet, a v tomto případě je to tato možnost tagy , které jsou bolest generovat. Například bychom mohli generovat tisíce možností tagy tím, že dělá něco podobného, ​​$ i <1000, i + + a říkat echo hodnoty opce = $-jejda, to nemůžu udělat, že. Dobře, pojďme to zkusit a uvidíme, co se stane. $ I a pak říká $ i