[Powered by Google Translate] [§ 8] [menej komfortné]
[Nate Hardison] [Harvard University]
[To je CS50.] [CS50.TV]
>> Vitajte v našom sekunde poslednej časti.
V tomto týždni budeme hovoriť o PHP, a potom budúci týždeň
urobíme malú recenziu na Quiz 1.
Budeme začať na strane 3 tohto problému sady pack,
a budeme pracovať prostredníctvom sekcie otázok pomerne rýchlo.
Na stránke 3, začneme hovoriť o tomto rozdiele medzi C a PHP
v tom zmysle, že PHP je dynamicky typový jazyk,
vzhľadom k tomu, C je staticky zadali,
a niekto naozaj rýchlo urobiť nejaké kódovanie v niečo ako PHP
alebo Python alebo Ruby pred JavaScriptu?
Úplne nový? Dobre.
>> Všetky z týchto jazykov, ktoré som práve spomenul
sú veľmi odlišné od jazykov, ako je C a C + + a Java
v tom zmysle, že keď deklarujete premennú nemusíte deklarovať
aké premenné je, tak v C sme prilepené museli vždy hovorím
to bude int premenné, alebo to bude char * variabilné,
vzhľadom k tomu, s PHP, Python, Ruby, s
s mnohými z týchto viacerých moderných jazykov nemusíte robiť, že vôbec.
Stačí deklarovať svoju premennú, a v prípade PHP
môžete vyhlásiť, že je to premenná prefixing to s znakom $,
a potom sa typ premennej je určený ktorékoľvek hodnoty to drží,
čo je celkom fajn.
Ak chcete hrať si s týmto trochu, máme ukážkový PHP kód priamo tu
medzi počiatočnou a koncovou značku.
Sme použitie tohto druhu ako HTML v tom zmysle, že
máme tieto uholníky tu pre otvorenie a zatvorenie.
Uvidíte to s HTML.
Uvidíte rovnakú syntax s XML taky.
>> To ukazuje na začiatok bloku PHP.
To? Php je špecifické pre PHP.
Zavrieme všetko s> i
Poďme otvoriť súbor v našom zariadení za použitia akýchkoľvek by ste chceli.
V tomto paketu sa hovorí, volať dynamic.php.
Po pravde povedané, môžete volať to, čo si prajete, ale názov súboru príde
a byť dôležité neskôr, takže stačí spomenúť ako sa tomu hovorí.
Chystám sa prejsť na spotrebiče,
a ja budem robiť adresár pre
oddiel 9 Verím, že sme teraz.
A pôjdeme do sekcie 9,
a budem používať gedit.
Poďme sa pozrieť, gedit, a budem volať moje dynamic.php.
Boom.
V dynamic.php, pretože to je PHP súboru
a chcem spustiť tak prostredníctvom tlmočníka PHP
Musím začať všetko preč s tými otvorenými značiek,
takže budem začať ty hneď,
dávam málo miesta v medzi značkami,
a potom bod tohto cvičenia bolo hrať sa s
táto funkcia sa nazýva GetType, tak GetType, túto funkciu tu.
>> Všimnite si, že tam je žiadne podčiarknutie alebo priestor alebo pomlčku alebo niečo podobné, že
oddelenie na 2 slová, získať a zadajte, len jedno slovo úplne.
Ale čo to bude robiť, ak je som sa prejsť v premennej GetType,
hovoria, $ var alebo $ x,
to mi druh vo ladenie formáte
to, čo názov tohto typu je.
Budeme experimentovať tu.
Najmä, keď sa pozriete späť na PSet spec
máme niekoľko rôznych riadkov kódu tu.
V prvom riadku kódu sme inicializovať premennú, $ var,
sa rovná 7, a potom máme tento printf linku
, Ktorý hovorí, hey, printf var je prázdny.
Printf je jedným z mnohých spôsobov, ako možno vytlačiť veci v PHP.
Často uvidíte echo funkciu použiť namiesto printf,
ale printf sme všetci oboznámení s mať been kódovanie v C na chvíľu.
Čo môžete urobiť, je skutočne uvidíme, či kopírovanie a vloženie práce.
Chystám sa dať to skúsiť.
Vrátime sa k zariadeniu.
Dobre, a tam ideme.
A rozostup je trochu funky, ale je to tu.
Máme tento kód tu.
>> [Študent] Nie je to dobrý štýl na karte to?
Je nám ľúto?
[Študent] Je to konvenčné záložke?
Správne, takže Sam sa spýta, či je dohovor na kartu, alebo nie.
Typicky áno.
V tomto prípade som zvolil nie.
Úprimne povedané, uvidíte rôzne veci medzi rôznymi programátormi.
PHP sa zvyčajne používa často v kombinácii s HTML
a ďalšie jazyky, a tak niekedy tlač bude vyzerať trochu funky
Ak zarážka v počiatočnej a koncovú PHP značku.
To naozaj záleží.
V tomto prípade skopírujte a vložte ani vložiť karty v pre mňa,
ale rozhodne to, ako si hovoril, aby to jasnejšie.
Dobre, ak si uložiť tento kód do dynamic.php
potom to, čo môžete urobiť, je prísť dole do okna terminálu, kde som tu dole
v gedit, a to ekvivalent kompiláciu
používanie make a potom beží kód v C
všetko, čo musíte urobiť, so súborom PHP je naštartovať tlmočníka PHP,
čo je malý program, nazvaný PHP,
a argument, dáte na tlmočníka, je súbor, ktorý chcete interpretovať.
V tomto prípade, dynamic.php.
Jejda, kde som dal to?
Oh, som si ho v kapitole 9, a som tu. To je dôvod, prečo.
>> Teraz, keď som spustiť znova
vidíme, že v mojej prvej výzve GetType funkcie
var je celé číslo.
V nasledujúcej var je reťazec, a potom v tretej var je boolean.
Čo je na tom zaujímavé je, ak by sme sa posunúť späť, vidíme, že
sú typy podobné tým, ktoré sme mali v C.
Mali sme ints v C.
Sme trochu mali reťazcov v C,
takže reťazce neboli úplne dôveryhodne typ v tom zmysle, že
náš CS50 reťazec bol naozaj to, čo?
Je nám ľúto? Missy?
[Missy] Char *.
Jo, to bol tento char * sme použili.
Na samom začiatku semestra sme používali typ reťazca,
ale bolo to naozaj char * pod kapotou.
Práve sme typom definoval to, že v PHP tieto reťazce sú pre konkrétny typ.
Nie je viac o tomto char veci * typ.
>> Uvidíte, že môžeme robiť oveľa viac vecí s reťazcami
oveľa ľahšie v PHP, ako sme mohli v C,
a potom konečne, máme túto Boolovský typ, a veľký rozdiel je, že
ak by sme sa posunúť späť dole, vidíme, že názov týchto typov
sú teraz integer, string, a boolean miesto int a bool,
a ako si vyzdvihnúť rôzne programovacie jazyky,
za predpokladu, že v určitom okamihu vo vašich životoch vám prísť do styku s
rôzne ty si všimnete malé muchy, ako je táto
kde C volá celé čísla typu int.
Niektorí to nazývajú celé čísla.
Existujú aj iné pojmy, ktoré budete spúšťať do.
Big int sme dnes videli v SQL.
Tam sú tiež množstvo a kliknite na bool, boolean,
všetky druhy rozdielov tam.
>> To nie je príliš zaujímavé, ale teraz budem vám trochu času,
ak sa priblížiť späť k práci toto cvičenie na spodnej strane 3
kde sa požaduje, aké typy zodpovedajú tieto hodnoty tu dole.
Máme 3,50.
Máme tú vec tu, čo je zaujímavé.
Nevideli sme, že skôr, ale ak ste sledovali spoločne v prednáške
už pravdepodobne viete, čo to je.
Potom máme toto, čo je druh funky.
Spoznávate toto.
Čo je to v C?
Sam? Čo by to dať v C?
To by otvoriť súbor s názvom dynamic.php a urobiť z neho čitateľné.
Jo, a čo by sa typ premennej, ktoré by sme priradiť to? Hviezdy súboru >>.
Presne tak, by sme priradiť to do súboru hviezdy.
To je legitímna PHP príliš.
Spustiť to. Pozrite sa, čo sa stane, keď miniete, že do GetType.
A potom tiež zistiť, čo null, čo by to mohlo byť v PHP.
Dám vám pár minút.
Môžete si doslova skopírovať a vložiť tieto hodnoty,
a potom budeme robiť trochu náhodný hovor na vás
a uvidíte, čo máš.
>> [Študent] Mám dotaz. << Jo.
V jednej z prednášok David povedal, že je to niečo, čo si môžete dať v hornej časti súboru
takže nemusíte písať v PHP zakaždým.
Čo to bolo?
On bol pravdepodobne hovorí o libre tresku, hash bang.
Je to smernica, ktorá, ak označíte súbor ako spustiteľný
potom to, čo robí, je pri spustení súboru
bude rozprávať shell program
používať PHP interpret interpretovať obsah súboru.
Otázkou je, čo je to špeciálna linka
že by mohli obsahovať v hornej časti našich PHP súborov nemusí obsahovať
tento riadok PHP alebo tento príkaz PHP kedykoľvek chceme spustiť súbor?
A môžete skutočne urobiť s partiou rôznych súborov.
Verím, že to záleží na tom, kde je uložený binárne PHP,
ale často usr / bin / php je dobré miesto pre štart.
Môžete prísť na toto presne tým, že ide späť do svojho zariadenia
a písať, aké php.
Ktorý príkaz zistí, keď ste vykonávanie binárne
alebo príkaz, kde zodpovedajúci súbor.
To mi hovorí, že PHP je naozaj aliasing tento binárny súbor
že sú uložené v usr / bin, čo je, kde sú nainštalované veľa systémových binárnych súborov.
Napríklad, keď som prejdite až na vrchol, teraz, keď som si toto #! linka tu
Môžem prejdite nadol, a môžem skúsiť spustiť
dynamic.php, ale ja som túto chybu o povolenie zbavený,
a čo to znamená, je to, že tento súbor nie je v súčasnej dobe dáva spustiteľných oprávnenie.
Nie je to označené ako súbor, ktorý niekto môže bežať.
>> Keď bežal iniciovať alebo zvonenie a máte spustiteľný z neho
kompilátor bol dosť chytrý, aby vedel, že hej, ja staviam spustiteľný.
Pravdepodobne budete chcieť urobiť, tak to by automaticky nakonfigurovať
oprávnenie pre vás.
To nie je prípad, aj keď, keď vytvoríte normálne súbor od nuly,
Dôvodom je zvyčajne nechcete mať ľubovoľný súbor v systéme byť spustiteľný,
takže máte skutočne ísť a ručne to.
Najjednoduchší spôsob, ako to urobiť, je pomocou príkazu chmod,
a chmod + x hovorí pridať spustiteľný bit
pretože tam je čítanie bit, zápis bit a bit spúšťanie,
r, w a x,
a hovorí chmod + x zapne spustiteľného bit
pre potom súbor, ktorý sme určíte, ktorá v tomto prípade bude dynamic.php.
>> [Študent] je, že sa obrátil na pre každého?
Poďme sa pozrieť na toto, tak ako by som skontrolovať oprávnenie?
Viete, ako by som skontrolovať oprávnenie súboru?
[Nepočuteľné Študent odpoveď]
Je nám ľúto? >> [Študent] XSD.
XSD nám dáva súbor hack.
Výpis všetkých súborov,-l, ukáže mi všetky súbory v mojom adresári
druh v ich dlhej, zoznam podrobného, ​​a tak tu vidíme, že
tento dynamic.php súbor
Čas poslednej úpravy 5. novembra o 16:21.
Majiteľ tohto súboru je jharvard.
To je užívateľ, ktorý je prihlásený
To je užívateľ pracujem ako,
a ak ste tiež v zariadení budete tiež pracovať ako užívateľ jharvard.
Ste v skupine študentov,
a to sú veci, ktoré uvidíte dosť často.
>> Môžeme ísť do množstva detailov tu
ale z veľkej časti to, čo budete chcieť pozrieť na keď hľadáte vidieť
či je súbor spustiteľný je primárne
užívateľ, ktorý vlastní súbor, majiteľ,
tak to jharvard, a potom máme
že oprávnenie bity cez tú na ľavej strane,
a spôsob čítania je to, že posledný bit
zvyčajne sa používa na označenie, či aspoň v tomto prípade
Tento posledný bit bude často byť nastavený na reklamné uviesť
že súbor je adresár a nie len normálne súbor.
Potom nasledujúce 3 bity priamo tu
určiť oprávnenia, ktoré vlastník súboru má,
takže v tomto prípade jharvard, ako vlastníka súboru, vie čítať a písať tento súbor,
ale tam je pomlčka hovorí, že jharvard nemožno spustiť tento súbor.
Ďalších 3 bity sú pre skupinu, takže to je študenti skupina,
takže ak tam boli viac užívateľov na mojom zariadení,
a my sme viac užívateľov ako súčasť študentov skupiny,
potom môžu všetci tento súbor čítať, ale nevie písať to,
a podobne niekto iný, svet
možno iba čítať tento súbor tiež.
Tam je dobrý, dlho writeup o tom,
takže si môžete prečítať on-line.
V spec problému nastavenej ideme do toho podrobnejšie.
>> [Študent] Je 218 s odkazom na svete?
The 218 je-off z vrcholu mojej hlave som zabudla,
ale nie.
Poďme sa pozrieť,. Som zaslepenie na tom teraz.
Späť na to, čo sme mali čo do činenia s týmto chmod + x
kde sme chceli dať dynamic.php spustiteľné oprávnenia,
a bolo otázkou, či alebo nie toto by spustiteľné oprávnenia pre každého
alebo len jharvard, a môžeme vidieť podľa
spustenie príkazov a písanie ls-l,
a teraz vidíme, že je to označené ako spustiteľný.
Môžete vidieť, že tam bola zmena farby.
Teraz dynamic.php je uvedený v zelenej,
a vyzerá to, že odpoveď na otázku je to, čo, Charlotte?
[Charlotte] Iba jharvard. >> Iba jharvard, jo.
>> Ak by sme chceli sa otočiť spustiteľný bit pre všetky
ako môžeme urobiť, že?
Akékoľvek myšlienky? >> + X?
Jo, presne tak.
Charlotte povedala, čo môžeme urobiť chmod o + x z dynamic.php,
a teraz, keď sme sa spustiť ls-l vidíme, že spustiteľné bity
skutočne zapnutá pre každého.
A môžete skutočne urobiť opak tohto, takže si môžete vypnúť pre všetky
pomocou mínus.
Teraz je vypnutý, a teraz môžeme ho znovu zapnite pre jharvard
takže môžeme skutočne spustiť hneď,
a teraz vidíte, keď sme sa spustiť kód tejto špeciálnej #! linka hore,
#! line, povedal shell,
povedal nášmu terminálu hey, pri spustení tento súbor,
použiť / usr / bin / php interpretovať tento súbor
a potom vytlačiť výstup.
[Nepočuteľné Študent otázka]
Iste, dovoľte mi, aby som sa posunúť späť. Rovnako ako tento.
Uvidíte všetky z týchto smerníc začať s týmto libru a potom výkričník,
niekedy volal shebang, hash bang.
>> [Študent] Ako môžeme spustiť s dynamic.php php, než sme robiť to spustiteľný?
Otázkou bolo, ako môžeme spustiť toto použitie binárne PHP
zatiaľ čo dynamic.php nie je spustiteľný?
To je super dôležité, pretože to je presne to, ako
že to bude fungovať, keď píšete problém sadu 7.
Väčšina z časových PHP súbory nie sú priamo spustiteľný.
Spôsob, akým funguje, je preto, že je to PHP binárny, že je spustiteľný.
Tlmočník je vec, ktorá je vykonávaná,
a tak to, čo to robí je doslova slurping v časti obsahu
nášho dynamic.php súboru a ísť riadok po riadku
a vykonávanie týchto príkazov, takže je to s použitím nášho PHP súboru
ako zoznam inštrukcií.
Nie je to priamo spustením.
To je miesto, kde môžeme povedať, že tieto súbory sú interpretované v dobe behu.
Je to doba chodu jazyk miesto niečoho, čo v čase prekladu,
nie je skompilovaný jazyk ako C.
>> Existuje spôsob, ako získať runtime jazyk správať, ako by to kompilácia čas jazyk,
ako keď máte všetky chodu urobil na serveri
skôr než viete, čo tým myslím?
Áno, takže otázka je
Existuje spôsob, ako sa dostať doba chodu jazyky konať viac ako kompilácia typy jazykov?
A sú tu, myslím, že je aktívna oblasť výskumu pre mnohé z týchto spoločností.
Verím, že Facebook urobil veľa práce s PHP
a zostavovanie ho, čo je rýchlejší, optimalizáciou
pretože ich stránky sú založené na PHP.
Ak ste sledovali node.js vôbec,
ktorý je tak trochu o tlmočníka JavaScript
aby bolo možné spúšťať JavaScript mimo prehliadač, mimo Vašom webovom prehliadači,
pretože tradične JavaScript by len spustiť vnútri Firefoxu alebo Chrome,
a to by byť použité, aby chladné animácie stalo na webovej stránke
a aby vaše webové stránky dynamické.
, Ktorá bola postavená na veľa práce, že Google urobil
aby JavaScript a C + +
zviazať dohromady, takže je tu veľa aktívneho výskumu na
sa tieto jazyky k interakcii a optimalizovať,
predovšetkým preto, že veľa ľudí môže kód v PHP a JavaScriptu
pretože je to oveľa jednoduchšie.
Je to oveľa lepšie. Nemáte ukazovatele.
Nemáte typy kolovať.
Chceli získať výhody z týchto kompilácie jazykoch
so všetkými kontrolu typu a rýchlosti a nižšie využitie pamäte a všetky, ktoré
pri zachovaní flexibility a jednoduchosti použitia týchto novšími.
>> Späť k našej pôvodnej plán útoku.
Máme niektoré z týchto otázok tu v našej špec problému set.
Poďme cez ne naozaj rýchlo, a pôjdeme po miestnosti.
Charlotte, aký typ je 3,50?
[Charlotte] To je dvojaký. >> Je to double.
Jimmy, čo je tá ďalšia? >> Pole.
Pole, úžasné, a Jared, čo je fopen?
[Jared] Je to zdroj. >> Je to zdroj.
To je trochu nového, nie súbor hviezdy, nie súbor.
Je to zdroj typu v PHP,
a je mi ľúto, Ella, posledný null je to, čo?
Null.
Null, ako je napísaná v PHP? >> Rovnakým spôsobom.
Rovnakým spôsobom, hlavice? >> Jo.
Jo, v poriadku.
Ideme na to, máme double, máme celý rad,
máme zdroj, a potom máme null.
Poďme sa pozrieť teraz ste videli-
uvidíme, takže teraz myslím, že to, čo som tiež chcú urobiť, je vytiahnuť
táto webová stránka priamo tu, tento php.net / manual,
takže ak ste rozumiem a otvoriť webový prehliadač.
Idem vytiahnuť Chrome, daj to dovnútra
Chcem ti ukáže to nielen preto, že
môžeme hovoriť celý deň o typoch a všetko, čo zábavné veci
ale skôr preto, že je to príručka PHP,
a existuje veľa PHP programátorov tam.
Existuje mnoho internetových stránok PHP tam,
a ako výsledok, tam je veľa dokumentácie na PHP,
a manuálne, to php.net, je naozaj dobré miesto, ísť
ak máte otázky o tom, čo je najlepší spôsob, ako to urobiť X v PHP
alebo čo to funkcia vyzerať?
Tak nejako, ako sa zoznámiť s tým, čo to vyzerá, pretože
budete sem často, bit pre problém nastaviť 7.
>> Ak ste skončili robiť záverečný projekt, ktorý používa PHP
to bude miesto, staneš sa veľmi dobre oboznámený s
Často tak ľudia robia, je, že používajú Google na hľadanie miesta,
a nemajú použite vyhľadávacie pole, ktoré je tu v pravom hornom rohu, ktorý je tak trochu malý.
Ak ste Googling asi niečo robiť s PHP a uvidíte
jeden z manuálnych odkazov vyskočí môžete zvyčajne spoľahnúť na to
ako celkom dobrý zdroj.
Úžasné, tak z týchto typov, len tak zo zvedavosti,
ktoré z nich ešte sme nevideli?
Čokoľvek sme nevideli tú?
[Študent] Resource. >> Videli sme zdroj s fopen hovoru.
[Študent] objektov. >> Námietky sme nevideli určite.
Volanie sme nevideli.
K dispozícii sú niektoré z týchto pseudo-typov.
Určite videl iba integer a double.
Nevideli sme niektorí iní, takže ak klikneme na celé čísla
môžeme vidieť, sú ešte nejaké ďalšie celočíselné hodnoty, ktoré oni majú tu?
Sú všetci-tak integer, integer, integer.
Niektoré jazyky majú väčšiu celočíselné typy,
ako sme videli na MySQL dnes tam bol int a potom veľké int.
Cool.
>> Takže, PHP manuál.
Vráťme sa k nášmu problému spec set, a my teraz prejdite na stránku 4.
Jedna z vecí, ktoré sa stane, keď sa dostanete tieto jazyky
ktoré nemajú túto statickú písanie, takže tieto jazyky, kde musíte deklarovať
typ prednej premenné až
je dostanete na prípady, kedy môžete začať s premenné rôznych typov
interakcie medzi sebou navzájom,
a PHP robí túto vec, kde sa snaží urobiť
to, čo považuje za najrozumnejšie vec
keď máte 2 rôzne typy na seba vzájomne pôsobia.
Napríklad, ak sa pozrieme na tieto riadky kódu priamo tu
vidíte, že sme dostali to, čo sa stane, keď
snažíme pridať reťazec 1 na celé číslo 2.
Čo sa stane, keď sa budeme snažiť a pridať reťazec, ktorý nie je číselná hodnota
ale skutočné znaky, SK k počtu 50?
Potom uvidíme, je tam niečo iné, čo sa deje, kde
miesto pridanie reťazec na číslo sme zapísanie čísla na reťazec,
a tak ďalej a tak ďalej do bodu, kedy sme získali
nejaký divný veci tu, kde máme 7 + pravda.
Čo sakra to znamená?
>> Ak ste ísť dopredu a vložte niektoré z tohto kódu do vášho prístroja.
Môžete držať ju v dynamic.php.
Uvidíme, čo sa stane.
[Študent] Stačí použiť tlač, nie printf?
Jo, takže zistíte, že tlač je tiež platný funkcie pre tlač v PHP.
Existuje mnoho rôznych spôsobov, ako to urobiť.
Uvidíme sa za pár príkladov neskôr, akonáhle začneme hovoriť
o unikátny problému, ktorý budeme písať
a potom koncentrácia problém, ktorý budeme písať
že aj keď máme fopen a fclose
to často nie je najjednoduchší spôsob, ako čítať v obsahu súboru.
PHP má mnoho z týchto C-ako holdovers.
[Študent] Keď som dal vo všetkých 6 týchto vecí, ktoré som len jednu radu ako výstup.
[Nate H.] Keď dáš vo všetkých 6 týchto vecí.
Poďme sa pozrieť, je to preto, že je to možno-
jedna vec je, že tieto tlačové hovory nie sú ukončené na konci sa nových tratiach.
Tam je žiadny nový priamka oddeľujúce každý z týchto tlačových hovorov,
takže možno, že ste stále jeden veľký počet,
a je to naozaj len amalgám znaky nového riadku.
[Študent] Dobre, ako sa môžem uistiť, -
No, existuje banda rôznymi spôsobmi.
Dalo by sa ručne dať do tlače nového riadku znak,
ozvena znak nového riadku,
vytlačiť novej rady.
[Študent] Tak echo je to isté ako printf?
>> Printf je ako C printf
kde tlačíte formátovaný reťazec.
Tie dodáva jej formátovací reťazec a potom všetky zástupné premenné.
Je to často niečo, čo sa nepoužíva,
uvidíme, ako vylúčenie zodpovednosti,
Som menej oboznámený s PHP, ako som s inými webovými jazykmi,
a keď som sa naprogramovať v PHP som obvykle nepoužívajú printf
pretože mi to rýchlejšie použiť Schopnosti reťazec interpolácie, že to má,
ktoré pôjdeme do a ja vám ukážem, pár sekúnd,
vzhľadom k tomu, v C sme trochu musieť urobiť hacky vec, aby si to vytlačiť správne.
Môžete totiž premenné priamo do reťazca v PHP.
Printf je trochu príliš dlho na to, čo zvyčajne robím. Áno, Ella.
[Ella] Všeobecne, ak sa dostanete chybe analýzy to znamená,
ako na C to nemôžem povedať, kde presne je chyba, a čo to je,
Takže to znamená, pozri cez celú kódu a to prišiel?
Je to zvyčajne cielenejšie než to.
Myslím, že v tomto prípade to bolo trochu mimo,
takže myslím, že v tomto prípade sme boli chýba bodkočiarka.
To sa snažil nájsť zmysel všetkého,
tak ako týchto interpretovaných jazykov, tlmočník sa bude snažiť
a čo najlepšie, aby sa všetko prácu zodpovedajúcim spôsobom.
>> Uvidíte, napríklad v JavaScripte
Budete často-line príkazy end sa bodkočiarkou rovnako, ako je tomu v PHP,
rovnako ako je tomu v C.
V JavaScriptu niektorých tlmočníkov JavaScript
v mnohých prehliadačoch sa dať do bodkočiarky pre vás
ak ste náhodou, že chýba im.
Budú sa snažiť a prispôsobiť pre niektoré nedbanlivosti na vašej strane.
To je miesto, kde by to mohlo byť sa snaží a snaží a snaží veci fungujú,
a potom nakoniec sa dostaneme k bodu, kde sa hovorí v poriadku,
Nemôžem robiť veci pracovať na kauciu, a to je miesto, kde dostanete číslo riadku
že by sa mohlo zdať trochu mimo od presného miesta.
Dobre, tak poďme prejsť to naozaj rýchlo.
Sme skončili s Ellou, takže poďme sa k Missy,
a Missy, čo tlač reťazca 1 plus počet 2 vám?
[Missy] 3. >> 3.
Dáva to zmysel? Tak nejako?
Znamená to dať číslo? Znamená to dať reťazec?
[Missy] číslo. >> Je to číslo.
Ale je to tlač, takže to bude dať nejaký reťazec.
>> Jedna vec, ktorú môžeme urobiť, aby sme zistili, či na to
Ak je my $ var = 1 + 2
a potom povieme, ozvenu GetType,
takže sme použili tretej druh tlače tu.
Teraz môžeme vidieť, čo sa deje tu.
Tu, čo máme, je máme celé číslo z toho.
Aj napriek tomu, že sa pridá tento reťazec na číslo,
sme nedostali reťazec z toho, rovnako ako Missy povedala.
Sme dostávali celé číslo.
Dobre, takže uvidíme, next up, Kevin.
SK + 50? >> [Kevin] 50.
[Nate H.] 50. Dáva to zmysel?
[Kevin] Jo.
[Nate H.] Prečo? Prečo má zmysel pre vás?
[Kevin] Pretože je to len mať reťazec, s číslom hodnotu nula.
Jo, skvelý.
Druh nejednoznačných situácií, ale je to dobré vedieť, čo sa stane.
Stella, čo sa bude diať ďalej s číslom 1 + string 2?
[Stella] 3. >> 3 znova.
A v tomto prípade, získame reťazec alebo číslo?
>> Dajme to skúsiť.
Niekto rýchlejšie než mi dostať odpoveď? Charlotte?
Oh, I didn'ti-v poriadku, uvidíme, budeme robiť rovnaký druh veci
kde máme rad plus reťazec, a budeme echo typu,
uvidíme, čo dostaneme.
Tiež sme si celé číslo.
Nezáleží na tom, ktorý z nich je reťazec, ktorý z nich je číslo.
Stále dostaneme celé číslo.
Je to stále bude robiť to, čo by sme mohli očakávať.
Dobre, takže Sam, čo 90 + 9 fliaš piva na stene?
[Sam] 99. >> 99.
Žiadne fľaše piva na stene, aj keď.
To nám dáva trochu viac informácií o tom, čo sa deje.
[Sam] Ak ste písal 9 v listoch
potom budete mať 90, nie?
[Nate H.] Jo.
Otázkou bolo, či by sme napísal 9 out ako N-I-N-E
by sme dostali 99 alebo 90?
Mali by sme si 90.
Je to doslova len hľadá číslice znaky.
Je to dosť šikovný, aby rozpoznať počet slov, a že tak. Áno.
>> [Študent] Je tam taká vec ako obsadiť v PHP?
K dispozícii je, a je to presne tak, ako by ste to urobiť v C.
Čo 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Jo, takže to, čo by mohlo byť prekvapivé o tom?
Čo by sa stalo, keby ste rovnaký druh veci v C,
ak ste 10/7 v C?
[Charlotte] To by len vy-v závislosti na tom, ako ste typecasted Myslím, že
to by vám len obmedzený počet číslic za desatinnou čiarkou.
Jo, takže obmedzený počet číslic za desatinnou čiarkou.
Čo iné by mohlo byť, to by vám nejaké číslic za desatinnou?
Často nie, tak znovu, v závislosti na tom, ako ste ju obsadiť
môže alebo nemusí ho previesť na desatinné číslo.
Tu to bolo celkom fajn, že to urobil.
Keby sme vám ukáže vám to späť, keď sme začali robiť tento druh vecí v C
by pravdepodobne urobil trochu väčší zmysel
že nie je len tak, aby 1.
A potom konečne, Jamie, čo 7 + pravda?
[Jamie] 8. >> 8.
Čo to znamená?
Myslím, že to dáva len pravda, hodnota 1.
Jo. Čo sa stane, keď zmeníme, že na false?
[Študent] 7.
Jo, tak si pamätajte, kde budeme hovoriť o týchto binárnych hodnôt,
1 je zapnuté, 0 je vypnuté?
Teraz máme pravda je 1, 0 je false,
a nemusí to videli v príkladoch C, ktoré sme urobili tento rok v semestri,
ale historicky bool typ v C nebol typ real,
takže ľudia používajú 0 a 1 v mieste true a false.
To je prejavom, ktorý.
>> Dobre, takže jedna dôležitá časť o všetkom
je to, že máme tieto rôzne typy.
Môžu na seba vzájomne pôsobia.
Oni môžu často na seba vzájomne pôsobia v cestách, ktoré sú pekné, ako sme videli tu.
Je to pekné, mať možnosť reťazec 1 a číslo 2, pridajte ich dohromady a dostanete 3.
To dáva zmysel.
Avšak, keď píšete webové stránky, a to najmä, keď ste spracovania
užívateľský vstup, takže povedať, že si napísal webový formulár
, Ktorý zhromažďuje informácie od užívateľa a potom ide do spracovávať
na zadnej koniec, na strane servera vo vašom PHP kódu
ak ste očakával, že hodnota, ktorá používateľ napísaný a predložený
Do formulára sa celé číslo alebo byť číslo s plávajúcou čiarkou, alebo niečo také
budete musieť explicitne přetypovat
a potom urobiť nejaké kontroly typu.
>> Vy nechcete len spoliehať na tomto systéme typu žonglovanie, aby to vyjde,
najmä z bezpečnostných dôvodov a len pre robustnosť svoje webové stránky.
Len niečo mať na pamäti, že keď ste manipuláciu dát z formulárov,
čokoľvek, čo príde v pošte alebo get superglobála
uistite sa, že ste vždy overiť, a previesť ju a obsadiť ho.
A rovnako ako sme hovorili o chvíľu pred týmto obsadiť
v PHP je presne rovnaký ako v C, kde budete mať zátvorky
a potom typ.
Majte na pamäti, že.
Jedna funkcia, ktorá príde vhod, keď to robíš
je sme používali a toto je ako stranou,
sme používali túto GetType funkcie tu
zistiť typ premennej,
a keď je to užitočné pre ladenie a zistiť, aké premenné je typ
nechcete používať to, napríklad, v stave, kedy
máte kontrolu, či GetType na $ var = integer niečo urobiť.
To je zlý, zlý, zlý.
Namiesto toho sú tieto funkcie nazývajú je integer, je reťazec,
je pole, ktoré chcete použiť namiesto toho, aby v tomto prípade
čo by som chcel robiť, namiesto toho chlapa tu
je použiť je celé číslo var.
A oni často odvolával sa is_ * v tom zmysle, že by ste mohli nahradiť * s integer,
string, et cetera, a len aby sa ubezpečil, naozaj rýchly
je to int PHP.
Vyzerá to, že môžete urobiť je buď int, alebo je tam je celé číslo, rovnako?
Áno, alias, takže int celočíselné pseudonymy.
Cool.
>> Ako sme na tom?
Poďme zdvihnúť tempo trochu.
Teraz budeme hovoriť o pole, tak ako môžete vidieť
V ďalšej časti špec budeme hovoriť o tom, ako pole v PHP
sú mierne odlišné, než sú v C.
V skutočnosti, oni sú trochu amalgámu
na pole, ktoré ste spoznali a lásku v C
kde všetko je rovnakého typu
uložené po sebe a súvisle v pamäti,
a budete mať tieto číselné indexy.
Máte index 0, index 1, index 2,
a uloženie hodnôt v týchto indexov.
Môžete tiež v C, keď ste napísal pravopisu, veľa z vás
urobil hash tabuľky prístup, a videl, že tam sme mali
iný druh skladovania, kde sme boli mapovanie
kľúč na hodnotu, takže keď ste sa pokúsili uložiť niečo v hašovacia tabuľke
ste mali určiť, že ste chceli uložiť s konkrétnou kľúč,
a že kľúč určuje umiestnenie hodnoty a kde by to byť uložené.
Ste trochu dostal oboch týchto pojmov deje súčasne v poli PHP,
a ako výsledok, často nazývajú tieto asociatívnych polí
kde sme združujúca kľúč v hodnote.
V tejto ďalšej časti budeme hovoriť o jednoduchú PHP polia
kde máme klávesy A, B a C,
všetky reťazce, mapovanie celých čísel 1, 2, a 3.
A môžete mať kľúče rôznych typov.
>> Môžete mať niektoré klávesy, ktoré sú struny, niektoré klávesy, ktoré sú celé čísla.
Môžete mať hodnoty rôznych typov.
Môžete mať hodnotu, ktorá je reťazec, hodnota, ktorá je celé číslo,
hodnota, ktorá je predmet alebo ďalšie pole, napríklad,
všetko v jednom poli objektu, ktorý je trochu zvláštne.
Nemusíte mať pole, ktoré práve dostal jeden typ prvku v ňom.
Môžete mať mnoho rôznych vecí sa tam deje.
Ďalšia vec k poznámke je, že keď vidím niečo také v kóde,
ktorý je platný PHP vyhlásiť pole práve tak ako to, 0, 1, 2, 3, 4, 5,
že vyhlási inicializovaný $ ARR byť toto pole.
Ale to, čo ste vlastne stále pod kapotou je tento druh implicitná
generácie kľúčov, kde sme sa dostali 0-0, 1-1, 2-2, 3-3.
A ukázalo sa, že aj keď máte pole, ako je ten chlap tu
kde máte, B a C a kľúče
a potom začať používať pole pasívny spôsob začať používať toto pole ako hromada,
takže môžete vidieť, že toto pole objekt, je toto pole naozaj stávať preťaženiu.
Môžeme ho použiť ako pole. Môžeme ho použiť ako tabuľky hash.
Môžeme ho použiť ako zásobník.
Keď začať tlačiť veci na tomto poli
Prvá vec, ktorú budete tlačiť na to bude index 0 a potom index 1 a index 2.
Môžete si tento druh implicitného generácie kľúčov
ak zadáte explicitne.
Tak, ako si zadať kľúče explicitne, samozrejme, je pomocou tohto držiaku zápis,
, Ktorý je podobný polí s výnimkou miesto iba umožňuje
celočíselné indexy v tu a teraz necháme niečo.
Ak chcete, aby vaše kľúčové byť reťazec, mali by ste zadať to takto.
Ak chcete, aby to bolo int, zadáte ho s int, ktorú chcete použiť.
>> Otázky týkajúce sa, že tak ďaleko?
Jednou z pekné veci o tejto myšlienke
je, že môžete len niekedy mať jednu hodnotu uloženú s určitým kľúčom.
Ak sa vrátime k nášmu zariadenia, dovoľte mi, aby som odstrániť niektoré z týchto vecí.
A povedzme, že som inicializovať pole byť 0, 1, 2, hotovo.
Keby som teraz viem, že napríklad, keď som echo $ ARR [0]
Idem sa dostať hodnotu 0 vytlačiť,
a pretože tam môže byť jedine jedna hodnota uložená pre konkrétny kľúč
ak uložím niečo na $ ARR [0], povedzme,
potom viem, že keď som echo $ ARR [0] znova
Nebudem sa dostať 0 vytlačí rovnako ako predtým.
Ja som len dostanem.
Takže to je v podstate hovorí, že nemôžem mať $ ARR [0] ukladanie 2 rôzne hodnoty.
To nemôže ukladať ako 0 a reťazec sa, takto doslova nahrádza
čo je v $ ARR [0] skôr.
Dôvod, prečo som priniesť to až sa ho spustiť, uvidíme, čo sa stane.
Pozrite sa tu, že som sa dostal 0 vytlačiť a potom tu dole.
Nie je nový riadok tam, pretože som bol lenivý a nedal, že dovnútra
Čo je v pohode na tom je, môžeme použiť ako spôsob
zachytiť túto myšlienku súboru
kde nemôžeme mať viac kľúčov v rámci poľa.
Nemôžeme mať rovnaké kľúče v poli.
Nemôžem mať kľúčovú 0 a hodnotu 1 a kľúče 0 a hodnotu a
alebo tlačidlo 0 a hodnota true.
Kľúče sú-tu iba 1 kľúč v poli.
Aj keď je možné mať rovnaký uloženú hodnotu
niekoľkokrát v poli pod rôznymi kľúčmi
to nie je možné, majú rovnaké kľúčov viackrát v PHP poľa.
>> Ak sa pozrieme na tento ďalší problém, unique.php,
tam, kde chceme otvoriť PHP súbor
obsahujúce zoznam reťazcov, jeden reťazec na riadok,
a chceme nájsť všetky jedinečné reťazce v tomto súbore
všetko, čo musíte urobiť, je použiť jeden z týchto PHP poľa
a používať reťazca v súbore kľúče k tohto poľa
a zachovať aktualizáciu našu ponuku, ako budeme ukladať tieto nové kľúče.
Ako sme si riadky z súboru, môžeme uložiť v poli,
a na konci budeme mať ako naše kľúče v našom poli
všetky jedinečné reťazca v súbore.
Dáva to zmysel?
Poďme sa pozrieť, ako to funguje.
Budeme otvárať, podľa špecifikácie, nový súbor s názvom unique.php.
Otvoriť. Jejda, ospravedlňujem sa, nový súbor.
Budeme začať ho s rovnakým počiatočným a koncovým tagy.
Budeme ho uložiť do oddielu 9, a budeme to nazývať unique.php.
Dobre, teraz Zoom
Nápad tu je otvorenie súboru,
čítať v súbore riadok po riadku.
Pre každý riadok v súbore
budeme mať pole, kde sme
linke ako náš kľúč.
A potom, keď sa dostaneme na koniec tu
$ Arr tieto klávesy sú jedinečné línie
zo súboru, pretože vieme, že keď som dal linky do tohto poľa
niekoľkokrát to bude len držať prepísanie staré hodnoty,
a môžeme skutočne dať pole riadok ako sám len tak.
>> To je divný.
Sme ukladanie rovnaký kľúč hodnota pár znova a znova a znova,
ale pretože sme zaručiť, že tam bude len 1 kľúč nazýva riadok
takže ak máme súbor, ktorý hovorí, že-súbor zvieracích zvukov a má Haf haf,,
meow, meow, bučať, bučať, a zakaždým, keď čítame zvieracie zvuk out
ako tkanina a uložíme v našom poli dostaneme Haf, a potom druhýkrát
uložíme Woof prepíše prvýkrát, že sme uložené to.
Na konci budeme mať len jednu položku v poli
pre každú z zvieracie zvuky v našom súbore zvieracie zvuky.
Myslíte si, chlapci si istí, že môžete riešiť otvorenie súboru v PHP?
Jeden spôsob, ako to urobiť, poďme na tento rýchlo-jeden spôsob, ako to urobiť
je funkcia fopen, ako sme videli predtým.
Môžete fopen some_file.txt.
Môžete ho otvoriť v režime pre čítanie, rovnako ako v C.
To je jeden úplne dobrý spôsob, ako to urobiť.
Môžete tiež potom pre čítanie v súbore riadok po riadku
majú rovnaké funkcie, mnoho z nich, ktoré ste urobili v C.
Máte fgets.
Máte feof, aj keď sa nám nepáči, že pomocou
pretože, pamätajte, že to nie je veľký v C.
Môžete to urobiť rovnakým spôsobom,
ale tu je naozaj super vec.
Je nám ľúto, nechcem robiť $ file, ale tam je funkcia nazvaná súbor PHP,
a táto funkcia tu je v pohode, pretože to prečíta celý obsah
spisu, ktorý určíte, tak some_file.txt,
prečíta celý obsah tohto súboru do poľa
a potom umožňuje iterácii nad ním, čo je docela šikovný.
>> Ak pôjdeme, napríklad pre náš webovom prehliadači
a my sa pozrieme na Google pre tento súbor PHP
môžete vidieť, že naše manuál hovorí, že súbor načíta celý súbor do poľa,
a môžeme file_get_contents vrátiť obsah súboru ako reťazec,
ale zvyčajne len na to, ako pole, je naozaj pekné, pretože to, čo robí
je to rozbije tak, že každý prvok
v poli je jeden riadok súboru,
takže ak sa pozrieme v samostatnom súbore 0, to je prvý riadok súboru.
Súbor 1, druhý riadok, súbor 2, tretí riadok, a tak ďalej, a tak ďalej.
Nebolo by pekné, keby to bolo všetko, čo musel urobiť v C?
Docela šikovný.
David ukázal to v prednáške, a štýl sa ukázal bol
že okrem nášho štandardu pre loop-v PHP sme, že
for ($ i = 0; i <10; i + +),
a môžete to urobiť v PHP taky, to isté-
máme tiež túto skvelú konštrukciu s názvom foreach.
Foreach je naozaj užitočné, keď iterácie poli alebo týchto dátových štruktúr
pretože vám umožní vytiahnuť každý prvok poľa
bez toho aby ste museli ručne urobiť Indexing sami,
aby bolo nutné ručne vytvoriť premennú indexu, zvýšte ju,
vytiahnite hodnotu v poli v tomto bode, pretože to je veľmi bežná vec robiť.
>> Pravdepodobne ste urobil, že tony časy, kedy ste robili C veci
nad semestra, takže v tejto foreach
môžeme slučku tohto súboru poľa,
a syntax je, že chceme, aby teraz slučke počas tohto poľa
a určiť, že premenná budeme používať pre ukladanie
prvok tohto poľa lokálne, miestne oblasti pôsobnosti tejto slučky foreach,
sa budeme hovoriť line.
Ak je to súbor niekoľkých slov a tam je jedno slovo v riadku
by sme mohli nazvať to slovo rovnako, naozaj len dáte to meno,
čo chcete hovoriť,
a potom vo vnútri slučky, môžete robiť, čo chcete s týmto premenných.
Ak to nie je dosť, aby si hodnotu poľa a budete tiež chcieť, aby sa
index spolu s ním si môžete zadať názov indexu
rovnako ako hodnota, a teraz máte prístup k 2 premenných.
Máte $ i a vedenie
kde $ i je index v poli,
a linka je riadok, ktorý načítať zo súboru.
Napríklad, ak chceme vytlačiť echo riadku 0 v súbore ako je tento,
by sme mohli urobiť to rovnako ako to, "Line $ i zo súboru $ line,"
a tu je niečo, čo tiež ešte nevideli ani
kde som jednoducho úplne preskočil celý tento% s% d podnikania
že sme sa museli vysporiadať v C, a namiesto toho som šiel rovno do
písanie premenné v súlade v mojom reťazci.
>> To sa nazýva premenná interpolácie, interpolácie string
kam plnkou premenné priamo v, a interpret PHP
je dosť šikovný na to, keď je to čítanie cez reťazec, ktorý začína s úvodzovkami-
nie jediné citácie, so samostatnými úvodzovky, môžete to urobiť,
ale s dvojitými úvodzovky, pretože prečíta to hľadá premenných.
Je to lov je dole, a ak to bude považovať premenné, bude mať hodnotu premennej
a napchať si ho do reťazca, ak to môže previesť do reťazcové vyjadrenie,
čo je docela šikovný.
Pre túto chvíľu, poďme komentár mimo zvyšok všetkého,
uložte tento, a to, čo môžeme urobiť, je môžeme otvoriť súbor
že môžeme volať some_file.txt-rokov 's vytvorenie nového súboru,
a môžeme dať si pár vecí nezmysel sem len vyskúšať všetko von,
uložiť, hovoria some_file.txt, ako robím tu hore,
a teraz keď som oddialiť len uistiť, že všetko je v rovnakom adresári,
vyzerá to, že mám unique.php a some_file.txt v rovnakom adresári.
Keby som spustiť php unique.php
vidieť, ako to vytlačí každý riadok v mojom súbore a čo linka je?
>> To je dosť silný, nie?
Pozrite sa, trvalo 3 riadky kódu otvoriť súbor.
No, 4 riadky kódu. Nedokážem spočítať dnes jasne.
Ale naozaj len 2 zaujímavé riadky kódu, pretože ďalšie 2 boli zložené zátvorky,
ale v tomto veľa kód, ktorý sme boli schopní otvoriť súbor, určiť iteráciou cez to,
vytiahnite číslo riadku a riadku sám
a vytlačiť.
Vychytávky na stiahnutie. Charlotte.
[Charlotte] Mám otázku o syntax.
Takže foreach sa zaoberá každú jednotlivú riadku súboru, ktorý si otvorí,
a potom, keď chcete robiť veci s každým riadku stačí to urobiť ako
a potom pridružiť hodnotu.
[Nate H.] Čo môžete urobiť práve tu otázka bola
foreach má čo do činenia s poľom, takže foreach syntaxe
je naozaj foreach, a všimnite si, že tam nie je priestor
alebo niečo medzi pre a každý.
Musí ísť priamo vedľa seba,
a potom sa v poli,
a potom máte tento ďalšie kľúčové slovo názvom ako má byť tam,
a potom po ako môžete buď dať jednu názov premennej,
v takom prípade sa chystáte byť vytiahnutím hodnoty poľa,
nie indexy, alebo ak si to, ako sme napísal nižšie
dostanete kľúče a hodnoty.
Tie majú foreach prvok poľa alebo pár poľa, ako výčnelkom, aby hodnota
alebo ako len hodnota.
V závislosti na tom, čo budete potrebovať, ak nepotrebujete kľúče,
potom môže ísť s hodnotou.
Ak chcete, aby tlačidiel môžete ísť s nimi taky.
>> [Charlotte] Tiež som si uvedomila, že nikdy deklaroval aj alebo linku.
Ako to ani nevie, čo to je?
[Nate H.] Čo myslíš tým vyhlásiť?
[Charlotte] Nikdy sme im povedali, čo som alebo linka prostriedky.
[Nate H.] Nikdy sme povedali počítači, čo som alebo čiara značí, pokiaľ ide o-
[Charlotte] To, že sú indexované alebo Sú v-
[Nate H.] Nikdy povedané to, že to má byť index alebo kľúč a hodnota,
a to preto, že to je PHP interpret.
To slúži ako vyhlásenie a hovorí poriadku, kľúč bude
premenné volal aj uložený v premennej s názvom i
Hodnota sa bude uložený v premennej s názvom linky,
takže to slúži ako vyhlásenie o týchto premenných
a hovorí, že $ i je kľúč, a $ line je hodnota.
Jo, Ella.
[Ella] Ak sú kľúče neurobil číselne
ako sa rozhodnúť, v akom poradí to bude tlačiť všetko?
Je to rovnako ako poradie to zapísané v?
[Nate H.] Poďme to skúsiť.
Poďme vytvoriť premennú s názvom ARR,
a čo môžeme urobiť ide do 7.
Povedzme, že 0 ide do ďalšieho poľa s 1, 2, alebo jablko.
Povedzme, že 7 ide do 1, b ide do 2,
a 3 ide do 4.
To je tak trochu blázon hľadá napríklad preto, že sme miešanie
reťazca a celé čísla všade okolo.
Nie je tam žiadny skutočný aby na toto pole.
Chcem povedať, že sme objednať všetko v abecednom poradí podľa kľúča.
Sme si mohli objednať všetko abecedne hodnotou.
>> Mohli by sme skúsiť a vziať do úvahy, že niektoré reťazce, niektoré sú ints,
a sme si mohli vyskúšať a previesť ich všetky do rovnakého typu a uvidíme, čo sa stane,
alebo môžeme uvažovať je v hodnote, v ktorom sme už zadali
kam sme toho chlapa do prvej, ten chlap na druhom, ten chlap v tretích,
ten chlap vo štvrtom, et cetera.
Pozrime sa, čo sa stane, keď sme sa spustiť tento kód.
Ak budeme posúvať dole a urobiť rovnaký druh veci,
a tu to nie je vytlačenie nových liniek.
Keď čítať veci z súboru bolo vrátane nových tratí v hodnotách,
ktorý bol dôvod, prečo sa vytlačiť pekne, zatiaľ čo tu to nie,
tak to je dôvod, prečo je všetko smushed dohromady.
Dodajme, že v tejto novej rade stačí, aby sa veci pekné.
Poďme spustite ju, a tak tu
pozrite sa na to, čo sa stalo.
Je vytlačený všetko v poradí, v ktorom sa dať do poľa.
To zachovať poriadok v tomto zmysle.
>> Vráťme sa späť k tomuto problému unikátov
tam, kde chceme byť schopní iterácii súboru,
a dáme to some_file.txt,
a budeme určiť iteráciou cez to takto.
Povedali sme, že sme chceli využiť pole, aby sa ubezpečil, že by sme dostali všetky
jedinečné línie von, a tak by sme mohli urobiť veľmi ľahko
jednoduchým uložením v poli, ktoré sme samozrejme vyhlásiť mimo rozsah slučky,
A my sme povedali, že ak sme použili riadky v súbore ako kľúče v našom poli
ak sme vstúpili duplicitné riadok by sme byť prepísanie predchádzajúcej hodnotu.
To nie je vôbec možné mať 2 kľúče, ktoré sú zhodné v jednom poli.
Môžeme robiť len to.
Budeme sa zbaviť tohto echo vyhlásenia tu.
Tu sme uloženie riadok v súbore na našom poli
pomocou sa ako kľúč.
Nič na tom nie je, a ukázalo sa, že nemáme ani potrebovať kľúč.
Nepotrebujeme, aby aj premenná.
V tomto bode, ak by sme mali urobiť ďalšie slučky foreach
a my sme boli na slučke na každom ARR
a linka teraz, keď sme echo-oops, sorry.
Nemôžeme používať čiarku. Musíme použiť ako kľúčové slovo.
Teraz, keď sme echo riadok by sme sa mali dostať všetky unikátnych slov v súbore.
Ak pôjdeme do some_file.txt,
a povedzme, že to jablko, banán, jablko, jablko, banán,
Ak máme vytlačenie všetkých unikátnych slov v tomto súbore by sme mali získať iba
jablko a banán vytlačiť.
Ak šetríme to, teraz tu budeme približovania sa
php unique.php, a tá-da.
Úspešne sme uniqued súbor.
>> Záverečná časť tohto problému je výzvou na triedenie tohto poľa pred vytlačiť to
pretože v tomto jednoduchom príklade, ktorý sme práve urobili
sme mali šťastie v tom zmysle, že súbor-
Urobili sme to vymyslel príklad s jablkami a banánmi.
To už sú zoradené.
Ale pomocou jednoduchého triedenia funkcie môžete triediť pole, čo je docela šikovný.
Posledná vec, že ​​chcem hovoriť s vami asi naozaj rýchlo
je, že tento druh PHP je všetko v poriadku a dobré, a je to super padnúci do ruky
vedieť, ako to urobiť, ak budete niekedy potrebovať urobiť malé, rýchle veci programovo.
Napríklad, keď budem musieť napísať program, ktorý, povedzme,
dáva všetkým do sekcií nebudem chodiť a písať v jazyku C.
Bude to trvať dlho.
Bude to mať trochu bolesti, najmä v prípade, že sa jedná o súbory,
rovnako ako vy som videl.
Je to tak pekné, že sa práve v tomto veľa kódu priamo tu
sme boli schopní preraziť súboru, vytiahnite všetky jedinečné hodnoty
a vytlačiť je späť.
>> Avšak, pre vaše úlohy, pre vaše projekty,
ak staviate webové stránky s PHP moc je to
utiekame naša PHP súbory prostredníctvom tohto tlmočníka,
a tlmočník je spracovanie všetko vnútri tagov PHP,
takže všetko ostatné nedotknuté a vypľul výsledky.
Môžeme to urobiť stavať HTML programovo.
Teraz, keď sme sa vrátiť k spec, posledný problém v špec
hovorí o tejto myšlienke spájania
a vytvorenie drop-down menu,
ktoré môžu alebo nemusia chcieť robiť, v závislosti na tom, čo vaše konečné projekt robí,
ktorý umožňuje užívateľovi vybrať zo zoznamu všetkých možných koncentrácií
ich jednej koncentrácii.
Teraz, to je tak trochu bolesti typu na to
a urobiť všetko ručne, a to najmä, keď ste museli uistiť,
že máte všetky lomené zátvorky na správnom mieste a všetky citácie na správnom mieste,
tak s PHP môžete robiť programovo, a môžete to urobiť naozaj rýchlo.
>> Poďme sa pozrieť, ako to urobiť.
Budeme otvoriť nový súbor.
Budeme dať v našich PHP tagy.
Budeme hovoriť, že concentrations.php,
a teraz, keď to robíš, trochu dobrá vec myslieť
keď sa snažíte kombinovať a zápas si PHP a vaše HTML
je prísť na to,, jo, čo je tá časť, ktorá chcem programovo generovať?
Čo je tá časť, ktorá môžem programovo vytvárať?
Je pravda, že môžete urobiť všetky vaše HTML
vnútri PHP blokov.
Môžete echo všetky HTML ako reťazce.
Napríklad, keď chcem začať robiť zvoľte značky vnútri PHP
Môžem povedať, echo, hovoria vyberte názov = koncentrácia,
a potom dole by som mohol mať iný echo tag
alebo iný echo tzv close vyberte.
To je jeden spôsob, ako to urobiť, pretože to, čo to je doslova robiť
je vytlačiť tento reťazec, keď je to beh cez tlmočníka PHP,
takže výsledok bude HTML.
Ak by som tento súbor uložiť ako je teraz
a bežím php concentrations.php
pozrieť sa na to, čo som dostal.
Dostal som tento otvorený Zavrieť Vyberte značku.
>> Ak by som mal urobiť, a ja sme boli uložiť tento výsledok do súboru,
hovoria, concentrations.html-wait, to vyzerá, že l je preč na druhú stranu-
Teraz keď otvorím tu concentrations.html vidíte mám validný HTML súbor.
Je to trochu divné?
Sme používate PHP pre vytvorenie HTML, vytvoriť validné HTML.
Spôsob, akým sme to urobiť, je budeme mať len tlačové PHP
HTML, že chceme, aby sa tlačilo.
To je doslova ako PHP webové stránky fungujú.
Keď navštívite webovú stránku, ktorá vás pošle k niečomu, ako je
niečo, niečo, niečo, čo dot com lomítko index.php
Počítač je doslova vyvolanie index.php,
beží cez PHP interpretru, a bez ohľadu na nevyžiadanú vyjde
to posiela späť do prehliadača a hovorí hej, prehliadač, interpretovať to ako HTML.
Pekná vec je, že to môže byť bolesť neustále písať echo, echo, echo, echo
a uzavrieť všetko v úvodzovkách, ako je tento, takže ak chcete písať
HTML, ktoré to bude statické sami, môžete to urobiť takto,
dať von, zatvorte ho,
a potom tu dal len vnútri PHP značiek, ktoré poznáte
Ak chcete programovo vytvárať, a v tomto prípade je to táto možnosť tagy
, Ktoré sú bolesť generovať.
>> Napríklad by sme mohli generovať tisíce možností tagy
tým, že robí niečo podobné, $ i <1000, i + +
a hovoriť echo hodnoty opcie = $-jejda, to nemôžem urobiť, že.
Dobre, poďme to skúsiť a uvidíme, čo sa stane.
$ I a potom hovorí $ i </ option.
Skôr než by museli písať na to, že možnosť označiť tisíc rôznych časov
Som pomocou PHP kódu generovať automaticky, programovo.
Druh šikovný. Jo.
Pamätám si to, že je zmieňovaný v jeden prednášky alebo návodu,
ale aký je rozdiel medzi úvodzovkami,
normálne tie a tieto jednotlivé veci?
To je vlastne niečo, čo som urobil zle tu, že som vám ukážem.
Jednotlivé citácie neumožňujú žiadne špeciálne znaky,
takže všetko vnútri jednotného citovaného reťazec je interpretovaný doslova.
Keby som mal \ n vnútro apostrofov a som zachrániť to, napríklad,
a teraz idem sem a spustite ho,
oops, kam idem?
Oh, je to preto, že som zabudol $.
>> Teraz, keď som otvoriť-vlastne, tu, budeme sa zbaviť písanie do súboru.
Budeme len čítať.
Tu vidíte, že mám tento doslovný \ n v reťazci, ako nie skutočné novom riadku,
a podobne, namiesto toho, aby v skutočnosti interpoláciou hodnotu tejto premennej
to mi $ aj sama o sebe, ktorá je tak trochu bolesti.
Cesta okolo tohto je použiť úvodzovky,
a potom pri použití úvodzoviek sa bude skutočne
správne interpolovať hodnoty všetkých týchto premenných v tu
a tiež rozpoznať tento \ n byť nová linka, ktorá je
a nie \ n
Použitie jednotlivých tie je pekné, keď máte
znaky, ktoré by mohli byť interpretované ako špeciálne znaky, pretože potom nemusíte
uniknúť im neustále.
Veci sa môžu dostať chaotický, a často sa tak, ako som to urobiť,
len robiť veci jednoducho, je to, že ak budem mať nič
HTML ako v mojom kóde budem zahŕňať edit v apostrof
a potom použite tento operátor zreťazenie
zreťaziť premenné a
To je ďalší spôsob, ako to robí
kde máme bodku, čo sa deje sa pripojiť je to reťazec
s tým s tým s tým,
a teraz nemám uniknúť tieto úvodzovky.
Nemám použiť tento chlapa k úteku.
Budú doslova vytlačiť ako úvodzoviek a potom ten chlap tu.
To je ďalší spôsob, ako miešať všetko dohromady.
>> [Študent] Tiež, keď zopakoval GetType tam boli žiadne úvodzovky vôbec.
Správne, takže echo je trochu zvláštne v tom zmysle, že nepotrebujete zátvorky.
Nemusíte mať úvodzovky nutne okolo premenných,
ako je platný povedať echo $ i, a to bude interpretovať ako reťazec.
Bude to robiť obsadenie, takže sme mohli urobiť, a to je platné taky, ale nepotrebujeme ju.
Je to voliteľné.
V tomto týždni sa problém sade pozor na veľa tohto druhu vecí
kam miešanie a zodpovedajúce HTML s PHP
rovnako ako to, a teraz, keď sme sa posunúť späť a my spustiť tento
môžeme vidieť, že máme veľa možností hodnôt
že zrovna vytlačiť.
Máme všetky tieto HTML, ktorý dostal generovaný naozaj rýchlo pre nás.
Nechám to ako cvičenie.
Je to veľmi podobný súboru čítanie, ktoré sme robili predtým.
>> K dispozícii je concentrations.txt súbor, ktorý si môžete stiahnuť dole z CDN,
a môžete ho otvoriť pomocou rovnakej foreach trik, ktorý sme urobili skôr,
a foreach stačí echo možnosť a zapojte
zodpovedajúce hodnoty, príslušné kľúče a indexy,
a potom dostanete drop-down, ktorý doslova vytvára
programovo pre tie všetky rôzne koncentrácie na Harvarde.
Šikovný vec mať.
Tam je veľa konfigurácie veci pre túto úlohu.
Ak ste tak ešte neurobili, že už sa ďalšie polhodinu, hodinu,
nejaký čas dnes rozhodne pre istotu,
prejsť spec problému set,
vidieť, čo sa deje s zriadenie vhost, miestne hostiteľ, všetky tie veci.
Jedna vec je poukázať práve teraz, je, že
vo väčšine problémových sad sme sa ísť do priečinka Dropbox
a potom sťahovanie problém nastavenú súbor zips a rozopínajúce ho.
Pre tento problém súbor, ktorý nechcete.
Ak chcete ísť do tejto vhosts adresára.
Budete chcieť ísť do vhostů a ísť do miestneho hostiteľa adresára v ňom,
a to je miesto, kde budete chcieť strhnúť zip súbor,
rozbaľte ho, a pripravte sa na to.
Budete musieť nasledovať kroky starostlivo.
>> Ak máte akékoľvek otázky, pošlite e-mail, poslať ho na Diskutujte, prišiel úradné hodiny.
Vďaka hoši. Budúci týždeň budeme mať recenziu relácie pre kvíz.
Užite si posledný problém sadu. Dúfam, že to všetko ide veľmi dobre.
[CS50.TV]