[Powered by Google Translate] [Artikel 8] [Minder Gerieflik]
[Nate Hardison] [Harvard Universiteit]
[Hierdie is CS50.] [CS50.TV]
>> Welkom by ons tweede laaste gedeelte.
In hierdie week gaan ons om te praat oor PHP, en dan volgende week
sal ons doen 'n bietjie hersiening vir Quiz 1.
Ons gaan om te begin op bladsy 3 van die probleem stel pak,
en ons sal werk deur middel van die afdeling van die vrae redelik vinnig.
Op bladsy 3, begin ons praat oor die verskil tussen C en PHP
in die sin dat PHP is 'n dinamiese getikte taal,
dat C staties getik,
en het regtig vinnig iemand enige kodering in iets soos PHP gedoen
of Python of Ruby voor, JavaScript?
Heeltemal nuut? Okay.
>> Al hierdie tale wat ek nou net genoem
baie verskillende tale soos C en C + + en Java
in die sin dat wanneer jy 'n veranderlike verklaar jy nie te verklaar
watter soort van 'n veranderlike is dit, sodat ons in C vasgekeer was om te sê altyd
dit gaan om 'n int veranderlike wees, of dit gaan om 'n char * veranderlike,
terwyl met PHP, Python, Ruby,
met 'n baie van hierdie meer moderne tale wat jy het nie om dit te doen op alle.
Jy moet net jou veranderlike verklaar, en in die geval van PHP
jy verklaar dat dit is 'n veranderlike deur dit met 'n $ teken te prefixing,
en dan die tipe van die veranderlike word bepaal deur watter waarde dit hou,
wat is 'n soort van cool.
Om te speel met dit 'n bietjie, het ons monster PHP-kode hier
tussen die begin en einde tags.
Ons gebruik hierdie soort van soos HTML in die sin dat
ons het hierdie hoek tussen hakies hier om oop te maak en te sluit.
Jy sal sien dit met HTML.
Jy dieselfde soort van die sintaksis met XML te sien.
>> Dit dui op die begin van 'n PHP-blok.
Dit? Php is spesifiek vir PHP.
Ons is alles met a> as goed nie?.
Kom ons open 'n lêer in ons apparaat gebruik te maak van alles wat jy wil.
In hierdie pakkie sê te roep dynamic.php.
Om die waarheid te sê, kan jy noem dit wat jy wil, maar die lêer naam sal kom
en belangrik wees later, sodat net onthou alles wat jy noem dit.
Ek gaan oor te skakel na die toestel,
en ek gaan om 'n gids te maak vir
artikel 9 Ek glo ons is nou.
En ons gaan in artikel 9,
en ek gaan gedit te gebruik.
Kom ons kyk, gedit, en ek gaan my dynamic.php te roep.
Boom.
Binne dynamic.php, want dit is 'n PHP-lêer
en ek wil dit uit te voer deur middel van die PHP-interpreter
Ek nodig het om alles te begin met dié oop tags,
so ek gaan daardie reg om weg te begin,
gee myself 'n bietjie ruimte in tussen die tags,
en dan die punt van hierdie oefening is om te speel met
hierdie funksie genoem getSoort, so getSoort, hierdie funksie reg hier.
>> Let daarop dat daar is geen onderstreep of ruimte of koppelteken of iets soos dit
skei van die 2 woorde, en tik, net een woord heeltemal.
Maar wat dit sal doen as ek in 'n veranderlike getSoort,
sê $ var of $ x,
Dit sal vir my soort van in 'n debugging format
wat die naam van daardie soort is.
Ons gaan om hier te eksperimenteer.
In die besonder, as jy kyk terug by die pset spec
ons het 'n paar verskillende lyne van die kode hier.
In die eerste reël van die kode wat ons hierdie veranderlike, $ var inisialiseer,
gelyk wees tot 7, en dan het ons hierdie printf lyn
wat sê hey, printf var is leeg.
Printf is een van die talle maniere waarop ons kan druk dinge in PHP.
Dikwels sal jy sien die eggo funksie gebruik in plaas van printf,
maar printf ons almal vertroud is met is kodering in C vir 'n rukkie.
Wat jy eintlik kan doen laat ons sien of kopieer en plak werk.
Ek gaan om te gee dit 'n probeer.
Ons sal terug te gaan oor na die toestel.
Okay, en daar gaan ons.
En spasiëring is 'n bietjie funky, maar hier gaan ons.
Ons het hierdie kode hier.
>> [Studente] Is dit nie goeie styl blad dit?
Jammer?
[Studente] Is dit konvensionele na tab dit?
Reg, sodat Sam vra of dit se Konvensie tab of nie.
Tipies ja.
In hierdie geval het ek gekies het om dit nie te doen nie.
Honestly, sal jy sien verskillende dinge tussen verskillende programmeerders.
PHP is tipies gebruik word dikwels in kombinasie met HTML
en ander tale, en so die druk soms sal kyk 'n bietjie funky
as jy streepje binne PHP begin en einde tags.
Dit hang af.
In hierdie geval is die kopieer en plak nie plak die tabs in vir my,
maar dit is beslis nie, soos jy sê, maak dit duidelik.
Alles reg, as jy nie stoor hierdie kode in dynamic.php
dan wat jy kan doen is kom neer op jou terminale venster waar ek is reg hier onder
in gedit, en die ekwivalent van die opstel te doen
die gebruik van maak en dan loop jou kode in C
al wat jy hoef te doen met die PHP-lêer is begin die PHP-interpreter,
wat is 'n klein program genaamd PHP,
en die argument wat jy gee aan die tolk is die lêer wat jy wil om te interpreteer.
In hierdie geval, dynamic.php.
Oeps, waar het ek dit weer aantrek?
O, ek het dit in artikel 9, en hier is ek. Dis hoekom.
>> Maar as ek loop dit weer
sien ons dat in my eerste getSoort funksie oproep
var 'n heelgetal is.
In die volgende een var is 'n tou, en dan in die derde een var is 'n boolean.
Wat is interessant is oor hierdie, is as ons blaai terug sien ons dat
Dit is tipes soortgelyk aan die een wat ons gehad het in C.
Ons het ints in C.
Ons soort van snare in C,
so snare was nie 'n heeltemal wettig tipe in die sin dat
ons CS50 string was regtig wat?
Jammer? Missy?
[Missy] Char *.
Ja, dit was hierdie char * wat ons gebruik.
Aan die begin van die semester het ons deur gebruik te maak van die string tipe,
maar dit was regtig 'n char * onder die kap.
Ons het net gedefinieer tik dit, terwyl in PHP hierdie stringe is 'n werklike tipe.
Daar is nie meer van hierdie tipe char * stuff.
>> Jy sal sien dat ons baie meer dinge kan doen met stringe
baie meer maklik in PHP as wat ons kon in C,
en dan uiteindelik, ons het hierdie boolean tipe, en die groot verskil hier is dat
as ons blaai terug sien ons dat die naam van hierdie tipes
is nou heelgetal is, string, en Boolese in plaas van int en Bool,
en as jy haal verskillende programmeertale,
die veronderstelling dat op 'n sekere punt in jou lewe, sal jy in aanraking kom met
verskillende mense wat jy sal sien klein eienaardighede soos hierdie
waar C heelgetalle ints noem.
Sommige noem dit die heelgetalle.
Daar is ander terme wat jy loop in.
Big int ons gesien het vandag in SQL.
Daar is ook nommer en dan Bool, boolean,
alle vorme van verskille daar.
>> Dit is nie baie interessant, maar nou is ek gaan gee jou 'n bietjie van die tyd-
as ons terug zoom uit om te werk deur middel van hierdie oefening aan die onderkant van die bladsy 3
waar dit vra watter tipe stem ooreen met hierdie waardes hier aan die onderkant.
Ons het 3,50.
Ons het hierdie ding reg hier, wat is interessant.
Ons het nie gesien dat voor, maar as jy volg saam in lesingsale
jy waarskynlik reeds weet wat dit is.
Dan het ons dit, wat dit is 'n soort van funky.
Jy herken dit.
Wat is dit in C?
Sam? Wat sou dit gee jou in C?
Dit sou 'n lêer genaamd dynamic.php oop en maak dit leesbaar is.
Ja, en wat die tipe van die veranderlike wat ons dit sou toewys aan >> File? Ster sou wees.
Presies, sou ons ken hierdie na 'n lêer ster.
Dit is 'n wettige PHP.
Begin. Kyk wat gebeur wanneer jy dit in getSoort.
En dan ook check wat null is, wat dit kan wees in PHP.
Ek gee jou 'n paar minute.
Jy kan letterlik kopieer en plak hierdie waardes in,
en dan sal ons 'n bietjie random oproep doen op jou
en kyk wat jy kry.
>> [Studente] Ek het 'n vraag. << Ja.
In een van die lesings Dawid het gesê daar is iets wat jy kan sit op die top van jou lêer
sodat jy nie elke keer hoef in te tik in PHP.
Wat was dit?
Hy is waarskynlik praat oor die pond bang, die hash bang.
Dit is 'n richtlijn dat as jy merk jou lêer as uitvoerbaar
dan wat dit doen, is wanneer jy die lêer uitvoer
Dit sal jou vertel die dop
die PHP-interpreter te gebruik om die inhoud van die lêer te interpreteer.
Die vraag wat hierdie spesiale lyn
dat ons by die top van ons PHP lêers kan insluit om nie in te sluit
hierdie PHP-lyn of hierdie PHP opdrag wanneer ons wil die lêer uit te voer?
En jy kan eintlik doen dit met 'n klomp van die verskillende lêers.
Ek dink dit hang af van waar die PHP binêre gestoor word,
maar dikwels usr / bin / PHP is 'n goeie plek om te begin.
Jy kan uitvind presies gaan terug na jou toestel
en tik wat php.
Waarin opdrag figure uit wanneer jy die uitvoering van binêre
of 'n opdrag waar die ooreenstemmende lêer is.
Dit sê vir my dat die PHP is regtig aliasing hierdie binêre lêer
wat is gestoor in usr / bin, en dit is waar 'n baie van die stelsel binaries is geïnstalleer.
Byvoorbeeld, as ek blaai na die top, nou dat ek dit geplaas #! lyn hier
Ek kan blaai, en ek kan probeer om te hardloop
dynamic.php, maar ek kry hierdie fout oor toestemming ontsê word,
en wat dit beteken, is dat hierdie lêer is nie uitvoerbaar permissions.
Dit is nie gemerk as 'n lêer wat iemand kan hardloop.
>> Wanneer jy maak of kletteren gehardloop en jy het 'n uitvoerbare
die opsteller was slim genoeg om te weet dat hey, ek is die bou van 'n uitvoerbare.
Jy het waarskynlik wil om dit uit te voer, so dit sal outomaties instel
die toestemmings vir jou.
Dit is nie die geval nie, al is, wanneer jy 'n gewone lêer van nuuts af,
die rede waarom jy wat tipies wil nie 'n lêer op jou stelsel uitvoerbaar is,
sodat jy werklik het om in te gaan en dit handmatig doen.
Die maklikste manier om dit te doen is met die chmod opdrag,
en chmod + x sê voeg die uitvoerbare bietjie
want daar is die lees bietjie die skryf bietjie en die uitvoerbare bietjie,
r, w en x,
en gesê: chmod + x sal op sy beurt op die uitvoerbare bietjie
dan is die lêer wat ons spesifiseer, wat in hierdie geval sal wees dynamic.php.
>> [Studente] Is dit het vir almal?
Kom ons kyk dit uit, so hoe sou ek die regte nagaan om te sien?
Weet jy hoe ek wil kyk om die regte van 'n lêer te sien?
[Onhoorbaar student reaksie]
Jammer >> [Studente]? XSD.
XSD gee ons die lêer in hacks.
Lys van al die lêers,-l, sal wys my al die lêers in my directory
soort van in hul lang, verbose lys, en hier sien ons dat
hierdie dynamic.php lêer
Laaste wysiging op November 5de op 16:21.
Die eienaar van hierdie lêer jharvard.
Dit is die gebruiker wat in geteken nie.
Dit is die gebruiker wat ek as die werk,
en as jy ook in die toestel jy ook werk as gebruiker jharvard.
Jy is in die studente-groep,
en dit is dinge wat jy sal sien dikwels genoeg.
>> Ons kan gaan in 'n baie van die detail hier,
maar vir die grootste deel wat jy wil om te kyk na wanneer jy soek om te sien
of 'n lêer is uitvoerbaar is hoofsaaklik
die gebruiker wat die lêer besit, die eienaar,
so hierdie jharvard, en dan het ons
die regte stukkies hier aan die linkerkant,
en die manier om dit te lees, is dat die laaste bietjie
tipies gebruik word vir die nasien of nie-ten minste in hierdie geval
hierdie laaste bietjie sal dikwels gestel word om die advertensie aan te dui
dat die lêer is 'n gids en nie net 'n gewone lêer nie.
Toe het die volgende 3 stukkies hier
die toestemmings bepaal dat die eienaar van die lêer het,
so in hierdie geval jharvard, as die eienaar van die lêer, kan lees en skryf hierdie lêer,
maar daar is 'n bietjie wat sê dat jharvard kan nie hierdie lêer uitvoer.
Die volgende 3 stukkies is vir die groep, so dit is die studente-groep,
so as daar is verskeie gebruikers op my toestel,
en ons het verskeie gebruikers as deel van die studente-groep,
dan kan hulle almal lees hierdie lêer, maar hulle kan dit nie skryf nie,
en so ook iemand anders, die wêreld
kan net lees hierdie lêer as well.
Daar is 'n goeie, lang writeup oor hierdie,
sodat jy aanlyn kan lees.
In die probleem stel spec ons gaan in hierdie in meer detail.
>> [Studente] is die 218 verwys na die hele wêreld?
Die 218 is van die top van my kop af ek vergeet,
maar nee.
Kom ons kyk. Ek uitwissing op daardie reg nou.
Terug na wat ons was om te doen met hierdie chmod + x
waar ons wou dynamic.php uitvoerbare toestemmings om uit te gee,
en die vraag is of dit nie uitvoerbare regte sal gee vir almal
of om net jharvard, en ons kan sien dit deur
die uitvoer van die opdragte en die tik van ls-l,
en nou sien ons dat dit is gemerk as uitvoerbare.
Jy sien dat daar 'n kleurverandering.
Nou dynamic.php is gelys in die groen,
en dit lyk soos die antwoord op die vraag is wat, Charlotte?
[Charlotte] Net jharvard. >> Slegs jharvard, ja.
>> As ons wou die uitvoerbare bietjie vir almal om te draai op
Hoe kan ons dit doen?
Enige gedagtes >> A? + X?
Ja, presies.
Charlotte het gesê ons chmod kan doen van 'n + x dynamic.php,
en nou as ons hardloop ls-l, sien ons dat die uitvoerbare stukkies
word inderdaad vir almal gedraai.
En jy kan eintlik doen die teenoorgestelde van hierdie, sodat jy kan draai dit af vir almal
met behulp van minus.
Nou is dit afgeskakel, en nou kan ons draai dit terug vir jharvard
sodat ons kan eintlik loop dit nou,
en nou wat jy sien wanneer loop ons die kode hierdie spesiale #! lyn aan die bokant,
#! lyn, vertel die dop,
vertel ons terminale hey, wanneer hierdie lêer uitgevoer word,
/ usr / bin / PHP gebruik om hierdie lêer te interpreteer
en druk dan die uitset.
[Onhoorbaar student vraag]
Sure, laat my terug Scroll up. Net soos hierdie.
Jy sal sien al van hierdie riglyne met hierdie pond begin en dan die uitroepteken,
soms genoem 'n kaboedel, hash bang.
>> [Studente] Hoe kan ons loop dit met php dynamic.php voor ons dit uitvoerbaar te maak?
Die vraag is hoe kan ons die uitvoering van hierdie met behulp van die PHP-binêre
terwyl dynamic.php is nie uitvoerbaar nie?
Dit is super belangrik, want dit is presies hoe
dit gaan werk wanneer jy skryf probleem stel 7.
Die meeste van die tyd PHP lêers is nie direk uitvoerbare.
Die manier wat werk is, want dit is die PHP binêre wat uitvoerbaar is.
Die tolk is die ding wat uitgevoer word,
en so wat dit doen is letterlik slurp in die hele inhoud
van ons dynamic.php lêer en gaan reël vir reël
en die uitvoering van daardie opdragte, so dit is die gebruik van ons PHP lêer
as 'n lys van instruksies.
Dit is nie direk die uitvoering van dit.
Dit is waar ons sê dat hierdie lêers te hardloop tyd geïnterpreteer.
Dit is 'n run time taal in plaas van iets wat tydens kompilering bepaal,
nie 'n saamgestel taal soos C.
>> Is daar 'n manier om 'n run taal te kry om op te tree asof dit 'n kompilering taal,
graag as jy het al die gang op die bediener
eerder as jy weet wat ek bedoel?
Ja, die vraag is
is daar 'n manier om looptyd tale te kry om op te tree meer soos kompilering tipes van tale?
En daar is, ek bedoel, dit is 'n aktiewe gebied van navorsing vir 'n baie van hierdie maatskappye.
Ek glo dat Facebook 'n baie van die werk gedoen het met PHP
en die opstel van dit af, maak dit vinniger, die optimalisering van dit
sedert hul webwerf is gebou op PHP.
As jy is volgende node.js at all,
wat is 'n soort van 'n JavaScript-tolk
in staat te wees om JavaScript uit te voer buite die leser, buite jou webblaaier,
want tradisioneel JavaScript wil net hardloop binnekant van Firefox of Chrome,
en dit sal gebruik word om te koel animasies gebeur op 'n webblad
en maak jou web bladsy dinamiese.
Dit is gebou op 'n baie van die werk wat Google gedoen het
JavaScript en C te maak + +
bind, so daar is 'n baie aktiewe navorsing te
hierdie tale in interaksie te tree en te optimaliseer,
hoofsaaklik omdat so baie mense kan kode in PHP en JavaScript
want dit is 'n baie makliker.
Dit is 'n baie mooier. Jy hoef nie wysers.
Jy hoef nie tipes rondsweef.
Hulle wou die voordele van hierdie kompilering tale te kry
met al die tipe kontrole en die spoed en die laer geheue gebruik en alle van daardie
terwyl hy nog die handhawing van die buigsaamheid en gemak van die gebruik van hierdie nuwer kinders.
>> Terug na ons oorspronklike plan van aanval.
Ons het 'n paar van hierdie vrae hier in ons probleem stel spec.
Kom ons gaan deur hulle regtig vinnig, en ons gaan in die kamer rond.
Charlotte, watter tipe is 3,50?
[Charlotte] Dit is 'n dubbel. >> Dit is 'n dubbel.
Jimmy, wat is die volgende een? >> 'N skikking.
'N skikking, awesome, en Jared, wat is die fopen?
[Jared] Dit is 'n hulpbron >> Dit is 'n hulpbron.
Dit is soort van 'n nuwe een, nie 'n lêer ster, nie 'n lêer.
Dit is 'n hulpbron is die tipe in PHP,
en ek is jammer, Ella, die laaste null is wat?
Null.
Null, hoe is dit in PHP gespel? >> Dieselfde manier.
Op dieselfde manier, hoofletters >> Ja.
Ja, alles reg.
Hier gaan ons, ons het 'n dubbel, ons het 'n skikking,
ons het 'n hulpbron, en dan het ons null.
Kom ons kyk nou het jy al gesien-
laat ons sien, so nou is ek dink wat ek ook wil doen is trek
hierdie webblad reg hier, hierdie php.net / handleiding,
so as jy ouens kopieer en oop te maak 'n webblaaier.
Ek gaan om te trek Chrome, sit dit.
Ek wil om jou te wys dat dit nie net omdat
ons kan die hele dag praat oor die tipes en alles wat fun stuff
maar eerder omdat dit die PHP handleiding,
en daar is 'n baie PHP programmeerders daar buite.
Daar is 'n baie van PHP webtuistes daar buite,
en as 'n resultaat, is daar 'n baie van die dokumentasie oor PHP,
en die handleiding, hierdie php.net, is 'n baie goeie plek om te gaan
wanneer jy met vrae oor wat is die beste manier om X te doen in PHP
of wat nie 'n funksie te laat lyk?
Net soort van kry vertroud is met wat dit lyk, want
jy hier kom 'n bietjie vir die probleem wat dikwels 7.
>> As jy uiteindelik besig met 'n finale projek wat gebruik maak van PHP
dit sal 'n plek waar jy baie goed vertroud is met.
Dikwels is die manier waarop mense dit doen, is hulle gebruik Google om te soek vir die webwerf,
en hulle gebruik nie die soekkassie wat is hier in die top reg, wat is 'n soort van klein.
As jy rondom Googlen vir iets wat te doen het met PHP en jy sien
een van die handleiding skakels pop-up kan jy gewoonlik staatmaak op
as 'n redelik goeie hulpbron.
Awesome, so uit van hierdie tipes, net uit nuuskierigheid,
wat ons nie gesien het nie?
Enigiets wat ons nie gesien het nie hier?
[Studente] Resource. >> Ons het gesien hulpbron met die fopen oproep.
[Studente] Objects >> voorwerpe wat ons nie gesien het nie vir seker.
Verifikasie ons nie gesien het nie.
Daar is 'n paar van hierdie pseudo-tipes.
Ons het beslis net sien integer en dubbel.
Ons nie sien 'n paar van die ander, so as ons op heelgetalle
ons kan sien is daar enige ander heelgetalle dat hulle hier?
Is hulle almal so integer, heelgetal, integer.
Sommige tale het groter heelgetal tipes,
soos ons gesien het op MySQL vandag was daar int en dan groot int.
Cool.
>> So, PHP handleiding.
Kom ons gaan terug na ons probleem stel spec, en ons sal nou scroll af na bladsy 4.
Een van die dinge wat gebeur wanneer jy hierdie tale
wat nie hierdie statiese tik, sodat hierdie tale waar jy hê om te verklaar
die tipe van 'n veranderlike aan die voorkant
is jy gevalle waar jy kan begin met veranderlikes van die verskillende tipes
interaksie met mekaar,
en PHP doen hierdie ding waar dit probeer om te doen
wat dit oorweeg om die mees sinvolle ding om te doen
wanneer jy 2 verskillende tipes interaksie met mekaar.
Byvoorbeeld, as ons kyk na hierdie reëls van die kode hier
jy sien dat ons het wat gebeur wanneer
ons probeer en voeg die string 1 vir die heeltallige 2.
Wat gebeur as ons probeer en voeg 'n string wat nie 'n numeriese waarde
maar eerder werklike karakters, CS na die nommer 50?
Dan sal ons sien daar is iets anders wat gebeur waar
in plaas van die toevoeging van 'n tou aan 'n aantal wat ons die toevoeging van 'n getal na 'n string,
en so aan en so voort tot op die punt waar ons om
'n soort van vreemde dinge hier waar ons het 7 + waar.
What the heck beteken dit?
>> As jy ouens gaan voort en plak sommige van hierdie kode in jou toestel.
Jy kan hou dit in dynamic.php.
Ons sal sien wat gebeur.
[Studente] Net druk, nie printf gebruik?
Ja, so jy sal vind dat druk is ook 'n geldige funksie vir die druk in PHP.
Daar is baie verskillende maniere om dit te doen.
Ons sal sien later wanneer ons begin praat met 'n paar van die voorbeelde
oor die unieke probleem dat ons gaan om te skryf
en dan die konsentrasies probleem dat ons gaan om te skryf
dat, selfs al het ons fopen en fclose
dit is dikwels nie die eenvoudigste manier om in die inhoud van 'n lêer te lees.
PHP het 'n baie van hierdie C-agtige holdovers.
[Studente] Toe ek in al 6 van die dinge wat ek net een nommer as 'n uitset kry.
[Nate H.] Wanneer jy in al 6 van hierdie dinge.
Kom ons kyk is dit, want dit is moontlik
een ding is dat hierdie print oproepe word nie aan die einde met 'n nuwe lyne beëindig.
Daar is geen nuwe lyn tussen elk van hierdie gedrukte oproepe,
so miskien is jy kry 'n groot aantal,
en dit is regtig net 'n amalgaam van nuwe lyn karakters.
[Studente] Okay, hoe maak ek seker-
Wel, daar is 'n klomp verskillende maniere.
Jy kan met die hand in 'n afdruk van 'n nuwe lyn karakter,
'n eggo van 'n nuwe lyn karakter,
druk van die nuwe lyn.
[Studente] So echo is die dieselfde ding as printf?
>> Printf is soos C printf
waar jy die druk van 'n geformateerde string.
Jy is die verskaffing van die formaat string en dan sal al die plaatsaanduiding veranderlikes.
Dit is dikwels iets wat nie gebruik word nie-
laat ons sien, as 'n disclaimer,
Ek is minder vertroud is met PHP as ek met 'n ander web tale,
en toe ek geprogrammeerd in PHP ek gewoonlik nie printf gebruik
want ek vind dit vinniger om te gebruik om die string interpolasie vermoëns wat dit het,
wat ons gaan in, en ek sal jou wys wat jy in net 'n tweede,
terwyl dit in C ons soort van hierdie mag nou wel ding om te doen te kry om dit behoorlik uit te druk.
Kan jy eintlik sit veranderlikes direk in stringe in PHP.
Printf is 'n soort van té lank vir wat ek gewoonlik doen. Ja, Ella.
[Ella] algemeen as jy parseerfout beteken dit-
soos op C dit nie vertel presies waar die fout is en wat dit is,
so beteken dit kyk deur jou hele kode en figuur dit uit?
Dit is tipies meer geteikende as dit.
Ek dink in hierdie geval was dit 'n bietjie af,
so ek dink in hierdie geval het ons 'n kommapunt vermis.
Dit is probeer om sin te maak van alles,
so soos hierdie geïnterpreteerde tale, word die tolk gaan om te probeer
en doen sy bes om alles werk om toepaslik te maak.
>> Jy sal sien, byvoorbeeld, in JavaScript
Jy sal dikwels-line state einde met 'n kommapunt net soos hulle doen in PHP,
net soos hulle doen in C.
In JavaScript sommige van die JavaScript tolke
in 'n baie van die blaaiers sal in kommapunte vir jou
as jy gebeur om ontbreek hulle.
Hulle sal probeer akkommodeer vir 'n paar sloppiness op jou deel.
Dit is waar dit dalk probeer en probeer en probeer om dinge werk te maak,
en dan uiteindelik sal dit kry op 'n punt waar dit sê okay,
Ek kan nie maak dinge werk op redding, en dit is waar jy 'n lyn nommer kry
wat dalk 'n bietjie af van die presiese plek lyk.
Okay, so laat ons gaan deur middel van hierdie regtig vinnig.
Ons opgehou het om met Ella, so laat ons gaan oor na Missy,
en Missy, wat druk van string 1 plus die nommer 2 gee jou?
[Missy] 3 >> 3.
Maak dit sin? Sorteer?
Gee dit jou 'n nommer? Gee dit jou 'n string?
[Missy] 'n aantal >> Dit is 'n getal.
Maar dit is druk dit, so dit gaan te gee jy 'n soort van tou.
>> Een ding wat ons kan doen om dit uit te keur
is as wat ons doen $ var = 1 + 2
en dan sê ons eggo van getSoort,
sodat ons met behulp van 1/3 soort druk hier.
Nou kan ons sien wat hier gebeur.
Hier is wat ons het, is ons het 'n heelgetal uit hierdie.
Selfs al was ons die toevoeging van hierdie string na 'n nommer,
ons het nie 'n string van dit, net soos Missy gesê.
Ons kry 'n heelgetal.
Okay, so laat ons sien, langs, Kevin.
CS + 50 >> [Kevin] 50.
[Nate H.] 50. Maak dit sin?
[Kevin] Ja.
[Nate H.] Hoekom? Waarom maak dit sin vir jou?
[Kevin] Omdat dit net met die string, met getalwaarde nul.
Ja, groot.
Soort van dubbelsinnige situasies, maar dit is goed om te weet wat gebeur.
Stella, wat volgende gaan gebeur met die getal 1 + string 2?
[Stella] 3 >> 3 weer.
En in hierdie geval, kry ons 'n tou of 'n nommer?
>> Kom ons gee dit 'n probeer.
Iemand vinniger as ek die antwoord kry? Charlotte?
O, ek didn't-okay, laat ons sien, ons gaan dieselfde soort van ding te doen
waar ons het 'n getal plus 'n string, en ons gaan die soort eggo,
kyk wat ons kry.
Ons kry ook 'n heelgetal.
Dit maak nie saak watter een is die string, watter een is die getal.
Ons is nog aan die gang te kry 'n heelgetal.
Dit is nog steeds gaan om te doen wat ons kan verwag.
Alle reg, sodat Sam, wat oor 90 + 9 bottels van bier op die muur?
[Sam] 99 >> 99.
Geen bottels van bier op die muur, though.
Dit gee ons 'n bietjie meer inligting oor wat gebeur.
[Sam] As jy geskryf het 9 in letters
dan sou jy 90, reg?
[Nate H.] Ja.
Die vraag was as ons geskryf het 9 uit as N-I-N-E
sou ons gekry het 99 of 90?
Ons wil 90.
Dit is net letterlik op soek vir syfer karakters.
Dit is nie slim genoeg aantal woorde en daardie dinge te erken. Ja.
>> [Studente] Is daar so 'n ding soos typecasting in PHP?
Daar is, en dit is presies die manier waarop jy dit sou doen in C.
Wat oor 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Ja, so wat kan vreemd wees oor hierdie?
Wat sou gebeur as jy het dit dieselfde soort van ding in C,
as jy het 10/7 in C?
[Charlotte] Dit sou net gee jy, afhangende van hoe jy typecasted ek dink
sal dit gee jou net 'n beperkte aantal van syfers na die desimale.
Ja, so 'n beperkte aantal van syfers na die desimale.
Wat anders kan wees-sal dit gee jou enige syfers na die desimale?
Dikwels nie, so weer, afhangende van hoe jy typecasting dit
Dit mag of mag nie skakel dit na 'n drywende punt.
Hier was dit soort van mooi wat dit gedoen het.
Het ons gewys jy dit terug toe ons begin doen hierdie soort dinge in C
dit sal waarskynlik 'n bietjie meer sin gemaak het
dat dit nie net gaan tot 1.
En dan uiteindelik, Jamie, wat ongeveer 7 + waar?
[Jamie] 8. >> 8.
Wat beteken dit?
Ek dink dit gee net waar die waarde van 1.
Ja. Wat gebeur as ons verander dat vals?
[Studente] 7.
Ja, so onthou waar ons praat oor hierdie binêre waardes,
1 wat op, 0 af?
Nou het ons 'waar is, is 1, 0 is vals,
en jy mag dalk nie gesien het in die C-voorbeelde wat ons die afgelope semester gedoen het,
maar histories die Bool soort in C is nie 'n ware tipe,
sodat mense gebruik het 0 en 1 in die plek van die ware en valse.
Dit is 'n manifestasie van daardie.
>> Goed, so die een belangrike deel oor al hierdie
is dat ons hierdie verskillende tipes.
Hulle kan interaksie met mekaar.
Hulle kan dikwels in wisselwerking met mekaar op maniere wat is mooi, as ons hier gesien het.
Dit is lekker om in staat wees om string 1 en die getal 2 te hê, om hulle bymekaar en 3 kry.
Dit maak sin.
Maar, wanneer jy 'n webwerf wil skryf, en veral wanneer jy die verwerking van
toevoer van die gebruiker, so sê jy het 'n web vorm geskryf het
wat versamel inligting van die gebruiker en dan gaan dit te verwerk
op die agterkant op die bediener kant in jou PHP-kode
as jy verwag dat die waarde wat die gebruiker ingetik en ingedien
aan jou vorm 'n heelgetal te wees of om 'n drywende punt nommer of iets soos dit
wat jy nodig het om dit uitdruklik te gooi dit
en doen dan 'n soort kontrole.
>> Jy wil nie net staatmaak op hierdie tipe jongleren stelsel om dinge te laat uitwerk,
veral vir sekuriteit redes en net vir die robuustheid van jou webwerf.
Net iets om in gedagte te hou dat wanneer jy vorm data te hanteer,
enigiets wat kom in die pos of die AOO-superglobals
maak seker dat jy altyd bekragtig dit en sit dit en dit typeren.
En net soos ons praat oor 'n oomblik gelede dat typecasting
in PHP is presies dieselfde as in C waar jy die hakies
en dan die tipe.
Hou dit in gedagte.
'N funksie wat sal handig te pas kom wanneer jy om dit te doen
ons het al met behulp van en dit is soort van soos 'n eenkant-
ons het al met behulp van hierdie getSoort funksie hier
om uit te vind die tipe van 'n veranderlike,
en terwyl dit is handig vir ontfouting en om te sien wat se soort van 'n veranderlike is
jy nie wil hê om dit te gebruik, byvoorbeeld, in 'n toestand waar
jy nagaan om te sien of getSoort van $ var = integer iets doen.
Dit is sleg, sleg, sleg.
In plaas daarvan is daar hierdie funksies genoem is integer, string,
skikking wat jy wil plaas, so in hierdie geval
wat ek wil doen in plaas van hierdie man hier
word gebruik die heelgetal var.
En hulle is dikwels na verwys is is_ * in die sin dat jy kan die * vervang met integer,
string, ensovoorts, en net om seker te maak regtig vinnig
hierdie is int php.
Lyk soos wat jy kan doen, is óf int of daar is 'n heelgetal sowel?
Ja, alias, so int integer aliasse.
Cool.
>> Hoe gaan ons doen?
Kom ons haal die tempo 'n bietjie.
Nou het ons gaan om te praat oor skikkings, so soos jy kan sien
in die volgende deel van die spec ons praat oor hoe skikkings in PHP
is effens anders as hulle is in C.
Om die waarheid te sê, hulle is soort van 'n amalgaam van
die skikkings wat jy gekom het om te weet en liefde in C
waar alles is van dieselfde soort
opeenvolgend gestoor en contiguously in die geheue,
en jy het hierdie numeriese indekse.
Jy het index 0, indeks 1, 2 indeks,
en jy slaan waardes by daardie indekse.
Jy moet ook in C, toe jy geskryf het Speller, baie van julle
het die hash tafel-benadering, en jy sien dat ons moes daar
'n ander soort van die stoor waar ons kartering
'n sleutel tot 'n waarde, so wanneer jy probeer om iets te slaan in die hash tafel
jy het om te spesifiseer dat jy wou dit op te slaan met 'n spesifieke sleutel,
en dat die sleutel bepaal die plek van die waarde en waar dit geberg word.
Jy het soort van het beide hierdie konsepte gebeur op dieselfde tyd in 'n PHP array,
en as 'n resultaat, het ons dikwels noem hierdie assosiatiewe skikkings
waar ons assosieer 'n sleutel in 'n waarde.
In die volgende gedeelte ons praat oor 'n eenvoudige PHP array
waar ons sleutels a, b, en c,
alle stringe, kartering van die heelgetalle 1, 2, en 3.
En jy kan die sleutels van die verskillende tipes.
>> Jy kan 'n paar sleutels wat snare, 'n paar sleutels wat heelgetalle is.
Jy kan waardes van die verskillende tipes.
Jy kan 'n waarde wat 'n string is, 'n waarde wat 'n heelgetal is,
'n waarde wat 'n voorwerp of 'n skikking is, byvoorbeeld,
almal in dieselfde skikking voorwerp, wat is 'n soort van weird.
Jy hoef nie om 'n skikking te hê wat net 'n tipe van 'n element het in dit.
Jy kan baie verskillende dinge gaan daar in.
Die ander ding om daarop te let, is dat wanneer jy sien iets soos hierdie in jou kode,
wat is 'n geldige PHP te verklaar van 'n verskeidenheid net soos hierdie, 0, 1, 2, 3, 4, 5,
wat sal verklaar geïnisialiseer $ arr om hierdie skikking te wees.
Maar wat jy eintlik onder die enjinkap is hierdie soort van implisiete
generasie van sleutels waar ons het 0 tot 0, 1 tot 1, 2 tot 2, 3 tot 3.
En dit blyk dat selfs as jy het 'n skikking soos hierdie man hier
waar jy 'n, b en c as die sleutels
en dan kan jy begin met behulp van die skikking push metode om te begin met die gebruik van hierdie elemente van 'n skikking soos 'n stapel,
sodat jy kan sien dat hierdie skikking voorwerp, hierdie verskeidenheid is regtig overbelast raak.
Ons kan dit gebruik as 'n skikking. Ons kan dit gebruik as 'n hash tafel.
Ons kan dit gebruik as 'n stapel.
Wanneer jy begin stoot dinge op hierdie skikking
sal die eerste ding wat jy druk op hierdie indeks 0 en dan indeks 1 en indeks 2.
Wat jy kan kry hierdie soort van implisiete generasie van sleutels
tensy jy hulle uitdruklik spesifiseer.
Die manier waarop jy sleutels uitdruklik spesifiseer, natuurlik, is deur gebruik te maak van hierdie hakienotasie,
wat is soortgelyk aan skikkings behalwe in plaas van net sodat
heeltallige indekse hier, nou is ons toelaat dat enige iets.
As jy wil om jou sleutel tot 'n string wees, sou jy spesifiseer dit soos hierdie.
As jy wil dit na 'n int, gee jy dit met die int wat jy wil gebruik.
>> Vrae oor dat daar so ver?
Een van die lekker dinge oor hierdie idee
is dat jy kan altyd net een waarde wat met 'n spesifieke sleutel gestoor.
As ons terug gaan oor ons toestel laat my verwyder sommige van hierdie dinge.
En laat ons sê ek inisialiseer 'n skikking te wees 0, 1, 2, gedoen.
As ek nou weet dat, byvoorbeeld, as ek echo $ arr [0]
Ek gaan om te kry die waarde 0 gedruk,
en aangesien daar ooit kan slegs een waarde gestoor word vir 'n spesifieke sleutel
as ek iets teen $ arr stoor [0], sê 'n
dan sal ek weet wanneer ek echo $ arr [0] weer
Ek gaan nie 0 uitgedruk as voorheen te kry.
Ek gaan net 'n te kry.
So dit is basies sê dat ek nie kan $ arr [0] stoor 2 verskillende waardes.
Dit kan nie beide 0 en die tou 'n stoor, soos dit letterlik vervang
wat was op $ arr [0] voorheen.
Die rede waarom ek bring dit op loop, sien wat gebeur.
Kyk hier wat ek gekry het 0 uitgedruk en dan 'n hier neer.
Daar is geen nuwe lyn daar, want ek was lui en het nie in sit
Wat is koel oor hierdie is dat ons dit kan gebruik as 'n manier
hierdie idee van 'n stel te vang
waar ons nie kan verskeie sleutels binne 'n skikking.
Ons kan nie identies sleutels binne 'n skikking.
Ek kan nie die sleutel 0 en waarde 1 en sleutel 0 en waarde van 'n
of sleutel 0 en waarde waar.
Die sleutels is almal daar is slegs 1 sleutel in die skikking.
Selfs al is jy kan dieselfde waarde gestoor
verskeie kere in die skikking onder verskillende sleutels
dit is nie moontlik om 'n identiese sleutels verskeie kere in jou PHP array.
>> As ons kyk na hierdie volgende probleem, unique.php,
waar ons 'n PHP-lêer wil oopmaak
met 'n lys van stringe, een string per lyn,
en ons wil al van die unieke stringe in daardie lêer te vind
al wat ons hoef te doen is een van hierdie PHP skikkings
en gebruik die snare in die lêer as die sleutels tot hierdie skikking
en hou die opdatering van ons verskeidenheid as ons hierdie nuwe sleutels stoor.
Soos ons lees elke reël van die lêer kan stoor dit in die skikking,
en aan die einde sal ons hê as ons sleutels in ons verskeidenheid
al die unieke stringe in die lêer.
Maak dit sin?
Kom ons kyk hoe dit werk.
Ons gaan om oop te maak, volgens die spec, 'n nuwe lêer met die naam unique.php.
Oop te maak. Oeps, jammer, nuwe lêer.
Ons gaan dit aan die gang met die begin en die einde tags.
Ons gaan dit in artikel 9 te red, en ons gaan om dit te noem unique.php.
Okay, nou zoom.
Die idee hier is om 'n lêer oopmaak,
lees in die lêer lyn deur die lyn.
Vir elke reël in die lêer
ons sal 'n skikking waar ons
die lyn as ons sleutel.
En dan wanneer kry ons tot die einde toe hier
$ Arr se sleutels is die unieke lyne
uit die lêer aangesien ons weet dat as ek lyn in hierdie skikking
verskeie kere sal dit hou net die ou waarde te oorheers,
en ons kan eintlik 'array lyn in as homself net soos wat.
>> Dit is nogal vreemd.
Ons is die stoor van die dieselfde sleutel waarde paar oor en oor en oor weer,
maar omdat ons daarvan oortuig is dat daar slegs 1 sleutel genoem lyn wees
so as ons 'n lêer wat sê 'n lêer van diere geluide en dit het inslag inslag,
miauw, miauw, moo, moo, en elke keer lees ons 'n dier geraas uit
soos inslag en ons bêre dit in ons verskeidenheid ons kry inslag, en dan die tweede keer
ons stoor inslag sal dit die eerste keer dat ons dit gestoor oorskryf.
Op die ou end sal ons net een inskrywing in die skikking
vir elk van die dieregeluide in ons lêer dieregeluide.
Moenie julle ouens voel vol vertroue dat jy die opening van 'n lêer in PHP te pak?
Een manier om dit te doen laat ons gaan oor hierdie vinnig-een manier om dit te doen
is met die fopen, soos ons vroeër gesien het.
Jy kan fopen some_file.txt.
Jy kan dit in die lees af, net soos in C.
Dit is 'n goeie manier om dit te doen.
Jy het dan ook vir die lees in die lêer lyn deur die lyn
het dieselfde funksies, baie van hulle, wat jy gedoen het in C.
Jy het fgets.
Jy het feof, hoewel ons nie hou nie met behulp van die
want, onthou, dit was nie groot in C.
Jy kan dit doen op dieselfde manier,
maar hier is 'n baie cool ding.
Jammer, ek wil nie $ lêer doen nie, maar daar is 'n funksie genoem lêer in PHP,
en hierdie funksie reg hier is koel, want dit lees die hele inhoud
van die lêer wat u spesifiseer, so some_file.txt,
lees die hele inhoud van hierdie lêer in 'n skikking
en laat dan moet jy itereer oor dit, wat is redelik nifty.
>> As ons gaan, byvoorbeeld, aan ons web browser
en ons kyk na Google vir PHP-lêer
jy hier kan sien dat ons handleiding sê dat die lêer lees hele lêer in 'n skikking,
en ons kan die inhoud van 'n lêer file_get_contents om terug te keer as 'n string,
maar tipies net om dit as 'n skikking is regtig mooi, want wat dit doen nie
is dit breek dit op sodat elke element
in die skikking is 'n reël van die lêer,
so as ons kyk na lêer 0, dit is die eerste reël van die lêer.
File 1, tweede lyn, lêer 2, derde lyn, en so aan en so aan.
Sou dit nie lekker wees as dit is al wat jy het om te doen in C?
Pretty nifty.
Dawid het hierdie lesing, en die idioom wat hy getoon het was
wat in bykomend tot ons standaard vir loop-in PHP ons het dat
($ i = 0; i <10; i + +),
en jy dit kan doen in PHP, dieselfde ding-
ons het ook hierdie cool konstruk genoem foreach.
Foreach is regtig handig wanneer iterating oor skikkings of hierdie datastrukture
want dit laat jou toe om te trek uit elke element van die skikking
sonder om met die hand te doen om die indeksering jouself,
sonder om met die hand te skep 'n indeks veranderlike inkrementeer,
trek uit die waarde in die skikking op daardie punt, want dit is 'n baie algemene ding om te doen.
>> Jy het waarskynlik gedoen het ton van die tye wanneer jy C dinge doen
oor die semester, so met hierdie foreach
ons kan loop oor hierdie lêer skikking,
en die sintaksis is dat ons wil nou lus oor hierdie skikking
en spesifiseer dat die veranderlike wat ons gaan gebruik om te stoor
die element van hierdie verskeidenheid plaaslik, plaaslike tot die omvang van hierdie foreach lus,
is dat ons gaan om dit in lyn te bel.
As dit is 'n lêer van net woorde en daar is 'n woord in 'n lyn
ons kan dit noem woord so goed, eintlik net jy gee dit 'n naam,
alles wat jy wil om dit te noem,
en dan die binnekant van die loop wat jy kan doen wat jy wil met hierdie veranderlike lyn.
As dit is nie genoeg om die waarde van die skikking te kry en jy wil te kry
die indeks saam met dit wat jy kan spesifiseer 'n naam vir die indeks
sowel as die waarde, en nou het jy toegang tot die 2 veranderlikes.
Jy het $ i en lyn
waar $ i is die indeks in die skikking,
en die lyn is die lyn wat jy opgespoor van die lêer.
Byvoorbeeld, as ons wou echo lyn 0 van die lêer soos hierdie uit te druk,
ons kan dit doen net soos hierdie, "Line $ i van die lêer is $ lyn,"
en hier is iets wat ons ook nog nie gesien het nie óf
waar ek net heeltemal oorgeslaan oor hierdie hele% s% d besigheid
wat ons gehad het om te hanteer in C, en in plaas daarvan het ek reguit weg te
die skryf van die veranderlikes in die lyn in my string.
>> Dit is die sogenaamde veranderlike interpolasie, string interpolasie
waar jy vulsel die veranderlikes in, en die PHP-interpreter
is slim genoeg om wanneer dit lees deur middel van 'n string wat begin met dubbele aanhalingstekens
nie aanhalingstekens nie, met 'n enkele aangehaal snare jy kan nie dit doen-
maar met 'n dubbele aangehaal snare as dit lees deur dit soek vir veranderlikes.
Dit se jag hulle neer, en as dit sien veranderlikes sal dit die waarde van die veranderlike
en stop dit in die tou as dit kan dit omskep in 'n string voorstelling,
wat is redelik nifty.
Vir nou, laat se kommentaar uit die res van alles,
behalwe hierdie, en wat ons nou kan doen is dat ons kan 'n lêer oop te maak
wat ons kan noem some_file.txt-laat ons skep 'n nuwe lêer-
en ons kan sit in 'n klomp nonsens dinge hier net alles uit te toets,
stoor dit, bel dit some_file.txt, as ek doen hier aan die bokant,
As ek dan nou uitzoomen net om seker te maak alles is in dieselfde directory
dit lyk soos ek unique.php en some_file.txt in dieselfde gids.
As ek loop php unique.php
sien hoe dit druk elke lyn in my lêer en wat die lyn is?
>> Dit is redelik sterk, reg?
Kyk, dit het 3 reëls van die kode 'n lêer oop te maak.
Wel, 4 reëls van die kode. Ek kan nie tel vandag duidelik.
Maar regtig net 2 interessante lyne van kode, want die ander 2 was die kode tussen krulhakies,
maar in hierdie veel-kode ons was in staat om 'n lêer oop te maak, itereer deur dit,
trek uit die lyn en die lyn self
en druk dit uit.
Cool stuff. Charlotte.
[Charlotte] Ek het 'n vraag oor die sintaksis.
So foreach handel met elke enkele reël van die lêer wat jy oopmaak,
en dan wanneer jy wil dinge om te doen met elke enkele reël jy net dit doen as
en dan die waarde assosieer.
[Nate H.] Wat kan jy reg te doen hier-die vraag is
die foreach het te doen met die skikking, sodat die foreach sintaksis
is regtig foreach, en kennis dat daar geen ruimte
of enigiets tussen die en die elk.
Hulle het reg langs mekaar,
en dan neem dit in 'n skikking,
en dan moet jy hierdie ander sleutelwoord genoem as wat het om daar te wees,
en dan na die as wat jy kan sit een veranderlike naam,
in welke geval jy gaan om te trek uit die waardes van die skikking,
die indekse nie, of as jy dit doen as ons het geskryf onder
jy die sleutels en die waardes.
Jy moet die foreach element van die skikking of paar van die skikking soos ingesleutel om die waarde van
of net so waarde.
Afhangende van wat jy nodig het, as jy nie die sleutels nodig,
dan kan jy met die waarde.
As jy wil die sleutels wat jy kan gaan met hulle ook.
>> [Charlotte] Ek het ook besef dat ons nooit die i of lyn verklaar.
Hoe dit nie eens weet wat dit is?
[Nate H.] Wat bedoel jy deur verklaar?
[Charlotte] Ons het nooit vir hulle gesê wat i of lyn middel.
[Nate H.] Ons het nooit gesê die rekenaar wat ek of lyn beteken in terme van
[Charlotte] Dat hulle geïndekseer of dat they're-
[Nate H.] Ons het nooit gesê dat dit veronderstel is om na die indeks of die sleutel en die waarde te wees,
en dit is omdat dit is die PHP-interpreter.
Dit dien as die verklaring en sê okay, is die sleutel gaan wees
'n veranderlike genaamd i gestoor word in 'n veranderlike genaamd i.
Die waarde gaan word gestoor in 'n veranderlike genoem lyn,
so dit dien as die verklaring van hierdie veranderlikes
en sê $ i is 'n sleutel, en $ lyn is 'n waarde.
Ja, Ella.
[Ella] As die sleutels is nie gedoen nie numeries
hoe dit besluit watter volgorde dit gaan om alles te druk?
Is dit net graag die orde is dit in ingeskryf is?
[Nate H.] Kom ons gee dit 'n probeer.
Kom ons skep 'n veranderlike genaamd arr,
en ons kan doen 'n gaan na 7.
Kom ons sê 0 gaan na 'n ander skikking met 1, 2, of appel.
Kom ons sê 7 gaan na 1, b gaan na 2,
en 3 gaan tot 4.
Dit is 'n soort van 'n gek soek voorbeeld omdat ons meng
snare en heelgetalle oor die hele plek.
Daar is geen werklike einde aan hierdie skikking.
Ek bedoel, kan ons om alles in alfabetiese volgorde met die sleutels.
Ons kan bestel alles alfabeties volgens die waarde.
>> Ons kan probeer en neem in ag dat sommige stringe, sommige is ints,
en ons kan probeer en sit hulle almal aan dieselfde soort en kyk wat gebeur,
of ons kan oorweeg om hulle in die waarde wat ons reeds het hulle ingeskryf
waar ons hierdie man in die eerste, hierdie man in die tweede, hierdie man in die derde,
hierdie man in vierde, ensovoorts.
Kom ons kyk wat gebeur wanneer ons gebruik hierdie kode.
As ons scroll down en die dieselfde soort van ding te doen,
en hier is dit is nie uit te druk om die nuwe lyne.
Wanneer dit lees dinge uit van die lêer met inbegrip van die nuwe lyne in die waardes,
wat is waarom dit uitgedruk mooi, terwyl dit hier het nie,
so dit is waarom alles saam smushed.
Kom ons voeg by dat die nuwe lyn net om dinge te laat mooi.
Laat ons dit weer uit te voer, en so hier
kyk na wat gebeur het.
Druk dit alles uit in die volgorde waarin ons sit dit in die skikking.
Dit beteken bewaar bevel in daardie sin.
>> Terug te gaan na die probleem van die unieke
waar ons wil in staat wees om oor 'n lêer te itereer,
en ons sal dit gee some_file.txt,
en ons gaan oor dit so itereer.
Ons het gesê dat ons wou 'n skikking te gebruik om seker te maak dat ons almal van die wil het
unieke lyne uit daar, en ons kon dit regtig maklik doen
deur net te stoor in 'n skikking wat ons natuurlik buite die omvang van 'n lus verklaar,
en ons het gesê dat indien ons die lyne in die lêer gebruik as die sleutels in ons verskeidenheid
as ons in 'n dubbele lyn, ons wil oorheersende die vorige waarde.
Dit is nooit moontlik om 2 sleutels wat is identies in dieselfde skikking te hê.
Ons kan doen net dat.
Ons sal ontslae te raak van hierdie eggo erken hier.
Hier het ons die stoor van die reël in die lêer in ons verskeidenheid
gebruik as die sleutel.
Niks om te, en dit blyk dat ons selfs nie nodig vir hierdie sleutel.
Ons hoef nie dat ek veranderlike.
Op hierdie punt, as ons ander foreach lus was om te doen
en ons was lus oor elke arr
en lyn as ons nou eggo-oops, sorry.
Ons kan nie die komma. Ons het om dit te gebruik as navraag.
Nou as ons eggo lyn wat ons moet kry al die unieke woorde in die lêer.
As ons gaan op na some_file.txt,
en laat ons sê wat ons doen appel, piesang, appel, appel, piesang,
as ons uit te druk van die unieke woorde in hierdie lêer moet ons net
appel en piesang uit te druk.
As ons red, nou hier ons sal zoom terug in,
php unique.php, en ta-da.
Ons het suksesvol uniqued die lêer.
>> Die laaste deel van hierdie probleem vra jou om die skikking te sorteer voordat jy druk dit uit
want in hierdie eenvoudige voorbeeld wat ons het nou net gedoen
Ons was gelukkig in die sin dat die file-
Ons het dit slinks voorbeeld met appels en piesangs.
Dit is reeds gesorteer.
Maar met behulp van die eenvoudige soort funksie kan jy 'n skikking, wat is redelik nifty sorteer.
Die laaste ding wat ek wou om te praat met julle ouens regtig vinnig
is dat hierdie soort van PHP is alles goed en wel, en dit is super handig
weet hoe om te doen as jy ooit nodig het klein, vinnige dinge te programmaties te doen.
Byvoorbeeld, as ek nodig het om 'n program te skryf dat, sê,
sit almal in afdelings Ek gaan nie om te gaan en skryf dit in C.
Dit gaan lank wees.
Dit is soort van 'n pyn te wees, veral as daar lêers betrokke is,
net soos julle gesien het.
Dis so lekker dat met net hierdie baie kode hier
ons was in staat om deur middel van 'n lêer te rip, trek uit al die unieke waardes
en druk hulle weer uit.
>> Egter vir jou opdragte vir jou projekte,
as jy bou van webwerwe met PHP, die krag is wat
ons loop ons PHP lêers deur hierdie tolk,
en die tolk die verwerking van alles binne die PHP-tags,
alles verlaat onaangeraak en spoeg uit die resultate.
Ons dit kan doen HTML om programmaties te bou.
Nou, as ons gaan terug na die spec, die laaste probleem in die spec
gesprekke oor hierdie idee van konsentrasies
en die skep van 'n drop-down menu,
wat jy mag of nie mag nie wil hê om dit te doen, afhangende van wat jou finale projek doen,
wat die gebruiker toelaat om te kies uit 'n lys van alle moontlike konsentrasies
hulle een konsentrasie.
Nou, hierdie is 'n soort van 'n pyn om dit uit te tik
en het al hierdie met die hand te doen, veral as jy om seker te maak
dat jy al die hoek tussen hakies in die regte plek en al die aanhalings in die regte plek,
so met PHP jy kan dit doen programmaties, en jy kan dit doen regtig vinnig.
>> Kom ons kyk hoe om dit te doen.
Ons gaan 'n nuwe lêer oop te maak.
Ons gaan in ons PHP tags te sit.
Ons gaan om te noem dit concentrations.php,
en nou wanneer jy dit doen, om te dink soort van 'n goeie ding oor
wanneer jy probeer om te meng en pas jou PHP en jou HTML
is uitzoeken, okay, wat is die deel wat ek wil programmaties te genereer?
Wat is die deel wat ek programmaties kan genereer?
Dit is waar dat jy al jou HTML kan doen
binnekant van PHP-blokke insleutel.
Jy kan eggo van die HTML as stringe.
Byvoorbeeld, as ek wil om te begin om die kies tags binnekant van PHP
Ek eggo kan sê, sê kies name = konsentrasie,
en dan hieronder neer ek kon 'n ander echo tag
of 'n ander eggo genoem naby die kies.
Dit is een manier om dit te doen nie, want wat dit is letterlik gaan om dit te doen
druk hierdie string wanneer dit loop deur die PHP-interpreter,
so sal die gevolg wees HTML.
As ek nie stoor hierdie lêer as dit is reg nou
en ek hardloop php concentrations.php
kyk na wat ek gekry het.
Ek het hierdie oop naby kies tag.
>> As ek was om dit te doen, en ek was die resultaat na 'n lêer op te slaan,
sê, concentrations.html-wag, dit lyk soos die l oorgevaar het na die ander kant-
As ek dan nou oop hier concentrations.html jy sien ek het 'n geldige HTML-lêer.
Is daardie soort van weird?
Ons is met behulp van PHP HTML te skep, geldige HTML te skep.
Die manier waarop ons dit doen is ons net met die PHP-print
die HTML-kode wat ons wil hê om dit te druk.
Dit is letterlik hoe PHP webtuistes werk.
Wanneer jy 'n webtuiste besoek wat jy stuur na iets soos
iets, iets, iets dot com slash artikels
die rekenaar is letterlik oproep index.php,
loop dit deur die PHP-interpreter, en alles wat junk kom uit
dit terug te stuur na die leser en sê hey, die leser, interpreteer dit as HTML.
Die nice ding is dat dit kan 'n pyn wees om voortdurend te skryf eggo, eggo, echo echo
en sluit alles in aanhalingstekens soos hierdie, so as jy wil skryf
die HTML-kode wat gaan om staties te wees jouself jy dit kan doen soos hierdie,
sit dit buite, sluit dit,
en dan hier jy net binne die PHP tags wat jy weet
jy wil programmaties genereer, en in hierdie geval is daardie opsie tags
wat is 'n pyn te genereer.
>> Byvoorbeeld, ons kan genereer 'n duisend opsie tags
deur die doen van iets soos hierdie, $ i <1000, i + +
en sê eggo opsie waarde = $-Oeps, kan ek nie doen nie.
Wel, laat ons gee dit 'n probeer en kyk wat gebeur.
$ I en dan sê $ i </ option.
Eerder as om te tik dat die opsie-tag van 'n duisend verskillende tye
Ek gebruik PHP-kode om dit outomaties te genereer, programmaties.
Soort van nifty. Ja.
Ek onthou dit genoem word in die lesing of die instruksies,
maar wat is die verskil tussen die aanhalingstekens,
die gewone mense en hierdie enkele dinge?
Dit is eintlik iets wat ek verkeerd hier gedoen dat ek gaan om jou te wys.
Die aanhalingstekens Moenie toelaat dat enige spesiale karakters,
sodat alles binne 'n enkele aangehaal string is letterlik geïnterpreteer word.
As ek 'n \ n binnekant van aanhalingstekens en Ek julle verlos, byvoorbeeld,
en nou is ek gaan hier neer en hardloop-
Oeps, waar ek gaan?
Ag, dit is omdat ek vergeet die $.
>> As ek dan nou up-eintlik oop, hier, sal ons ontslae te raak van die tik dit na 'n lêer.
Ons sal net lees dit.
Hier kan jy sien dat ek hierdie letterlike \ n het in die tou, soos nie 'n werklike nuwe lyn,
en so ook, eerder as om werklik te interpol die waarde van hierdie veranderlike
dit het my die $ i self, wat is 'n soort van 'n pyn.
Die manier om hierdie is die dubbele aanhalingstekens te gebruik,
en dan wanneer jy dubbele aanhalingstekens dit sal eintlik gebruik
behoorlik interpoleer die waardes van al hierdie veranderlikes hier
en ook erken dat hierdie \ n die nuwe lyn wat dit is
en nie \ n.
Die gebruik van die enkele mense is lekker wanneer jy
karakters wat as spesiale karakters vertolk word, want dan het jy nie hoef te
ontsnap hulle voortdurend.
Dinge kan kry morsige, en dikwels die manier wat ek dit doen,
net om te maak dinge maklik, is dat as ek gaan om iets te hê
HTML wil ek in my kode edit sal insluit binne aanhalingstekens
en dan gebruik van hierdie aaneenskakellling operateur
die veranderlikes te koppel.
Dit is 'n ander manier om dit te doen
waar ons die dot dit gaan om aan te sluit het dit is 'n string
met hierdie met hierdie met hierdie,
en nou het ek nie hierdie dubbele aanhalingstekens om te ontsnap.
Ek het nie hierdie man te gebruik om te ontsnap.
Hulle sal letterlik gedruk word as dubbele aanhalingstekens en dan is hierdie man hier.
Dit is 'n ander manier te meng alles saam.
>> [Studente] Ook, wanneer jy eggo getSoort was daar geen aanhalingstekens nie.
Reg, sodat eggo is 'n soort van spesiale in die sin dat jy nie nodig het hakies.
Jy hoef nie te hê om die kwotasie noodwendig punte rondom veranderlikes,
soos dit geldig om te sê $ i eggo, en dit gaan om dit te interpreteer as 'n string.
Dit gaan die cast om te doen, sodat ons dit kan doen, en dit is geldig, maar ons het dit nie nodig nie.
Dit is opsioneel.
In hierdie week se gestelde probleem op die uitkyk vir 'n baie van hierdie soort van dinge
waar jy vermenging en wat ooreenstem met HTML met PHP
net soos hierdie, en nou as ons blaai terug en loop ons hierdie
kan ons sien dat ons het 'n hele klomp van die opsie waardes
wat net uitgedruk word.
Ons het al hierdie HTML wat het regtig vinnig gegenereer vir ons.
Ek sal laat dit as 'n oefening.
Dit is baie soortgelyk aan die lêer lees wat ons vroeër gedoen het.
>> Daar is 'n concentrations.txt lêer wat jy kan trek uit die CDN,
en jy kan dit oop te maak deur gebruik te maak van die dieselfde foreach trick wat ons vroeër gedoen het,
en foreach jy net 'n opsie en plug in te eggo
die toepaslike waardes, die korrekte sleutels en indekse,
en dan kry jy 'n druppel af wat letterlik skep
programmaties vir julle almal van die verskillende konsentrasies by Harvard.
'N handige ding om te hê.
Daar is 'n baie van die konfigurasie dinge vir hierdie opdrag.
As jy dit nog nie gedoen het dit reeds die volgende halfuur, uur,
geruime tyd vanaand beslis vir seker,
loop deur die probleem stel spec,
sien wat gaan aan met die opstel van die vhosts, die plaaslike host, al daardie dinge.
Een ding om te wys op die oomblik is dat
ons het in die meeste probleem stelle is aan die gang in jou Dropbox gids
en dan die probleem stel zip-lêer te laai en pak dit.
Vir hierdie probleem stel jy wil nie.
Jy wil gaan in hierdie vhosts directory.
Jy sal wil hê om te gaan in vhosts en gaan in die plaaslike gasheer directory binne,
en dit is waar jy die zip-lêer af te trek,
Pak dit, en kry gereed om te gaan.
Jy sal die stappe op die voet volg.
>> As jy enige vrae het, stuur e-pos, post dit op Bespreek, kom na kantoorure.
Dankie ouens. Volgende week gaan ons 'n resensie sessie te hê vir die quiz.
Geniet jou laaste probleem stel. Ek hoop dat dit alles gaan baie goed.
[CS50.TV]