[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