[Powered by Google Translate] [§ 8] [Vähem Mugav]
[Nate Hardison] [Harvardi Ülikool]
[See on CS50.] [CS50.TV]
>> Tere tulemast meie poolt teine ​​lõik.
Sel nädalal me räägime PHP, ja siis järgmisel nädalal
me teeme natuke vaadata, Quiz 1.
Me ei kavatse alustada 3. leheküljel probleem seab pakendi,
ja me töö kaudu osa küsimusi üsna kiiresti.
Lehel 3, hakkame rääkima see vahe C ja PHP
selles mõttes, et PHP on dünaamiliselt kirjutatud keeles,
aga c on staatiliselt kirjutatud,
ja on keegi tõesti kiiresti teha mingeid koodile midagi PHP
või Python või Ruby enne, JavaScripti?
Täiesti uus? Okei.
>> Kõik need keeled, mida ma just mainisin
on väga erinevad keeli nagu C ja C + + ja Java
selles mõttes, et kui te deklareerite muutuja te ei pea deklareerima
millist muutuja on, nii C olime ummikus võttes alati öelda
see saab olema int muutuja, või see saab olema char * muutuja,
arvestades, PHP, Python, koos Ruby,
kus on palju neid rohkem kaasaegsete keelte sa ei pea seda tegema üldse.
Sa lihtsalt deklareerivad oma muutuja, ja kui tegemist on PHP
Te deklareerite, et see muutuja prefixing see $ märk,
ja siis tüüpi muutuja on määratud iganes väärtus selle hoidmine,
mis on omamoodi lahe.
Et mängida seda natuke, meil on proov PHP koodi siin
vahel algus ja lõpp sildid.
Me kasutame sellist nagu HTML selles mõttes, et
meil need nurksulud siin avada ja sulgeda.
Näete seda HTML.
Näete samasugust süntaksit XML liiga.
>> See näitab alguses PHP blokeerida.
See? Php on konkreetselt PHP.
Me sulgeme kõik koos?> Samuti.
Olgem avada faili meie seadme abil iganes soovid.
Selles pakettaknad ta ütleb, et helistada dynamic.php.
Tõsi, võite helistada see iganes soovid, kuid faili nimi saab tulla
ja oluline hiljem, nii lihtsalt meelde iganes sa seda nimetada.
Ma lähen minema üle seadme
ja ma teen kataloogi
9. jagu usun me oleme nüüd.
Ja me astume punkti 9,
ja ma lähen kasutada gedit.
Vaatame, gedit, ja ma lähen helistada minu dynamic.php.
Poom.
Jooksul dynamic.php, sest see on PHP fail
ja ma tahan teha selle läbi PHP tõlk
Mul on vaja alustada kõike maha need avatud sildid,
nii et ma lähen alustada need kohe,
annan endale natuke ruumi vahel silte
ja siis Õppuse eesmärk oli mängida
Seda funktsiooni nimetatakse gettype, nii gettype, see funktsioon siin.
>> Pange tähele, et seal ei ole alakriips või ruumi või sidekriips või midagi sellist
eraldades 2 sõna, saada ja tüüp, lihtsalt üks sõna üldse.
Aga mida see teha on, kui ma läbida muutuja gettype,
öelda $ var või $ x,
see ütleb mulle omamoodi ka silumine formaadis
Mis nime see tüüp on.
Me läheme proovida siin.
Eriti siis, kui sa vaatad tagasi pset spec
meil paar erinevat rida koodi siin.
Esimesel koodirida me initsialiseerida see muutuja, $ var,
võrdne 7, ja siis meil on see printf rida
mis ütleb, et hei, printf var on tühi.
Printf on üks paljudest võimalustest, kuidas saame trükkida asju PHP.
Tihti näete Echo funktsiooni asemel kasutatakse printf,
kuid printf me oleme kõik tuttavad, kes on kodeerimist C mõneks ajaks.
Mis saab tegelikult teha ei Vaatame, kas kopeeri ja kleebi töötab.
Ma annan selle proovida.
Me läheme tagasi üle seadme.
Okei, ja seal me läheme.
Ja vahe on kuidagi imelikult, kuid siin me läheme.
Meil on see kood siin.
>> [Student] Kas ei ole hea stiil sakk on?
Vabandust?
[Student] Kas see on tavaline, et vahekaardil on?
Õige, nii Sam küsib, kas see on konventsiooni sakk või mitte.
Tavaliselt jah.
Sel juhul olen otsustanud mitte.
Ausalt, näete erinevaid asju erinevate programmeerijad.
PHP on tavaliselt kasutatakse tihti koos HTML
ja teistes keeltes, ja nii mõnikord printimine vaadata veidi funky
kui te taane jooksul PHP alguse ja lõpu sildid.
On tõesti sõltub.
Sellisel juhul kopeeri ja kleebi ei kleebi sakke minu jaoks,
kuid kindlasti ei, nagu sa ütlesid, et see selgemaks teha.
Olgu, kui teil salvestada see kood dynamic.php
siis mida saate teha on tulnud maha teie terminaliakent kus ma olen siinsamas
aastal gedit, ja teha samaväärne kompileerimise
kasutades teha ja siis töötab oma koodi C
kõik mida sa pead tegema koos PHP fail käivitada PHP tõlk,
mis on väike programm nimega PHP,
ja argument annate tõlk on fail, mida soovite tõlgendada.
Sel juhul dynamic.php.
Oih, kus ma pane see?
Oh, ma panin selle punkti 9, ja siin ma olen. Sellepärast.
>> Nüüd, kui ma saan seda uuesti
näeme, et minu esimene gettype funktsioon kõne
var on täisarv.
Järgmisel 1 var on string, ja siis kolmas var on tõeväärtus.
Mis huvitav on see, kui me kerida tagasi üles näeme, et
need tüübid sarnased, mis meil oli C.
Meil oli ints in C.
Me justkui oli keelpillidele C,
nii stringe ei olnud täiesti legit tüüp selles mõttes, et
meie CS50 string oli tõesti, mida?
Vabandust? Missy?
[Missy] Char *.
Jah, see oli see char * me kasutasime.
Alguses poolaastal olime kasutades string tüüpi,
aga see oli tõesti char * kapoti alla.
Me lihtsalt määratletud tüüpi see, samas PHP need stringid on tegelik tüüp.
Ei ole rohkem selle char * tüüpi värk.
>> Näete, et me saame teha palju rohkem asju koos stringid
palju kergemini PHP kui me võiks C,
ja siis lõpuks, meil on see boolean tüüpi, ja suur vahe on selles, et
kui me kerida alla tagasi näeme, et nime tüüpi
Nüüd on täisarv, string ja tõeväärtus asemel int ja bool,
ja nagu te kiirenemist erinevate programmeerimis keeli,
eeldades, et mingil hetkel oma elus te kokku puutuda
erinevatega märkad vähe quirks nagu see
kus C nõuab täisarvud ints.
Mõned kutsuvad seda täisarvud.
On ka muid tingimusi, et saad joosta.
Big int nägime täna SQL.
Seal on ka hulk ning seejärel tõeväärtus, boolean,
igasuguseid erinevusi seal.
>> See ei ole väga huvitav, kuid nüüd ma annan sulle natuke aega
kui me suumida tagasi välja-töötamiseks läbi selle teostada allosas lehekülg 3
kus ta küsib, milliseid vastavad need väärtused siin allosas.
Meil on 3.50.
Meil on see asi siin, mis on huvitav.
Me ei ole näinud, et enne, kuigi kui olete jälginud mööda loengu
te ilmselt juba teate, mis see on.
Siis on meil see, mis see on selline funky.
Te tunnete seda.
Mis see on C?
Sam? Mida see teile C?
See avaks faili nimega dynamic.php ja muuta see loetavamaks.
Jah, ja milline oleks tüüpi muutuja, et meil oleks määrata seda? >> Faili täht.
Täpselt, me määrata see fail täht.
See on õigustatud PHP liiga.
Jookse seda. Vaata, mis juhtub, kui te kaotate seda arvesse gettype.
Ja siis ka vaadata, mis null on, mis see võiks olla PHP.
Ma annan sulle paar minutit.
Võid sõna otseses mõttes kopeerida ja kleepida neid väärtusi,
ja siis me teeme natuke juhuslik kõne te
ja vaata, mis sul on.
>> [Student] Mul on küsimus. << Jah.
Ühes loenguid Taavet ütles, et midagi saab panna ülaosas oma faili
nii et sa ei pea sisestama PHP iga kord.
Mis see oli?
Ta oli ilmselt räägime nael paugu, hash paugu.
See on direktiiv, et kui te tähistada oma fail käivitatava
siis mida ta teeb on see, kui sa käivita fail
ta ütleb kest programmi
kasutada PHP tõlk tõlgendada faili sisu.
Küsimus on, mis oli see eriline joon
et me võiks hõlmata ülaosas meie PHP failid ei pea sisaldama
Selle PHP liini või see PHP käsk, kui me tahame ellu faili?
Ja tegelikult võite seda teha hunnik erinevaid faile.
Ma usun, et see oleneb sellest, kus PHP binaarne on salvestatud,
kuid sageli usr / bin / php on hea koht alustamiseks.
Võite seda välja mõelda täpselt, minnes tagasi oma seadme
ja kirjutades välja, mis php.
Mis käsk nuputab kui sa täidesaatva binaarne
või käsu, kus vastav fail on.
See ütleb mulle, et PHP on tõesti aliase see binaarfaili
mis on salvestatud usr / bin, mis on kui palju kahendfailide on paigaldatud.
Näiteks, kui ma liikuge üles tippu, nüüd, et ma panin selle #! joon siin
Ma ei keri, ja ma võin proovida käivitada
dynamic.php, kuid ma saan selle vea kohta luba ei anta,
ja mida see tähendab, et see fail ei ole praegu annab käivitatava õigused.
See ei ole märgitud faili, et keegi saab sõita.
>> Kui sa jooksid teha või rõkkama ja sul on käivitatav sellest
tõlkija oli piisavalt tark, et teada, et hei, ma ehitan käivitatav.
Sa ilmselt tahad käivitada, nii et see oleks automaatselt häälestada
load teile.
See ei ole nii, aga kui loote normaalset pilti nullist,
Põhjus on tavaliselt sa ei taha mingit faili oma süsteemis olema käivitatav,
nii et sa tegelikult minna ja käsitsi teha.
Lihtsaim viis seda teha on koos chmod käsk,
ja chmod + x ütleb lisada käivitatava natuke
sest seal on read natuke, kirjutada natuke ja käivitatava natuke,
r, w ja x,
ja öelda chmod + x süttib käivitatava natuke
sest siis fail, mis on kirjas, mis antud juhul on dynamic.php.
>> [Student] Kas see on sisse lülitatud kõigi jaoks?
Vaatame seda välja, siis kuidas ma vaadata õigused?
Kas sa tead, kuidas ma vaadata load fail?
[Kuuldamatu õpilase vastus]
Vabandust? >> [Student] XSD.
XSD annab meile faili hacks.
Loetletakse kõik failid,-l, siis näita mulle kõik failid minu kataloogis
omamoodi nende pikk, paljusõnaline nimekirjades, ja nii siin me näeme, et
Selle dynamic.php fail
Viimane muutmine: 5. november kell 16:21.
Omanik seda pilti ei jharvard.
See on kasutaja, kes on sisse logitud
See kasutaja Töötan nagu,
ja kui sa oled ka seadme sa ka töötab kasutaja jharvard.
Sa oled õpilaste rühm,
ja need on asjad, mis sa näed piisavalt tihti.
>> Me ei lähe palju detail siin,
kuid enamasti see, mida sa tahad vaadata, kui otsite, et näha
kas fail on käivitatav peamiselt
kasutaja, kes omab faili omanik,
nii see jharvard, ja siis on meil
õigused bitti siin vasakul,
ja Kuidas lugeda seda, et viimane natuke
tavaliselt kasutatakse märgist, kas-vähemalt sel juhul
see viimane natuke sageli seatakse reklaami näidata
, et fail on kataloog ja mitte lihtsalt tavaline fail.
Siis järgmised 3 bitti siin
kindlaks õigused, mis faili omanik on,
nii sel juhul jharvard, kui faili omanik, oskab lugeda ja kirjutada seda faili
kuid seal on kriips öeldes, et jharvard ei saa täita seda faili.
Järgneva 3 bitti on grupi jaoks, nii et see on õpilaste rühm,
nii et kui oli mitu kasutajat minu aparaat,
ja meil oli mitu kasutajat osana üliõpilaste rühm,
siis nad saavad kõik lugeda seda pilti, kuid nad ei saa seda kirjutada,
ja ka keegi teine, maailma
saab lugeda seda pilti ka.
Seal on hea, pikk writeup sellest,
siis võite lugeda internetis.
Kui probleem komplekt spec me minna seda üksikasjalikumalt.
>> [Student] Kas 218 viidates maailma?
218 on-off peal mu pea ma ei unusta,
aga ei.
Vaatame. Olen umbne, et just nüüd.
Tagasi millised me olime umbes pistmist chmod + x
kus tahtsime anda dynamic.php käivitatava load,
ja küsimus oli, kas see annaks käivitatava õigused kõigile
või lihtsalt jharvard, ja me näeme seda
töötab käsud ja kirjutades ls-l,
ja nüüd me näeme, et see on märgitud käivitatav.
Sa näed, et seal oli värvimuutus.
Nüüd dynamic.php on loetletud roheline,
ja tundub, et vastus küsimusele on, mida, Charlotte?
[Charlotte] Ainult jharvard. >> Ainult jharvard, jah.
>> Kui me tahtsime keerata käivitatava natuke kõigile
kuidas võiks me seda teeme?
Kõik mõtted? >> + X?
Jah, täpselt.
Charlotte ütles, et me saame teha chmod kohta + x dynamic.php,
ja nüüd, kui võtame ls-l näeme, et käivitatav bitti
tõepoolest sisse lülitatud kõigile.
Ja tegelikult võite seda teha vastupidine sellele, nii et saate selle välja lülitada kõigile
kasutades miinus.
Nüüd on välja lülitatud, ja nüüd saame selle tagasi sisse lülitate jaoks jharvard
nii et me saame tegelikult kasutada seda nüüd,
ja nüüd näed, kui võtame kood see eriline #! rida ülaosas,
#! rida, rääkis kest,
ütles meie terminali hei, kui see fail on joosta,
kasutada / usr / bin / php tõlgendada seda pilti
ja seejärel printida väljund.
[Kuuldamatu õpilane küsimus]
Muidugi, las ma kerin tagasi üles. Just niimoodi.
Näete kõik need direktiivid alustada selle naela ja seejärel hüüumärk,
mõnikord Jutt, hash paugu.
>> [Student] Kuidas me saame kasutada seda php dynamic.php enne me muuta see täitmisfaili?
Küsimus oli, kuidas me saame teha selle abil PHP binaarne
samas dynamic.php ei ole käivitatav?
See on super oluline, sest see on täpselt, kuidas
see läheb tööle, kui sa kirjutad Ülesanded nr 7.
Enamik aega PHP failid ei ole otse käivitatav.
Viisil, mis toimib, sest see on PHP binaarne, mis on täidetavad.
Tõlk on asi, mis hukatakse,
ja mis siis see teeb sõna otseses mõttes slurping kogu sisu
meie dynamic.php fail ja läheb rida-realt
ja täidesaatva need käsud, nii et see kasutab meie PHP fail
kui nimekirja juhiseid.
See ei ole otseselt käivitamata.
See, kui me ütleme, et need failid on tõlgendanud töötamise ajal.
See on läbijooksuaeg keele asemel midagi, mis on määratud kompileerimise ajal,
ei koostatud keeles nagu C.
>> Kas on võimalik saada läbijooksuaeg keel tegutseda, kui see on kompileerimise ajal keel,
meeldib, kui teil on kõik jooksvad teha server
mitte-sa tead, mida ma mõtlen?
Jah, nii on küsimus
kas on võimalik saada läbijooksuaeg keeles tegutseda pigem kompileerimise ajal tüüpi keeli?
Ja seal on, ma mõtlen, et on aktiivne teadus, palju neid ettevõtteid.
Usun Facebook on teinud palju tööd PHP
ja kompileerimisel alla, mistõttu on kiirem, optimeerides seda
kuna nende sait on ehitatud PHP.
Kui olete jälginud node.js üldse
mis on selline JavaScript tõlk
et oleks võimalik käivitada JavaScript väljaspool brauserit, väljaspool oma veebilehitseja seadistusi,
sest traditsiooniliselt JavaScript oleks lihtsalt joosta sees Firefox või Chrome
ja see oleks kasutatud jahe animatsioone juhtuda veebilehele
ja teha oma veebilehe dünaamiline.
See on ehitatud palju tööd, et Google on teinud
teha JavaScripti ja C + +
seovad kokku, nii et seal on palju aktiivseid teadusuuringuid
saada nendes keeltes suhelda ja neid optimeerida,
peamiselt seetõttu, et nii paljud inimesed saavad koodi PHP ja JavaScript
sest see on palju lihtsam.
See on palju ilusam. Sul ei ole viiteid.
Sa ei pea tüüpi ujuvad ringi.
Nad tahtsid saada kasu neist kompileerimise ajal keeli
kõik tüüpi kontroll ja kiirus ja väiksem mälukasutus ja kõik selle
säilitades samal ajal paindlikkuse ja kasutuslihtsuse neist uuemad.
>> Tagasi meie algse plaani rünnata.
Meil on mõned neist küsimustest siin meie probleem komplekt spec.
Lähme läbi neid tõesti kiiresti ja me läheme mööda tuba laiali.
Charlotte, millist tüüpi on 3,50?
[Charlotte] See on topelt. >> See on topelt.
Jimmy, mis on selle kõrval üks? >> Massiivi.
Massiiv, fantastiline, ja Jared, mis on fopen?
[Jared] See on ressurss. >> See on ressurss.
See on omamoodi uue, mitte faili täht, mitte fail.
See ressurss on tüüp PHP,
ja mul on kahju, Ella, viimane null on mis?
Null.
Null, kuidas see kirjutatud PHP? >> Samamoodi.
Samamoodi pealinnades? >> Jah.
Jah, kõik on korras.
Hakkab pihta, meil topelt, meil massiiv,
meil ressurss, ja siis meil on null.
Vaatame nüüd olete näinud-
Vaatame, nii et nüüd ma arvan, mida ma ka tahan teha, on tõmba
Selle veebilehe siin, see php.net / manuaal,
nii et kui te kopeerida, et ja avada veebibrauser.
Ma lähen tõmba Chrome, pane see sisse
Ma tahan teile näidata seda mitte ainult sellepärast,
me saame rääkida terve päeva umbes tüüpi ja kõik, mis lõbusaid asju
vaid sellepärast, et see on PHP manuaal,
ja seal on palju PHP programmeerijate seal.
Seal on palju PHP veebilehed seal,
ja selle tulemusena on palju dokumentatsiooni PHP,
ja kasutusjuhend, see php.net, on tõesti hea koht, kuhu minna
kui sul on küsimusi, milline on parim viis seda teha X PHP
või mida see funktsioon välja näeb?
Just sellist saada tuttav milline see välja näeb, sest
teil tulevad siia tihti, natuke Ülesanded nr 7.
>> Kui sa lõpuks teed lõplik projekt, mis kasutab PHP
see on koht, saate saanud väga hästi tundma.
Sageli kuidas inimesed seda teha on nad kasutavad Google otsida koha,
ja nad ei kasuta otsingukasti, mis on siin üleval paremas, mis on selline pisike.
Kui sa Googling ringi midagi pistmist PHP ja näed
üks manuaal lingid avanevad saate tavaliselt loota, et
nagu üsna hea ressurss.
Awesome, nii välja seda tüüpi, lihtsalt uudishimust,
millised ei ole me näinud?
Midagi me ei ole näinud siin?
[Student] Allika. >> Nägime ressurss fopen kõne.
[Student] Objektid. >> Objektid ei ole me näinud kindlasti.
Kutse ei ole me näinud.
On mõned neist pseudo-tüüpi.
Me kindlasti ainult nägin täisarv ja topelt.
Me ei näinud mõned teised, nii et kui me kliki täisarvud
näeme on muid täisarvud, et nad on siin?
Kas nad kõik nii täisarv, täisarv, täisarv.
Mõned keeled on suuremad täisarv tüüpi,
nagu nägime MySQL täna oli int ja siis suur int.
Lahe.
>> Niisiis, PHP manuaal.
Lähme tagasi meie probleem komplekt spec, ja me nüüd kerige lehel 4.
Üks asi, mis juhtub, kui sa neid keeli
et ei ole seda staatiline kirjutades, et neid keeli, kus sa pead deklareerima
tüüpi muutuja kuni ees
on teil juhul, kui te võite alustada võttes muutujate eri tüüpi
suhtlevad omavahel,
ja PHP see asi, kus ta püüab teha
mida ta peab kõige mõistlikum asi, mida teha
kui sul on 2 erinevat tüüpi suhelda üksteisega.
Näiteks kui me vaatame neid ridu koodi siin
te näete, et meil juhtub siis, kui
me proovida ja lisada string 1 kuni täisarv 2.
Mis juhtub, kui me proovida ja lisada string, mis ei ole numbrilist väärtust
vaid tegelikku märki, ST number 50?
Siis näeme, on midagi erinevat, mis juhtub, kui
lisamise asemel string arv lisame arvu stringiks,
ja nii edasi ja nii edasi kuni punktini, kus me saada
mingi imelik värk siin, kus meil on 7 + tõsi.
Mida kuradit see peaks tähendama?
>> Kui kutid minna ja kleebi mõned see kood oma seade.
Saate hoida seda dynamic.php.
Eks näis, mis juhtub.
[Student] Lihtsalt trüki, ei printf?
Jah, nii leiad, et trükkimine on ka kehtiv väljatrüki funktsioon PHP.
Seal on palju erinevaid viise, kuidas seda teha.
Me näeme paari näidet hiljem kui hakkame rääkima
umbes unikaalne probleem, et me ei kavatse kirjutada
ja siis kontsentratsioonid probleem, et me ei kavatse kirjutada
et kuigi meil on fopen ja kirjutamisel
et ei ole sageli lihtsaim viis lugeda faili sisu.
PHP on palju neid C-like igandid.
[Student] Kui panin kõik 6 nendest asjadest ma ainult saada üks number väljund.
[Nate H.] Kui paned kõik 6 sellist asja.
Vaatame, kas see on sellepärast, et see on võimalik-
üks asi on see, et need print kõnesid ei lõppedes uusi jooni.
Ei ole uut eraldusjoont kõik need prindi kõned
et äkki te saate ühe suure arvu,
ja see on tõesti lihtsalt sulam uus liin tähemärki.
[Student] Okei, kuidas ma veenduge-
Noh, seal on hunnik erinevaid viise.
Sa võid käsitsi kasutusele prindi reavahetusmärki,
kaja reavahetusmärki,
prindi uute rida.
[Student] Nii kaja on sama asi nagu printf?
>> Printf on nagu C printf
kus te prindite vormindatud stringi.
Sa varustades seda stringi ja seejärel kõik kohatäide muutujad.
See on sageli midagi, mida ei kasutata-
Vaatame, kui disclaimer,
Ma olen vähem tuttav PHP kui ma olen teiste veebi keeled,
ja kui ma olen programmeeritud PHP ma tavaliselt ei kasuta printf
sest minu arvates on kiirem kasutada string interpolatsiooni võimeid, et ta on
mis me astume ja ma näitan teile mõne sekundi pärast,
arvestades, C me mingi pea seda tegema hacky asi, et saan seda välja trükkida korralikult.
Võite tegelikult panna muutujad otse stringid PHP.
Printf on selline liiga pikk, mida ma tavaliselt teen. Jah, Ella.
[Ella] Üldiselt kui saad jäsennysvirhe see tähendab-
nagu C-see ei ütle teile täpselt, kus viga on ja mis see on,
Nii et see tähendab vaadata läbi kogu oma koodi ja sellest aru saada?
See on tavaliselt rohkem sihitud kui see.
Ma arvan, et sel juhul oli see natuke ära,
nii et ma arvan, et sel juhul me puudusid semikooloniga.
See püüdis mõtestada kõike,
nii nagu need tõlgendada keeles, tõlk läheb püüdma
ja teha oma parima, et kõik tööd korralikult.
>> Näete, näiteks JavaScript
Sul sageli rea avaldusi lõpevad semikooloniga nagu nad teevad PHP,
just nagu nad teevad C.
JavaScript mõned JavaScript tõlgid
aastal palju brausereid panna semikooloniga teile
kui juhtub, et puudu neid.
Nad proovida ja mahutada mõned räpasus oma osa.
See, kui ta võib üritada ja üritab ja üritab teha asjad töötavad,
ja siis lõpuks ta saab punktini, kus ta ütleb okei,
Ma ei saa teha asju tööd käendamine, ja see on kui saad rea number
et võib tunduda natuke maha õigesse kohta.
Okei, nii et lähme läbi selle väga kiiresti ära.
Me jätsime maha Ella, nii lähme üle Missy,
ja Missy, mida ei prindi string 1 pluss number 2 sulle?
[Missy] 3. >> 3..
Kas see on loogiline? Omamoodi?
Kas see annab sulle numbri? Kas see annab sulle string?
[Missy] arv. >> See arv.
Aga see on trükkimine, nii see läheb sulle mingi stringi.
>> Üks asi, mida me saame teha, et vaadata seda
on see, kui me $ var = 1 + 2
ja siis me ütleme, kaja gettype,
nii me kasutame kolmandat sorti trüki siia.
Nüüd saame näha, mis juhtub siin.
Siin mida meil on meil täisarv siit.
Kuigi olime lisades seda stringi arv,
me ei saanud string välja, just nagu Missy ütles.
Me ei saada täisarvu.
Okei, nii et vaatame, next up, Kevin.
CS + 50? >> [Kevin] 50.
[Nate H.] 50. Kas see on loogiline?
[Kevin] Jah.
[Nate H.] Miks? Miks see mõtet teile?
[Kevin] sest see on lihtsalt võttes string, mille arv väärtuseks null.
Jah, väga.
Natuke kahemõtteline olukordades, aga see on hea teada, mis juhtub.
Stella, mis juhtub järgmisena number 1 + string 2?
[Stella] 3. >> 3 uuesti.
Ja sel juhul, me saame jada või number?
>> Anname sellele proovida.
Igaüks kiiremini kui ma saan vastuse? Charlotte?
Oh, ma didn't-okei, vaatame, me teeme sama asi
kus meil number pluss string, ja me ei kavatse korrata tüüp,
vaata, mis me saame.
Samuti saavad täisarv.
Ei ole oluline, millest üks on string, millest üks on number.
Me veel hakka täisarv.
See on ikka läheb seda, mida me võiksime oodata.
Olgu, Sam, mida ca 90 + 9 pudelit õlut seinal?
[Sam] 99. >> 99.
Ei pudelit õlut seinal, kuigi.
See annab meile natuke rohkem infot, mis toimub.
[Sam] Kui oleksite kirjutanud 9 tähed
siis oleks 90, eks?
[Nate H.] Jah.
Küsimus oli, kui me tahaks kirjutada 9 välja nagu N-I-N-E
oleks me saanud 99 või 90?
Me tahaks saada 90.
See on sõna otseses mõttes lihtsalt otsin kohaline tähemärki.
See ei ole piisavalt targad, et tunnustada arv sõnu ja seda kraami. Jah.
>> [Student] Kas on olemas selline asi nagu typecasting PHP?
On, ja see on täpselt nii nagu sa teeksid seda C.
Aga 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Jah, mis siis võib olla üllatavat?
Mis juhtuks, kui sa tegid seda sama asi C,
kui sa 10/7 C?
[Charlotte] Oleks ainult teile-sõltuvalt sellest, kuidas te typecasted ma arvan
see annaks sulle ainult piiratud arvu kohta pärast koma.
Jah, nii piiratud arvu kohta pärast koma.
Mis veel võiks olla-oleks see teile mingeid kohta pärast koma?
Sageli ei ole, nii et jälle, sõltuvalt sellest, kuidas te typecasting see
see võib olla või mitte teisendada see murdarv.
Siin see oli selline tore, et ta seda tegi.
Kui me oleksime näidanud teile seda tagasi, kui alustasime teed sellist kraami C
siis ilmselt oleks teinud veidi rohkem mõistust
et see ei ole lihtsalt minema 1.
Ja siis lõpuks, Jamie, mida umbes 7 + tõsi?
[Jamie] 8. >> 8.
Mida see tähendab?
Ma arvan, et see lihtsalt annab tõelise väärtuse 1.
Jah. Mis juhtub, kui me seda muuta, et vale?
[Student] 7.
Jah, nii mäletan, kui me räägime neist binaarsed väärtused,
1 on sisse lülitatud, 0 on välja lülitatud?
Nüüd on meil tõsi on 1, 0 on vale,
ja te ei oleks seda näinud C näiteid, et me oleme teinud seda viimase poolaasta
kuid ajalooliselt bool tüüpi C ei ole reaalne tüüp,
et inimesed on kasutanud 0 ja 1 koht õige ja vale.
See on märk, et.
>> Okei, nii et üks oluline osa kõigest sellest
on see, et meil on need erinevad.
Nad võivad suhelda üksteisega.
Nad on sageli üksteisega suhelda viisil, mis on kena, nagu me oleme näinud siin.
On tore olla võimeline on string 1 ja number 2, lisage need koos ja saada 3.
See on loogiline.
Samas, kui olete kirjalikult veebilehed, ja eriti kui sa oled töötlemine
kasutaja sisend, nii et te olete kirjutanud veebivormi
mis kogub informatsiooni kasutaja ja läheb seejärel töödelda
tagaküljel eesmärgil serveripoolne oma PHP kood
Kui ootate, et raha, et kasutaja sisestatud ja esitatud
teie vorm olema täisarv või olla murdarv või midagi sellist
peate selgesõnaliselt enamus seda
ja siis teha teatud tüüpi kontroll.
>> Sa ei taha lihtsalt tugineda seda tüüpi maadelda süsteemi, et muuta asju välja töötada,
eriti turvakaalutlustel ja just stabiilsuses oma kodulehel.
Lihtsalt midagi, mida meeles pidada, et kui te käitlemise vormi andmed,
midagi, mis on saadaval postiga või get superglobals
veenduge, et te alati seda kinnitada ja muuta ja jklle harjunud roll ta.
Ja just nagu me rääkisime hetk tagasi, et typecasting
PHP on täpselt sama nagu C, kus teil on sulgudes
ja siis tüüp.
Pea seda silmas pidades.
Üks funktsioon, mis tulevad mugav, kui sa seda teed
on meil olen kasutanud-ja see on selline nagu kõrvale-
me olen kasutanud seda gettype funktsioon siin
aru saada, millist tüüpi muutuja,
ja kuigi see on mugav silumiseks ja näha, mida muutuja tüüp on
te ei soovi seda kasutada, näiteks seisund, kus
sa kontrollides, et näha, kui gettype on $ var = täisarv midagi.
See on halb, paha, paha.
Selle asemel on neid funktsioone nimetatakse on täisarv, on string,
on massiiv, mida soovite kasutada selle asemel, et sellisel juhul
mida ma tahaks teha selle asemel, et see kutt siin
on kasutada on täisarv var.
Ja nad sageli nimetatud on is_ * selles mõttes, et sa võiksid asendada * täisarv,
string, jne, ja lihtsalt veendumaks, et tõesti kiire
on see int php.
Paistab, et sa suudad seda kas on int või on täisarv ka?
Jah, alias, nii int täisarv varjunimed.
Lahe.
>> Kuidas meil läheb?
Korjame tempot natuke.
Nüüd me ei kavatse rääkida massiivid, nii nagu näete
järgmise osa spec me räägime kuidas massiivid PHP
on veidi teistsugune kui need on C.
Tõsi, nad on omamoodi sulam
massiivid, et olete jõudnud tundma ja armastama C
kus kõik on sama tüüpi
salvestatud järjest ja contiguously mälu,
ja sa pead neid numbrilisi indekseid.
Sul on indeks 0, indeks 1, indeks 2,
ja salvestada väärtused need indeksid.
Sa ka C, kui sa kirjutasid Speller, palju te
tegin hash tabelit lähenemine, ja nägid, et meil oli
teistsugust ladustamist, kus me olime kaardistamine
võti väärtus, nii et kui oled proovinud, et salvestada midagi hash tabelit
sa pidid täpsustama, et sa tahad säilitada seda eriklahvi,
ja et võti määrab asukoha väärtus ja kui see salvestatakse.
Oled liiki sain nii nende mõistete toimub samal ajal ka PHP massiivi,
ja selle tulemusena me sageli nimetame neid assotsiatiivse massiivi
kus me ühendavad sisestada väärtus.
Selles next part me räägime lihtne PHP massiivi
kus meil on võtmed, b ja c,
kõik stringid, kaardistamise täisarvud 1, 2 ja 3.
Ja sul võib olla võtmed erinevad.
>> Sul võib olla mõned võtmed on stringid, mõned võtmed on täisarvud.
Sul võib olla väärtused erinevad.
Sul võib olla väärtus, mis on string, väärtus, mis on täisarv,
väärtus, mis on objekti või teise massiivi, näiteks
kõik samas massiivi objekt, mis on kuidagi imelik.
Sa ei pea olema massiiv, mis on just ühte tüüpi element selles.
Sul võib olla palju erinevaid asju seal toimub.
Teine asi on tähele panna, et kui sa ei näe midagi sellist oma koodi,
mis kehtib PHP kuulutada array lihtsalt meeldib see, 0, 1, 2, 3, 4, 5,
et tunnistab käivitub $ arr olla see massiiv.
Aga mida sa tegelikult saada kapoti alla on selline kaudne
põlvkonna võtmed, kus meil on 0-0, 1-1, 2-2, 3-3.
Ja selgub, et isegi kui sul on array nagu see kutt siin
kus sa pead, b ja c võtmed
ja siis hakkate kasutades massiivi tõukemeetod hakata kasutama seda massiivi nagu pinu,
näeksite, et see massiivi objekt, see massiiv on tõesti ülekoormust.
Me ei saa seda kasutada massiivi. Me ei saa seda kasutada hash tabelit.
Me võime kasutada seda pinu.
Kui hakkad surudes asju peale selle massiivi
Esimene asi, mida vajutada peale seda on indeks 0 ja seejärel jaotises 1 ja indeks 2.
Saad selline kaudne põlvkonna võtmed
kui te just neid otseselt.
Kuidas saab määrata võtmed selgesõnaliselt, muidugi, on kasutada seda sulg märke,
mis on sarnane massiivid, välja arvatud asemel vaid võimaldab
täisarv indeksid siin, nüüd me laseme midagi.
Kui soovite oma võti olema string, siis tahaks täpsustada seda niimoodi.
Kui sa tahad seda int, siis täpsustage seda int, mida soovite kasutada.
>> Küsimused, mis siiani?
Üks kena asju selle idee
on, et saate kunagi üks väärtus salvestatakse eelkõige võti.
Kui me läheme tagasi üle meie seadme-Las ma kustutan natuke seda värki.
Ja ütleme, et ma initsialiseerida array olla 0, 1, 2, tehtud.
Kui ma nüüd tean, et näiteks, kui ma echo $ arr [0]
Ma lähen, et saada väärtus 0 trükkida,
ja kuna seal saab kunagi olla üks väärtus säilitada eelkõige võti
kui ma salvestada midagi on $ arr [0], ütleme,
siis ma tean, kui ma echo $ arr [0] jälle
Ma ei hakka 0 trükitakse välja nagu enne.
Ma ainult hakka.
Nii et see on põhimõtteliselt öelda, et ma ei saa olla $ arr [0] talletamine 2 erinevat väärtused.
Ei saa salvestada nii 0 ja string, nagu seda sõna otseses mõttes asendab
Mis oli $ arr [0] varem.
Põhjus, miks ma tooma see up töötab see, vaata, mis juhtub.
Vaata siit, et ma sain 0 trükkida ja siis siia alla.
Pole mingit uut rida seal, sest olin laisk ja ei pannud seda sisse
Mis on lahe on see, mida saame kasutada seda kui võimalust
jäädvustada see idee komplekt
kus me ei saa olla mitu võtit jooksul massiivi.
Meil ei saa olla identsed võtmed jooksul massiivi.
Ma ei saa olla võti 0 ja väärtus 1 ja võti 0 ja väärtus
või klahvi 0 ja väärtus tõene.
Võtmed on kõik-seal on ainult 1 võti massiiv.
Kuigi sul võib olla sama väärtus salvestatakse
mitu korda massiivi eri võtmed
see ei ole võimalik, et on identsed võtmed mitu korda oma PHP massiivi.
>> Kui me vaatame seda järgmine probleem, unique.php,
kuhu me tahame avada PHP fail
sisaldavad stringe nimekirja, üks string rea kohta
ja me tahame leida kõik unikaalne stringid et faili
kõik me peame tegema, on kasutada ühte neist PHP massiivid
ja kasutada stringid faili võtmed selles massiivis
ja hoida ajakohastamine meie massiivi nagu me salvestada need uued võtmed.
Kui me loeme iga rida välja fail saame seda säilitada massiivi
ja lõpus on meil nagu meie võtmed meie massiivi
Kõike unikaalne stringid faili piires.
Kas see on loogiline?
Vaatame, kuidas see toimib.
Me läheme avama, vastavalt spec, uus fail nimega unique.php.
Ava. Oih, vabandust, uue faili.
Me ei kavatse alustada ära sama alguse ja lõpu sildid.
Me läheme salvestamiseks 9. jaos, ja me ei kavatse seda nimetada unique.php.
Okei, nüüd suumimiseks
Mõte on avada faili,
lugeda faili rida-realt.
Iga rida faili
me peame massiiv, kus meil on
joon nagu meie võti.
Ja siis kui me jõuda lõpuks siin
$ Arr võtmed on ainulaadne read
failist sest me teame, et kui ma panen rida sellesse massiivi
mitu korda see muudkui katab vana väärtuse,
ja me saame tegelikult panna massiivi rida nagu ise just niimoodi.
>> See on kuidagi imelik.
Me ladustamiseks sama põhiväärtus paari ikka ja jälle ja jälle,
kuid kuna meil on tagatud, et seal on ainult 1 võti nimega rida
nii et kui meil on fail, mis ütleb-faili loomade häälitsusi ja see on auh, auh,
mjäu, mjäu, Moo, moo, ja iga kord, kui me lugeda loom müra välja
nagu auh ja me seda säilitada meie massiivi saame Auh, ja siis teine ​​kord
me salvestada Auh see kirjutatakse esimene kord, kui me säilitada seda.
Lõpuks me ainult üks kanne massiivi
iga looma häälitsusi meie loomade häälitsusi faili.
Kas te tunnete kindel, et saate lahendada avamine faili PHP?
Üks viis seda teha-lähme üle selle kiiresti üks viis seda teha
on koos fopen, nagu nägime.
Võite fopen some_file.txt.
Võite avada see lugeda režiimis, nii nagu C.
See on üks täiesti hea viis seda teha.
Sa ka siis lugemiseks toimikusse rida-realt
on samad funktsioonid, paljud neist, et sa tegid C.
Sul on fgets.
Sul on feof, kuigi meile ei meeldi kasutada seda
sest mäletan, et ei olnud suur C.
Sa suudad seda teha samamoodi,
kuid siin on väga lahe asi.
Vabandust, ma ei taha seda teha $ fail, kuid on funktsioon nimega faili PHP,
ja see funktsioon siin on lahe, sest ta loeb kogu sisu
on fail, mida täpsustatakse nii some_file.txt,
loeb kogu sisu see fail massiivi
ja siis saate kinnitada, selle üle, mis on päris vahva.
>> Kui me läheme näiteks meie veebibrauser
ja vaatleme Google PHP fail
näete siin, et meie manuaal ütleb, et faili loeb kogu faili massiivi
ja saame file_get_contents naasta sisu faili stringi,
kuid tavaliselt lihtsalt saada see massiiv on tõesti tore, sest mida ta teeb
on see puruneb see üles nii, et iga element
aastal massiiv on üks rida faili
nii et kui me vaatame faili 0, see on esimene rida faili.
Faili 1 teises reas, faili 2, kolmas rida, ja nii edasi ja nii edasi.
Kas poleks tore, kui see oli kõik, mida tuli teha C?
Päris vahva.
David näitas seda loengut ja idioom ta näitas oli
et lisaks meie standard loop-PHP meil oli, et
eest ($ i = 0; i <10; i + +),
ja seda saab teha PHP ka sama asja-
meil on ka see lahe konstrukt nimega foreach.
Foreach on tõesti mugav, kui itereerimise üle massiivid või neid andmestruktuure
sest see võimaldab teil tõmmake iga element massiivi
ilma käsitsi teha indekseerimine ise,
ilma käsitsi luua indeks muutuja, juurdekasvu see,
tõmmake väärtust massiivi sel hetkel, sest see on väga tavaline asi, mida teha.
>> Sa ilmselt seda teinud tonni aegu, kui sa teed C kraam
üle semester, nii et seda foreach
saame silmus üle seda faili massiivi
ja süntaks on see, et me tahame nüüd silmus üle selle massiivi
ja täpsustada, et muutuja me ei kavatse kasutada, et salvestada
element selle massiivi kohapeal, kohaliku ulatusega see foreach silmus,
on me lähme kutsume seda rida.
Kui see fail on lihtsalt sõnad ja seal on üks sõna rea
me võiks seda nimetada sõna samuti, tõesti lihtsalt annad selle nime,
mida iganes sa tahad seda kutsuda,
ja siis sees silmus saate teha mida iganes sa tahad seda liini.
Kui see ei ole piisav, et saada väärtus massiivi ja sa ka tahad saada
indeks koos sellega saab määrata nime indeks
samuti raha, ja nüüd on teil juurdepääs kuni 2 muutujad.
Sul on $ i ja joon
kus $ i on indeks array,
ja rida on rida, mida laaditakse fail.
Näiteks, kui me tahtsime välja printida kaja rida 0 faili see,
me võiks seda teha just niimoodi, "Line $ i fail on $ rida,"
ja siin on midagi, mida me ka ei ole näinud veel kas
kus ma olen lihtsalt täiesti vahele üle kogu see% s% d äri
et pidime tegelema C, ja selle asemel olen läinud otse
kirjalikult muutujad kooskõlas minu näol.
>> Seda nimetatakse muutuja interpolatsiooniga string interpolatsiooni
kuhu täidis muutujad otse ja PHP tõlk
on piisavalt targad, kui ta loeb läbi stringi, mis algab jutumärkide-
ei ülakoma, ühe jutumärke sa ei saa seda teha-
kuid topelt jutumärke, sest see loeb läbi ta otsib muutujaid.
See jaht neile ette, ja kui ta näeb muutujad see võtab muutuja väärtus
ja toppige see string, kui see saab teisendada see string esindatuse,
mis on päris vahva.
Sest nüüd, lähme välja kommenteerida ülejäänud kõik,
salvestada, ja mida me saame teha nüüd on meil võimalik avada faili
et me võime some_file.txt-Loome uue faili-
ja suudame panna hunnik jama värk siin lihtsalt katsetada kõike välja,
salvestada, nimetame seda some_file.txt, kui ma teen siin üleval,
ja nüüd kui ma välja suumida lihtsalt veendumaks, et kõik on sama kataloogi
tundub, mul on unique.php ja some_file.txt samas kataloogis.
Kui ma saan php unique.php
näha, kuidas ta prindib välja iga rea ​​minu faili ja mis rida?
>> See on päris võimas, eks?
Vaata, kulus 3 rida koodi avama faili.
Noh, 4 rida koodi. Ma ei saa loota täna selgelt.
Aga tõesti vaid 2 huvitav rida koodi, kuna teised 2 olid looksulg,
kuid selles palju koodi suutsime avada faili, itereerima läbi,
tõmmake liini number ja liini ise
ja välja trükkida.
Lahe värk. Charlotte.
[Charlotte] Mul on küsimus süntaks.
Nii foreach tegeleb iga rida faili avada,
ja siis kui sa tahad teha asju iga rida sa lihtsalt teha seda nagu
ja seejärel siduda väärtus.
[Nate H.] Mida saad teha siin-küsimus oli
foreach on pistmist massiiv, nii foreach süntaks
on tõesti foreach, ja teate, et seal pole ruumi
või midagi vahel ja iga.
Nad peavad minema paremale üksteise kõrval,
ja siis ta võtab massiivi,
ja siis on see muu märksõna kutsutud, et peab olema seal,
ja siis pärast kui võite panna üks muutuja nimi,
sel juhul sa lähed tuleb tõmmates välja väärtuste massiiv,
ei indeksid, või kui sa seda nagu me oleme kirjutanud alla
sa saad võtmed ja väärtused.
Sul on foreach element massiivi või paari massiivi Pingeline väärtus
või lihtsalt raha.
Sõltuvalt sellest, mida sa vajad, kui sa ei pea klahve
siis võid minna väärtusega.
Kui soovite võtmed võid minna koos nendega ka.
>> [Charlotte] ma ka aru, me ei ole kunagi tunnistatud i või liin.
Kuidas see teagi, mis nad on?
[Nate H.] Mis sa sellega mõtled deklareerida?
[Charlotte] Me pole kunagi öelnud neile, mida ma või liini kaudu.
[Nate H.] Me pole kunagi öelnud, et arvuti, mida ma või liin tähendab nii-
[Charlotte] Et nad indekseeritud või et Naad-
[Nate H.] Me pole kunagi öelnud talle, et see peaks olema indeks või võti ja väärtus,
ja see on, sest see on PHP tõlk.
See toimib deklaratsiooni ja ütleb okei, võti saab olema
muutuja nimega i salvestatud muutuja nimega i.
Väärtus saab olema salvestatud muutuja nimega rida,
nii see toimib deklaratsiooni need muutujad
ja ütleb $ i on võti, ja $ rida on väärtus.
Jah, Ella.
[Ella] Kui võtmeid ei ole teinud arvuliselt
kuidas see otsustada millises järjekorras see saab printida kõike?
Kas see lihtsalt meeldib et see on kantud?
[Nate H.] Vaatame seda proovida.
Loome muutuja nimega arr,
ja mida me saame teha läheb 7.
Oletame 0 läheb teise massiivi 1, 2, või õun.
Oletame, et 7 läheb 1, b läheb 2
ja 3 läheb 4.
See on omamoodi hull otsin näiteks sellepärast, et me segades kuni
stringid ja täisarvud kogu koht.
Ei ole reaalne, et see massiiv.
Ma mõtlen, et me võiks tellida kõike tähestikulises järjekorras võtmed.
Võiksime tellida kõike tähestiku järgi väärtus.
>> Võiksime proovida ja võtta arvesse, et mõned on stringid, mõned ints,
ja me võiksime proovida ja muuta need kõik sama tüüpi ja vaata, mis juhtub,
või me võiks kaaluda neile väärtuse, mille me juba sisestatud neid
kus me paneme selle kuti esimene, see kutt teiseks see kutt kolmandaks
see kutt neljandaks jne.
Vaatame, mis juhtub, kui me teeme selle koodi.
Kui me liikuge allapoole ja teha sama asi,
ja siin see ei prindi välja uued liinid.
Kui ta lugeda asju välja fail oli ka uute liinide väärtusi,
mis oli, miks see välja printida kenasti, samas kui siin ei juhtunud midagi,
nii et miks kõik on smushed koos.
Olgem lisada uue rea lihtsalt teha asju kena.
Teeme uuesti, see, ja nii siin
vaadata, mis juhtus.
See trükitakse kõik välja, millises järjekorras me seda ellu massiivi.
See säilitamiseks et selles mõttes.
>> Tulles tagasi selle probleemi unikaalsed
kus me tahame, et oleks võimalik kinnitada, üle faili,
ja me anname ta some_file.txt,
ja me ei kavatse itereerime see niimoodi.
Me ütlesime, et tahame kasutada massiivi veenduda, et olime saanud kõik
ainulaadne read sealt välja, ja me võiksime teha, et tõesti lihtsalt
poolt lihtsalt ladustamiseks array et me muidugi tunnistada väljapoole silmus,
ja me ütlesime, et kui me kasutada faili ridade nagu võtmeid meie massiivi
kui me läksime duplikaadi liin me tahaks olla ülekaaluka eelmine väärtus.
See ei ole kunagi võimalik on 2 võtit, mis on identne sama massiivi.
Me võime teha just seda.
Me vabaneda sellest kaja avaldus siin.
Siin me oleme ladustamiseks rida failis meie massiivi
kasutades ennast võti.
Sellest pole midagi, ja selgub, et me isegi ei pea seda klahvi all.
Meil ei ole vaja, et ma muutuja.
Sel hetkel, kui me seda teha teise foreach silmus
ja me olime silmus üle iga arr
ja joon nüüd kui me echo-oih, vabandust.
Me ei saa kasutada koma. Me peame kasutama seda märksõna.
Nüüd, kui me echo rida peaksime saama kõik unikaalne sõnu faili.
Kui me läheme üles some_file.txt,
ja oletame, et me teeme õun, banaan, õun, õun, banaan,
kui me väljatrükk Kõike unikaalne sõnad seda faili peaksime ainult saada
õun ja banaan välja trükkida.
Kui me salvestada see nüüd siin me uuesti suurendate,
php unique.php, ja ta-da.
Oleme edukalt uniqued faili.
>> Viimane osa sellest probleemist on teilt sorteerida seda massiivi enne trükitud välja
sest see lihtne näide, et me oleme lihtsalt teinud
meil vedas selles mõttes, et faili-
me tegime seda kunstlik näiteks õunad ja banaanid.
See oli juba järjestatud.
Kuid kasutades lihtsaid omamoodi funktsiooni saate sortida massiivi, mis on päris vahva.
Viimane asi, ma tahtsin rääkida teiega umbes tõesti kiiresti
on see, et selline PHP on kõik hästi ja hea, ja see on super mugav
teadma, kuidas seda teha, kui sa kunagi pead tegema vähe, kiire asjad programmiliselt.
Näiteks, kui mul on vaja kirjutada programm, mis ütlevad,
paneb kõik osadeks Ma ei kavatse minna ja kirjutada seda C.
See saab olema pikk.
See saab olema selline valu, eriti kui seal on faile kaasatud,
nagu te näinud.
See on nii tore, et just nii palju koodi siin
suutsime rippida läbi faili, tõmmake kõik unikaalsed väärtused
ja printida neid tagasi viia.
>> Kuid oma ülesandeid, oma projekte,
kui sa oled hoone veebilehed PHP võim on see, et
meil hakkab meie PHP faile selles tõlk,
ja tõlk töötleb kõik endast PHP sildid,
jättes kõik muu puutumata ja sülitab välja tulemusi.
Me saame seda teha, et ehitada HTML programmiliselt.
Nüüd, kui me tagasi minna spec, viimane probleem spec
räägib see idee kontsentratsiooni
ja luues rippmenüüst,
mis te võib või ei taha seda teha, sõltuvalt sellest, mida oma lõpliku projekti teeb,
mis võimaldab kasutajal valida loendist kõik võimalikud kontsentratsioonid
nende ühe kontsentratsiooniga.
Nüüd on see selline valu kirjutada seda välja
ja pean seda kõike käsitsi, eriti kui sul on veenduda
et teil on kõik noolsulgudes õiges kohas ja kõik jutumärgid õiges kohas,
nii PHP seda saab teha programmiliselt ja seda saab teha väga kiiresti.
>> Vaatame, kuidas seda teha.
Me läheme avada uus fail.
Me läheme panna meie PHP sildid.
Me läheme seda kutsuda concentrations.php,
ja nüüd, kui sa seda teed, selline hea asi, mida mõelda
kui sa üritad segada ja sobitada oma PHP ja HTML
on figuring, okei, mis on osa, mida ma tahan programmiliselt luua?
Mis on see osa, ma ei programmiliselt luua?
On tõsi, et saate teha kõik oma HTML
sees PHP plokke.
Võite echo kõik HTML nagu stringid.
Näiteks kui ma tahan alustada teed valige sildid sees PHP
Võin öelda, kaja, ütleme valige nimi = kontsentratsioon,
ja siis allapoole Oleksin võinud teise kaja tag
või teise kaja nimetatakse tihedat valida.
See on üks viis seda teha, sest mis see on sõna otseses mõttes teeme
on välja printida seda stringi kui see läbib PHP tõlk,
nii on tulemus HTML.
Kui salvestada see fail on õige nüüd
ja ma saan php concentrations.php
vaata mis ma sain.
Mul on see avatud lähedale valige silt.
>> Kui ma seda teha ja ma ei päästa see tulemus faili,
öelda, concentrations.html-oota, see näeb välja nagu l on läinud üle teisele poole-
nüüd kui ma avada siin concentrations.html näed mul korrektse HTML-faili.
Kas see imelik?
Me kasutame PHP luua HTML, tekitada kehtiv HTML.
Kuidas me teeme seda on me lihtsalt võttes PHP prindi
HTML et me tahame seda printida.
See on sõna otseses mõttes, kuidas PHP veebilehed töötavad.
Kui külastate veebilehte, mis saadab sind midagi
midagi, midagi, midagi dot com kaldkriips index.php
arvuti on sõna otseses mõttes kutsutakse üles index.php,
töötab ta läbi PHP tõlk, ja mis iganes rämps väljub
ta on saatnud tagasi brauser ja ütleb hei, brauser, tõlgendab seda kui HTML.
Tore asi on see, et see võib valu pidevalt kirjutada kaja, kaja, kaja, kaja
ja pange kõik hinnapakkumisi niimoodi, et kui sa tahad kirjutada
HTML et see saab olema staatiline ise saate seda teha niimoodi,
pane see väljaspool, sulgege see,
ja siin sa panna ainult sees PHP sildid, mis sa tead
soovite programmiliselt luua, ja sel juhul on see nende valik silte
mis on valu tekitada.
>> Näiteks võiksime luua tuhat võimalust silte
tehes midagi sellist, $ i <1000, i + +
ja öeldes kaja optsiooni väärtus = $-Ups, ma ei saa seda teha.
Noh, seda proovida ja vaadata, mis juhtub.
$ I ja siis ütlevad $ i </ option.
Selle asemel et kirjutada, et valik tag tuhat eri aegadel
Ma kasutan PHP koodi genereerida see automaatselt, programmiliselt.
Kuidagi vahva. Jah.
Ma mäletan seda on mainitud kas loengu või ülevaadet,
aga mis vahe on jutumärkides,
need normaalsed ja need ühte asja?
See on tegelikult midagi, mida olen teinud valesti siin, et ma lähen näitan sulle.
Ülakoma ei luba mingeid erilisi märke,
nii et kõik sees ühe jutumärkides stringi tõlgendada grammatiliselt.
Kui mul oleks \ n sees ülakoma ja ma salvestada see näiteks
ja nüüd ma lähen siia alla ja käivitage see-
Oih, kus ma lähen?
Oh, see on, sest ma unustasin $.
>> Nüüd, kui ma avada-tegelikult, siin, me vabaneda kirjutades seda faili.
Me lihtsalt lugeda.
Siin näete, et mul on see sõnasõnaline \ n stringi, nagu ei tegelik uuele reale
ja samamoodi asemel tegelikult interpoleerimise väärtus muutuja
see andis mulle $ i ise, mis on selline valu.
Teistpidi on kasutada jutumärkide,
ja siis kui sa kasutada jutumärkides see tegelikult
korralikult interpoleerima väärtused kõik need muutujad siin
ja tunnustada ka seda \ n tuleb uus rida, mis on
ja ei \ n.
Kasutades ühe neist on tore, kui teil on
märgid, mida võiks tõlgendada kui erimärke, sest siis ei pea
põgeneda neid pidevalt.
Asjad saavad räpane, ja sageli, kuidas ma seda teha,
lihtsalt teha asju lihtsalt, on see, et kui ma lähen midagi
HTML meeldib minu koodi ma lisan ka edit jooksul ülakoma
ja seda siis kasutada konkatenatsioonioperaator
kuni concatenate muutujad sisse
See on teine ​​viis seda teha
kus meil dot et läheb ühenda see on string
koos seda see seda,
ja nüüd ma ei pea põgeneda need jutumärgid.
Ma ei pea kasutama seda kutti põgeneda.
Nad sõna otseses mõttes välja trükkida jutumärkides ja siis see kutt siin.
See on üks viis segamine kõike koos.
>> [Student] Ka siis, kui sa kordas gettype ei olnud jutumärkides üldse.
Õige, nii echo on selline eriline selles mõttes, et sa ei pea sulgudes.
Sa ei pea olema jutumärgid tingimata ümber muutujad,
nagu see on asjakohane väita echo $ i, ja see saab seda tõlgendada kui stringi.
See saab teha valatud, nii et me võiks seda teha, ja see on kehtiv ka, aga me ei vaja seda.
See on vabatahtlik.
Sel nädalal lahendamist tutvu palju sellist kraami
kuhu segamine ja sobitamine HTML PHP
lihtsalt meeldib see, ja nüüd, kui me liikuge tagasi ja me teeme selle
näeme, et meil on terve hunnik võimalus väärtused
mis just välja printida.
Me kõik oleme seda HTML, mis sai loodud väga kiiresti meie jaoks.
Ma jätan seda kasutada.
See on väga sarnane failide lugemisel, et me tegime varem.
>> On concentrations.txt fail, saab tõmmata maha CDN,
ja saate selle avada, kasutades sama foreach trikk, mis me tegime varem,
ja foreach sa lihtsalt echo valik ja ühendage
asjakohaste väärtuste, sobivaid võtmeid ja indeksid,
ja siis sa saad rippmenüüst et sõna otseses mõttes loob
programmiliselt teile kõik erinevad kontsentratsioonid Harvardi.
Mugav asi on.
On palju konfiguratsiooni kraami seda ülesannet.
Kui te pole seda teinud juba astuda järgmine pool tundi, tund,
mõnda aega täna kindlasti kindel,
kõndida läbi lahendamist spec,
vaata, mis toimub koos luua vhosts, kohaliku hosti, kõik see kraam.
Üks asi meelde kohe, et
enamikus probleem seab oleme käinud oma Dropbox kausta
ja siis allalaadimine lahendamist zip faili ja unzipping ta.
Selle probleemi komplekt sa ei taha.
Sa tahad minna sinna vhosts kataloog.
Sa tahad minna vhosts ja minna kohaliku hosti kataloogi piires,
ja see on koht, kus sa tahad lammutama zip faili,
unzip see ja saada valmis minema.
Sa pead järgige tähelepanelikult.
>> Kui teil on küsimusi, saatke e-kiri, postitada selle Arutle, tulevad tööajal.
Thanks guys. Järgmine nädal me lähed on läbivaatamise istungil viktoriini.
Nautige oma viimase lahendamist. Loodan, et kõik läheb väga hästi.
[CS50.TV]