[Powered by Google Translate] [Kafli 8] [Minna Comfortable]
[Nate Hardison] [Harvard University]
[Þetta er CS50.] [CS50.TV]
>> Velkomin á annað okkar í síðasta kafla.
Í þessari viku ætlum við að tala um PHP, og svo í næstu viku
við munum gera smá umfjöllun um Quiz 1.
Við ætlum að byrja á síðu 3 af vandamálinu setur pakki,
og við munum vinna með hluta af spurningum nokkuð fljótt.
Á síðu 3, byrjum við að tala um þennan mun á milli C og PHP
í þeim skilningi að PHP er virk tegund tungumál,
en C er statically tegund,
og hefur einhver virkilega fljótt gert allir erfðaskrá í eitthvað eins og PHP
eða Python eða Ruby áður JavaScript?
Algerlega nýtt? Allt í lagi.
>> Öll þessi tungumál sem ég nefndi bara
eru mjög ólík tungumál eins og C og C + + og Java
í þeim skilningi að þegar þú lýsa yfir breytu sem þú þarft ekki að lýsa
hvaða breytu er, svo í C vorum föst þurfa að alltaf að segja
þetta er að fara að vera int breytu, eða þetta er að fara til vera a char * breytu,
en með PHP, með Python, með Ruby,
með fullt af þessum fleiri nútíma tungumálum sem þú þarft ekki að gera það á öllum.
Þú lýsa bara breyta þinni, og í tilfelli af PHP
þú lýst því yfir að það er breytilegt með prefixing það með $ merki,
og þá tegund af breytu ræðst af hvaða verðmæti það er að halda,
sem er góður af kaldur.
Að leika sér með þessa litlu hluti, höfum við sýnishorn PHP kóða hérna
á milli upphafs og enda tags.
Við erum að nota þessa tegund af eins og HTML í þeim skilningi að
við höfum fengið þessar horn sviga hér til að opna og loka.
Þú munt sjá það með HTML.
Þú munt sjá sömu tegund af setningafræði með XML líka.
>> Þetta gefur til kynna upphaf PHP blokk.
Þetta? PHP er sérstaklega við PHP.
Við loka allt með> eins og heilbrigður.
Við skulum opna skrá í tækið okkar með hvað sem þú vilt.
Í þessum pakka segir að hringja dynamic.php.
Í sannleika, er hægt að kalla það hvað sem þú vilt, en að skrá nafn mun koma upp
og vera mikilvægt seinna, svo bara muna hvað þú kallar það.
Ég ætla að skipta yfir í tækið,
og ég ætla að fara að gera möppu fyrir
kafla 9 Ég tel að við erum á núna.
Og við förum í kafla 9,
og ég ætla að nota gedit.
Við skulum sjá, gedit, og ég ætla að hringja í minn dynamic.php.
Boom.
Innan dynamic.php, þar sem þetta er PHP skrá
og ég vil að keyra þetta í gegnum PHP túlkur
Ég þarf að byrja allt burt með þeim opnum merkjum,
þannig að ég ætla að byrja slíkar strax,
gefa mér smá pláss á milli tags,
og þá benda á þessa æfingu var að leika í kring með
þessi aðgerð kallað gettype svo gettype, þetta virka hérna.
>> Takið eftir að það er ekki undirstrik eða rúm eða bandstrik eða eitthvað svoleiðis
aðgreina á 2 orðum, fá og tegund, bara eitt orð að öllu leyti.
En hvað þetta mun gera er ef ég fara í breytu til gettype,
segja $ var eða $ x,
þetta mun segja mér svona í kembiforrit formi
hvaða nafn þessi tegund er.
Við ætlum að prófa hér.
Sérstaklega ef þú horfir aftur á pset sérstakur
Við höfum fengið nokkrar mismunandi línur af kóða hér.
Í fyrstu línu af kóða sem við frumstilla þennan breytu, $ var,
að vera jafn 7, og þá höfum við þetta printf línu
sem segir hey, printf var er auður.
Printf er ein af mörgum leiðum sem við getum prentað það í PHP.
Oft munt þú sjá echo fall notað í stað printf,
en printf við erum öll þekki hafa verið að forritun í C um tíma.
Það sem þú getur í raun gert er að við skulum sjá hvort afrita og líma virkar.
Ég ætla að gefa þetta reyna.
Við munum fara aftur yfir á tækið.
Jæja, og svona.
Og bil er lítið angurvær, en hér erum við að fara.
Við höfum fengið þennan kóða hér.
>> [Nemandi] Er það ekki góður stíll að flipi það?
Því miður?
[Nemandi] Er það hefðbundið að flipa það?
Einmitt, svo spyr Sam ef það venju að flipa það eða ekki.
Venjulega já.
Í þessu tilfelli sem ég hef valið að.
Heiðarlega, munt þú sjá mismunandi hluti milli mismunandi forritari.
PHP er oftast notuð oft samhliða HTML
og öðrum tungumálum, og svo stundum prentun mun líta smá funky
Ef þú undirlið í PHP byrja og enda tags.
Það fer í raun.
Í þessu tilviki er að afrita og líma ekki líma flipana í fyrir mig,
en það ákveðið er, eins og þú segir, gera það skýrara.
Allt í lagi, ef þú vistar kóðann í dynamic.php
þá hvað þú getur gert er að koma niður á flugstöðinni glugga þar sem ég er rétt hérna
í gedit, og að gera sem nemur safna
með að gera og svo að keyra kóða í C
allt sem þú þarft að gera með PHP skrá er að byrja upp PHP túlkur,
sem er lítið forrit sem heitir PHP,
og þau rök sem þú gefur því túlkur er skrá sem þú vilt túlka.
Í þessu tilfelli, dynamic.php.
Úpps, þar gerði ég að setja það?
Ó, ég setti það í kafla 9, og hér er ég. Það er ástæðan.
>> Nú ef ég keyrt það aftur
sjáum við að í fyrsta gettype virka kalli mínu
var er heiltala.
Í næstu Var er band, og síðan í þriðja einn Var er Boole.
Hvað er áhugavert um þetta er ef við flettir aftur upp sjáum við að
Þetta eru tegundir svipað þær sem við höfðum í C.
Við höfðum ints í C.
Við höfðum konar strengi í C,
svo strengir voru ekki algjörlega legit tegund í þeim skilningi að
CS50 band okkar var í raun það?
Því miður? Missy?
[Missy] Char *.
Já, það var þetta char * við notuðum.
Í upphafi misseris við vorum að nota band tegund,
en það var í raun char * undir hetta.
Við réttlátur tegund skilgreint það, en í PHP þessir strengir eru í raun gerð.
Það er ekkert meira af þessum char * tegund efni.
>> Þú munt sjá að við getum gert marga fleiri hluti með strengi
miklu auðveldara í PHP en við gátum í C,
og þá að lokum, höfum við þetta Boolean tegund, og mikill munur hér er að
ef við skruna niður sjáum við að nafn af þessum tegundum
eru nú heiltala, band, og Boolean stað int og bool,
og eins og þú ná sér í mismunandi forritunarmál,
miðað við að á einhverjum tímapunkti í lífi þínu sem þú verður að koma í snertingu við
mismunandi þær sem þú munt taka eftir litlu einkennileg tilviljun eins og þetta
þar sem C kallar heiltölur ints.
Sumir kalla það heiltölur.
Það eru önnur hugtök sem þú munt hlaupa inn.
Big int við sáum í dag í SQL.
Einnig eru númer og síðan bool, Boolean,
alls konar mismunandi þar.
>> Þetta er ekki hræðilega áhugavert en nú ætla ég að gefa þér smá tíma-
Ef við rennum aftur út til að vinna í gegnum þessa æfingu neðst á síðu 3
þar sem hún spyr hvað tegundir samsvara þessum gildum hér neðst.
Við höfum 3,50.
Við höfum þetta í hérna, sem er áhugavert.
Við höfum ekki séð það áður, þó ef þú hefur verið að fylgjast með í fyrirlestri
þú sennilega þegar vita hvað það er.
Þá höfum við þetta, þar sem þetta er svona angurvær.
Þú viðurkenna þetta.
Hvað er þetta í C?
Sam? Hvað myndi þetta gefa þér í C?
Það myndi opna skrá sem heitir dynamic.php og gera það læsileg.
Já, og hvað væri tegund af breytu sem við myndum tengja þetta? >> File stjörnu.
Einmitt, við viljum tengja það að skrá stjörnu.
Þetta er lögmætur PHP líka.
Setja það. Sjá hvað gerist þegar þú fara að í gettype.
Og þá einnig að athuga hvað null er, hvað það gæti verið í PHP.
Ég skal gefa þér nokkrar mínútur.
Þú getur bókstaflega afrita og líma þessi gildi í,
og þá munum við gera smá handahófi kalla á þig
og sjá hvað þú færð.
>> [Nemandi] Ég er með spurningu. << Já.
Í einum af fyrirlestrum Davíð sagði að það er eitthvað sem þú getur sett efst á skránni þinni
þannig að þú þarft ekki að slá í PHP í hvert skipti.
Hvað var að?
Hann var líklega að tala um pund Bang, kjötkássa Bang.
Það er tilskipun um að ef þú merkir skrá sem executable
þá er það sem það gerir þegar þú framkvæma skrá
það mun segja skel program
að nota PHP túlkur til að túlka innihald af the skrá.
Spurningin sé hvað var þetta sérstaka línu
að við gætu efst PHP skrá okkar að þurfa ekki að fela
þetta PHP línu eða í PHP stjórn þegar við viljum til að framkvæma skrá?
Og þú getur raunverulega gera þetta með fullt af mismunandi skrár.
Ég held að það fer eftir því hvar PHP tvöfaldur er geymt,
en oft er usr / bin / PHP góður staður til að byrja.
Þú getur fundið þetta út nákvæmlega með því að fara aftur niður í tækinu þínu
og slá út hvaða PHP.
The sem stjórn tölur út þegar þú ert að framkvæma tvöfaldur
eða stjórn þar sem viðkomandi skrá er.
Þetta segir mér að PHP er mjög aliasing í tvöfaldur skrá
sem er geymt í usr / bin, sem er þar sem að mikið af kerfi tvöfaldur eru uppsett.
Til dæmis, ef ég fletta upp á toppinn, nú að ég hef sett þetta #! lína hér
Ég skruna niður, og ég get að reyna að keyra
dynamic.php, en ég fæ þetta villa um leyfi sé hafnað,
og hvað það þýðir að þessi skrá er ekki eins og að gefa executable leyfi.
Það er ekki merkt sem skrá sem einhver getur keyrt.
>> Þegar þú hleypur að gera eða Clang og þú got executable frá því
að þýðandinn var sviði nógur til vita að hey, ég er að byggja upp executable.
Þú vilt sennilega að framkvæma það, svo það myndi sjálfkrafa stilla
heimildir fyrir þig.
Þetta er ekki raunin, þó, þegar þú býrð til venjulegt skrá frá grunni,
Ástæðan sem þú yfirleitt vil ekki hafa allir skrá á vélinni þinni sé executable,
þannig að þú ert í raun að fara í og ​​með höndunum gera það.
Auðveldasta leiðin til að gera það er með chmod skipuninni,
og chmod + x segir bæta executable hluti
vegna þess að það er lesið smátt, skrifa hluti og executable hluti,
R, W og X,
og segja chmod + x mun kveikja á the executable hluti
fyrir þá að skrá það við að skilgreina, sem í þessu tilfelli verður dynamic.php.
>> [Nemandi] Er að kveikt fyrir alla?
Við skulum athuga þetta út, þannig að hvernig myndi ég athuga að sjá heimildir?
Viltu vita hvernig ég myndi athuga að sjá heimildir um skrá?
[Inaudible nemandi svar]
Því miður? >> [Student] XSD.
XSD gefur okkur skrá í járnsög.
Listing allar skrár,-L, mun sýna mér allar skrár í möppu mína
konar í langan, fjölorður skráningu þeirra, og svo hér sjáum við að
þetta dynamic.php skrá
var síðast breytt 5 nóv á 16:21.
Eigandi þessa skrá er jharvard.
Það er notandi sem er innskráður
Það er notandinn sem ég er að vinna eins og,
og ef þú ert líka í tæki sem þú ert líka að vinna eins og jharvard notandi.
Þú ert í nemenda hópnum,
og þetta eru hlutir sem þú munt sjá nógu oft.
>> Við getum farið í fullt af smáatriðum hér,
en að mestu leyti það sem þú vilt að horfa á þegar þú ert að leita til að sjá
hvort skrá er executable er fyrst og fremst
notandinn sem á skrána, eigandi,
þannig að þetta jharvard, og þá höfum við
heimildir bita hérna til vinstri,
og hvernig á að lesa þetta er að síðustu hluti
oftast er notað til að merkja hvort-að minnsta kosti í þessu tilfelli
þetta síðasta hluti verður oft vera stillt á auglýsingu til að sýna
að skrá er skrá og ekki bara venjuleg skrá.
Þá eftirfarandi 3 bita hérna
ákvarða heimildir sem eigandi af the skrá hefur
Svo í þessu tilfelli jharvard, sem eigandi af the skrá, að lesa og skrifa þessa skrá,
en það er þjóta að segja að jharvard getur ekki keyrt þessa skrá.
Næstu 3 bitar eru í hópnum, þannig að þetta er nemendur hópur,
þannig að ef það voru margir notendur á tækinu mínu,
og við höfðum marga notendur sem hluta af nemendum hópsins,
þá geta allir lesið þessa skrá, en þeir geta ekki skrifað það,
og sömuleiðis einhver annar, heimurinn
getur aðeins lesið þessa skrá eins og heilbrigður.
Það er gott, langt writeup um þetta,
svo þú getur lesið á netinu.
Í setja vandamál sérstakur við förum inn í þetta nánar.
>> [Nemandi] er 218 vísa til í heiminum?
The 218 er-burt the toppur af minn höfuð ég gleymi,
en nei.
Við skulum sjá. Ég blanking á það núna.
Baka það sem við vorum að fara að gera við þetta chmod + x
þar sem við vildum að gefa dynamic.php leyfi executable,
og spurningin var hvort þetta myndi gefa executable leyfi öllum
eða bara jharvard, og við getum séð það með því að
keyra skipanir og slá ls-l,
og nú erum við að sjá að það er merkt sem executable.
Þú sérð að það var litabreyting.
Nú dynamic.php er skráð í grænt,
og það lítur út eins og svar við spurningu er það, Charlotte?
[Charlotte] Aðeins jharvard. >> Aðeins jharvard, já.
>> Ef við vildum að snúa executable hluti á fyrir alla
hvernig gætum við gert það?
Allar hugsanir? >> A + x?
Já, nákvæmlega.
Charlotte segir að við getum gert chmod a + x á dynamic.php,
og nú ef við keyra LS-l við sjáum að executable bits
eru örugglega kveikt á fyrir alla.
Og þú getur raunverulega gera gagnstæða um þetta, svo að þú geta snúa það burt fyrir alla
með mínus.
Nú það er slökkt á, og nú getum við snúið aftur á fyrir jharvard
þannig að við getum í raun að keyra það núna,
og nú þú sérð þegar við að keyra kóða í # sérstakt! lína efst,
#! lína, sagði skel,
sagði flugstöðinni okkar hey, þegar skrá er keyrt,
nota / usr / bin / PHP til að túlka þessa skrá
og þá prenta framleiðsla.
[Inaudible nemandi spurning]
Jú, láta mig fletta aftur upp. Alveg eins og þetta.
Þú munt sjá allar þessar tilskipanir að byrja með þessa pund og svo upphrópunarmerki,
stundum kallað klabbið, kjötkássa Bang.
>> [Nemandi] Hvernig getum við keyrt það með PHP dynamic.php áður en við gera það executable?
Spurningin var hvernig getum við keyrt þetta með PHP tvöfaldur
en dynamic.php er ekki executable?
Þetta er frábær mikilvægt vegna þess að þetta er einmitt hvernig
það er að fara að vinna þegar þú skrifar vandamál setja 7.
Flest af þeim tíma PHP skrár eru ekki beint executable.
Leiðin sem virkar er vegna þess að það er PHP tvöfaldur sem er executable.
Túlkurinn er hlutur sem er verið að framkvæma,
og svo hvað það er að gera er bókstaflega slurping á öllu efni
á dynamic.php skrá okkar og fara á milli lína
og keyra þær skipanir, svo það er með því að nota PHP skrá okkar
sem lista af leiðbeiningum.
Það er ekki beint framkvæmd þess.
Það er þar sem við segjum að þessar skrár eru túlkuð á hlaupa tíma.
Það er hlaupa tími tungumál í staðinn eitthvað sem er ákvarðað á saman tíma,
ekki saman tungumál eins og C.
>> Er there a vegur til að fá tíma hlaupa tungumál til að starfa eins og ef það er saman tíma tungumál,
eins og ef þú ert allt gangi gert á þjóninum
frekar en-þú veist hvað ég meina?
Já, svo er spurningin
er there a vegur til fá að keyra tíma tungumál til starfa meira eins og setja saman tegundir Tími tungumálum?
Og það eru, ég meina, það er virkur svæði rannsókna fyrir a einhver fjöldi af þessum fyrirtækjum.
Ég tel Facebook hefur gert mikið af vinnu með PHP
og samantekt það niður, sem gerir það hraðar, fínstilla það
síðan á síðuna þeirra er byggt á PHP.
Ef þú hefur verið eftirfarandi node.js yfirleitt,
sem er eins konar JavaScript túlks
að vera fær um að keyra JavaScript utan vafranum, utan vafranum þínum,
því jafnan JavaScript myndi bara hlaupa innan Firefox eða Króm,
og það væri hægt að nota til að gera flott fjör gerast á vefsíðu
og gera vefsíðu þína dynamic.
Það hefur verið byggt á fullt af vinnu sem Google hefur gert
að gera JavaScript og C + +
binda saman, þannig að það er mikið af virkum rannsóknum til
fá þessi tungumál til að eiga samskipti við og hagræða þeim,
fyrst og fremst vegna þess að svo margir geta kóða í PHP og JavaScript
vegna þess að það er mun auðveldara.
Það er a einhver fjöldi ágætur. Þú ert ekki með ábendingum.
Þú ert ekki með tegundir fljótandi í kring.
Þau vildu að fá ávinning af þessum þýða tungumálum tíma
með öllum tegund eftirlits og hraða og lægri minni notkun og allt að
meðan enn viðhalda sveigjanleika og vellíðan af nota af þessum nýrri sjálfur.
>> Til baka upprunalegu áætlun okkar af árás.
Við höfum fengið nokkrar af þessum spurningum hér í vandamál setja sérstakur okkar.
Við skulum fara í gegnum þá raun fljótt, og við munum fara um herbergi.
Charlotte, hvaða tegund er 3.50?
[Charlotte] Það er tvöfalt. >> Það er tvöfalt.
Jimmy, hvað er þetta næsti? >> Fylki.
An array, ógnvekjandi, og Jared, hvað er fopen?
[Jared] Það er auðlind. >> Það er auðlind.
Það er góður af a nýr einn, ekki skrá stjörnu, ekki skrá.
Það er auðlind er gerð í PHP,
og ég er hryggur, Ella, síðasta null er það?
Null.
Null, hvernig er það spelt í PHP? >> Sama hátt.
Sama hátt, höfuðborgum? >> Já.
Já, allt í lagi.
Hér förum við, að við höfum fengið tvöfalt, höfum við fengið fjölda,
við höfum fengið auðlind, og þá höfum við fengið null.
Við skulum sjá nú þú séð-
við skulum sjá, svo núna er ég giska á það sem ég vil líka að gera er að draga upp
Þessi vefsíða hérna, þetta php.net / handbók,
Svo ef þú krakkar afrita það og opna vafra.
Ég ætla að draga upp Chrome, setja það inn
Mig langar að sýna þér þetta ekki bara af því að
við getum talað allan daginn um gerðir og allt það gaman efni
heldur vegna þess að þetta er PHP handbók,
og það eru fullt af PHP forritari þarna úti.
There ert a einhver fjöldi af PHP vefsíður þarna úti,
og þar af leiðandi, það er mikið af gögnum á PHP,
og handbók, þetta php.net, er mjög góður staður til að fara
þegar þú ert með spurningar um hvað er besta leiðin til að gera X í PHP
eða hvað er fall út?
Bara svona að fá kunnuglegur með það sem þetta lítur út eins vegna
þú munt vera að koma hingað oft dálítið fyrir vandamál setja 7.
>> Ef þú endar að gera lokaverkefni sem notar PHP
þetta verður að vera staður sem þú munt verða mjög vel kynnt.
Oft er leiðin fólk að gera þetta sem þeir nota Google til að leita á síðuna,
og þeir nota the leita kassi sem er hérna efst í hægra, sem er eins konar lítill.
Ef þú ert Googling kring fyrir eitthvað að gera með PHP og þú sérð
eitt af handbók tengla skjóta upp þú getur venjulega treyst á að
sem nokkuð gott úrræði.
Awesome, svo út af þessum tegundum, bara út af forvitni,
hvaða verkefnum höfum við ekki séð?
Nokkuð sem við höfum ekki séð hér?
[Nemandi] Resource. >> Við sáum auðlind með fopen símtali.
[Nemandi] Hlutir. >> Hlutir sem við höfum ekki séð fyrir víst.
Callbacks við höfum ekki séð.
There ert sumir af þessum gervi-fugla.
Við ákveðið bara sá heiltala og tvöfaldur.
Við vildum ekki sjá sumir af öðrum, þannig að ef við smellur á heiltölur
sjáum eru einhverjar aðrar heiltölur sem þeir hafa hér?
Eru þeir-svo heiltala, heiltala, heil tala.
Sum tungumál hafa stærri heiltölu tegundir,
eins og við sáum á MySQL dag var int og svo stór int.
Cool.
>> Svo, PHP handbók.
Við skulum fara aftur til vandamál setja sérstakur okkar, og við munum nú að fletta niður til síðu 4.
Eitt af því sem gerist þegar þú færð þessi tungumál
sem hafa ekki þennan fasta slá svo þessum tungumálum sem þú ert að lýsa
gerð á upp breytu framan
er að fá tilvik þar sem þú getur byrjað með breytur af mismunandi gerðum
samskipti við hvert annað,
og PHP er þetta hlutur þar sem það reynir að gera
sem hann telur vera skynsamlegast að gera
þegar þú hefur 2 mismunandi gerðir samskipti við hvert annað.
Til dæmis, ef við lítum á þessar línur af kóða hérna
þú sérð að við höfum fengið það sem gerist þegar
við að reyna að bæta strenginn 1 til tölunnar 2.
Hvað gerist ef við reynum og bæta við streng sem er ekki tölugildi
heldur raunverulegt stafir, CS til fjölda 50?
Þá munum við sjá er eitthvað annað sem gerist þar
í stað þess að bæta við streng að tala við erum að bæta við númer streng,
og svo framvegis og svo framvegis til að þeim stað þar sem við erum að fá
einhvers konar undarlegt efni hér þar sem við höfum fengið 7 + satt.
Hvað Heck er það?
>> Ef þú krakkar fara á undan og líma nokkur af þessum kóða í tækið þitt.
Þú getur haldið það í dynamic.php.
Við munum sjá hvað gerist.
[Nemandi] Bara nota prenta ekki printf?
Já, þannig að þú munt komast að því að prenta er líka gild virka fyrir prentun í PHP.
Það eru til margar mismunandi leiðir til að gera það.
Við munum sjá með a par af dæmi seinna þegar við byrjum að tala
um einstaka vandamál sem við erum að fara að skrifa
og þá er styrkur vandamál sem við erum að fara að skrifa
að jafnvel þó að við höfum fopen og fclose
það er oft ekki einfaldasta leiðin til að lesa í innihald skrá.
PHP hefur a einhver fjöldi af þessum C-eins holdovers.
[Nemandi] Þegar ég setti í öllum 6 af þeim hlutum sem ég fæ bara eitt númer sem framleiðsla.
[Nate H.] Þegar þú setur í öllum 6 af þessum hlutum.
Við skulum sjá er það vegna þess að það er hugsanlega-
eitt er að þessi prenta símtöl eru ekki hætt í lok með nýjum línum.
Það er engin ný lína aðgreina hvert þessara prenta símtöl,
svo kannski þú ert að fá einn fjölda,
og það er í raun bara amalgam af nýjum stöfum línu.
[Nemandi] Jæja, hvernig geri ég skugga-
Jæja, það eru fullt af mismunandi vegu.
Þú getur handvirkt setja í prentun á nýju línu staf,
bergmál af nýja línu staf,
prenta á nýja línu.
[Nemandi] Svo echo er það sama og printf?
>> Printf er eins C printf
þar sem þú ert að prenta í sniðinn band.
Þú ert að gefa það snið band og síðan öll tákn breytum.
Það er oft eitthvað sem er ekki notað-
við skulum sjá, sem höfnun,
Ég er minna kunnugur PHP en ég er með öðrum tungumálum vefnum,
og þegar ég hef forritað í PHP Ég yfirleitt ekki nota printf
því mér finnst það hraðar til að nota innskot band getu sem það hefur
sem við förum inn og ég skal sýna þér bara annað,
en í C við höfum konar að gera þetta hacky hlutur að fá það til að prenta út almennilega.
Þú getur í raun sett breytur beint inn í strengi í PHP.
Printf er góður af of lengi fyrir það sem ég geri venjulega. Já, Ella.
[Ella] Almennt ef þú færð Þáttunarvilla þýðir það-
eins og á C þetta er ekki sagt þér nákvæmlega hvar mistök er og hvað það er,
svo þýðir það líta í gegnum allan kóðann og reikna það út?
Það er yfirleitt markvissari en það.
Ég held að í því tilfelli var lítill burt,
þannig að ég held að í því tilfelli sem við vantaði semíkommu.
Hún var að reyna að gera skilningarvit af öllu,
svo eins og þessir túlka tungumál, túlkurinn er að fara að reyna
og gera sitt besta til að gera allt vinna á viðeigandi hátt.
>> Þú munt sjá, td í JavaScript
Þú munt oft línu yfirlýsingar enda með semíkommu eins og þeir gera í PHP,
rétt eins og þeir gera í C.
Í JavaScript sumum JavaScript túlka
í fullt af vöfrum mun setja í semikommum fyrir þig
Ef þú skyldir vera að vantar þá.
Þær reyna og mæta einhverjum sloppiness þinni hálfu.
Það er þar sem það gæti verið að reyna og reyna og reyna að gera hlutina vinna,
og þá að lokum það verður að fá til a benda hvar það segir allt í lagi,
Ég get ekki gert það vinna bailing, og það er þar sem þú munt fá línu númer
þessi kann að virðast svolítið burt úr nákvæmlega stað.
Jæja, þannig að við skulum fara í gegnum þetta mjög fljótt.
Við vinstri burt með Ella, þannig að við skulum fara yfir til Missy,
og Missy, hvað þýðir prentun band 1 auk fjölda 2 gefa þér?
[Missy] 3. >> 3.
Er það skynsamleg? Konar?
Er það að gefa þér númerið? Er það að gefa þér band?
[Missy] A tala. >> Það er tala.
En það er prentun það, svo það er að fara að gefa þér einhvers konar band.
>> Eitt sem við getum gert til að stöðva this út
er ef við gerum $ var = 1 + 2
og þá segjum við bergmál af gettype,
þannig að við erum að nota þriðja konar prentun hérna.
Nú getum við séð hvað gerist hér.
Hér er það sem við höfum fengið við fengum heiltölu úr þessu.
Jafnvel þó að við vorum að bæta þetta band til að tala,
við fengum ekki að fá band út af því, eins og Missy sagði.
Við vorum að fá heiltölu.
Jæja, þannig að við skulum sjá, næst, Kevin.
CS + 50? >> [Kevin] 50.
[Nate H.] 50. Er það skynsamleg?
[Kevin] Já.
[Nate H.] Hvers vegna? Hvers vegna er það skynsamleg til þín?
[Kevin] Vegna þess að það er bara að hafa band, hafa númer gildi núll.
Já, frábært.
Konar óljós aðstæður, en það er gott að vita hvað gerist.
Stella, hvað gerist næst með númer 1 + band 2?
[Stella] 3. >> 3 aftur.
Og í þessu tilfelli, fáum við a band eða númer?
>> Við skulum gefa þetta reyna.
Hver hraðar en ég fá svar? Charlotte?
Ó, ég didn't-lagi, við skulum sjá, við erum að fara að gera slíkt hið sama tegund af hlutur
þar sem við höfum fengið fjölda auk band, og við erum að fara að enduróma tegund,
sjá hvað við fáum.
Við fáum einnig heiltala.
Það skiptir ekki máli hvort er band sem maður er að tala.
Við erum enn að fara að fá heiltölu.
Það er samt að fara að gera það sem við gætum átt von á.
Allt í lagi, svo Sam, hvað um 90 + 9 flöskur af bjór á vegg?
[Sam] 99. >> 99.
Engar flöskur af bjór á vegg, þó.
Það gefur okkur aðeins meiri upplýsingar um hvað er að gerast.
[Sam] Ef þú hefðir skrifað 9 í bréfum
þá hefði 90, ekki satt?
[Nate H.] Já.
Spurningin var hvort við myndum skrifað 9 út sem N-I-N-E
hefðum við fengið 99 eða 90?
Við myndum fá 90.
Það er bókstaflega bara að leita að stafa stafi.
Það er ekki nógu klár til að þekkja fjölda orða og þessi efni. Já.
>> [Nemandi] Er það svo hlutur sem typecasting í PHP?
Það er, og það er nákvæmlega eins og þú myndir gera það í C.
Hvað um 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Já, svo það gæti komið á óvart um þetta?
Hvað myndi gerast ef þú gerðir þetta sama tegund af hlutur í C,
ef þú gerðir 10/7 í C?
[Charlotte] Það vildi bara gefa þér-eftir því hvernig þú typecasted ég giska
það myndi gefa þér aðeins takmarkaðan fjölda af tölustöfum eftir aukastaf.
Já, þannig að takmarkaður fjöldi talna eftir aukastaf.
Hvað annað gæti verið-myndi það gefa þér einhverjar tölur eftir aukastaf?
Oft ekki, svo aftur, allt eftir því hvernig þú ert að typecasting það
það mega eða mega ekki breyta því í fljótandi lið númer.
Hér var það svona gott að það gerði.
Hefði við sýnt þér þetta aftur þegar við byrjuðum að gera þessa tegund af efni í C
það myndi sennilega hafa gert smá meira vit
að það er ekki bara að fara í 1.
Og svo að lokum, Jamie, hvað um 7 + satt?
[Jamie] 8. >> 8.
Hvað þýðir það?
Ég held að það gefur bara satt verðmæti 1.
Já. Hvað gerist ef við að breyta því að falskur?
[Nemandi] 7.
Já, þannig að muna hvar við tölum um þessar tvöfaldur gildi,
1 vera á, 0 vera burt?
Nú höfum við satt er 1, 0 er rangt,
og þú getur ekki séð þetta í C dæmum sem við höfum gert þetta síðasta önn,
en sögulega bool tegund í C hefur ekki verið alvöru gerð,
þannig að fólk hefur notað 0 og 1 í staðinn satt og ósatt.
Þetta er birtingarmynd þess.
>> Allt í lagi, þannig að einn mikilvægur hluti um allt þetta
er að við höfum þessar mismunandi tegundir.
Þeir geta samskipti við hvert annað.
Þeir geta oft samskipti við hvort annað á þann hátt sem er gott, eins og við höfum séð hér.
Það er gott að vera fær um að hafa band 1 og númer 2, bæta við þá saman og fá 3.
Það er skynsamlegt.
Hins vegar þegar þú ert að skrifa vefsíður, og sérstaklega þegar þú ert að vinna
notandi inntak, segjum svo að þú hafir skrifað vefform
sem safnar upplýsingum frá notanda og þá fer að vinna hana
á bak endir, á miðlara megin í PHP kóðanum þínum
Ef þú ert að búast við að gildi sem notandinn slegið í og ​​lögð
til að mynda að vera heiltala eða að vera fljótandi lið númer eða eitthvað svoleiðis
þú þarft að sérstaklega köstuðu
og þá gera einhvers konar eftirlit.
>> Þú vilt ekki bara að treysta á þetta Juggling tegund kerfi til að gera hlutina upp,
sérstaklega af öryggisástæðum og bara fyrir robustness af vefsvæði þínu.
Bara eitthvað til að hafa í huga að þegar þú ert að meðhöndla formi gagna,
eitthvað sem kemur í pósti eða fá superglobals
ganga úr skugga um að þú sannprófa alltaf það og umbreyta því og typecast það.
Og rétt eins og við vorum að tala um stund síðan að typecasting
í PHP er nákvæmlega það sama og í C þar sem þú hefur sviga
og þá tegund.
Hafðu það í huga.
Ein aðgerð sem mun koma sér vel þegar þú ert að gera þetta
er við höfum verið að nota og þetta er góður af eins og að hliðar-
við höfum verið að nota þessa gettype virka hérna
að reikna út hvaða breytu,
og á meðan þetta er vel fyrir kembiforrit og til að sjá hvaða tegund breytu er
þú vilt ekki að nota það, til dæmis, í ástandi þar sem
þú ert að skoða til að sjá hvort gettype á $ VAR = heiltala gera eitthvað.
Þetta er slæmt, slæmt, slæmt.
Í stað þess að það eru þessar aðgerðir sem kallast er heiltala, er band,
er fylki sem þú vilt nota í staðinn, þannig að í þessu tilfelli
það sem ég myndi vilja gera í stað þess að þetta strákur hérna
er að nota er heiltala var.
Og þeir eru oft nefnd er is_ * í þeim skilningi að þú getur skipta um * við heiltölu,
band, et cetera, og bara til að vera viss um mjög fljótur
þetta er int PHP.
Útlit eins og þú getur gert annað hvort er int eða er það er heiltala sem?
Já, alias, svo int heiltala samheiti.
Cool.
>> Hvernig eigum við að gera?
Við skulum taka upp hraða svolítið.
Nú ætlum við að tala um fylki, þannig að þú getur séð
Í næsta hluta af sérstakur við tölum um hvernig fylki í PHP
eru örlítið öðruvísi en þeir eru í C.
Í sannleika, þá eru þeir eins konar amalgam
fylki sem þú hefur komið að þekkja og elska í C
þar sem allt er af sömu gerð
geymdar í röð og contiguously í minni,
og þú hefur þessar tölur og vísitölur.
Þú hefur vísitalan 0, 1 er vísitala neysluverðs, vísitölu 2,
og þú geyma gildi á þessum vísitölum.
Þú líka í C, þegar þú skrifar Speller, a einhver fjöldi af þú
gerði kjötkássa borð nálgun, og þú sá að við höfðum
annars konar geymslu þar sem við vorum að kortleggja
lykillinn að því að í gildi, þannig að þegar þú reyndir að geyma eitthvað í kjötkássa töflunni
þú þurftir að tilgreina að þú vildir geyma það með tilteknum takka
og þessi lykill ákvarða staðsetningu á gildi og þar sem það væri geymt.
Þú hefur konar fengið báðum þessum hugtökum að gerast á sama tíma í PHP array
og þar af leiðandi köllum við oft þessi tengin fylki
þar sem við erum að tengja lykil í gildi.
Í næsta hluta við tölum um einföld PHP array
þar sem við höfum takka A, B, og C,
allir strengir, kortlagning á heiltölur 1, 2, og 3.
Og þú getur haft lykla af mismunandi gerðum.
>> Hægt er að hafa nokkur lykla sem eru strengir, sumir lyklar sem eru heiltölur.
Hægt er að hafa gildi af ýmsum gerðum.
Hægt er að hafa gildi sem er strengur, gildi sem er heiltala,
gildi sem er hlut eða annað fylki, til dæmis,
allt í sama array mótmæla, sem er skrýtin tilfinning.
Þú þarft ekki að hafa array sem er bara ein tegund af frumefni á það.
Þú getur haft margar mismunandi hlutir að gerast þar.
The annar hlutur að hafa í huga er að þegar þú sérð eitthvað svona í kóðanum þínum,
sem gildir PHP til að lýsa fjölda bara svona, 0, 1, 2, 3, 4, 5,
sem mun lýsa að frumstilla $ Arr að þetta fylki.
En hvað þú ert í raun að fá undir the hetta er þessi konar óbeina
kynslóð lykla þar sem við höfum fengið 0 til 0, 1 til 1, 2 í 2, 3 3.
Og það kemur í ljós að jafnvel ef þú hafa óákveðinn greinir í ensku fylking svona gaur upp hér
þar sem þú ert með, B og C sem lykla
og þá getur þú byrjað að nota Push array aðferð til að byrja að nota þessa array eins og mánudaginn,
svo þú getur séð að þetta array mótmæla, þetta fylki er í raun að verða of mikið.
Við getum notað það eins og fylki. Við getum notað það eins og a kjötkássa borð.
Við getum notað það eins og a stafla.
Þegar þú byrjar að þrýsta hluti á þessu fylki
The fyrstur hlutur sem þú ýta á þetta verður vísitala 0 og þá vísitölu 1 og vísitölu 2.
Hægt er að fá þessa tegund af óbeina kynslóð lykla
nema þú tilgreinir þá sérstaklega.
Leiðin sem þú tilgreinir takka sérstaklega, að sjálfsögðu, með því að nota þetta krappi tákn,
sem er svipað og fylki nema í stað þess að aðeins að leyfa
heiltala vísitölur hér, nú erum við að leyfa neitt.
Ef þú vilt lykillinn að vera strengur, vilt þú að tilgreina það svona.
Ef þú vilt það til að vera int, tilgreina þú það með int sem þú vilt nota.
>> Spurningar um það svo langt?
Einn af the ágætur hlutur óður í þessa hugmynd
er að þú getur bara alltaf að hafa eitt gildi geymt með ákveðna takka.
Ef við förum aftur yfir til okkar tæki-láta mig eyða af þessu efni.
Og við skulum segja að ég frumstilla array að vera 0, 1, 2, gert.
Ef ég veit nú að, ​​til dæmis, ef ég echo $ Arr [0]
Ég ætla að fá gildið 0 prentað út,
og þar er bara alltaf verið eitt gildi geyma ákveðna takka
ef ég geyma eitthvað á $ Arr [0], segja,
þá veit ég hvenær ég echo $ Arr [0] aftur
Ég ætla ekki að fara að fá 0 prentað út eins og áður.
Ég ætla bara að fara að fá.
Þannig að þetta er í rauninni að segja að ég get ekki hafa $ Arr [0] geyma 2 mismunandi gildi.
Það er ekki hægt að geyma bæði 0 og band í, svona bókstaflega stað
hvað var á $ Arr [0] áður.
The ástæða ÉG koma þessu upp er að keyra það, sjá hvað gerist.
Sjá hér að ég fékk 0 prentuð út og síðan hérna.
Það er engin ný lína þar vegna þess að ég var latur og ekki setja það inn
Hvað er kaldur um þetta er að við getum notað þetta sem leið
að ná þessari hugmynd um setja
þar sem við getum ekki verið með marga lykla innan fylki.
Við getum ekki sömu takka innan fylkisins.
Ég get ekki inni 0 og gildið 1 og lykill 0 og gildi í
eða lykill 0 og verðmæti satt.
Takkarnir eru allt-það er bara 1 inni í array.
Jafnvel þó þú getur haft sama gildi geymdar
mörgum sinnum í fjölda undir mismunandi lykla
það er ekki hægt að hafa sömu lyklana mörgum sinnum í PHP array þínu.
>> Ef við lítum á þetta næsta vandamál, unique.php,
þar sem við viljum að opna PHP skrá
inniheldur lista af strengjum, eitt band á línu,
og við viljum finna allar einstaka strengi í þeirri skrá
allt sem við þurfum að gera er að nota eitt af þessum PHP fylki
og nota strengina í skránni sem lykillinn að þessu fylki
og halda að uppfæra fylki okkar sem við geyma þessar nýju lykla.
Eins og við að lesa hverja línu út af skrá sem við getum geymt það í fylking,
og í lok munum við hafa eins og lyklar okkar í fylking okkar
öllum einstaka strengi innan skrá.
Er það skynsamleg?
Við skulum sjá hvernig þetta virkar.
Við erum að fara að opna, í samræmi við sérstakur, ný skrá sem heitir unique.php.
Opna. Úbbs, miður, nýja skrá.
Við ætlum að byrja það burt með sama byrja og enda tags.
Við erum að fara að vista það í kafla 9, og við erum að fara að kalla það unique.php.
Jæja, nú auka nánd
Hugmyndin hér er að opna skrá
lesa í samræmi skrá um línu.
Fyrir hverja línu í skrá
við verðum fylki þar sem við höfum
línan sem lykill okkar.
Og svo þegar við komum að enda hér
Lyklar $ Arr eru einstaka línur
af skrá þar sem við vitum að ef ég setti línu inn í þetta fylki
mörgum sinnum og það verður bara að halda vega þyngra gamla gildi,
og við getum í raun sett array lína inn sem sér bara svona.
>> Þetta er skrýtin tilfinning.
Við erum að geyma sama lykilinn gildi par aftur og aftur og aftur,
en þar sem við erum að tryggja að það verður aðeins 1 lykill kallast lína
þannig að ef við erum með skrá sem segir-skrá af hávaði dýra og það hefur woof, woof,
meow, meow, Moo, Moo, og í hvert skipti sem við lesum dýr hávaði út
eins woof og geymum það í fylking okkar fáum woof, og þá í annað sinn
geymum woof mun skrifa í fyrsta skipti sem við höfum geymt það.
Í lok við munum bara hafa einn færslu í array
fyrir hvert dýr hávaði í dýra hávaði skrá okkar.
Ert þú krakkar finnst þess fullviss að þú getur takast á við opnun a skrá í PHP?
Ein leið til að gera það-við skulum fara yfir þetta fljótt-ein leið til að gera það
er með fopen, eins og við sáum áðan.
Þú getur fopen some_file.txt.
Þú getur opnað hana í lesa háttur, bara eins og í C.
Það er eitt fullkomlega góð leið til að gera það.
Þú líka þá að lesa í skránni línu fyrir línu
hafa sömu störf, margir af þeim, sem þú gerðir í C.
Þú hefur fgets.
Þú hefur feof, þó að við gerum ekki eins og að nota það
því, muna, það var ekki mikill í C.
Þú getur gert það á sama hátt,
en hér er raunverulega kaldur hlutur.
Því miður, ég vil ekki að gera $ skrá, en það er fall sem heitir skrá í PHP,
og þetta virka rétt hér er kaldur því það les allt innihald
skrárinnar sem þú tilgreinir, svo some_file.txt,
les allt innihald þessa skrá í fylki
og þá er hægt að iterate yfir það, sem er laglegur nifty.
>> Ef við förum td að vefur flettitæki okkar
og við lítum á Google PHP skrá
Þú getur séð hér að handbók okkar segir að skrá les allan skrá í fylki,
og við getum file_get_contents að skila efni á skrá sem band,
en yfirleitt bara að fá það sem fylki er mjög gott vegna þess að það sem það gerir
það brýtur það upp þannig að hver þáttur
í fylkinu er ein lína í skrá,
þannig að ef við lítum á skrá 0, það er fyrsta lína skrárinnar.
File 1, annarri línu, skrá 2, þriðju línu, og svo framvegis og svo framvegis.
Væri ekki gott ef það var allt sem þú þurfti að gera í C?
Pretty nifty.
Davíð sýndi það í fyrirlestri, og orðfæri sem hann sýndi var
að til viðbótar við staðal okkar til lykkja-í PHP höfðum að
fyrir ($ i = 0, i <10, i + +),
og þú getur gert þetta í PHP líka, sama-
við höfum líka þetta flott reisa heitir framhandleggur.
Framhandleggur er mjög vel þegar iterating yfir fylki eða þessi gögn uppbygging
vegna þess að það gerir þér kleift að draga úr hvor þáttur í fylki
án þess að þurfa að höndunum gera flokkun sjálfur,
án þess að þurfa að höndunum búa til vísitölu breytu, hækka það,
draga úr gildi í fylki á þessum tímapunkti, því það er mjög algengt að gera.
>> Þú sennilega hafa gert það tonn af tíma þegar þú varst að gera C efni
á önn, svo við þessu framhandleggur
við getum lykkja yfir þessu skrá fjölda,
og setningafræði er sem við viljum nú lykkju á þessu fylki
og tilgreina að breyta ætlum við að nota til að geyma
þáttur í þessu fylki á staðnum, staðbundið gildissvið þessarar framhandleggur lykkja,
er að við erum að fara að kalla það lína.
Ef það er skrá af bara orð og það er eitt orð í línu
við gætum kalla það orð eins og heilbrigður, í raun bara að gefa þessu nafn,
hvað sem þú vilt kalla það,
og þá inni í lykkju sem þú getur gert hvað sem þú vilt með þessari breytu línu.
Ef það er ekki nóg til að fá verðmæti í fylkinu og þú vilt líka að fá
vísitölu með það að þú getur tilgreint nafn vísitölu
og gildi, og nú þú hafa aðgang að 2 breytum.
Þú hefur $ i og lína
þar sem $ I er vísitala á fjölda,
og lína er lína sem þú sóttir af skrá.
Til dæmis, ef við vildum að prenta út echo línu 0 á skránni sem þetta,
við gætum gert það bara svona, "Line $ i á skrá er $ lína,"
og hér er eitthvað sem við höfum einnig ekki séð enn hvort
þar sem ég hef bara alveg sleppt yfir% d fyrirtæki þetta allt% s
sem við þurftum að takast á við í C, og í staðinn hef ég farið beint til
skrifa breytur í samræmi á streng minn.
>> Þetta er kallað breyta innskot, band brúun
þar sem þú ert troða breytum rétt í, og PHP túlkur
er sviði nógur þegar það er að lesa í gegnum streng sem hefst með gæsalöppum-
ekki einn vitna, með einn skráð strengi sem þú getur ekki gert þetta-
en með tvöföldum skráð strengi þegar hann les í gegnum það er að leita að breyta.
Það er veiði þá niður, og ef það lítur breytur það mun taka gildi breytunnar
og efni það í band ef það er hægt að umbreyta það inn í a band framsetning,
sem er nokkuð sniðugt.
Fyrir nú, við skulum athugasemd út afganginn af öllu,
vista þetta, og hvað við getum gert núna er að við getum opna skrá
að við getum hringt some_file.txt-skulum búa til nýja skrá-
og við getum sett í fullt af bull efni hér bara að prófa allt út,
vista það, kalla það some_file.txt, eins og ég er að gera upp hér efst,
og nú ef ég súmma út bara til að ganga úr skugga um að allt sé í sömu möppu-
það lítur út eins og ég hef unique.php og some_file.txt í sömu möppu.
Ef ég keyra PHP unique.php
sjá hvernig það prentar út hverja línu í skrána mína og hvað línan er?
>> Það er nokkuð öflugur, ekki satt?
Look, það tók 3 línur af kóða til að opna skrá.
Jæja, 4 línur af kóða. Ég get ekki treyst í dag, greinilega.
En í raun bara 2 áhugaverðar línur af kóða, því hin 2 voru hrokkið axlabönd,
en í þessari miklu kóða við gátum til að opna skrá, iterate gegnum það,
draga út línuna fjölda og línan sjálf
og prenta það út.
Flott efni. Charlotte.
[Charlotte] Ég er með spurningu um setningafræði.
Svo framhandleggur fjallað hvert einasta lína í skrá sem þú opnar,
og svo þegar þú vilt gera hluti með hvert einasta lína þú bara það sem
og þá tengja gildi.
[Nate H.] Það sem þú getur gert hér-spurningin var
sem framhandleggur hefur að gera með fjölda, þannig að framhandleggur setningafræði
er virkilega framhandleggur, og eftir því að það er ekkert pláss
eða eitthvað á milli fyrir og hvert.
Þeir verða að fara við hliðina á hvort öðru,
og þá tekur það í fylki,
og þá hefur þetta önnur leitarorð sem heitir eins og þessi þarf að vera þarna,
og síðan eftir eins og þú getur annaðhvort sett einn breytu nafn,
í því tilviki sem þú ert að fara að draga fram gildi í fylkinu,
ekki vísitölur eða ef þú gerir það sem við höfum skrifað undir
þú færð lykla og gildum.
Þú hefur framhandleggur þáttur í fylki eða par í fylkinu sem færðir til gildi
eða bara gildi.
Það fer eftir því hvað þú þarft, ef þú þarft ekki á takkana,
þá getur þú farið með verðmæti.
Ef þú vilt að takka þú getur farið með þá líka.
>> [Charlotte] Ég áttaði líka við aldrei lýst i eða línu.
Hvernig virkar það vita jafnvel hvað þeir eru?
[Nate H.] Hvað áttu við lýsa?
[Charlotte] Það er aldrei sagt þeim hvað ég eða lína þýðir.
[Nate H.] Við sögðum aldrei í tölvunni hvað ég eða lína þýðir hvað-
[Charlotte] að þeir verðtryggð eða they're-
[Nate H.] Við sögðum aldrei að þetta er ætlað að vera vísitölu eða lykill og gildið,
og það er vegna þess að það er PHP túlkur.
Þetta virkar eins og yfirlýsing og segir allt í lagi, lykillinn er að fara að vera
breytu sem heitir i geymt í breytu sem heitir i.
Gildið er að fara að geyma í breytu sem heitir lína,
þannig virkar þetta sem yfirlýsingu þessara stærða
og segir: Ég er lykill, og $ lína er gildi.
Já, Ella.
[Ella] Ef takkarnir eru ekki gert tölulega
hvernig er það að ákveða hvaða röð það er að fara að prenta allt?
Er það bara eins og í röð og það var tekið á?
[Nate H.] skulum gefa það a reyna.
Við skulum búa til breytu sem heitir Arr,
og við getum gert fer í 7.
Segjum 0 fer í annað fylki með 1, 2, eða epli.
Segjum 7 fer í 1, b fer í 2,
og 3 fer í 4.
Þetta er góður af brjálaður útlit dæmis vegna þess að við erum að blanda upp
strengir og heiltölur allan stað.
Það er enginn raunverulegur til að þessu fylki.
Ég meina, við gætum pantað allt í stafrófsröð með lykla.
Við gætum pantað allt í stafrófsröð eftir gildi.
>> Við gætum reynt og tekið tillit til þess að sumir eru strengir, sumir ints,
og við gætum reynt og breyta þeim öllum í sama tegund og sjá hvað gerist,
eða við getum íhuga þær í gildi sem við inn nú þegar þá
þar sem við setjum þennan gaur í fyrstu, þetta strákur í annað, þessi strákur í þriðja,
þessi strákur í fjórða, et cetera.
Við skulum sjá hvað gerist þegar við keyra þennan kóða.
Ef við skruna niður og gera sams konar hlutur,
og hér það er ekki prenta út nýjar línur.
Þegar það lesa það út af the skrá það var þar á meðal nýjum línum í gildi,
sem var vegna prenta út fallega, en hér er ekki,
svo er það hvers vegna allt er smushed saman.
Við skulum bæta við í því nýja línu bara til að gera hlutina nice.
Skulum endursýning það, og svo hér
líta á það sem gerðist.
Það prenta allt út í þeirri röð sem við setja það inn í fylki.
Það er varðveita röð í þeim skilningi.
>> Fara aftur á þessu vandamáli af uniques
þar sem við viljum vera fær um að iterate á skrá,
og við munum gefa það some_file.txt,
og við erum að fara að iterate yfir það svona.
Við sögðum að við vildum nota fylki til að tryggja að við myndum fengið allt að
einstaka línur út þaðan, og við gátum gert það mjög auðveldlega
bara að geyma í fylki sem við að sjálfsögðu lýsa utan gildissviðs lykkju,
og við sögðum að ef við notuðum línur í skrá sem lykla í fylking okkar
Ef við komum inn afrit línu við myndum vera ríkari fyrri gildi.
Það er ekki alltaf hægt að hafa 2 takka sem eru eins í sama fylki.
Við geta gera réttlátur þessi.
Við munum losna við þessa echo yfirlýsingu hérna.
Hér erum við að geyma línuna í skrána í fylking okkar
nota sig eins og the lykill.
Ekkert að því, og það kemur í ljós að við gerum ekki einu sinni á þennan takka.
Við þurfum ekki að ég breyta.
Á þessum tímapunkti ef við vorum að gera annað framhandleggur lykkja
og við vorum að lykkja yfir hverju samkomulagi
og línu núna ef við echo-Úps, fyrirgefðu.
Við getum ekki notað kommu. Við verðum að nota þetta sem leitarorð.
Nú ef við echo línu við eigum öll einstaka orð í skránni.
Ef við förum upp til some_file.txt,
og við skulum segja að við gerum epli, banani, epli, epli, banani,
ef við erum að prenta út öll einstaka orð í þessari skrá við ættum bara að fá
epli og banani til að prenta út.
Ef við vistað þetta, nú hér við munum stækka aftur,
PHP unique.php og Ta-da.
Við höfum tekist uniqued skrána.
>> Endanleg hluti af þessu vandamáli er að biðja þig um að raða þessu fylki áður en þú prenta það út
vegna þess að í þessari einföldu dæmi að við höfum bara gert
Við vorum heppnir í þeim skilningi að skrá-
Við gerðum þetta háttuð dæmi með eplum og banana.
Það var þegar raðað.
En með því að nota einfalda röðun virka þú getur raða fylki, sem er laglegur nifty.
Endanleg sem ég vildi tala við ykkur um mjög fljótt
er að þessi tegund af PHP er allt vel og gott, og það er frábær vel
vita hvernig á að gera ef þú þarft alltaf að gera lítið, fljótur hluti kerfisbundið.
Til dæmis, ef ég þarf að skrifa forrit sem, segja,
setur alla í hluta ég ætla ekki að fara og skrifa það í C.
Það er að fara að vera lengi.
Það er að fara að vera góður á sársauka, sérstaklega ef það eru skrár sem taka þátt,
Rétt eins og þú krakkar hafa séð.
Það er svo gaman að við bara þetta mikið kóða hérna
við gátum til að rífa í gegnum skrá, draga út alla einstaka gildi
og prenta þær út aftur.
>> Hins vegar, fyrir verkefni þín, fyrir verkefnum,
Ef þú ert að byggja upp vefsíður með PHP vald er að
við erum að keyra PHP skrá okkar í gegnum þetta túlkur,
og túlkurinn er vinnsla allt innan PHP tags,
þannig allt annað ósnortið og spúandi út niðurstöður.
Við getum gert þetta til að byggja HTML kerfisbundið.
Nú, ef við förum aftur til sérstakur, síðustu vandamál í sérstakur
tala um þessa hugmynd um styrk
og skapa a falla-dúnn matseðill,
sem þú mega eða mega ekki vilja til að gera, allt eftir því hvað lokaverkefni er að gera,
sem gerir notandanum kleift að velja af lista með öllum mögulegum styrk
einn styrkur þeirra.
Nú, þetta er góður af a sársauki til að slá þetta út
og verða að gera allt þetta með höndunum, sérstaklega þegar þú ert að þurfa að ganga úr skugga um
að þú hefur öll horn sviga á réttum stað og allar vitna í réttum stað,
svo með PHP er hægt að gera þetta kerfisbundið, og þú getur gert þetta mjög fljótt.
>> Við skulum sjá hvernig á að gera þetta.
Við erum að fara að opna nýja skrá.
Við ætlum að setja í PHP skipanir okkar.
Við ætlum að kalla það concentrations.php,
og nú þegar þú ert að gera þetta, svona er gott að hugsa um
þegar þú ert að reyna að blanda og jafningi PHP og HTML
er vangaveltur út, allt í lagi, það er sá hluti sem ég vil að kerfisbundið búa?
Hvað er sá hluti sem ég get kerfisbundið búa?
Það er satt að þú getur gert allt af HTML
inni af PHP blokkir.
Þú getur echo allt HTML sem strengi.
Til dæmis, ef ég vil byrja að gera að velja tags inni á PHP
Ég get sagt echo, segja velja nafn = styrkur,
og svo fyrir neðan að ég gæti hafa annað echo tag
eða annað echo kallast loka velja.
Þetta er ein leið til að gera það vegna þess hvað þetta er bókstaflega að fara að gera
er að prenta út þetta band þegar það er keyrt í gegnum PHP túlkur,
þannig að útkoman verði HTML.
Ef ég vista þessa skrá eins og það er núna
og ég að keyra PHP concentrations.php
líta á það sem ég fékk.
Ég fékk þetta opna loka velja merki.
>> Ef ég væri að gera þetta og ég var að vista þessa niðurstöðu í skrá,
segja, concentrations.html-bíddu, það lítur út eins og L hefur farið yfir á aðra hlið-
nú ef ég opna hér concentrations.html þú sérð að ég hef gilt HTML skrá.
Er svona undarlegt?
Við erum að nota PHP til að búa til HTML, búa til gilt HTML.
Leiðin sem við erum að gera það er að við erum bara að hafa PHP prenta
HTML sem við viljum það til að prenta.
Þetta er bókstaflega hvernig PHP vefsíður eru að vinna.
Þegar þú heimsækir vefsíðu sem sendir þér eitthvað eins og
eitthvað, eitthvað, eitthvað punktur com rista index.php
tölva er bókstaflega að kalla upp index.php,
að keyra það í gegnum PHP túlkur, og hvað skran kemur út
það er að senda til baka í vafranum og segja hey, vafrinn, túlka þetta sem HTML.
The ágætur hlutur er þessi það geta vera a sársauki til að stöðugt að skrifa echo, echo, echo, echo
og látið allt innan gæsalappa eins og þetta, þannig að ef þú vilt að skrifa
HTML sem er að fara að vera truflanir sjálfur þú getur gert það svona,
setja það úti, loka það,
og þá hér þú setur bara inn í PHP skipanir það sem þú þekkir
þú vilt að kerfisbundið búa, og í þessu tilviki það er þá valkostur Tags
sem eru sársauki til að búa til.
>> Til dæmis gætum við búið þúsund tags valkostur
með því að gera eitthvað eins og this, $ i <1000, i + +
og segja echo valkostur gildi = $-Úpps, ég get ekki gert það.
Jæja, við skulum gefa það a reyna og sjá hvað gerist.
$ I og svo að segja $ i </ option.
Frekar en að þurfa að slá út þessi valkostur tag þúsund mismunandi tímum
Ég er að nota PHP kóða til að búa til það sjálfkrafa, kerfisbundið.
Eiginlega nifty. Já.
Ég man þetta væri ekki getið í annaðhvort fyrirlestri eða walkthrough,
en hvað er munurinn á milli gæsalappa,
venjulegum sjálfur og þessar einn hluti?
Það er reyndar eitthvað sem ég hef gert rangt hér sem ég ætlaði að sýna ykkur.
The einn vitna leyfum engar sértákn
svo allt inni í einu vitnað band er túlkuð bókstaflega.
Ef ég hefði \ n innanverðan einn quotes og ég spara það, til dæmis,
og nú er ég að fara niður og keyra það-
Úps, þar sem ég er að fara?
Ó, er það vegna þess að ég gleymdi að $.
>> Nú ef ég opna-raun, hér, munum við losna við að slá það til a skrá.
Við bara að lesa það.
Hér sérðu að ég hef fengið þetta bókstaflega \ n í strenginn, eins og ekki raunveruleg nýja línu,
og sömuleiðis, í stað þess að í raun interpolating gildi þessarar breytu
það gaf mér $ i sig, sem er góður af a sársauki.
Leiðin í kringum þetta er að nota gæsalappa,
og svo þegar þú notar gæsalappa það mun í raun
almennilega innreiknuð gildi allar þessar breytur hér
og einnig viðurkenna \ n til að vera nýr lína að það er
og ekki \ n.
Notkun einstaklings sjálfur er ágætur þegar þú ert
stafir sem gætu túlka sem sértákn því þá þú þarft ekki að
flýja þá stöðugt.
Hlutur getur fengið sóðalegur, og oft eins og ég að gera það,
bara til að gera hlutina auðvelt er að ef ég ætla að hafa neitt
HTML eins og í númerið mitt ég ma breyta í einn quotes
og þá nota þetta samtenging rekstraraðila
til concatenate breytur inn
Þetta er önnur leið til að gera það
þar sem við höfum fengið að punktur sem er að fara að tengja þetta er strengur
með þetta með þetta með þessu,
og nú er ég ekki að flýja þessar gæsalappa.
Ég þarf ekki að nota þessa dagana til að flýja.
Þeir ætla bókstaflega að prenta út eins gæsalöppum og svo þennan gaur hérna.
Þetta er önnur leið til að blanda öllu saman.
>> [Nemandi] Einnig, þegar þú echoed gettype voru engar gæsalappir á öllum.
Einmitt, svo er echo konar sérstakt í þeim skilningi að þú þarft ekki að sviga.
Þú þarft ekki að hafa gæsalappirnar endilega um breytur,
eins og það er í gildi að segja echo $ i, og það er að fara að túlka þetta sem band.
Það er að fara að gera kastað, svo við gætum gert þetta, og það er gilt líka, en við þurfum ekki.
Það er valfrjálst.
Í setja vandamál í þessari viku lítur út fyrir a einhver fjöldi af þessu tagi af efni
þar sem þú ert að blanda og jafningi HTML með PHP
bara svona, og nú ef við fletta til baka og við keyra þetta
getum við séð að við hafa a heild búnt af gildum valkostur
að bara prenta út.
Við höfum allt þetta HTML sem fékk mynda mjög fljótt fyrir okkur.
Ég leyfi það sem æfingu.
Það er mjög svipað og að skrá lestur sem við gerðum áðan.
>> Það er concentrations.txt skrá sem þú getur rífa niður af CDN,
og þú getur opnað hana með sama framhandleggur bragð sem við gerðum áðan,
og framhandleggur þú verður bara að bergmála valkost og stinga í
viðeigandi gildi, viðeigandi takka og vísitölur,
og þá þú fá falla niður sem bókstaflega býr
kerfisbundið fyrir þig allar mismunandi styrk við Harvard.
A handlaginn hlutur til að hafa.
There er a einhver fjöldi af stillingar efni fyrir þetta verkefni.
Ef þú hefur ekki gert það að taka nú þegar næsta hálftíma, klukkustund,
einhvern tíma í kvöld örugglega fyrir víst,
ganga í gegnum ákveðið vandamál sérstakur,
sjá hvað er að gerast með að setja upp vhosts, the heimamaður gestgjafi, öll þessi efni.
Eitt sem þarf að benda á núna er að
í flestum vandamál setur við höfum verið að fara inn í Dropbox möppuna þína
og þá að sækja setja vandamál zip skrá og unzipping það.
Fyrir þetta vandamál setja þú vilt ekki.
Þú vilt fara í þennan vhosts skrá.
Þú þarft að fara í vhosts og fara í the heimamaður gestgjafi skrá í það,
og þetta er þar sem þú þarft að rífa niður the zip skrá,
renna niður hana, og fá tilbúinn til að fara.
Þú þarft að fylgja leiðbeiningum vel.
>> Ef þú hefur einhverjar spurningar skaltu senda tölvupóst, senda það á ræða, koma á skrifstofu tíma.
Takk krakkar. Í næstu viku ætlum við að hafa endurskoðun fundur fyrir próf.
Njóttu síðustu vandamál þitt. Ég vona að það gengur allt mjög vel.
[CS50.TV]