[Powered by Google Translate] [Oddelek 8] [manj udoben]
[Nate Hardison] [Harvard University]
[To je CS50.] [CS50.TV]
>> Dobrodošli na naši predzadnji točki.
V tem tednu bomo govorili o PHP, in nato naslednji teden
potrudili se bomo malo oceno za kviz 1.
Bomo začeli na strani 3 tega problema postavlja paket,
in bomo delo z oddelkom vprašanj precej hitro.
Na strani 3, smo začeli govoriti o tej razliki med C in PHP
v smislu, da je PHP dinamično vnesli jezik,
ker je C statično tipkajo,
in je kdo res hitro narediti vse šifre v nekaj podobnega PHP
ali Python ali Ruby pred JavaScript?
Popolnoma novo? Ok.
>> Vse od teh jezikov, da sem omenil
so zelo drugačni od jezikov, kot so C in C + + in Java
v smislu, da ko ugotovi spremenljivko vam ni treba prijaviti
kakšne spremenljivke je, da v C smo obtičali ob vedno govoril
To se bo int spremenljivka, ali ta se bo char spremenljivka *
ker s PHP, Python, s z Ruby,
z veliko več teh modernih jezikov vam ni treba storiti, da sploh ne.
Ti samo ugotovi svojo spremenljivko, in v primeru PHP
lahko ugotovi, da je spremenljivka, da ga prefixing z $ znakom,
in potem je tip spremenljivke določi glede na vrednost, ki jo drži,
ki je nekako kul.
Da bi se igral s tem malo, imamo kodo vzorca PHP tukaj
v času med oznakami začetka in konca.
Mi smo z uporabo te vrste, kot so HTML, v smislu, da
imamo te kotne oklepaje tukaj za odpiranje in zapiranje.
Videli boste to s HTML.
Videli boste enako vrsto skladnje z XML preveč.
>> To kaže na začetek bloka PHP.
To? Php je specifična za PHP.
Smo blizu vse, kar je z> kot dobro.
Odprimo se datoteke v napravi z uporabo našega karkoli želite.
V tem paketu je zapisano, da pokličete dynamic.php.
V resnici, ga lahko pokličete, kar želite, vendar je ime datoteke bo prišlo do
in je pomembno kasneje, zato samo ne pozabite, kar vam rečejo.
Jaz grem za preklop naprave,
in jaz bom, da bo imenik za
oddelek 9 Verjamem, da smo na zdaj.
In bomo šli v oddelku 9,
in bom uporabila gedit.
Poglejmo, gedit in bom poklical rudnik dynamic.php.
Boom.
V dynamic.php, saj je to PHP datoteke
in želim teči skozi to tolmač PHP
Moram začeti vse off s temi odprtimi oznakami,
tako da bom za začetek tiste pravice stran,
dam malo prostora med oznakami,
in potem smisel te vaje je bil igral z
Ta funkcija je gettype, tako gettype, to funkcijo tukaj.
>> Obvestilo, da ni podčrtaj ali presledek ali vezaj ali kaj podobnega
ločuje od 2 besedami, dobili in tip, le eno besedo v celoti.
Ampak kaj bo to storiti, je, če grem mimo v spremenljivko za gettype,
pravijo, $ var ali $ x,
to bo mi povej vrste v obliki odpravljanje napak
Kaj je ime te vrste je.
Mi bomo tukaj eksperimentirati.
Še posebej, če se ozremo na pset spec
imamo nekaj različnih vrstic kode tukaj.
V prvi vrstici kode se zažene te spremenljivke, $ var,
da je enak 7, in potem imamo to vrstico printf
, ki pravi, hej, printf var je prazen.
Printf je eden od načinov, da lahko natisnejo stvari v PHP.
Pogosto boste videli odmeva funkcijo, ki se uporablja namesto printf,
printf vendar smo vsi seznanjeni z ki so bili kodirani v C za nekaj časa.
Kaj lahko dejansko narediti je, da vidimo, če je kopiranje in lepljenje dela.
Bom dal to poskusiti.
Mi bomo vrnili čez na napravo.
Ok, pa gremo.
In razdalja je malo funky, ampak tukaj smo.
Imamo to kodo tukaj.
>> [Študent] Ali ni dobro ime, da ga kartica?
Prosim?
[Študent] Je običajna, da ga kartici?
V redu, torej Sam sprašuje, če je dogovor, da ga kartici ali ne.
Ponavadi ja.
V tem primeru sem se odločil, da ne bo.
Resnično, boste videli različne stvari med različnimi programerjev.
PHP se ponavadi uporablja pogosto v kombinaciji s HTML
in drugih jezikih, in tako včasih pri tiskanju videti malo funky
če alinea v začetku PHP in končne oznake.
Res je odvisno.
V tem primeru tako ni kopiraj in prilepi, ne prilepite jezičke v mene,
vendar pa zagotovo ne, kot si rekel, da bo bolj jasno.
V redu, če shranite to kodo v dynamic.php
potem kaj lahko naredite, je prišel na svoj terminalsko okno, kjer sem prav tukaj
v gedit ter narediti enakovredno zbere
z znamko in nato teče kodo v C
Vse kar morate storiti z datoteko PHP je zagon tolmača PHP,
kar je malo program, imenovan PHP,
in argument daš na tolmača je datoteka, ki jo želite interpretirati.
V tem primeru dynamic.php.
Ups, kam sem jo dal?
Oh, sem ga dal v oddelku 9, in zdaj sem tu. To je, zakaj.
>> Zdaj, če sem teči še enkrat
vidimo, da je v svojem prvem klicu funkcije gettype
var je celo število.
V naslednjem var 1 je niz, nato pa v tretjem 1 var je logična.
Zanimivo pri tem je, če se pomaknete nazaj vidimo, da
To so tipi, podobne tistim, ki smo jih imeli v C.
Imeli smo ints v C.
Mi nekako imel nizov v C,
tako da strune niso povsem zakonit tip v tem smislu, da
naša CS50 niz je bil res kaj?
Prosim? Missy?
[Missy] Char *.
Ja, to je ta char * smo uporabili.
Na samem začetku semestra smo s pomočjo niza vrsto,
vendar je bilo res char * pod pokrovom.
Vpišemo samo določene, ker so ti v PHP nizi so dejanski vrsti.
Nič več te stvari char * tipa.
>> Videli boste, da lahko naredimo še veliko več stvari, s strunami
veliko lažje v PHP, kot smo lahko v C,
in nato končno imamo to boolean tipa, in velika razlika v tem, da
če se pomaknete nazaj vidimo, da se ime te vrste
Zdaj celo, niz, logična namesto int in bool,
in kot ste pick up različne programske jezike,
ob predpostavki, da je na neki točki v vašem življenju boste prišli v stik s
Različne tisti, ki jo boste opazili malo quirks, kot je ta
kjer je C poziva cela števila ints.
Nekateri pravijo cela števila.
Obstajajo tudi drugi pogoji, ki jih boste vodijo v.
Big int smo danes videli v SQL.
Obstajajo tudi število in nato int, boolean,
vse vrste razlik tam.
>> To ni grozno zanimivo, zdaj pa bom dal malo časa,
če bomo povečali nazaj na delo, s tem uresničevanje na dnu strani 3
ko se sprašuje, kakšne vrste ujemati s temi vrednotami tukaj na dnu.
Imamo 3,50.
Imamo to stvar tukaj, kar je zanimivo.
Nismo videli prej, vendar, če ste bili po skupaj v predavanju
ste verjetno že veste, kaj to je.
Potem pa imamo to, kar je nekako funky.
Poznaš to.
Kaj je to v C?
Sam? Kaj bi to dal v C?
To bi odprli datoteko, imenovano dynamic.php in da je berljivo.
Ja, in kaj bi bil tip spremenljivke, ki bi dodelite to? Zvezdico datotek. >>
Točno tako, bi določite to datoteko zvezda.
To je legitimno PHP preveč.
Run to. Oglejte si, kaj se zgodi, ko se boste peljali, da v gettype.
In potem tudi preveriti, kaj je nična, kaj bi to lahko bilo v PHP.
Dal vam bom nekaj minut.
Lahko dobesedno kopiranje in lepljenje teh vrednot v,
in potem bomo naredili nekaj naključno klic na vas
in videti, kaj imaš.
>> [Študent] Imam vprašanje. << Ja.
V enem od predavanj David je rekel, da je nekaj, kar lahko dajo na vrhu datoteke
tako da vam ni treba vnesti v PHP vsakič.
Kaj je to?
Verjetno je govoril o britanski bang, bang razpršene.
To je direktiva, da če označite datoteko kot izvršljiv
potem kaj počne, ko zaženete datoteko
da bo povedal lupinski program
uporabljati PHP tolmača za razlago vsebine datoteke.
Vprašanje pa, kaj je bilo to posebno linijo
da bi lahko tudi na vrhu našega PHP datotek ni potrebno vključiti
Ta postavka PHP ali je ta ukaz PHP, kadar želimo izvesti datoteko?
In lahko dejansko to s kupom različnih datotek.
Mislim, da je odvisno od tega, kje je shranjena binarna PHP,
vendar pogosto usr / bin / php je dober kraj za začetek.
Lahko ugotovimo, točno to, da greste nazaj v svojo napravo
in tipkanje, kateri php.
Katero ukaz Številke, ko ste izvršitve binarno
ali ukaz, kjer je ustrezno datoteko.
To mi je povedal, da je res PHP aliasing to binarno datoteko
, ki je shranjena v usr / bin, ki je, kjer so nameščeni veliko sistemskih binarnih datotek.
Na primer, če se pomaknite do vrha, zdaj, ko sem dal to #! vrstica tukaj
Lahko se pomaknite navzdol in sem lahko poskusil zagnati
dynamic.php, vendar sem dobil to napako o zavrnitvi dovoljenja se,
in kaj to pomeni, da ta slika trenutno ni izvršljiv daje dovoljenja.
Ni označen kot datoteke, ki jih lahko nekdo teči.
>> Ko ste zagnali naredijo ali Jek in imaš izvedljivo iz nje
prevajalnik je bil dovolj pameten, da veš, da hej, jaz gradim izvedljivo.
Verjetno si želite izvesti, tako da bi samodejno konfiguracijo
dovolilnice za vas.
To ne drži, čeprav, ko boste ustvarili normalno datoteko iz nič,
Razlog, ki se običajno ne želite, da so vse datoteke na vašem sistemu izvršljiv,
tako da boste dejansko morali iti in ročno narediti.
Najlažji način za to je z ukazom chmod,
in chmod + x pravi, dodamo malo izvedljivo
ker je branje malo, ko se delni bit in izvršljiv bit,
r, w in x,
in bo rekel chmod + x vklop izvršljiv bit
potem za spis, ki ga določi organ, ki bo v tem primeru treba dynamic.php.
>> [Študent], ki je vključena za vse?
Poglejmo tole, na kakšen način bi lahko preverim, da vidim dovoljenja?
Ali veste, kako sem preverite dovoljenja za datoteko?
[Neslišno študentski odziv]
Žal mi je? >> [Študent] XSD.
XSD nam datoteke v hacks.
Seznamom vseh datotek,-l, bo pokazal mi je vse datoteke na mojem imeniku
nekako v svojem dolgem seznamu, verbose, zato tukaj vidimo, da
Ta datoteka dynamic.php
Čas zadnje spremembe: 5. november ob 16:21.
Lastnik te datoteke je jharvard.
To je uporabnik, ki je prijavljen
To si bom, kot da delajo,
in če ste tudi v aparatu ste tudi delal kot jharvard uporabnika.
Ti si v skupini študentov,
in to so stvari, ki jih boste videli dovolj pogosto.
>> Lahko gremo v veliko podrobnosti, tukaj,
vendar za večino del, kaj želite gledati, ko ste hoteli videti,
ali je datoteka izvedljiva, je v prvi vrsti
uporabnik, ki je lastnik te datoteke, lastnik,
tako da to jharvard, nato pa smo
dovoljenji, bitov tukaj na levi strani,
in na način, da se glasi je, da je zadnji korak
Običajno se uporablja za označevanje ali ne, vsaj v tem primeru
Ta zadnji korak bo pogosto postavljajo na oglas, ki označuje
da datoteka je imenik in ne le navadne datoteke.
Potem naslednje 3 biti prav tukaj
določitev dovoljenja, ki je lastnik datoteke, je
tako da v tem primeru jharvard, kot lastnik datoteke, lahko bere in piše datoteke in s tem
vendar pa je dejal, da pomišljaj jharvard ne more izvesti te datoteke.
Naslednjih 3 bitov za skupino, tako da je to skupina študentov,
tako da, če bi bilo več uporabnikov na mojem aparatu,
in smo imeli več uporabnikov kot del skupine študentov,
potem lahko vsi prebrali to datoteko, vendar ne morem pisati,
in da tudi kdo drug, svet
lahko samo branje te datoteke, kot tudi.
Tam je dobro, če writeup o tem,
Tako si lahko preberete na spletu.
V spec problem set gremo v to bolj podrobno.
>> [Študent] Je 218 se nanaša na svetu?
The 218 se-off vrhu moje glave sem pozabil,
ampak ne.
Pa poglejmo. Jaz sem slepo o tem prav zdaj.
Nazaj na kar smo bili na tem, da s tem chmod + x
kjer smo želeli dati dynamic.php dovoljenja izvršljiva,
in vprašanje je, ali bi to lahko izvršljiv dovoljenja za vsakogar
ali samo jharvard, pa smo lahko videli tako,
izvaja ukaze in ukazom ls-l,
in zdaj smo videli, da je označena kot izvršljiv.
Vidite, da je sprememba barve.
Zdaj je dynamic.php navedene v zeleni barvi,
in izgleda, da je odgovor na vprašanje, kaj je Charlotte?
[Charlotte] Samo jharvard. >> Le jharvard, ja.
>> Če bi želeli spremeniti izvedljivo bit za vsakogar
kako bi lahko to naredil?
Vsak misli? >> + X?
Ja, točno tako.
Charlotte je rekel, da lahko naredimo chmod + x iz leta dynamic.php,
in zdaj, če smo teči ls-l vidimo, da so izvedljive bitov
Dejansko se vklopi za vsakogar.
In lahko dejansko narediti ravno nasprotno kot to, da jo lahko izključite za vse
z minus.
Zdaj je izklopljen, in zdaj lahko spet vklopite za jharvard
tako da bomo lahko dejansko deluje zdaj,
in zdaj, ko smo videli teči kodo to posebno #! vrstica na vrhu,
#! line, je povedal lupino,
je povedal naš terminal, hej, ko teče ta datoteka,
uporabo / usr / bin / php razložiti to sliko
in nato natisnete rezultat.
[Neslišno študentski vprašanje]
Seveda, mi se pomaknete nazaj. Tako kot to.
Videli boste vse te direktive začnejo z funta in potem klicaj,
včasih imenujemo shebang, razpršene pok.
>> [Študent] Kako ga lahko zaženete s dynamic.php php, preden naredimo to izvedljivo?
Vprašanje je bilo, kako lahko izvajamo to z binarno PHP
medtem ko dynamic.php ni izvedljiva?
To je super pomembna, ker je to točno, kako
da se bo delo, ko pišete težave sklop 7.
Večino časa datotek PHP niso neposredno izvršljiva.
Tako, da deluje, ker je PHP binarna, da je izvršljiv.
Tolmač je stvar, ki se je izvršen,
in kaj se počne dobesedno srkanje na celotno vsebino
naše dynamic.php datoteke in poteka po vrsticah
in izvajanju teh ukazov, tako da je z našo datoteko PHP
kot seznam navodil.
Ni ga neposredno izvajanje.
To je, če rečemo, da so te datoteke razlagati v času izvajanja.
To je čas delovanja jezik namesto nečesa, kar se določi v času prevajanja,
Ne zbrati jezik kot C.
>> Ali obstaja način, da se jezik teči čas, da deluje, kot da je čas prevajanje jezikov,
všeč, če imate vse zaganjanje opravil na strežniku
ne, saj veš, kaj mislim?
Ja, tako je vprašanje,
Ali obstaja način, da se izvajajo jezikov čas, da deluje bolj kot zbere vrst časovnih jezikov?
In tam so, mislim, da je aktivno področje raziskovanja, za veliko teh podjetij.
Menim, Facebook je naredil veliko delo s PHP
in ga pripravi navzdol, zaradi česar je hitrejši, je optimizacija
saj je njihova spletna stran temelji na PHP.
Če ste bili po node.js na vse,
, ki je neke vrste tolmač JavaScript
da se lahko vozijo JavaScript zunaj brskalnika, izven spletnega brskalnika,
ker bi tradicionalno JavaScript šele teči znotraj Firefox ali Chrome,
in bi ga uporabili, da bi kul animacije zgodilo na spletni strani
in da vaše spletne strani dinamično.
, Ki je bila zgrajena na veliko delo, ki ga je Google naredil
da, JavaScript in C + +
vežejo skupaj, tako da je veliko dejavnih raziskav na
se ti jeziki za interakcijo in optimizacijo jim,
predvsem zato, ker lahko tako veliko ljudi kodo v PHP in JavaScript
zato, ker je veliko lažje.
To je veliko lepši. Nimaš kazalca.
Nimaš vrst plava okoli.
Želeli so, da pridobijo koristi od tega Čas za prevajanje jezikov
vse vrste preverjanja in hitrost in nižjo porabo pomnilnika in vseh, ki
medtem ko še vedno ohranja prožnost in enostavnost uporabe teh novejšimi.
>> Nazaj na naš prvotni načrt napada.
Imamo nekaj od teh vprašanj tukaj v naši spec problem set.
Gremo skozi njih zelo hitro, in bomo šli po sobi.
Charlotte, kakšne vrste je 3,50?
[Charlotte] To je dvojna. >> To je dvojna.
Jimmy, kaj je to drugo? >> Matrike.
Matrika, super, in Jared, kaj je fopen?
[Jared] je vir. >> To je vir.
To je nekako novo, ne datoteka zvezda, ne datoteke.
To je vir vrste v PHP,
in žal mi je, Ella, zadnja null, kaj?
Null.
Nič, kako je zapisano v PHP? >> Enak način.
Na enak način prestolnici? >> Ja.
Ja, v redu.
Takole, imamo dvojna, imamo niz,
imamo vir in potem imamo nično.
Poglejmo sedaj ste videli,
Poglejmo, zdaj mislim, da tisto, kar želim tudi storiti, je, potegnite navzgor
Ta spletna stran tukaj, to php.net / navodila
Torej, če vi kopirate to in odpiranje spletnega brskalnika.
Grem dvigni Chrome, je dal to notri
Rad bi vam pokazal to ne samo zato, ker
Lahko govorimo ves dan o vrstah in vse to zabavno stvari
ampak zato, ker je to uporabo PHP
in obstaja veliko PHP programerjev tam.
Obstaja veliko spletnih strani PHP tam,
in kot rezultat, je veliko dokumentacije o PHP,
in navodila, to php.net je res dober kraj za iti
kadar imate vprašanja o tem, kaj je najboljši način za to X v PHP
ali kaj funkcija izgleda?
Tako nekako seznanjanja s tem, kaj to izgleda, ker
boš tukaj prihaja pogosto, malo za problem iz 7.
>> Če boste na koncu delaš končni projekt, ki uporablja PHP
To bo kraj, boste postali zelo dobro pozna.
Pogosto je način, kako ljudje to je, da uporabite Google za iskanje spletne strani,
in če ne uporabite polje za iskanje, ki je tukaj v zgornjem desnem kotu, ki je nekakšna majhna.
Če ste po Googling nekaj storiti s PHP in boste videli
eden od fizične povezave pop up lahko običajno zanašajo na to,
kot dokaj dober vir.
Super, torej od teh tipov, samo iz radovednosti,
tisti, ki so se nisva videla?
Vse, kar še nismo videli tukaj?
[Študent] vira. >> Videli smo vir z fopen klic.
[Študent] objektov. >> Objekti nismo videli zagotovo.
Callbacks nismo videli.
Obstajajo nekatere od teh lažnih vrst.
Vsekakor videl samo celo število in dvojno.
Nismo videli nekaj drugih, tako da če kliknete na celih
lahko vidimo, ali obstajajo kakršne koli druge cela, da imajo tukaj?
Ali so vsi, tako celo, celo, celo.
Nekateri jeziki imajo večje celo število vrst,
kot smo videli na MySQL danes ni bilo int in nato velik int.
Kul.
>> Torej, PHP navodila.
Vrnimo se na naš spec problem set, in bomo zdaj pomaknite na 4. strani.
Ena od stvari, ki se zgodi, ko dobite te jezike
, ki nimajo te statično tipkanje, tako da ti jeziki kjer imate prijaviti
tip spredaj spremenljivo do
se vam primere, kjer lahko začnete ob spremenljivk različnih tipov
interakcija s seboj,
in PHP pa to stvar, kjer se poskuša narediti
kaj meni, da je najbolj smiselna stvar
če imate 2 različni vrsti med seboj.
Na primer, če pogledamo na teh vrstic kode tukaj
boste videli, da smo dojeli, kaj se zgodi, ko
poskušamo dodati niz 1 do 2 celo število.
Kaj se zgodi, če poskušamo dodati niz, ki ni številčna vrednost
ampak dejanski znaki, CS na številko 50?
Potem bomo videli, ali je še kaj drugačna, če se to zgodi
namesto da bi dodali niz za številne bomo dodajali število v nizu,
in tako naprej in tako naprej do točke, ko bomo dobili
nekakšen čuden stvari tukaj, kjer smo dobili 7 + res.
Kaj za vraga to pomeni?
>> Če greste naprej in prilepite nekaj te kode v napravo.
Lahko ga hranite v dynamic.php.
Bomo videli, kaj se bo zgodilo.
[Študent] Samo uporabite tisk, ne printf?
Ja, boste ugotovili, da tisk je tudi veljavna funkcija za tiskanje v PHP.
Obstaja veliko različnih načinov za to početje.
Bomo videli, z nekaj primerov kasneje, ko bomo začeli govoriti
o edinstveni problem, ki ga bomo napisali
in nato koncentracije problem, ki ga bomo napisali
da čeprav imamo fopen in fclose
to pogosto ni najenostavnejši način, da se glasi v vsebini datoteke.
PHP ima veliko C-teh, kot holdovers.
[Študent] Ko sem dal v vseh 6 teh stvareh sem dobil samo eno številko kot izhod.
[Nate H.] Ko si dal v vseh 6 teh stvari.
Poglejmo, je to zato, ker je mogoče,
Ena stvar je, da so ti klici tiskanje ne konča na koncu, z novimi linijami.
Nobenega novega črta, ki ločuje vsakega od teh razpisov tiskanja,
tako da morda ste dobili eno veliko številko,
in to je res samo zmes novih znakov vrstic.
[Študent] Ok, kako zagotoviti,
No, obstaja kup različnih načinov.
Lahko ročno dal v tisk nove linije značaja,
odmeva nov lik linije,
natisniti nove proge.
[Študent] Torej odmev, je isto, kot printf?
>> Printf je kot C printf
če tiskate oblikovan niz.
Ti oskrbujejo ji oblikovnega niza, nato pa vse ograde spremenljivk.
Pogosto je nekaj, kar se ne uporablja,
Poglejmo, kot odpoved,
Jaz sem manj seznanjeni s PHP kot jaz z drugimi jeziki spletu,
in ko sem sprogramiral v PHP, jaz ponavadi ne uporabljajo printf
ker se mi zdi hitrejši za uporabo zmogljivosti, interpolacija niz, ki ga ima,
ki bomo šli v ti bom pokazal v samo sekundo,
ker je v C smo nekako morali narediti Hacky stvar, ki mi ga je izpisal pravilno.
Lahko dejansko spremenljivk neposredno v nizih v PHP.
Printf je nekako preveč časa za to, kar sem ponavadi. Ja, Ella.
[Ella] Na splošno, če boste dobili Napaka pri razčlenjevanju to pomeni,
kot na C pa ne pove, kje je napaka in kaj je,
tako pa to pomeni pogled skozi svojo celotno kodo in pogruntal?
To je običajno bolj ciljno kot to.
Mislim, da v tem primeru ni bilo malo off,
zato menim, da v tem primeru smo bili manjka podpičje.
To je poskušal smisel vsega,
Tako kot ti razumel jeziku, tolmač bo poskušal
in po svojih najboljših močeh, da vse deluje pravilno.
>> Videli boste, na primer, v JavaScriptu
Pogosto boste Spletna izkazi konec s podpičjem tako kot počnejo v PHP,
tako kot to počnejo v C.
V JavaScriptu nekaj tolmačev JavaScript
v veliko brskalnikov bo dal v podpičji za vas
Če se zgodi, da se jim manjka.
Ti bom poskušal namestiti nekaj površnost na vaši strani.
To je, če bi se poskuša in poskuša in poskuša, da bi stvari dela,
in na koncu bo prišel do točke, kjer piše v redu,
Ne morem, da se stvari delajo na bailing, in da je, kjer boste dobili številko vrstice
da se zdi malo off od tistega kraja.
Ok, gremo skozi to zelo hitro.
Smo končali z Ello, tako da gremo v leto Missy,
in Missy, kaj tisk niza 1 plus 2 številki vam?
[Missy] 3. >> 3.
Ima to smisel? Nekako?
Ali vam številko? Ali se vam niz?
[Missy] število. >> To je številka.
Ampak to je tiskanje, zato se dogaja, da vam neke vrste niza.
>> Ena stvar, ki jo lahko storite, da preverite to
je, če naredimo $ var = 1 + 2
in potem rečemo odmev gettype,
tako da smo z 1/3 vrste tiskanja tukaj.
Danes lahko vidimo, kaj se dogaja tukaj.
Tu kar imamo, je, da imamo celo število iz tega.
Čeprav smo dodali ta niz na številko,
Nismo dobili niz iz njega, tako kot Missy dejal.
Smo dobili celo število.
V redu, pa poglejmo, naslednjič gor, Kevin.
CS + 50? >> [Kevin] 50.
[Nate H.] 50. Ima to smisel?
[Kevin] Ja.
[Nate H.] Zakaj? Zakaj je smiselno, da vas?
[Kevin] Ker je samo ob niza, ki ima ničlo številko vrednosti.
Ja, super.
Nekako dvoumnih situacij, vendar je dobro vedeti, kaj se dogaja.
Stella, kaj se bo zgodilo s številko 1 + 2 niza?
[Stella] 3. >> 3. znova.
In v tem primeru, bomo dobili niz ali število?
>> Dajmo to poskusiti.
Je kdo hitrejši od mene dobil odgovor? Charlotte?
Oh, jaz Nisi-v redu, pa poglejmo, bomo narediti isto reč
kjer imamo številne plus niz, in bomo echo vrsto,
videli, kaj smo dobili.
Prav tako smo dobili celo število.
Ni važno, kateri je niz, ki je ena številka.
Še vedno se dogaja, da bi dobili celo število.
Še vedno gre za kaj lahko pričakujemo.
V redu, Sam, kaj pa 90 + 9 steklenic piva na zidu?
[Sam] 99. >> 99.
Ni steklenic piva na zidu, čeprav.
To nam daje nekaj več informacij o tem, kaj se dogaja.
[Sam] Če bi napisal 9 črkami
potem bi imeli 90, kajne?
[Nate H.] Ja.
Vprašanje je bilo, če bi mi napisal 9, kakor N-I-N-E
bi si dobil 99 ali 90?
Radi bi dobili 90.
To je dobesedno samo iščejo mestno znakov.
To ni dovolj pameten, da priznajo, da število besed in podobno. Da.
>> [Študent] Ali obstaja kaj takega kot typecasting v PHP?
Tukaj je, in to je točno tako, kot bi to v C.
Kaj pa 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Ja, pa kaj bi bilo presenetljivo glede tega?
Kaj bi se zgodilo, če si to isto reč v C,
če si 10/7 v C?
[Charlotte] To bi le, da boste, odvisno od tega, kako typecasted mislim,
da bi vam le omejeno število znakov za decimalno.
Ja, tako je omejeno število znakov za decimalno.
Kaj drugega bi bilo, bi vam vse decimalke?
Pogosto ni tako zopet odvisno od tega, kako ste ga typecasting
je lahko ali pa ne pretvoriti v plavajoči število točk.
Tukaj je nekako lepo, da je to storil.
Če bi pokazala, ti to nazaj, ko smo začeli delati takšne stvari v C
Verjetno bi na malo bolj smiselno
da ne pojdite na 1.
In potem končno, Jamie, kaj pa 7 + res?
[Jamie] 8. >> 8.
Kaj to pomeni?
Mislim, da samo daje resnično vrednost 1.
Ja. Kaj se zgodi, če bomo spremenili, da je neresnično?
[Študent] 7.
Ja, spomnim ko govorimo o teh binarnih vrednosti,
1 je na, 0 pa dol?
Zdaj imamo res, 1, 0, je napačen,
in morda ne boste videli to v primerih C, ki smo jih storili v preteklosti ta semester,
av zgodovini je bool tip C ni pravi tip,
Tako so ljudje navajeni 0 in 1 v kraju resnično in lažno.
To je odraz tega.
>> Ok, tako da je eden od pomembnih del o vsem tem
je, da imamo te različne vrste.
Lahko vplivajo drug na drugega.
Pogosto lahko med seboj na način, ki je prijazen, kot smo videli tukaj.
Lepo je, da bi lahko imeli niz 1 in številko 2, jih dodajte skupaj in dobili 3.
To ima smisel.
Vendar, ko pišete spletnih strani, še posebej, če ste predelave
uporabnik vložek, tako pravijo, da si napisal spletnega obrazca
da zbira informacije od uporabnika, in nato, da jo obdela
na zadnjem delu, na strani strežnika v vašem PHP kodo
če ste pričakovali, da se vrednost, ki si jih vnesli v in predložili
na obrazcu za celo število ali za plavajočo število točko ali kaj podobnega
morate izrecno odda
in naredite nekaj preverjanje tipov.
>> Če ne želite, da opirati le na ta sistem tipa, žongliranje, da bi stvari izšlo,
predvsem zaradi varnostnih razlogov in samo za trdnost vaše spletne strani.
Samo nekaj, da ne pozabite, da se vedno, ko ravnanje podatke obrazcev
vse, kar prihaja v mesto ali dobili superglobals
poskrbite, da boste vedno potrditi in se preoblikoval in jo typecast.
In tako kot smo govorili trenutek pred tem typecasting
v PHP je popolnoma enak kot v C, če imate oklepajev
in potem tip.
Imejte to v mislih.
Ena funkcija, ki bo prišel prav, ko to počnete
je, da smo bili z uporabo, in to je nekako kot prahi,
smo bili z uporabo te funkcije gettype tukaj
ugotoviti vrsto spremenljivke,
in ko je to priročen za odpravljanje napak in videti, kaj je spremenljivka tipa je
ne želite uporabljati to, na primer, v stanju, ko
boste preverjali, če gettype od $ var = celo nekaj narediti.
To je slabo, slabo, slabo.
Namesto tega so te funkcije je celo pozval, je niz,
je niz, ki ga želite namesto tega, da je v tem primeru
kaj bi rad naredil namesto tega tipa tukaj
se uporaba je celo var.
In oni so pogosto sklicuje, je is_ * v smislu, da bi lahko zamenjal z * celo,
string, in tako dalje, in tako zagotoviti zelo hitro
to je int php.
Izgleda, da lahko naredite kar koli je int, ali se je celo, kot tudi?
Da, alias, tako int cela vzdevki.
Kul.
>> Kako delamo?
Naj ujeti ritem malo.
Zdaj bomo govorili o polja, tako da lahko vidite
V naslednjem delu spec govorimo o tem, kako v PHP nizi
so nekoliko drugačne, kot so v C.
V resnici, oni so neke vrste amalgam
se plošča, ki ste jih spoznali in ljubezen v C
kjer je vse iste vrste
shranjeni zaporedno contiguously v spominu,
in imaš te številske indeksov.
Imate indeks 0, indeks 1, indeks 2,
in shranjevanje vrednosti v teh indeksov.
Prav tako v C, ko si napisal speller, veliko vas
vam razpršene tabele pristop, in ste videli, da smo imeli
Drugačna skladišča, kjer smo kartiranje
Ključ do vrednosti, tako da, ko si se potrudil, da shranite nekaj v hash tabelo
boste morali določiti, da si želel, da ga shranite s posebnim ključem,
in da je ključno določiti lokacijo vrednosti in kje se shranijo.
Vi ste nekako dobil obe od teh pojmov dogaja ob istem času v array PHP,
in kot rezultat, smo pogosto imenujemo asociativne nize
kjer smo se povezujejo na tipko na vrednosti.
V naslednjem delu govorimo o preprosti niz PHP
kjer imamo ključe A, B in C,
vse strune, preslikava s številkami od 1, 2 in 3.
In lahko imate ključe različnih tipov.
>> Lahko imaš nekaj tipk, ki so strune, nekaj tipk, ki so cela števila.
Lahko so vrednosti različnih vrst.
Lahko imajo vrednost, ki je niz, vrednost, ki je celo,
vrednost, ki je predmet ali drugo polje, na primer,
vsi v istem objektu diod, kar je čudno.
Saj ni treba imeti niz, ki je pravkar dobil eno vrsto elementov v njem.
Lahko imaš veliko različnih stvari se dogaja tam.
Druga stvar je tudi omeniti, da ko boš videl kaj takega v kodi,
ki velja PHP prijaviti niz, tako kot je to, 0, 1, 2, 3, 4, 5,
da bo razglasila initialized $ arr za to polje.
Ampak, kaj ste dejansko dobili pod pokrovom je ta vrsta implicitne
generacija ključev, kjer smo dobili 0-0, 1-1, 2-2, 3-3.
In izkazalo se je, da tudi če imate niz, kot je ta fant tukaj
če imate, B in C, kot so ključi
in potem začneš z metodo matrike naročeno, da začnete uporabljati to vrsto kot kup,
tako da lahko vidite, da je ta niz objekt, je ta matrika res postaja preobremenjena.
Uporabljamo ga lahko kot matriko. Lahko ga uporabljate kot hash tabele.
Lahko ga uporabljate kot dimnik.
Ko začnete potiskajo stvari na tem polju
Prva stvar, ki si nataknite to bo indeks 0 in nato 1 in indeks indeks 2.
Lahko dobite te vrste implicitnega generacije tipk
razen če jih izrecno navesti.
Način, kako določiti ključe izrecno, seveda s pomočjo tega nosilca zapisa,
ki je podobna nizi razen namesto da samo dovoljuje
celoštevilskih indeksi v tukaj, zdaj smo lahko ničesar.
Če želite, da vaš ključ za niz, bi si ga določite, kot je ta.
Če želite, da je int, ga določite z int ga želite uporabiti.
>> Vprašanja o, da do sedaj?
Ena od lepih stvari o tej ideji
je, da lahko vedno le eno vrednost, shranjeno s posebnim ključem.
Če se vrnemo v naše naprave, dovolite mi, zbrišite nekaj te stvari.
In recimo, da sem inicializirati array biti 0, 1, 2, opravljeno.
Če Zdaj vem, da, na primer, če sem echo $ arr [0]
Jaz bom dobil vrednost 0 natisne,
in ker ni mogoče vedno samo ena vrednost shrani za določeno tipko
če sem kaj hranite v $ arr [0], recimo,
potem vem, kdaj sem echo $ arr [0] ponovno
Jaz ne bo dobil 0 natisne kot prej.
Jaz sem samo še.
Torej, to je v bistvu rekel, da ne morem imeti $ arr [0] shranjevanje 2 različni vrednosti.
Prav tako ni mogoče shraniti 0 in niz se, kot je to dobesedno nadomešča
kaj je bilo $ arr [0] prej.
Razlog, da sem omenjati je teči, kaj se bo zgodilo.
Glej tukaj, da imam 0 natisne in nato tukaj.
Ni nova linija tam, ker sem bil len in nisem dal to notri
Kar je pri tem pa je lahko to uporabimo kot način
ujeti to idejo sklopa
če ne moremo imeti več tipk v polju.
Ne moremo imeti enake tipke v matriko.
Ne morem imeti ključno 0 in vrednost 1 in ključne 0 in vrednost za
ali tipko 0 in vrednost res.
Tipke so vse obstaja samo 1 ključ v polje.
Čeprav lahko imate enako vrednost, shranjeno
večkrat v matriki iz različnih ključev
da ni mogoče, da imajo enake tipke večkrat pojavi v vašem PHP array.
>> Če pogledamo ta naslednji problem, unique.php,
če želimo odpreti datoteko PHP
vsebuje seznam nizov, en niz na vrstico,
in želimo, da bi našli vse edinstvene nizov v datoteko
Vse kar moramo storiti je, da uporabite enega od teh PHP nizi
in uporabo nizov v dokumentaciji od ključev za ta niz
in vodi posodabljanje našo vrsto, kot smo shranili te nove ključe.
Kot beremo vsako vrstico iz datoteke lahko shranite v polje,
in na koncu bomo imeli v naših ključe v naši matriki
vse edinstvene nize znotraj datoteke.
Ima to smisel?
Poglejmo, kako to deluje.
Bomo odprli, glede na spec, novo datoteko z imenom unique.php.
Odpri. Ups, se opravičujem, nova datoteka.
Bomo ga začnete z oznakami isti začetni in končni.
Bomo ga shranite v oddelku 9, in bomo rekli unique.php.
Ok, zdaj povečate palca
Ideja je odpreti datoteko,
berejo v skladu datotek s črto.
Za vsako vrstico v datoteki
da bomo imeli množico, kjer imamo
linija, kot je naš ključ.
In potem ko pridemo do konca tukaj
Tipke $ arr je so edinstvene linije
Iz spisa, saj vemo, da če sem dal linijo v tem polju
večkrat, da bo kar naprej nujnimi staro vrednost,
in lahko dejansko dal niza črte v kot sama kar tako.
>> To je čudno.
Mi shranjevanje isto ključno vrednost par znova in znova in znova,
ampak ker smo jamči, da bo samo 1 ključ imenujemo linija
tako da, če bomo imeli datoteko, ki pravi-datoteke živalskih zvokov in ima hov hov,,
mijav, mijav, moo, moo, in vsakič, ko smo prebrali živali hrup iz
hov, kot smo jo shranite v naši matriki dobimo hov in nato še drugič
hranimo hov, da prepiše prvič, da smo ga shranili.
Na koncu bomo imeli samo en vnos v matriki
za vsako od živali, zvokov v našem spisu živali zvoke.
Ali vi prepričani, da lahko reševanje odprtje datoteke v PHP?
Eden od načinov, da to storite, pojdimo v tem hitro-en način, da to storite
je z fopen, kot smo videli prej.
Si lahko fopen some_file.txt.
Lahko ga odprete v načinu branja, tako kot v C.
To je ena povsem dober način, da to storite.
Prav tako pa za branje v datoteko po vrsticah
imajo enake funkcije, mnogi od njih, ki si jih naredil v C
Imate fgets.
Imate feof, čeprav mi ni všeč, da uporabljate
saj se spomnite, da ni bilo veliko v C.
To lahko storite na enak način,
ampak tukaj je res super stvar.
Žal mi je, ne želim narediti $ datoteka, vendar je funkcijo imenovano datoteko v PHP,
in ta funkcija tukaj je super, ker je zapisano celotno vsebino
iz spisa, ki ga določite, da some_file.txt,
prebere celotno vsebino tega dokumenta v matriki
nato pa vam omogoča, da izbirate nad njim, kar je precej eleganten.
>> Če gremo na primer na naši spletni brskalnik
in gledamo na Googlu datoteko PHP
si lahko ogledate tukaj, da naš priročnik pravi, da datoteke prebere celotno datoteko v array,
in bomo lahko file_get_contents vrniti vsebino datoteke kot niz,
vendar običajno šele dobili kot matriko je res lepo, ker kaj počne
se ga razdeli tako, da je vsak element
V matriki je ena vrstica datoteke,
tako da, če pogledamo datoteko 0, to je prva vrstica datoteke.
Slika 1, druga vrstica, slika 2, tretja vrstica, in tako naprej in tako naprej.
Ali ne bi bilo lepo, če bi bilo vse, kar bi moral storiti v C?
Precej eleganten.
David je pokazala to v predavanju, in idiom je pokazala, je bila
da poleg našega standarda za zanke v PHP, da smo imeli
for ($ i = 0; i <10; i + +),
in lahko to storite v PHP preveč, isto-
imamo tudi to kul konstrukt, imenovan foreach.
Foreach je zelo priročen, ko ponavljanjem nad polji ali teh podatkovnih struktur
saj vam omogoča, da izvlečete vsak element matrike
ne da bi morali storiti ročno indeksiranje sami,
ne da bi morali ročno ustvariti indeks spremenljivko, jo prirastek,
izvlecite vrednost v matriki, na tej točki, ker je to zelo pogosta stvar.
>> Verjetno ste to storili ton časih, ko ste počeli stvari C
Sprehodite se po polovici, tako da s tem foreach
smo lahko zanka v tem datotečnem array,
in skladnja je, da želimo zdaj zanke nad tem polju
in določite, da je spremenljivka bomo uporabili za shranjevanje
element tega sklopa na lokalni ravni, lokalnega obsega te zanke foreach,
se bomo, da ga pokličete linijo.
Če je datoteka le besede in da je ena beseda v vrstici
Lahko bi call it besedo, kot tudi, res samo daš to ime,
karkoli želite poklicati ga,
in nato znotraj zanke lahko narediš karkoli hočeš s tem spremenljivo linijo.
Če to ni dovolj, da se vrednost polja, in tudi vi želite, da bi dobili
Indeks skupaj z njim pa lahko določite ime za indeks
kot tudi vrednost, in zdaj imate dostop do 2 spremenljivk.
Imate $ i in linija
če $ i indeks v polju,
in linija je linija, ki jih pridobijo iz spisa.
Na primer, če smo želeli natisniti odmeva črto 0 do datoteke, kot je ta,
Lahko bi to naredil tako, kot je ta, "Line $ i do datoteke je $ vrstici"
in tukaj je nekaj, kar smo prav tako nismo videli niti
če sem prav popolnoma preskočijo% tega celotnega poslovanja s% d
da smo morali obravnavati v C, in namesto tega sem šel naravnost
pisno spremenljivke v skladu mojem nizu.
>> To se imenuje spremenljivka interpolacija, interpolacija niz
če ste polnjenje spremenljivke desno, in tolmač PHP
je dovolj pameten, ko se obravnava skozi niz, ki se začne z dvojnimi narekovaji,
ne enojnih narekovajih, z eno kotirajo na strune si tega ne more storiti,
vendar z dvojnimi kotirajo na strune, kot je zapisano skozi, kar je iskal spremenljivk.
To jim lov navzdol, in če vidi spremenljivke bo trajalo, da bo vrednost spremenljivke
in jo stlačiti v nizu, če ga lahko pretvorite v niz zastopanje
kar je zelo eleganten.
Za zdaj, kaj je komentar še druge vsega,
razen tega, in kaj lahko sedaj naredimo je, da lahko odprejo datoteko
da lahko rečemo some_file.txt, kaj je ustvarjanje novih datotek
in bomo lahko v kup neumnosti stvari tukaj samo za testiranje vse ven,
ga rešili, pravijo some_file.txt, saj delam tu gor na vrhu,
in zdaj, če sem pomanjšavo samo se prepričajte, vse, kar je v istem imeniku,
izgleda, da imam unique.php in some_file.txt v istem imeniku.
Če bom tekel php unique.php
videli, kako se natisne vsako vrstico v datoteki in kaj je vrv?
>> To je zelo močna, kajne?
Poglej, to je 3 vrstic kode za odpiranje datoteke.
No, 4 vrstic kode. Ne morem prešteti danes, jasno.
Ampak res samo 2 zanimive vrstic kode, saj je drugi 2 sta bili zavite oklepaje,
vendar v tem zakoniku toliko smo uspeli odpreti datoteko, ponovitev prek njega,
izvlecite številko vrstice in črto sam
in ga natisnite.
Cool stvari. Charlotte.
[Charlotte] Imam vprašanje glede sintakse.
Torej foreach ukvarja z vsakim vrsti datoteke, ki jih odprete,
in potem, ko hočeš narediti stvari z vsakim črto si to naredil kot
in nato povežejo vrednost.
[Nate H.] Kaj lahko storite tukaj, je bilo vprašanje,
the foreach ima opraviti z matriko, tako da foreach sintaksa
foreach je res, in obvestilo, da ni prostora
ali karkoli med in za vsakega.
Imajo pravico iti drug poleg drugega,
in potem je potrebno v matriki,
in potem moraš to drugo ključno besedo imenovan kot da je tam,
in potem ko je, kot si lahko bodisi dal eno ime spremenljivke,
V tem primeru se boste lahko umaknili vrednosti matrike,
ne indeksi, ali če vam je kot smo že napisal pod
boste dobili ključe in vrednosti.
Imate foreach element matriki ali par matrike so zaščiteni, da se vrednost
ali samo vrednost.
Glede na to, kar potrebujete, če jih ne potrebujete ključe,
potem lahko greš z vrednostjo.
Če želite ključe lahko greš z njim preveč.
>> [Charlotte] Spoznal sem, da nikoli razglasil i ali linijo.
Kako je vedel, kaj so?
[Nate H.] Kaj mislite s tem prijaviti?
[Charlotte] Nikoli jim povedal, kaj sem, ali postavka sredstev.
[Nate H.] Mi nikoli ni povedal, kaj sem računalnik ali vrstica pomeni v smislu,
[Charlotte] To si jih indeksira ali they're-
[Nate H.] Mi nikoli rekel, da je to naj bi bil indeks ali ključ in vrednost,
in da je zato, ker je to PHP tolmača.
Ta služi kot deklaracija in pravi redu, ključ se bo
spremenljivka imenovan i shranjen v spremenljivko, imenovano i.
Vrednost se bo shranjen v spremenljivko, imenovano linijo,
tako da ta služi kot deklaracija teh spremenljivk
in pravi, $ i je ključen, $ vrstica vrednost.
Ja, Ella.
[Ella] Če se tipke ne opravi številčno
kako se odločiti, kaj bi to bo natisniti vse?
Je to tako kot je vrstni red je vpisana v?
[Nate H.] Dajmo poskusiti.
Naj ustvarite spremenljivko, imenovano arr,
in lahko storimo, gre za 7.
Recimo, 0, odide v drugo matriko z 1, 2 ali jabolko.
Recimo 7 gre v 1, b gre za 2,
in 3 gre 4.
To je nekako noro videti, na primer zato, ker smo mešanja
godala in cela števila po vsem mestu.
Ni realno, da bi ta niz.
Mislim, lahko bi naročiš vse v abecednem vrstnem redu po tipkah.
Mi lahko odredi vse po abecedi glede na vrednost.
>> Lahko bi poskusili upoštevati, da so nekatere strune, nekateri so ints,
in bi lahko poskusili in pretvorbo jih vse do iste vrste in videli, kaj se bo zgodilo,
ali bi jih lahko upoštevali pri vrednosti, v katerem smo jih že začeli
kjer smo se tega tipa v 1., ta fant v drugi, ta fant v tretjih državah,
ta tip v 4., in tako naprej.
Poglejmo, kaj se zgodi, ko zaženete to kodo.
Če smo se pomaknite navzdol in delati isto reč,
in tu je ne tiskanjem novih linij.
Ko je prebral stvari iz spisa, je bilo tudi novih priključkov v vrednosti
, ki je bila zato natisne lepo, ker tukaj ni,
tako, da je, zakaj je vse skupaj smushed.
Naj dodamo v tej novi vrstici, da se stvari lepo.
Naj ga ponovi, zato tukaj
poglej kaj se je zgodilo.
To natisne vse, kar je v vrstnem redu, v katerem smo jo dal v array.
To pa ohraniti red v tem smislu.
>> Če se vrnemo k temu problemu uniques
če želimo, da bo lahko izbirate v datoteko,
in bomo ji some_file.txt,
in bomo Ponovil nad njo, kot je ta.
Rekli smo, da želimo uporabiti matriko zagotoviti, da bomo dobili vse
edinstvene linije ven, mi pa bi lahko naredil, da je res enostavno
le za shranjevanje v array, da smo seveda izjavi zunaj področja zanki
in mi dejal, da če smo se vrstice v datoteki kot ključi v naši matriki
če smo vstopili v dvojno črto bi morali biti nujni prejšnjo vrednost.
To ni vedno mogoče imeti 2 ključe, ki so enaki v istem polju.
To lahko storimo le to.
Bomo znebili tega odmeva izjava tukaj.
Tukaj smo shranjevanju v datoteki v naši matriki
se uporabi kot ključ.
Nič mu, in izkazalo se je, da sploh ne potrebujete te tipke.
Ne rabimo, da sem spremenljiva.
Na tej točki, če bi naredil še en foreach zanke
in smo bili v zanki v vsakem ARR
in postavka zdaj, če bomo echo-ups, se opravičujem.
Ne moremo uporabiti vejico. Uporabiti moramo, da je to ključno besedo.
Zdaj, če želimo ponoviti črto bi morali dobiti vse edinstvene besed v datoteki.
Če gremo do some_file.txt,
in recimo, da bomo jabolko, banana, jabolko, jabolko, banana,
če tiskate vse od edinstvene besed v tej datoteki, moramo le še
jabolko in banana natisniti.
Če rešimo to, tukaj bomo povečali nazaj,
php unique.php, in ta-da.
Smo uspešno uniqued datoteko.
>> Zadnji del tega problema vas prosim, da razvrstite to zbirko, preden ga natisne
ker v tem preprostem primeru, ki smo jih pravkar naredil
smo imeli srečo v smislu, da je dokumentacija,
smo to izmišljene primer z jabolki in bananami.
To je že urejeno.
Ampak s preprostim funkcije razvrščanja lahko razvrstite niz, ki je zelo eleganten.
Končni stvar, ki sem se želel pogovoriti z vami o zelo hitro
je, da je ta vrsta PHP vse lepo in prav, in to je super priročno
vedeti, kako to storiti, če boste kdaj morali narediti malo, hitro stvari programsko.
Na primer, če moram napisati program, ki pravijo,
Vsem postavlja v oddelkih ne bom šel in ga napišite v C.
To bo še dolgo.
To bo neke vrste bolečino, še posebej, če so vključene datoteke,
tako kot ste vi videli.
To je tako lepo, da je s tem le toliko oznako prav tukaj
nam je uspelo iztrgati prek datoteke, izvlecite vse enolične vrednosti
in jih natisnite nazaj.
>> Vendar pa je za svoje naloge, za svoje projekte,
če ste izgradnjo spletne strani s PHP moč je, da
pohiteti naše PHP datotek prek tega tolmača,
tolmač obdeluje vse znotraj oznak PHP,
pri čemer vse ostalo nedotaknjeno in izpljunil rezultate.
To lahko storimo za izgradnjo HTML programsko.
Torej, če se vrnemo k spec, zadnji problem v spec
govori o tej ideji koncentracij
in ustvarjanje spustni meni,
ki jih lahko ali pa ne želite storiti, je odvisno od tega, kaj tvoj zadnji projekt gre,
ki omogoča uporabniku, da izbere iz seznama vseh morebitne koncentracije
njihova ena koncentracija.
No, to je neke vrste bolečine na vrsto tole
in imajo vse to narediti ročno, še posebej, če imate, da poskrbite, da
da imate vse kotne oklepaje na pravem mestu in vse citate na pravem mestu,
tako da s PHP lahko to programsko, lahko pa to zelo hitro.
>> Pa poglejmo, kako to storiti.
Bomo odprli novo datoteko.
Bomo dal v naših PHP oznakami.
Bomo rekli concentrations.php,
in zdaj, ko to počnete, nekako dobra stvar, da razmišljajo o
če hočeš, da se premeša in se ujemajo z vašo PHP in HTML-ju
je poskušal ugotoviti, v redu, kar je del, ki ga želim ustvariti programsko?
Kaj je tisti del, ki lahko ustvarijo programsko?
Res je, da lahko narediš vse HTML
Notranjost PHP blokov.
Lahko echo vse HTML kot strune.
Na primer, če želim začeti početje izberite oznake znotraj PHP
Lahko rečem, odmev, pravijo, da izberete ime = koncentracija,
in nato spodaj sem lahko še odmeva oznako
ali drugega echo pozval blizu izberete.
To je eden od načinov, da to storite, saj je to tisto, kar je dobesedno naredili
se izpiše tega niza, ko je pognal skozi tolmač PHP,
Tako bo rezultat HTML.
Če shranim datoteko, kot je zdaj
jaz pa sem tekla php concentrations.php
poglej, kaj imam.
Imam ta odprt tesno izberite oznako.
>> Če bi bil jaz za to in jaz sva se, da shranite rezultat v datoteko,
pravijo, concentrations.html-počakajte, izgleda, da je l prešel na drugi strani,
Zdaj, če sem odprla tukaj concentrations.html vidiš, da ima veljavno datoteko HTML.
Je to čudno?
Mi smo z uporabo PHP ustvariti HTML, ustvarite veljaven HTML.
Pot smo to počeli je, da smo si samo ob tiskanja PHP
HTML, da želimo, da natisniti.
To je dobesedno, kako PHP spletne strani delajo.
Ko obiščete spletno stran, ki vam pošilja na nekaj podobnega
Nekaj, nekaj, nekaj pika com poševnica index.php
Računalnik je dobesedno kliče gor index.php,
da teče skozi tolmač PHP, in kar pride ven smeti
to je spet pošilja v brskalnik in rekel: hej, brskalnik, to razlagajo kot HTML.
Za lepo stvar je, da je lahko bolečina nenehno pisati odmev, odmev, odmev, odmev
in priložiti vse v narekovajih, kot je ta, da če hočeš pisati
HTML, ki se bo statična sami, lahko to storite tako,
dal ven, ga zaprete,
in potem sem samo dal notri PHP oznak, ki jih poznate
želite ustvariti programsko in v tem primeru je ta možnost oznake
da so bolečine za ustvarjanje.
>> Na primer, lahko ustvarimo več kot tisoč oznake izbirne
s tem, kaj takega, $ i <1000, i + +
in pravijo vrednost opcije = $ echo-Ups, tega ne morem storiti.
No, pa da ga poskusite in videli, kaj se bo zgodilo.
$ I, nato pa rekel $ i </ možnost.
Namesto da bi tip iz te opcije oznako tisoč različnih časih
Jaz sem z uporabo PHP kodo za ustvarjanje samodejno programsko.
Nekako eleganten. Ja.
Spomnim se, kar se omenjena niti v predavanju ali walkthrough,
ampak kaj je razlika med narekovaji,
običajne in ti tisti posamezni stvari?
To je pravzaprav nekaj, kar sem naredil napačno sem, da sem bil tekoč, da vam pokažem.
Posamezni kotacije ne dovoljujejo nobenih posebnih znakov,
tako da je vse, kar je znotraj enega samega niza kotira razlagati dobesedno.
Če bi imel \ n notranjost enojnih narekovajih in rešim to, na primer,
zdaj pa grem dol in jo vodijo,
Ups, kam gremo?
Oh, to je zato, ker sem pozabil $.
>> Zdaj, če sem odprla, pravzaprav tukaj, bomo znebiti, da ga vnesete v datoteko.
Mi bomo samo brati.
Tukaj lahko vidite, da sem dobil to dobesedno, \ n v nizu, tako kot ne dejansko novo progo,
in prav, namesto da bi dejansko interpoliramo vrednosti te spremenljivke
to mi je dal $ i sama, ki je neke vrste bolečine.
Pot okoli tega je, da uporabite dvojne narekovaje,
in potem, ko uporabite dvojne narekovaje, da se bo dejansko
pravilno interpoliramo vrednosti vseh teh spremenljivk je tukaj
in priznati tudi to, da je \ n nova vrstica, ki je
in ne \ n.
Uporaba enotnega tiste, ki je lepo, če imate
Znaki, ki jih lahko interpretiramo kot posebni znaki, ker potem ne bi bilo treba
jim izogniti nenehno.
Stvari se lahko grdo in pogosto tako, kot sem to storil,
samo zato, da bi stvari enostavno, da če bom še kaj
HTML koda je všeč v mojem bom tudi urejanje v enojnih narekovajih
in potem uporabite združevanje operaterja
za združevanje spremenljivk noter
To je še en način za to početje
kjer imamo piko, ki se dogaja povezati to je niz
s tem s tem s tem,
in zdaj nimam pobegniti te dvojne narekovaje.
Nimam za uporabo tega fanta pobegniti.
Prišli bodo dobesedno natisnjeni v dvojne narekovaje in potem ta tip tukaj.
To je še en način za mešanje vsega skupaj.
>> [Študent] Tudi, ko je odmevalo gettype ni bilo narekovaji sploh.
V redu, torej odmev je nekako poseben v tem smislu, da vam ni treba oklepaje.
Saj ni treba, da narekovaje okoli nujno spremenljivk,
kot da je veljavna reči echo $ i, da se bo to razlagajo kot niz.
To se dogaja, da to zasedbo, tako da lahko to stori, in to velja tudi, vendar pa ga ne potrebujete.
To je neobvezno.
V problemov ta teden niz pazi za veliko tovrstnih stvari
če ste mešanje in ujemanje HTML s PHP
tako kot je ta, in zdaj, če se pomaknete nazaj in vodimo to
lahko vidimo, da imamo cel kup opcijskih vrednosti
da je pravkar natisnjen.
Imamo vso to HTML, da imam zelo hitro ustvari za nas.
Bom zapustiti kot vaja.
To je zelo podobno branju datoteke, da smo naredili prej.
>> Obstaja concentrations.txt datoteke, ki jih lahko potegnite dol iz CDN,
in ga lahko odprete z isto foreach trik, ki smo mu prej,
foreach in boste morali ponoviti možnost in priključite
ustrezne vrednosti, ustrezni ključi in indeksi,
in potem dobiš spustni ki dobesedno ustvarja
Programsko za vas vse različnih koncentracijah na Harvardu.
Priročna stvar, da imajo.
Obstaja veliko stvari za konfiguracijo to nalogo.
Če tega še niste storili že sprejeti naslednje pol ure, uro,
nekaj časa nocoj gotovo, seveda,
sprehod skozi spec problem set,
videli, kaj se dogaja s vzpostavitve vhosts, lokalni gostitelj, vse te stvari.
Ena stvar, ki poudarjajo, sedaj je, da
v večini skupin problematičnih smo šli v mapi Dropbox
in potem prenosu zip problem nastavljeno datoteko in jo unzipping.
Za ta problem niza ne želite.
Bi rad šel v ta imenik vhosts.
Boste želeli, da gredo v vhosts in pojdi v lokalnem imeniku gostiteljice v njej,
in to je, če boste želeli, da bi se odprl datoteko zip,
razširite in se pripravite za odhod.
Boste morali slediti navodilom tesno.
>> Če imate kakršnokoli vprašanje, pošljite e-poštno sporočilo, ga objavite na Pogovorite se, pridi k uradnih ur.
Hvala, fantje. Naslednji teden bomo imeli pregled sejo za kviz.
Uživajte v zadnjo vrsto problemov. Upam, da bo šlo vse zelo dobro.
[CS50.TV]