[Powered by Google Translate] [Odjeljak 8] [Manje Ugodno]
[Nate Hardison] [Sveučilište Harvard]
[Ovo je CS50.] [CS50.TV]
>> Dobro došli u naš drugi na zadnjem dijelu.
U ovom tjednu ćemo pričati o PHP, a zatim sljedeći tjedan
ćemo učiniti malo recenziju za kviz jedan.
Mi ćemo početi na stranici 3 od problema postavlja paket,
a mi ćemo raditi kroz dio pitanja prilično brzo.
Na 3. stranici smo počeli govoriti o tom razlikom između C i PHP
u smislu da je PHP dinamički upisali jezik,
dok C statički je upisali,
i je li tko stvarno brzo obaviti nikakve kodiranje u nešto poput PHP
ili Python ili Ruby prije, JavaScriptu?
Totalno novo? Ok.
>> Sve od tih jezika koje sam spomenuo
su vrlo različit od jezika kao što su C i C + + i Java
u smislu da kada proglasiti varijable ne moraju deklarirati
kakav varijable je, pa je tako u C smo zapeli da se uvijek reći
ovo će biti int varijabla, ili će to biti char * varijabla,
dok s PHP, s Python, Ruby, s
s puno više ovih modernih jezika nemate učiniti da na sve.
Vi samo deklarirati svoju varijablu, te u slučaju PHP
izjavljujete da je varijabla ga prefiksa s $ znakom,
a zatim tip varijable određuje bez obzira na vrijednost to drži,
koja je vrsta cool.
Da se poigrati s ovim malo, imamo primjere PHP kod ovdje
između početka i završetka tagova.
Mi koristimo ovu vrstu kao HTML u smislu da
mi imamo ove kutnika ovdje za otvaranje i zatvaranje.
Vidjet ćete ovo sa HTML.
Vidjet ćete istu vrstu sintakse s XML previše.
>> To ukazuje na početak PHP bloku.
Ovo? Php je specifična za PHP.
Mi zatvoriti sve s?> Kao dobro.
Ajmo otvoriti datoteku u našem aparatu pomoću god želite.
U ovom paketu kaže nazvati dynamic.php.
U istinu, možete ga nazvati kako god želite, ali ime datoteke će doći do
i biti važna kasnije, pa samo se sjeti što god ga zovu.
Idem prebaciti na aparatu,
i ja ću napraviti imenik za
poglavlje 9 Vjerujem da smo na sada.
A mi ćemo ići u odjeljku 9,
a ja ću koristiti gedit.
Hajdemo vidjeti, gedit, a ja ću nazvati mina dynamic.php.
Boom.
Unutar dynamic.php, budući da je to PHP datoteka
i želim pokrenuti ovaj kroz PHP tumača
Moram početi sve off s tim otvorenim oznakama,
pa ću za početak te odmah,
dati sebi malo prostora u između tagova,
, a zatim je točka ove vježbe je bio da se poigrati s
ova funkcija zove gettype, tako gettype, ovu funkciju ovdje.
>> Primijetit ćete da nema je podvlačenje ili prostor ili crticu ili bilo što slično
Odvajanje dvije riječi, dobiti i upišite, samo jednu riječ uopce.
No, što će to učiniti je ako sam proći u varijable gettype,
recimo $ var ili $ x,
ovo će mi reći kakve u debugging formatu
što je ime tog tipa je.
Mi ćemo eksperimentirati ovdje.
Konkretno, ako se osvrnuti na pset spec.
imamo nekoliko različitih linija koda ovdje.
U prvoj liniji koda smo inicijalizirati ovu varijablu $ var,
biti jednak 7, a zatim smo ovaj printf liniju
koji kaže hej, printf var je prazan.
Printf je jedan od mnogo načina možemo ispisati stvari u PHP.
Često ćete vidjeti echo funkciju koristi umjesto printf,
ali printf svi smo upoznati sa što je kodiranje u C za neko vrijeme.
Ono što zapravo može učiniti je da vidimo ako preslikati djela.
Ja ću dati ovo probati.
Mi ćemo se vratiti preko aparata.
Ok, i tamo ćemo ići.
I razmak je malo funky, ali ovdje mi ići.
Imamo ovaj kod ovdje.
>> [Studentski] Nije li to dobar stil da ga karticu?
Molim?
[Studentski] Je li to konvencionalni da ga kartici?
Točno, pa Sam pita ako je konvencija da ga kartici ili ne.
Obično da.
U ovom slučaju sam izabrao da ne.
Iskreno, vidjet ćete različite stvari među različitim programera.
PHP se obično koristi često u kombinaciji s HTML
i drugim jezicima, pa ponekad ispis će izgledati malo funky
ako alineje unutar PHP početak i kraj oznake.
To stvarno ovisi.
U tom slučaju kopiranje i lijepljenje nije zalijepite kartice u za mene,
ali to definitivno ne, kao što ste rekli, da je jasnije.
U redu, ako spremite ovaj kod u dynamic.php
onda ono što možete učiniti je doći do svog prozora terminala gdje sam upravo ovdje dolje
u gedit, i to u protuvrijednosti od sastaviti
pomoću napraviti i onda trčanje koda u C
sve što morate učiniti s PHP datoteka je pokrenuti PHP tumača,
što je mali program pod nazivom PHP,
a argument koji mu tumača je datoteka koju želite interpretirati.
U ovom slučaju, dynamic.php.
Joj, gdje sam ga stavio?
Oh, ja sam ga stavio u poglavlju 9, a ovdje sam. To je razlog zašto.
>> Sada, ako sam pokrenuti da ponovno
vidimo da je u mom prvom gettype funkcija poziva
var je cijeli broj.
U sljedećem jednom var je string, a zatim u trećem jednom var je boolean.
Što je zanimljivo o tome je li mi dođite natrag gore vidimo da
To su vrste slične onima koje smo imali u C.
Imali smo Ints u C.
Mi vrsta imala konce u C,
tako da žice nisu bile potpuno čitljiv putovanja u smislu da
naša CS50 niz je stvarno ono?
Molim? Missy?
[Missy] Char *.
Da, bilo je to char * smo koristili.
Na samom početku semestra smo pomoću string tipa,
ali to je stvarno char * ispod haube.
Mi smo samo upišite ga definirati, dok je u PHP ove žice su stvarni tip.
Nema više ovog char * Tip stvari.
>> Vidjet ćete da možemo učiniti mnogo više stvari sa žice
puno lakše u PHP nego što smo mogli u C,
i onda na kraju, imamo ovaj boolean tipa, a velika je razlika ovdje je da
ako mi pomicanje natrag dolje vidimo da je ime ove vrste
sada su cijeli, gudački, a boolean umjesto int i bool,
i kao što ste pokupiti različite programske jezike,
uz pretpostavku da u nekom trenutku u vašem životu ćete doći u dodir s
različiti one koje ćete primijetiti male Igra riječima kao što je ovaj
gdje je C zove prirodna broja Ints.
Neki ga zovu cijeli brojevi.
Postoje i drugi uvjeti koje ćete izvoditi u.
Big int smo vidjeli danas u SQL.
Tu su i broj i onda bool, boolean,
sve vrste razlika postoji.
>> To nije strašno zanimljivo, ali sada ću vam dati malo vremena-
ako smo povećali natrag van raditi kroz ove vježbe na dnu stranice 3
gdje se pita što vrste odgovaraju tim vrijednostima ovdje na dnu.
Imamo 3,50.
Imamo ovu stvar ovdje, što je zanimljivo.
Nismo vidjeli da je prije, ali ako ste pratili zajedno u predavanju
što vjerojatno već znate što je to.
Onda imamo ovo, koja je ovo vrsta funky.
Vi prepoznati.
Što je to u C?
Sam? Što bi vam to dati u C?
To će otvoriti datoteku pod nazivom dynamic.php i učiniti ga čitati.
Da, i što će biti tip varijable koje bi mi dodijelili to? >> File zvijezde.
Točno, mi bi dodijeliti ovo datoteke zvijezde.
To je legitimno PHP previše.
Run to. Pogledajte što se događa kada prođe da u gettype.
A onda je također provjeriti što je nulta, što bi to moglo biti u PHP.
Ja ću vam dati par minuta.
Vi doslovno možete kopirati i zalijepiti ove vrijednosti u,
a onda ćemo napraviti malo slučajan poziv na vas
i vidjeti ono što je dobio.
>> [Studentski] imam pitanje. << Da.
U jednom od predavanja David je rekao da postoji nešto što se može staviti na vrhu svoje datoteke
tako da ne morate upisati u PHP svaki put.
Što je to?
On je vjerojatno riječ o funta praskom, mljeveno meso praska.
To je direktiva da ako označite datoteku kao izvršnu
onda ono što čini je kada izvršiti datoteku
to će reći program ljuska
koristiti PHP tumača interpretirati sadržaj datoteke.
Pitanje se što je to posebna linija
da bismo mogli uključiti na vrhu naših PHP datoteka ne moraju uključivati
ovo PHP linija ili ovo PHP naredba kad god želimo izvršiti datoteku?
A što zapravo može to učiniti s hrpom različitih datoteka.
Vjerujem da to ovisi o tome gdje PHP binarni je pohranjena,
ali često usr / bin / php je dobro mjesto za početak.
Možete shvatiti to točno tako da odete natrag dolje na vaš uređaj
i upisivanjem koji php.
Koje naredbe figure out kada ste izvršenja binarni
ili naredba gdje je odgovarajuća datoteka.
To mi govori da je PHP je stvarno aliasing to binarna datoteka
koji je pohranjen u usr / bin, što je, gdje puno od binarne datoteke sustava su instalirani.
Na primjer, ako sam dođite do vrha, sad da sam stavio ovo #! linija ovdje
Ja mogu pomicati prema dolje, a ja mogu pokušati pokrenuti
dynamic.php, ali ja dobiti ovu pogrešku o dopuštenje se odbija,
i što to znači je da ovaj dokument nije trenutno daje izvršne ovlasti.
To nije označena kao datoteku da netko može pokrenuti.
>> Kada je vodio napraviti ili zveka i imaš izvršnu od njega
prevodilac je dovoljno pametan da zna da hej, ja sam izgradnju izvršnu.
Vi vjerojatno želite izvršiti ga, tako da bi automatski konfigurirati
dozvole za vas.
To nije slučaj, međutim, kada se stvoriti normalnu sliku od nule,
razlog obično se vi ne želite imati bilo koju datoteku na vašem sustavu biti izvršna,
tako da zapravo morati ići i ručno ga napraviti.
Najlakši način da to učinite je sa chmod naredba,
i chmod + x kaže dodali izvršnu malo
jer je čitanje malo, umanjenje malo i izvršna malo,
r, W i X,
i govoreći chmod + x će se okrenuti na izvršnu malo
za tadašnje datoteke koje smo naveli, koja je u ovom slučaju će biti dynamic.php.
>> [Studentski] Je li to uključen za sve?
Idemo provjeriti ovaj vanjska, pa kako bih provjeriti dozvole?
Znate li kako bih provjeriti dozvole datoteke?
[Nečujno učenik odgovor]
Žao? >> [Studentski] XSD.
XSD nam daje sliku u hack.
Oglas sve datoteke,-l, pokazat će mi sve datoteke u mom imeniku
vrsta u svojoj dugoj, opširnog popisa, pa ovdje vidimo da
ovo dynamic.php sliku
zadnji put je promijenjen 5. studenog u 16:21.
Vlasnik ove datoteke je jharvard.
To je korisnik koji je prijavljeni
To je korisnik radim kao,
a ako ste također u aparatu ste također radi kao korisnika jharvard.
Ti si u skupini studenata,
a to su stvari koje ćete vidjeti dovoljno često.
>> Možemo ići u puno detalja ovdje,
ali za najveći dio onoga što želite pogledati kada ste u potrazi za vidjeti
hoće li ili ne datoteka izvršna je prvenstveno
korisnik koji posjeduje datoteku, vlasnik,
tako da je ovo jharvard, a zatim smo
dozvole bita ovdje na lijevoj strani,
i način da pročitate to je da je posljednji zalogaj
se obično koristi za označavanje da li ili ne, barem u ovom slučaju
ovaj posljednji zalogaj često će biti postavljen na oglas za označavanje
da je datoteka direktorij, a ne samo normalna datoteka.
Onda sljedeće tri bita pravo ovdje
odrediti dozvole koje je vlasnik datoteke ima,
tako da u ovom slučaju jharvard, kao vlasnik datoteke, može čitati i pisati ovu sliku,
ali tu je crtica rekavši da jharvard ne može izvršiti ovu datoteku.
Sljedećih 3 bita su za skupinu, pa ovo je grupa studenata,
pa ako je bilo više korisnika na mom aparatu,
i imali smo više korisnika, kao dio studenata grupe,
onda svi oni mogu čitati ovu sliku, ali ne mogu ga napisati,
a isto tako bilo tko drugi, svijet
mogu samo čitati ovu sliku kao dobro.
Tu je dobar, dugo writeup o tome,
tako da možete čitati online.
U spec. problema skup idemo u to u više detalja.
>> [Studentski] Je 218 koji se odnosi na svijet?
218 je off vrhu moje glave sam zaboravljajući,
ali ne.
Idemo vidjeti. Ja sam zatamnjenja na to pravo sada.
Povratak na ono što smo bili oko napraviti s ovom chmod + x
gdje smo htjeli dati dynamic.php izvršne ovlasti,
a pitanje je da li ili ne to će dati izvršne ovlasti svima
ili samo da jharvard, a možemo vidjeti to
trčanje naredbe i upišite ls-l,
a sada vidimo da je označena kao izvršna.
Možete vidjeti da je došlo do promjene boje.
Sada dynamic.php je navedena u zelenom,
i to izgleda kao odgovor na pitanje je što, Charlotte?
[Charlotte] Samo jharvard. >> Samo jharvard, da.
>> Ako smo željeli skrenuti izvršnu malo na za svakoga
kako bismo mogli to učiniti?
Bilo misli? >> + X?
Da, točno.
Charlotte je rekao da možemo napraviti chmod od + X dynamic.php,
i sada, ako smo pokrenuti ls-l vidimo da su izvršne bita
su doista uključen za svakoga.
A što zapravo može učiniti suprotno od toga, tako da možete ga isključiti za svakoga
pomoću minusa.
Sada je isključen, a sada možemo okrenuti ga na leđa za jharvard
tako da zapravo možemo ga pokrenuti,
, a sada možete vidjeti kada smo pokrenuli ovu posebnu šifru #! linija na vrhu,
#! linija, rekao je ljuska,
rekao naš terminal hej, kada je ova datoteka se pokrenuti,
koristite / usr / bin / php protumačiti ovu sliku
, a zatim ispisati izlaz.
[Nečujno učenik pitanje]
Naravno, neka me pomicanje natrag gore. Baš kao što je ovaj.
Vidjet ćete sve od ovih direktiva početi s ovim funta, a zatim uskličnik,
ponekad zvan shebang, ljestve prasak.
>> [Studentski] Kako možemo ga pokrenuti s php dynamic.php prije nego što bi ga izvediv?
Pitanje je bilo kako možemo pokrenuti ovaj korištenjem PHP binarni
dok dynamic.php nije izvršna?
To je super važno jer je to točno kako
to će raditi kada pišete problema set sedam.
Većinu vremena PHP datoteke nisu izravno izvršna.
Način na koji funkcionira, jer to je PHP binarni da je izvršna.
Tumač je stvar koja se izvršava,
i tako ono što radi doslovno slurping u cjelokupni sadržaj
našeg dynamic.php datoteke i ide redak po redak
i izvršavanje tih naredbi, tako da je pomoću naše PHP datoteku
kao popis uputa.
To nije izravno njezina izvršenja.
To je mjesto gdje možemo reći da su te datoteke tumačiti u vrijeme izvođenja.
To je mali vremenski jezik umjesto nečega što je određeno vrijeme prevođenja,
nije sastavio jezik poput C.
>> Postoji način da se jezik run vrijeme djelovati kao da je jezik sastaviti vrijeme,
kao i ako imate sve trčanje učinjeno na poslužitelju
nego-znate na što mislim?
Da, tako je pitanje
postoji način da se vrijeme izvođenja jezike djelovati više kao vrijeme prevođenja vrsta jezika?
I tu su, mislim, da je aktivno područje istraživanja za puno tih tvrtki.
Vjerujem Facebook je učinio mnogo rada s PHP
i sastavljanje dolje, čineći ga brže, to optimizirati
budući da je njihova stranica je izgrađena na PHP.
Ako ste nakon node.js uopće,
koja je vrsta JavaScript tumača
biti u mogućnosti to trčanje JavaScript izvan preglednika, izvan svog web preglednika,
jer tradicionalno JavaScripta bi samo pokrenuti unutar Firefox ili Chrome,
i to bi se koriste kako bi super animacije dogoditi na web stranici
i napraviti svoju web stranicu dinamičan.
To je bio izgrađen na puno posla da je Google učinio
da JavaScript i C + +
vezati zajedno, tako da je puno aktivnog istraživanja na
dobiti ti jezici za interakciju i optimizirati ih,
prije svega zato što toliko ljudi mogu kodirati u PHP i JavaScript
jer je puno lakše.
To je puno ljepše. Vi nemate naputke.
Vi nemate vrste plutajuæi okolo.
Oni su htjeli steći koristi od tih vrijeme prevođenja jezika
sa svim tipa provjeri i brzinu i donjeg korištenje memorije i svih koji
dok je još uvijek održava fleksibilnost i jednostavnost korištenja tih novijima.
>> Povratak na našem izvornom planu napada.
Imamo neke od tih pitanja ovdje u našoj spec. problema skup.
Idemo kroz njih jako brzo, a mi ćemo ići po sobi.
Charlotte, ono tip je 3,50?
[Charlotte] To je dvostruka. >> To je dvostruko.
Jimmy, što je to sljedeći? >> Niz.
Polje, strašan, a Jared, ono što je fopen?
[Jared] To je izvor. >> To je resurs.
To je vrsta novog jednom, ne file zvijezda, a ne datoteke.
To je resurs je tip u PHP-u,
i žao mi je, Ella, posljednji null je ono?
Null.
Nula, kako je to napisano u PHP? >> Isti način.
Na isti način, kapiteli? >> Da.
Da, u redu.
Ovdje ćemo ići, imamo dvostruko, imamo niz,
imamo resurse, a onda smo dobili null.
Pogledajmo sada ste vidjeli-
neka se vidi, tako da sada mislim ono što sam također žele učiniti je podići
ova web stranica upravo ovdje, ovo php.net / priručnik,
pa ako vi kopirati da i otvoriti web preglednik.
Idem podići Chrome, staviti da u.
Želim vam pokazati to ne samo zato
možemo razgovarati cijeli dan o vrstama i sve to zabavno
nego zato što je to PHP priručnik,
a tu su i puno PHP programera vani.
Postoji mnogo PHP web stranice vani,
i kao rezultat toga, tu je mnogo dokumentacije na PHP,
i upotrebu, ovaj php.net, je stvarno dobro mjesto za izlazak
kad god imate pitanja o tome što je najbolji način da to X u PHP
ili što ne funkcija izgledati?
Samo vrsta upoznati sa kako to izgleda, jer
ćete biti dolazak ovdje često, malo za problema postaviti sedam.
>> Ako ste završili radiš konačni projekt koji koristi PHP
to će biti mjesto koje ćete postati vrlo dobro poznavao.
Često način na koji ljudi to učinite je da koristite Google za pretraživanje za web stranice,
i oni ne koristiti okvir za pretraživanje koji je ovdje u gornjem desnom, koja je vrsta maleni.
Ako ste Googling oko za nešto napraviti sa PHP i vidite
jedan od ručnih linkove pop-up obično možete se osloniti na to
kao prilično dobar resurs.
Strašan, tako da od tih tipova, samo iz znatiželje,
one koje nismo vidjeli?
Sve nismo vidjeli ovdje?
[Studentski] resursima. >> Vidjeli smo resurs s fopen poziva.
[Studentski] objekata. >> Objekti nismo vidjeli sigurno.
Callbacks nismo vidjeli.
Postoje neke od tih pseudo-vrste.
Mi definitivno vidio samo broj i dvostruko.
Nismo vidjeli neke od drugih, pa ako mi kliknite na integers
možemo vidjeti postoje li druge integeri da oni imaju ovdje?
Jesu li sve tako cijeli broj, cijeli broj, cijeli broj.
Neki jezici imaju veće cjelobrojne tipove,
kao što smo vidjeli na MySQL danas nije bilo int a zatim velika int.
Cool.
>> Dakle, PHP upotrebu.
Vratimo se na naš spec. problema skup, a mi sada ćete pomaknite se dolje na 4. stranici.
Jedna od stvari koja se događa kada ste dobili te jezike
koji nemaju taj statički tipkanje, tako da ti jezici gdje morate prijaviti
tip je ispred varijable do
je li dobiti slučajeve gdje možete početi s varijable različitih tipova
interakciji jedni s drugima,
i PHP čini ovu stvar gdje se pokušava učiniti
ono što smatra da je najrazumniji stvar za učiniti
kada imate dvije različite vrste međusobno.
Na primjer, ako gledamo ovih linija koda ovdje
vidite da imamo ono što se događa kada
ćemo pokušati i dodajte string 1 do 2 integer.
Što će se dogoditi ako ćemo pokušati i dodati niz koji nije brojčana vrijednost
nego stvarni likovi, CS broju 50?
Onda ćemo vidjeti je li se išta drugačije da se događa tamo gdje
umjesto dodajući niz na broju smo dodajući niz na žici,
i tako dalje i tako dalje do točke gdje smo uzimajući
nekakav čudan stvari ovdje gdje imamo 7 + istina.
Što ispitati kritički to znači?
>> Ako vi ići naprijed i zalijepiti neke od ovog koda u svoj uređaj.
Možete ga zadržati u dynamic.php.
Vidjet ćemo što će se dogoditi.
[Studentski] Samo koristite otisak, a ne printf?
Da, pa ćete naći da ispis je također vrijedi funkcija za ispis u PHP.
Postoji mnogo različitih načina radi.
Vidjet ćemo s nekoliko primjera kasnije kad smo počeli govoriti
o jedinstvenom problemu koji ćemo pisati
i onda je koncentracija problem koji ćemo pisati
da, iako imamo fopen i fclose
to često nije najjednostavniji način da pročitati u sadržaju datoteke.
PHP ima puno tih C-poput holdovers.
[Studentski] Kad sam stavio u svim 6 od onih stvari koje sam samo dobiti jedan broj kao izlaz.
[Nate H.] Kada ste stavili u svim šest od tih stvari.
Hajdemo vidjeti je li to zato što je eventualno-
jedna stvar je da su ti pozivi nisu print prestaje na kraju s novim linijama.
Nema nova linija razdvajanja svaki od tih ispis poziva,
pa možda ste uzimajući jedan veliki broj,
i to je zapravo samo amalgam nove linije znakova.
[Studentski] Dobro, kako ću napraviti sigurni-
Pa, postoje hrpa različitih načina.
Možete ručno mogao staviti u tiskanom novog retka karaktera,
odjek nove linije lika,
ispisati nove linije.
[Studentski] Dakle, odjek je ista stvar kao i printf?
>> Printf je poput C printf
gdje ste tiskanje formatiran string.
Vi ste dobavu mu format string i onda sve rezerviranih mjesta varijabli.
To je često nešto što se ne koristi-
neka se vidi, kao demantiju
Ja sam manje upoznati s PHP nego sam s drugim web jezicima,
i kad sam programiran u PHP Ja obično ne koriste printf
jer sam ga pronaći brže koristite niz interpolacija sposobnosti koje ima,
koje ćemo ići u, a ja ću vam pokazati u samo sekundu,
dok je u C mi nekako morati učiniti ovu Hacky stvar da bi ga ispisati ispravno.
Vi zapravo možete staviti varijable izravno u nizovima u PHP.
Printf je vrsta pretjerano dugo za ono što se obično učiniti. Da, Ella.
[Ella] Općenito, ako dobijete Pogreška raščlambe to znači-
kao i na C ne ti reći točno gdje je zabluda, a ono što je,
pa to znači pogled kroz cijeli kod i to shvatiti?
To je obično više ciljanih od toga.
Mislim da je u tom slučaju to je malo off,
tako da mislim da bi u tom slučaju bili smo nedostaje zarez.
To je bio pokušaj da se smisao svega,
tako poput ovih interpretirane jezika, tumač će pokušati
i učiniti svoje najbolje da sve radove na odgovarajući način.
>> Vidjet ćete, na primjer, u JavaScriptu
vi ćete često-line izvještaji kraj sa zarezom baš kao što to rade u PHP-u,
baš kao što to rade u C.
U JavaScriptu neke od JavaScripta tumača
u puno preglednicima će staviti u zarezom za vas
ako vam se dogoditi da im nedostaje.
Oni će pokušati smjestiti u neki aljkavost s vaše strane.
To je mjesto gdje bi to moglo biti težak i pokušava i pokušava napraviti stvari rad,
i onda na kraju će doći do točke u kojoj se kaže: ok,
Ja ne mogu napraviti da stvari rade na spašavanje, a to je mjesto gdje ćete dobiti broj retka
da može činiti malo off od točnom mjestu.
Ok, pa idemo kroz to jako brzo.
Mi stali sa Ella, pa idemo preko Missy,
i gospođica, što znači ispis stringa jedan plus broj 2 vam dati?
[Missy] 3. >> 3.
Ima li to smisla? Vrsta?
Da li vam dati broj? Da li vam dati niz?
[Missy] broj. >> To je broj.
No, to je to tiskanje, tako da će vam dati nekakvu niza.
>> Jedna stvar koju možemo učiniti za check this out
je, ako ćemo učiniti $ var = 1 + 2
a onda ćemo reći odjek gettype,
tako da smo pomoću trećine vrstu ispis ovdje.
Sada možemo vidjeti što se ovdje događa.
Evo što imamo je da je dobio cijeli od ovoga.
Iako smo bili dodavanjem ovaj niz na broju,
nismo dobili niz od toga, baš kao što je gospođica rekao.
Mi smo se cijeli broj.
Ok, pa ćemo vidjeti, pored gore, Kevina.
CS + 50? >> [Kevin] 50.
[Nate H.] 50. Ima li to smisla?
[Kevin] Aha.
[Nate H.] Zašto? Zašto uopće smisla za vas?
[Kevin] Jer to je samo ima niz, ima nula brojčanu vrijednost.
Da, super.
Vrsta dvojbenim situacijama, ali to je dobro znati što se događa.
Stella, što će se dogoditi sljedeći s brojem 1 + struna 2?
[Stella] 3. >> 3 opet.
I u ovom slučaju, ne možemo dobiti niz ili broj?
>> Idemo dati ovo probati.
Svatko brže od mene dobiti odgovor? Charlotte?
Oh, ja didn't-ok, ajmo vidjet, idemo napraviti istu vrstu stvari
gdje imamo niz plus string, a mi ćemo jeka tip,
vidjeti što smo dobili.
Također smo dobili cijeli broj.
To ne smeta što je jedan string, kojih je jedan broj.
Mi smo još uvijek ćete dobiti cijeli broj.
To je još uvijek će učiniti ono što smo mogli očekivati.
U redu, tako da Sam, što je 90 + 9 boca piva na zidu?
[Sam] 99. >> 99.
Nema boce piva na zidu, iako.
To nam daje malo više informacija o tome što se događa.
[Sam] Ako je napisao devet slovima
onda će imati 90, zar ne?
[Nate H.] Aha.
Pitanje je, ako ćemo napisano 9 se kao N-i-n-E
bi smo dobili 99 ili 90?
Mi bismo dobili 90.
To doslovno samo u potrazi za znamenkastim znakova.
To je dovoljno pametan da prepozna broj riječi i te stvari. Da.
>> [Studentski] Ima li takva stvar kao typecasting u PHP-u?
Tu je, i to je upravo način na koji će to učiniti u C.
Što o 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Da, pa što bi moglo biti čudno o tome?
Što će se dogoditi ako je taj isti takve stvari u C,
ako je 10/7 u C?
[Charlotte] To bi samo vam dati, ovisno o tome koliko ste typecasted pretpostavljam
to će vam dati samo ograničeni broj znamenki nakon decimalnog.
Da, tako ograničeni broj znamenki nakon decimalnog.
Što drugo bi moglo biti-to će vam dati nikakve znamenke nakon decimalne?
Često ne, pa opet, ovisno o tome koliko ste ga typecasting
to može ili ne može ga pretvoriti u decimalni broj.
Evo to je vrsta lijepo da je to učinio.
Da smo pokazali vam ovo leđa kad smo počeli raditi tu vrstu stvari u C
vjerojatno bi napravio malo više smisla
da ne samo ići na jedan.
I onda napokon, Jamie, što je 7 + istina?
[Jamie] 8. >> 8.
Što to znači?
Pretpostavljam da je to samo daje pravi vrijednost jedne.
Da. Što će se dogoditi ako se to promijeniti na lažne?
[Studentski] 7.
Da, tako se sjetiti gdje smo razgovarati o tim binarne vrijednosti,
1 je na, 0 biti isključen?
Sada imamo pravi je 1, 0 je lažna,
a možda niste vidjeli ovo u C primjera da smo učinili prošlog semestar,
ali povijesno bool tip u C nije bio pravi tip,
pa ljudi su koristili 0 i 1 u mjestu istinito i lažno.
To je manifestacija koja.
>> Ok, tako da jedan važan dio u svemu ovome
je da smo ove različite vrste.
Oni mogu komunicirati jedni s drugima.
Oni često mogu komunicirati jedni s drugima na načine koji su lijepo, kao što smo vidjeli ovdje.
To je lijepo biti u mogućnosti da imaju niz jedan i broj dva, dodajte ih zajedno i dobiti tri.
To ima smisla.
Međutim, kada pišete web stranice, a pogotovo kada ste obrade
korisnički unos, pa reći da ste napisali web obrazac
koja prikuplja informacije od korisnika, a zatim odlazi da ga obrađuje
na stražnjem kraju, na strani poslužitelja u vašem PHP kodu
ako ste očekivali da vrijednosti koje korisnik upisali u i podnijeti
na obrascu biti cijeli broj ili da se s pomičnim zarezom broj ili nešto slično
morate eksplicitno baci
i onda napraviti neke provjere tipa.
>> Vi ne želite da se samo osloniti na ovom sustavu tipa žongliranja kako bi stvari raditi,
pogotovo zbog sigurnosnih razloga i samo za robusnost vaše web stranice.
Samo nešto treba imati na umu da kad god rukovanje podatke obrasca,
sve što dolazi u post ili get superglobals
pobrinite se da uvijek ga potvrditi i pretvoriti ga i typecast.
I baš kao što smo pričali o trenutku prije tog typecasting
u PHP je potpuno isti kao u C gdje imate zagrade
a zatim putovanja.
Imajte to na umu.
Jedna funkcija koja će doći u ruci kada radite to
je da smo koristili, a to je vrsta kao stranu-
smo koristeći ovu funkciju gettype ovdje
shvatiti tip varijable,
i dok je to zgodan za ispravljanje pogrešaka i da se vidi što je varijabla je vrsta
ne želite koristiti ovaj, na primjer, u stanju u kojem
ste ček vidjeti ako gettype od $ var = INTEGER nešto učiniti.
To je loše, loše, loše.
Umjesto toga postoje ove funkcije nazivaju se cijeli je niz,
je niz koji želite koristiti umjesto toga, tako da u ovom slučaju
ono što sam htjela učiniti umjesto ovog momka ovdje
se koristiti je cijeli var.
I oni često ste nazivaju je is_ * u smislu da li mogu zamijeniti * s cjelobrojnom,
string, et cetera, a samo kako bi bili sigurni stvarno brzo
je ovo je int php.
Izgleda kao da možete učiniti bilo je int ili je tu je cijeli kao i?
Da, alias, tako int cjelobrojni nadimci.
Cool.
>> Kako stojimo?
Ajmo podići tempo malo.
Sada ćemo govoriti o poljima, tako da možete vidjeti
u sljedećem dijelu spec. govorimo o tome kako polja u PHP
su nešto drugačije nego što su oni u C.
U istinu, oni su svojevrsni amalgama
su polja koje ste upoznali i ljubav u C
gdje je sve od iste vrste
pohranjeni uzastopno i contiguously u memoriju,
i imate ove brojčane pokazatelje.
Imate indeks 0, indeks 1, indeks 2,
i pohraniti vrijednosti na tih indeksa.
Također u C, kada je napisao Speller, puno vas
učinio ljestve stol pristup, a vidjeli ste da smo imali
Drugačija pohranu gdje smo bili mapiranje
Ključ za vrijednosti, pa kad ste pokušali spremiti nešto u hash tablicu
morali ste naveli da ste htjeli da ga pohraniti s određenom ključu,
i da ključ određuje lokaciju vrijednosti i gdje će biti pohranjen.
Vi ste vrsta dobio oba od tih pojmova događa u isto vrijeme u PHP polje,
i kao rezultat toga, mi često zovu te asocijativne polja
gdje smo udruživanje ključ u vrijednosti.
U sljedećem dijelu govorimo o jednostavnim PHP niz
gdje imamo tipke A, B i C,
svi nizovi, mapiranje za cijeli brojevi 1, 2, i 3.
I vi možete imati ključeve različitih tipova.
>> Možete imati neke tipke koje su žice, neke tipke koje su cijeli brojevi.
Možete imati vrijednosti različitih tipova.
Možete imati vrijednost koja je niz, vrijednost koja je cijeli,
vrijednost koja je predmet ili drugo polje, na primjer,
sve u istom array objekt, koji je vrsta čudno.
Ne morate imati niz koji je samo dobio jednu vrstu elementa u njemu.
Možete imati mnogo različitih stvari događa tamo.
Druga stvar je imati na umu da kada vidim ovako nešto u svom kodu,
koja vrijedi PHP proglasiti niz baš kao što je ovaj, 0, 1, 2, 3, 4, 5,
da će proglasiti inicijaliziran $ arr se ovo polje.
No, ono što ste zapravo uzimajući ispod haube je ova vrsta implicitne
generacija tipki gdje smo dobili 0-0, 1-1, 2-2, 3-3.
I ispada da čak i ako imate niz poput ovog momka ovdje
gdje imate, B i C, kao i tipke
i onda početi koristiti metodu polje potisnu početi koristiti ovaj niz kao stog,
tako da možete vidjeti da je ovo polje objekt, ovo polje je stvarno postaje preopterećen.
Možemo ga koristiti kao polje. Možemo ga koristiti kao hash tablice.
Možemo ga koristiti kao stog.
Kada pokrenete gura stvari na ovom polju
Prva stvar koju gurnuti na to će biti indeks 0, a zatim indeks 1 i 2 indeks.
Možete dobiti ovu vrstu implicitne generacije ključeva
osim ako ih navedete.
Način na koji ste naveli ključeve eksplicitno, naravno, pomoću ovog nosača zapis,
koji je sličan polja osim umjesto samo dopuštajući
cjelobrojne indeksi u ovdje, sada mi dopustite ništa.
Ako želite da vaš ključ da se string, da bih ga navesti kao što je ovaj.
Ako želite da bude int, možete ga odrediti s int želite koristiti.
>> Pitanja na koja do sada?
Jedna od lijepih stvari o ovoj ideji
je da možete uvijek imaju samo jednu vrijednost pohranjena s određenom ključu.
Ako se vratimo na to naše aparata-neka me izbrisati neke od tih stvari.
A recimo ja inicijalizirati niz biti 0, 1, 2, učinjeno.
Ako ja sada znam da je, na primjer, ako sam echo $ arr [0]
Ja ću dobiti vrijednost 0 ispisati,
a budući da može postojati samo ikada biti jedna vrijednost pohranjena za određeni ključ
ako sam nešto pohraniti na $ arr [0], kažu,
onda znam kad sam echo $ arr [0] opet
Neću dobiti 0 tiskan kao i prije.
Ja sam samo idući u dobiti.
Dakle, ovo je u osnovi kaže da ja ne mogu imati $ arr [0] spremanja dvije različite vrijednosti.
To se ne može pohraniti i 0 i stringa je, kao što je ovaj doslovno zamjenjuje
ono što je bio na $ arr [0] ranije.
Razlog zbog kojeg sam donijeti ovo gore je pokrenuti ga, vidjeti što se događa.
Vidi da sam ovdje dobio 0 isprintati i onda ovdje dolje.
Nema nova linija postoji, jer sam bio lijen i nije da se stavi u.
Što je cool o tome možemo koristiti kao način
uhvatiti ovu ideju skupa
gdje ne možemo imati više ključeva unutar niza.
Mi ne možemo imati identične tipke unutar polja.
Ja ne mogu imati ključnu 0 i vrijednost 1 i ključnu 0 i vrijednost za
ili tipku 0 i vrijednost istina.
Tipke su sve postoji samo jedan ključ u polju.
Iako možete imati istu vrijednost spremljenu
više puta u polju pod različitim ključevima
to nije moguće imati identične tipke više puta u svom PHP niz.
>> Ako gledamo na sljedećem problemu, unique.php,
gdje želimo otvoriti PHP datoteku
sadrži popis nizova, jedan gudački po liniji,
i želimo pronaći sve jedinstvene gudače u toj datoteci
sve što morate učiniti je koristiti jedan od tih PHP polja
i koristiti konce u spisu kao tipke na ovom polju
i držati ažuriranju naše lepezu kao što smo pohraniti ove nove ključeve.
Kao što smo pročitali svaku liniju iz datoteke možemo ga pohraniti u polju,
i na kraju ćemo imati naše ključeva u našem polju
sve jedinstvene žice unutar datoteke.
Ima li to smisla?
Idemo vidjeti kako to funkcionira.
Mi ćemo otvoriti, prema spec., nova datoteka zove unique.php.
Otvorite. Ups, ispričavam se, nova datoteka.
Mi ćemo ga krenuti s iste početne i krajnje tagova.
Mi ćemo ga spremiti u poglavlju 9, a mi ćemo ga zovu unique.php.
Ok, sada uvećanje u.
Ideja je otvoriti datoteku,
pročitajte u datoteci redak po redak.
Za svaku liniju u datoteci
imat ćemo niz gdje smo
linija kao naš ključ.
I onda kada smo dobili na kraju ovdje
$ Arr je tipke su jedinstvene linije
iz spisa jer znamo da ako sam stavio liniju u ovom polju
više puta to će samo zadržati preskakanja staru vrijednost,
i zapravo možemo staviti polje liniju kao i sama tek tako.
>> To je vrsta čudno.
Mi pohranu istu ključnu vrijednost par iznova i iznova i iznova,
ali budući da smo zajamčeno da će biti samo jedan ključ zove linija
pa ako imamo datoteku koja kaže-file životinjskih zvukova i ima Vau, Vau,
mijau, mijau, Moo, Moo, i svaki put čitamo životinja buku out
kao potki, a mi ga pohraniti u našem polju smo dobili Vau, a zatim drugi put
mi pohraniti Vau će prebrisati prvi put da smo ga pohranjen.
Na kraju ćemo samo imati jedan ulazak u niz
za svaki od životinjskih zvukova u našoj životinjskog zvukove datoteku.
Nemojte vi osjećate sigurni da možete uhvatiti u koštac otvaranje datoteke u PHP-u?
Jedan od načina da to učinite, idemo preko ovog brzo-jedan način da to učinite
je s fopen, kao što smo vidjeli ranije.
Možete fopen some_file.txt.
Možete ga otvoriti u načinu čitanja, baš kao u C.
To je jedan savršeno dobar način da to učinite.
Također zatim za čitanje u datoteci redak po redak
imaju iste funkcije, mnoge od njih, da ste radili u C.
Imate fgets.
Imate feof, iako mi se ne sviđa pomoću koje
jer, ne zaboravite, da nije bio velik u C.
Možete to učiniti na isti način,
ali ovdje je stvarno super stvar.
Žao nam je, ne želim to učiniti $ file, ali tu je funkcija zove datoteke u PHP-u,
i ova funkcija ovdje je super jer čita cijeli sadržaj
spisa koje ste naveli, tako some_file.txt,
čita cijeli sadržaj te datoteke u niz
i onda vam omogućuje da ponove preko njega, što je prilično divan.
>> Ako idemo, primjerice, na našim web pregledniku
i mi gledamo na Googleu za PHP datoteku
možete vidjeti ovdje da naš priručnik kaže da je datoteka čita cijelu datoteku u niz,
i možemo file_get_contents vratiti sadržaj datoteke kao niza,
ali obično samo uzimajući ga kao polje je stvarno lijepo, jer ono što čini
je to ga razbija tako da je svaki element
u nizu jedan redak datoteke,
pa ako gledamo datoteci 0, to je prva linija datoteke.
Datoteka 1, druga linija, datoteke 2, treći red, i tako dalje i tako dalje.
Zar ne bi bilo lijepo da je to bilo sve što je morao učiniti u C?
Prilično divan.
David je pokazao to u predavanju, a idiom pokazao je
da uz naš standard za petlja-u PHP smo imali da
za ($ i = 0; i <10; i + +),
i možete to učiniti u PHP previše, ista stvar-
Također imamo ovu super konstrukt zvan foreach.
Foreach je stvarno zgodan kada Ponavljanje preko polja ili ovih struktura podataka
jer vam omogućuje da izvući svaki element niza
bez potrebe da ručno napraviti indeksne sebe,
bez potrebe da ručno pridijeliti varijablu, to povećavati,
izvucite vrijednost u polju u tom trenutku, jer to je vrlo uobičajena stvar za napraviti.
>> Vjerojatno ste to učinili tona vremena kada ste radili C stvari
tijekom semestra, tako da s ovim foreach
možemo petlja preko ove datoteke niz,
a sintaksa je da želimo sada petlju nad ovom polju
i odrediti da varijabla ćemo koristiti za pohranu
element ovog niza lokalno, lokalno na opseg ovog foreach petlji,
se da ćemo to nazvati linija.
Ako je datoteka samo riječima, a tu je jedna riječ u nizu
mogli bismo ga nazvati riječ kao dobro, stvarno samo dati to ime,
što god želite to nazvati,
i onda unutar petlje možete raditi što god želite s ovim promjenjivim liniji.
Ako to nije dovoljno da se vrijednost polja i vi želite dobiti
indeks zajedno s njim možete odrediti naziv indeksa
kao i vrijednost, i sada imate pristup dviju varijabli.
Imate $ ja i linija
gdje $ i je indeks u polju,
a linija je linija koju dobiva iz spisa.
Na primjer, ako smo htjeli isprintati echo linije 0 spisa kao ova,
bismo mogli to učiniti upravo ovako, "Line $ ja u spis je $ redak"
i ovdje je nešto što također nisu vidjeli još ni
gdje Upravo sam potpuno preskočili cijelu ovu% s% d poslovanja
da smo se morali baviti u C, a umjesto toga sam otišao ravno do
pisanje varijable u redu u mom nizu.
>> To se zove varijabla interpolacija, niz interpolacija
gdje ste nadjev varijable u pravu, a PHP tumač
je dovoljno pametan kad je čitanje kroz niz koji počinje s navodnicima-
ne jednostruke navodnike, s jednim kotiraju žice ne možete to učiniti-
ali s dvostrukim kotiraju žice kao što čita kroz to tražite varijabli.
To je njima lov dolje, a ako to vidi varijable će se vrijednost varijable
i stvari u nizu ako se može pretvoriti ga u string reprezentacije,
što je prilično divan.
Za sada, hajdemo komentirati iz ostatka svemu,
spremiti ovo, i što možemo učiniti sada je možemo otvoriti datoteku
koje možemo nazvati some_file.txt-let 's stvoriti novi file-
i možemo staviti u hrpa gluposti stvari ovdje samo testirati sve,
spasiti ga, to nazvati some_file.txt, kao što sam radiš ovdje na vrhu,
i sad ako sam zumiranje samo kako bi bili sigurni da je sve u istom direktoriju-
to izgleda kao da imam unique.php i some_file.txt u istom direktoriju.
Ako sam pokrenuti php unique.php
vidjeti kako to ispisuje svaku liniju u mojoj datoteci i ono što je linija?
>> To je prilično snažan, zar ne?
Gledajte, to je tri linije koda otvoriti datoteku.
Pa, 4 linije koda. Ja ne mogu računati danas, jasno.
Ali stvarno samo dva zanimljiva linija koda, jer druga dva su vitičastim zagradama,
ali u ovom puno koda smo bili u mogućnosti otvoriti datoteku, iteraciju kroz njega,
izvucite linije broj i liniju sama
i isprintati.
Cool stvari. Charlotte.
[Charlotte] Imam pitanje o sintaksi.
Dakle foreach ponude sa svakog liniji datoteku koju otvori,
i onda kada želite napraviti stvari sa svakom pojedinom retku ste upravo to učiniti kao
a zatim povezati vrijednost.
[Nate H.] Što možete učiniti upravo ovdje-pitanje je
the foreach ima veze s polja, pa foreach sintaksa
stvarno foreach, i obavijest da nema prostora
ili nešto između za i svaki.
Oni moraju ići desno jedni pored drugih,
a onda treba u niz,
i onda imate ovu drugu ključnu riječ zove kao da mora biti tamo,
i onda nakon što možete ili staviti jedan naziv varijable,
u kojem slučaju ćeš biti čupanje vrijednosti niza,
nisu indeksi, ili ako to učiniti kao što smo napisana u nastavku
dobijete ključeve i vrijednosti.
Imate foreach element niza ili par polja kao ključem u vrijednosti
ili kao samo vrijednost.
Ovisno o tome što vam je potrebno, ako ne trebaju tipke,
onda možete ići s vrijednosti.
Ako želite tipke možete ići s njima previše.
>> [Charlotte] Također sam shvatio da nikad proglašen ja ili liniju.
Kakav je to čak i znam što su oni?
[Nate H.] Što misliš proglasiti?
[Charlotte] Mi nikada im je rekao ono što sam ili crta znači.
[Nate H.] Mi nikada rekla računalo ono što ja ili crta znači u smislu-
[Charlotte] To su oni indeksirane ili da they're-
[Nate H.] Mi nikada rekao da je to trebala biti indeks ili ključ i vrijednost,
a to je zato što je PHP tumač.
Ovo služi kao deklaracije i kaže ok, ključ će biti
varijabla zove i pohranjen u varijablu zove ja.
Vrijednost će biti pohranjen u varijablu liniji,
pa to služi kao deklaraciji tih varijabli
i kaže $ ja je ključ, i $ linija je vrijednost.
Da, Ella.
[Ella] Ako se tipke ne radi se brojčano
kako se to odlučiti što bi ona će ispisati sve?
Je li to baš kao nalog da se upisao u?
[Nate H.] Ajmo dati ga probati.
Idemo stvoriti varijablu pod nazivom arr,
i mi možemo učiniti ide na sedam.
Recimo 0 do drugog niza sa 1, 2, ili jabuka.
Recimo 7 ide na jedan, b ide na dva,
i 3 ide do 4.
To je vrsta luda potrazi primjer jer si mi pobrkala
žice i prirodna broja posvuda.
Nema stvarne kako bi se ovaj niz.
Mislim, mogli bismo naručiti sve abecednim redom po tipkama.
Mi smo mogli naručiti sve po abecednom redu vrijednosti.
>> Mogli bismo pokušati i uzeti u obzir da su neki nizovi, neki su Ints,
i da bismo mogli probati i pretvoriti ih sve na istu vrstu i vidjeti što se događa,
ili bismo ih mogli uzeti u obzir u vrijednosti u kojoj smo ih već upisana
gdje smo stavili ovog tipa u prvi, ovaj tip u drugi, ovaj tip u treći,
ovaj tip u četvrti, et cetera.
Idemo vidjeti što se događa kada smo pokrenuti ovaj kod.
Ako mi se pomaknite prema dolje i učiniti istu vrstu stvari,
a ovdje to nije ispisuje nove linije.
Kad je pročitao stvari iz spisa je, uključujući nove linije u vrijednosti,
koji je razlog zašto ga isprintati lijepo, a ovdje to nije,
tako da je razlog zašto je sve smushed zajedno.
Dodajmo u toj novoj liniji samo da bi se stvari lijepo.
Neka je to repriza, pa ovdje
pogled na ono što se dogodilo.
To ispisati sve u redu u kojem smo ga staviti u nizu.
To uključuje očuvanje reda u tom smislu.
>> Vraćajući se na ovaj problem uniques
gdje želimo biti u mogućnosti ponoviti više datoteka,
a mi ćemo mu dati some_file.txt,
i da ćemo ponoviti preko njega kao što je ovaj.
Mi smo rekli da smo htjeli koristiti niz kako bi bili sigurni da ćemo je dobio sve
jedinstvene linije od tamo, i da bismo mogli učiniti da stvarno lako
po samo spremanje u niz koji smo naravno proglasi izvan opsega petlju,
a mi je rekao da ako smo koristili linije u datoteci kao tipke u našem polju
ako smo ušli duplikat liniju ćemo biti preskakanja prethodnu vrijednost.
To nije uvijek moguće imati dvije tipke koje su identične u istom polju.
Mi možemo učiniti upravo to.
Mi ćemo se riješiti ove jeke izjavi ovdje.
Ovdje smo pohranu liniju u datoteci u našem polju
se koriste kao ključ.
Ništa na njega, i ispada da mi ni ne treba taj ključ.
Mi ne trebamo da sam promjenjiva.
U ovom trenutku, ako smo napraviti još jedan foreach petlju
i bili smo na petlji preko svake ARR
i linija sada ako mi odjekuju-Ups, ispričavam se.
Mi ne možemo koristiti zarez. Moramo koristiti kao ključnu riječ.
Sada ako mi odzvanjaju liniju bismo trebali dobiti sve jedinstvene riječi u datoteci.
Ako idemo do some_file.txt,
i recimo radimo jabuka, banana, jabuka, jabuke, banane,
ako ćemo ispis sve jedinstvene riječi u ovoj datoteci smo samo trebali dobiti
jabuka i banana za ispis.
Ako ćemo spasiti ovaj, sada ovdje ćemo sliku natrag u,
php unique.php, i ta-da.
Uspješno smo uniqued datoteku.
>> Završni dio ovog problema je vas traži da sortirati ovaj niz prije nego što ga ispisati
jer u ovom jednostavnom primjeru da smo upravo učinili
bili smo sretni u smislu da je datoteka
jesmo ovo neprirodan primjer s jabukama i bananama.
To je već riješeno.
No, pomoću jednostavnog sortiranja funkciju možete sortirati niz, što je prilično divan.
Konačna stvar koju sam želio razgovarati s vama o stvarno brzo
je da je ova vrsta PHP je sve dobro i dobro, i to je super zgodan
znati kako to učiniti ako ikad trebate učiniti malo, brze stvari programski.
Na primjer, ako moram napisati program koji, kažu,
stavlja svima na dijelove ne idem ići i pisati ga u C.
To će biti duga.
To će biti vrsta boli, osobito ako postoje datoteke uključene,
baš kao što ste vi vidjeli.
To je tako lijepo da sa samo ovaj puno koda upravo ovdje
bili smo u mogućnosti da parati kroz datoteku, izvadi sve jedinstvene vrijednosti
i ispisati ih natrag.
>> Međutim, za svoje zadatke, za svoje projekte,
ako ste izgradnji web stranice s PHP moć da
vodimo naše PHP datoteke putem ovog prevoditelja,
i tumač obrađuje sve unutar PHP oznake,
ostavljajući sve ostalo netaknuto i pljuvanje iz rezultata.
Možemo to učiniti za izgradnju HTML programski.
Sada, ako se vratimo na spec., posljednji problem u spec.
govori o ovoj ideji koncentracija
i stvaranje padajući izbornik,
koji ste svibanj ili svibanj ne želite učiniti, ovisno o tome što vaš konačni projekt radi,
koji omogućuje korisniku odabir iz popisa svih mogućih koncentracija
Njihov jedan koncentracija.
Sada, to je vrsta boli upisati ovo
i moramo učiniti sve to ručno, pogotovo kada ste da biste bili sigurni
da imate sve kutnika na pravom mjestu i sve citati na pravom mjestu,
pa s PHP možete to učiniti programatski, a možete to učiniti vrlo brzo.
>> Idemo vidjeti kako to učiniti.
Mi ćemo otvoriti novu datoteku.
Mi ćemo staviti u našim PHP tagova.
Mi ćemo ga nazvati concentrations.php,
i sada kada radite to, vrsta dobra stvar razmišljati o tome
kada pokušavate miješati i odgovaraju vašem PHP i svoj HTML
je figuring out, ok, što je dio koji želim programski generirati?
Što je dio koji sam programatski može generirati?
Istina je da možete učiniti sve vaše HTML
unutar PHP blokova.
Možete jeka sve HTML kao žice.
Na primjer, ako želim početi raditi Select oznake unutar PHP
Ja mogu reći odjek, kažu odaberite ime = koncentraciju,
i onda dolje sam mogao imati još oznaku echo
ili drugi eho zove blizak odabir.
Ovo je jedan od načina da to učini, jer ono to doslovno će učiniti
je isprintati ovaj niz kad je prolazila kroz PHP tumača,
tako da rezultat će biti HTML.
Ako sam spremiti ovu datoteku kao što je upravo sada
i ja pokrenuti php concentrations.php
pogled na ono što sam dobio.
Dobio sam ovu otvorenu bliski odaberite oznaku.
>> Ako mi je to učiniti i ja bili spasiti ovaj rezultat u datoteku,
recimo, concentrations.html-čekati, to izgleda kao l je otišao na drugu stranu-
sada, ako sam otvoriti ovdje concentrations.html vidite imam valjanu HTML datoteku.
Je li to vrsta čudno?
Mi smo koristeći PHP za stvaranje HTML, stvoriti valjanu HTML.
Način na koji smo to radite je samo smo da PHP ispis
HTML koji želimo da ispisati.
Ovo je doslovno kako PHP web stranice rade.
Kada posjetite web stranice koje vam šalje da nešto poput
nešto, nešto, nešto dot com udarac index.php
Računalo je doslovno pozivanje index.php,
ga voditi kroz PHP prevoditelja, i što god junk izlazi
to je slanje natrag na pregledniku i rekao hej, preglednik, to tumači kao HTML.
Lijepa stvar je da to može biti bol stalno pisati odjek, eho, jeka, jeka
i priložiti sve u navodnike kao što je ovaj, pa ako želite pisati
HTML koji će biti statična sami možete to učiniti ovako,
staviti ga van, zatvorite ga,
i onda ovdje samo staviti unutar PHP oznake što znate
Želite li programski generirati, au ovom slučaju to je ta opcija tagove
da su bol za generiranje.
>> Na primjer, možemo generirati tisuću oznake opcija
radeći nešto ovako, $ I <1000, ja + +
i govoreći vrijednost echo opciju = $-ups, ja to ne mogu učiniti.
Pa, neka je dati ga probati i vidjeti što se događa.
$ Ja i onda kaže $ i </ opcija.
Umjesto da se tip iz tog opciju oznaku tisuću različitih puta
Ja sam koristeći PHP kod da ga generirati automatski, programski.
Vrsta divan. Da.
Sjećam se to spominje u bilo predavanju ili prohod,
ali ono što je razlika između navodnicima,
normalne i one su ti pojedinačni stvari?
To je zapravo nešto što sam učinio krivo da se ovdje ću vam pokazati.
Pojedine citati ne dopuštaju nikakve posebne znakove,
tako da je sve unutar jednog citiranog niza se tumačiti doslovno.
Ako sam imao \ n unutrašnjost jednostruke navodnike i ja spremili to, na primjer,
a sada idem dolje i pokrenuti ga-
Ups, gdje idem?
Oh, to je zato što sam zaboravio $.
>> Sada, ako sam otvoriti-zapravo, ovdje, mi ćemo riješiti ga upišete u datoteku.
Samo ćemo ga pročitati.
Ovdje možete vidjeti da sam dobio ovaj doslovni \ n u nizu, kao što nije stvarna nove linije,
i isto tako, umjesto da zapravo interpolirati vrijednost ove varijable
to mi je dao $ ja sama, što je vrsta boli.
Obrnuto je koristiti dvostruke navodnike,
i onda kada koristite dvostruke navodnike To će zapravo
ispravno interpolirati vrijednosti svih tih varijabli ovdje
i prepoznati n \ da se novi linija koja je
a ne \ n.
Koristeći jednu one je lijepo kad imate
likovi koji bi se mogli protumačiti kao posebnih znakova jer onda ne moraju
im pobjeći stalno.
Stvari se mogu dobiti messy, a često i način na koji sam to učiniti,
samo da bi se stvari lako, da ako ću imati ništa
HTML sviđa u mom kodu ću uključiti edit roku jednostruke navodnike
, a zatim koristiti ovaj operator ulančavanja
da spojite varijable u.
Ovo je još jedan način to radiš
gdje smo dobili točku koja će povezati to je niz
s tim s s ovim,
i sad nemam pobjeći ove dvostruke navodnike.
Ja ne moram koristiti ovaj momak pobjeći.
Oni su doslovno će biti tiskan kao navodnicima i onda ovaj momak ovdje.
Ovo je još jedan način miješanje sve zajedno.
>> [Studentski] Također, kada odjek gettype nema navodnici uopće.
Točno, tako odjek je vrsta posebno u smislu da vam ne trebaju zagrade.
Vi ne trebate imati navodnike nužno oko varijabli,
kao da je vrijedi reći echo $ ja, i to se događa da se to tumači kao niz.
To će učiniti ekipi, tako da smo mogli to učiniti, a to je valjan previše, ali mi to ne treba.
To je opcija.
U ovotjednom problema setu paziti na puno ove vrste stvari
gdje ste kombinirajući HTML sa PHP
baš kao što je to, a sada ako mi pomicanje natrag i trčimo ovaj
možemo vidjeti da imamo hrpu opcija vrijednosti
samo da je dobio isprintati.
Imamo sve ovo HTML koji je dobio generirana jako brzo za nas.
Ja ću ga ostaviti kao vježba.
To je vrlo sličan file čitanju koje smo napravili ranije.
>> Tu je concentrations.txt datoteka koje možete povući prema dolje od CDN,
, a možete ga otvoriti koristeći istu foreach trik koji smo radili ranije,
i foreach imate samo jeka opciju i priključite
odgovarajuće vrijednosti, odgovarajuće tipke i indeksi,
i onda ćete dobiti padajući koji doslovno stvara
programatski za sve vas od različitih koncentracija na Harvardu.
Zgodan stvar za imati.
Tu je puno konfiguracijske stvari za ovaj zadatak.
Ako niste učinili već poduzeti sljedeći pola sata, sat,
neko vrijeme večeras definitivno sigurno,
šetati spec. problema skup,
vidjeti što se događa s postavljanju vhosts, lokalni domaćin, sve te stvari.
Jedna stvar za naglasiti sada je pravo da
u većini problematičnih setovima smo bili događa u vašem Dropbox mapu
a zatim preuzimanje zip datoteku problema set i to unzipping.
Za ove problematike setu ne žele.
Želite li ići u tom vhosts direktorij.
Vi ćete želite ići u vhosts i otići u lokalnu domaćina direktorij unutar njega,
i to je mjesto gdje ćete želite srušiti zip datoteku,
ga unzip, i dobiti spremna ići.
Morat ćete slijediti korake usko.
>> Ako imate bilo kakvih pitanja, pošaljite e-mail, objaviti ga na razgovarali, doći do uredovnog vremena.
Hvala momci. Sljedeći tjedan ćemo imati sjednicu gostiju za kviz.
Uživajte u svoj zadnji set problema. Nadam se da sve ide jako dobro.
[CS50.TV]