[Powered by Google Translate] [8 §] [vähemmän mukavaksi] [Nate Hardison] [Harvardin yliopisto] [Tämä on CS50.] [CS50.TV] Tervetuloa toiseksi viimeinen kappale. Tällä viikolla aiomme puhua PHP, ja sitten ensi viikolla teemme hieman arvostelu Quiz 1. Aiomme aloittaa sivulla 3 ongelman asettaa pakkaus, ja me työn kautta osa kysymyksistä melko nopeasti. Sivulla 3, alamme puhua tästä eroa C ja PHP siinä mielessä, että PHP on dynaamisesti kirjoitettu kieli, kun taas C on staattisesti kirjoitetaan, ja on joku todella nopeasti tehdä mitään koodaus jotain PHP tai Python tai Ruby ennen JavaScript? Täysin uutta? Okei. Kaikki nämä kielet juuri mainitsemani ovat hyvin erilaisia ​​kieliä kuten C-ja C + + ja Java siinä mielessä, että kun julistaa muuttuja sinun ei tarvitse ilmoittaa millainen muuttuja on, niin C olimme jumissa ottaa aina sanoa Tämä tulee olemaan int muuttuja, tai tämä tulee olemaan char * muuttuja, kun taas PHP, Python, Ruby, kanssa paljon näistä enemmän nykykielten sinun ei tarvitse tehdä sitä ollenkaan. Juuri julistaa muuttuja, ja kun kyseessä on PHP te julistaa, että se muuttuja edeltävällä se $ merkki, ja sitten tyypin muuttujan määritetään arvosta riippumatta se pitelee, joka on eräänlainen jäähtyä. Leikkiä tällä vähän, meillä on näyte PHP-koodin täällä välillä alku-ja. Käytämme tätä ikään kuin HTML siinä mielessä, että meillä nämä kulmaraudat täällä avata ja sulkea. Näet HTML. Näet samanlaista syntaksia XML liikaa. Tämä osoittaa alussa PHP lohkoa. Tämä? Php on nimenomaan PHP. Suljemme kaiken?> Samoin. Katsotaanpa avata tiedoston myös laitteesta mitä haluat. Tässä paketissa sanotaan soittaa dynamic.php. Todellisuudessa voit kutsua sitä mitä haluat, mutta tiedoston nimi tulee esille ja on tärkeää myöhemmin, joten vain muistaa mitä te kutsutte sitä. Aion siirtyä laitteen ja aion tehdä hakemiston 9 § Uskon me olemme nyt. Ja me mennä 9 §, ja aion käyttää gedit. Katsotaanpa, gedit ja aion soittaa kaivoksen dynamic.php. Boom. Sisällä dynamic.php, koska tämä on PHP tiedosto ja haluan ajaa tätä kautta PHP tulkin Minun täytyy aloittaa kaiken pois näiden avoimet koodit, joten aion aloittaa ne heti, antaa itselleni vähän tilaa välillä tunnisteet, ja sitten kohta tämän harjoituksen oli leikkiä Tämä toiminto nimeltään getType, joten getType, tämä toiminto täällä. Huomaa, että ei ole alaviivalla tai tila-tai yhdysmerkki tai jotain sellaista erottamalla 2 sanaa, saada ja kirjoita vain yksi sana kokonaan. Mutta mitä tämä tekee on, jos olen kulkea muuttujan getType, sano $ var tai $ x, Tämä kertoo minulle eräänlainen vuonna virheenkorjaus muodossa Mikä nimi se tyyppi on. Aiomme kokeilla täällä. Erityisesti jos muistella PSET spec meillä muutama eri koodirivillä täältä. Ensimmäisellä rivillä koodia me alustaa tämän muuttujan $ var- olla yhtä suuri kuin 7, ja sitten meillä on tämä printf linjaa joka sanoo hei, printf var on tyhjä. Printf on yksi monista tavoista, joilla voimme tulostaa asioita PHP. Usein näet Kaiutustoiminto sijasta käytetään printf, mutta printf olemme kaikki tuttuja jotka on koodaus C aikana. Mitä voit itse tehdä on katsotaanpa kopioi ja liitä teoksia. Aion antaa tämän kokeilla. Menemme takaisin päälle laitteeseen. Okei, ja siellä mennään. Ja väli on hieman outoja, mutta tässä mennään. Meillä tätä koodia tänne. [Student] Eikö ole hyvä tyyli välilehti sitä? Anteeksi? [Student] Onko tavanomaista välilehti on? Oikea, joten Sam kysyy onko yleissopimuksen välilehti sitä tai ei. Tyypillisesti kyllä. Tässä tapauksessa olen päättänyt olla. Oikeasti, näet eri asioita eri ohjelmoijia. PHP tyypillisesti käytetään usein yhdessä HTML ja muita kieliä, joten joskus tulostus näyttää hieman funky jos luetelmakohta sisällä PHP alku ja loppu tageja. Se oikeastaan ​​riippuu. Tässä tapauksessa kopioi ja liitä ei liitä välilehdet minulle, mutta se varmasti ei, kuten sanoit, on selkeytetty. Okei, jos tallennat tämän koodin dynamic.php niin mitä voit tehdä on astunut alas teidän pääteikkuna missä olen oikeassa tänne in gedit, ja tehdä vastaa koota käyttäen tehdä ja sitten käynnissä koodisi C kaikki sinun täytyy tehdä PHP tiedosto on käynnistää PHP tulkki, joka on pieni ohjelma nimeltä PHP, ja argumentti annat tulkki on tiedosto, jonka haluat tulkita. Tässä tapauksessa dynamic.php. Oho, missä minä laittaa sen? Voi, laitan sen 9 §, ja täällä olen. Siksi. Nyt jos juoksen sen uudestaan näemme, että ensimmäinen getType funktiokutsuna var on kokonaisluku. Vuonna seuraava var on merkkijono, ja sitten kolmas var on boolean. Mitä mielenkiintoista tässä on, jos me vierittää takaisin ylös näemme, että Nämä ovat tyyppejä samanlaisia ​​kuin että meillä oli C. Meillä oli ints in C Meillä tavallaan oli jousille C, joten jouset eivät ole täysin legit tyyppinen siinä mielessä, että Meidän CS50 string oli todella mitä? Anteeksi? Missy? [Missy] Char *. Joo, se oli tämä char * käytimme. Vuoden alusta lukukauden käytimme merkkijono tyyppi, mutta se oli todella char * konepellin alle. Me vain määritellyn sitä, kun taas PHP nämä jouset ovat todellisia tyyppiä. Ei enää tätä char * tyyppinen kamaa. Huomaat, että voimme tehdä paljon enemmän asioita jouset paljon helpommin PHP kuin voisimme C, ja lopuksi, meillä on tämä Boolean, ja suuri ero on, että jos selaa alas näemme, että nimi tämäntyyppisten ovat nyt kokonaisluku, merkkijono, ja Boolen sijaan int ja bool- ja kun poimia eri ohjelmointikieliä, olettaen, että jossain vaiheessa elämäänne voit joutua kosketuksiin erilaisia ​​itse huomaat pikku koukero näin jossa C kutsuu kokonaislukuja ints. Jotkut kutsuvat sitä kokonaislukuja. On muitakin termejä, voit törmätä. Big int näimme tänään SQL. On myös useita ja sitten bool, boolean, kaikenlaisia ​​eroja siellä. Tämä ei ole kovin mielenkiintoista, mutta nyt aion antaa teille vähän aikaa jos me zoomata takaisin ulos-töihin läpi tämän harjoituksen alareunassa sivun 3 jossa se kysyy, millaiset vastaavat arvot täällä alareunassa. Meillä on 3,50. Meillä on tämä asia täällä, mikä on mielenkiintoista. Emme ole nähneet, että ennen, mutta jos olet seurannut pitkin luento sinulla todennäköisesti jo tietää, mitä se on. Sitten meillä on tämä, mikä tämä on tavallaan outoja. Tunnistatko tämän. Mikä on tämän C? Sam? Mitä tämä antaa sinulle C? Se avaisi tiedoston nimeltä dynamic.php ja tehdä siitä luettavissa. Niin, ja mikä olisi tyyppinen muuttuja voisimme antaa tämän? >> Tiedosto tähti. Aivan, me antaa tätä tiedostoa tähti. Tämä on laillinen PHP liian. Suorita se. Katso mitä tapahtuu, kun ohitat että osaksi getType. Ja sitten myös tarkistaa mitä null on, mitä se voisi olla PHP. Annan teille pari minuuttia. Voit kirjaimellisesti kopioida ja liittää nämä arvot, ja sitten teemme pienen satunnainen puhelun sinua ja katso, mitä sinulla on. [Opiskelija] Minulla on kysymys. << Joo. Yhdessä luentojen David sanoi jotain, voit laittaa yläreunassa tiedoston joten sinun ei tarvitse kirjoittaa PHP aina. Mikä se oli? Hän luultavasti puhuu punnan bang, hash bang. Se on direktiivi, jos merkitset tiedoston suoritettavaksi niin mitä se tekee on kun suoritat tiedoston se kertoo kuori ohjelma käyttää PHP tulkin tulkita tiedoston sisällön. Kysymys on mitä tämä oli erityinen linja että voisimme sisällyttää yläreunassa meidän PHP tiedostoja ei tarvitse sisällyttää Tämä PHP line tai tämän PHP komento kun haluamme suorittaa tiedoston? Ja voit itse tehdä tämän kanssa joukko erilaisia ​​tiedostoja. Mielestäni se riippuu siitä, missä PHP binary tallennetaan, mutta usein usr / bin / php on hyvä paikka aloittaa. Voit selvittää tämän tarkalleen menee takaisin alas laitteesi ja kirjoittamalla, mitä PHP. Mikä komento keksii kun olet täytäntöönpanovaltion binary tai komento, jossa vastaava tiedosto on. Tämä kertoo minulle, että PHP on todella aliasing tämä binaaritiedoston joka tallennetaan usr / bin, mikä on kun paljon järjestelmän binaaritiedostot on asennettu. Esimerkiksi, jos selaa ylös, nyt kun olen laittanut tämän #! linja täällä Voin vierittää, ja voin yrittää ajaa dynamic.php, mutta saan tämän virheen lupa evätään, ja mitä se tarkoittaa, että tiedosto ei ole tällä hetkellä antaa suoritettavia käyttöoikeudet. Se ei ole merkitty tiedosto, joku voi ajaa. Kun juoksi soittaa tai clang ja sait suoritettavan siitä kääntäjä oli fiksu tietää, että hei, olen rakennus suoritettavan. Et luultavasti halua suorittaa sitä, niin se automaattisesti määrittää käyttöoikeudet sinulle. Tämä ei ole asia, mutta kun luot normaali tiedosto tyhjästä, Syynä on yleensä et halua olla mitään tiedoston koneellesi on täytäntöönpanokelpoinen, joten sinun todella täytyy mennä ja käsin tehdä se. Helpoin tapa tehdä se on kanssa chmod-komennolla, ja chmod + x sanoo lisää executable bit koska siellä lukea hieman, kirjoittaa vähän ja executable bit, r, w ja x, ja sanomalla chmod + x syttyy executable bit sillä silloin tiedoston me täsmentää, mikä tässä tapauksessa on dynamic.php. [Opiskelija] Onko se päällä kaikille? Katsotaanpa tarkistaa tämän, joten miten voisin tarkistaa käyttöoikeudet? Tiedätkö miten olisin tarkistaa käyttöoikeuksia tiedoston? [Äänetön opiskelija vastausta] Anteeksi? >> [Student] XSD. XSD antaa meille tiedosto hakata. Luetellaan kaikki tiedostot,-l, näyttää minulle kaikki tiedostot minun hakemistossa Tällainen on pitkästä, verbose listalle, joten tässä näemme, että Tämän dynamic.php tiedosto on viimeksi muutettu 5 marraskuu klo 16:21. Omistaja tiedoston jharvard. Tuo käyttäjän on kirjautunut sisään Tuo käyttäjä olen työskennellyt, ja jos olet myös laitteen olet myös työskennellyt käyttäjän jharvard. Olette opiskelijoiden ryhmässä, ja nämä ovat asioita, jotka näet riittävän usein. Voimme mennä paljon yksityiskohtia täällä, mutta suurimmaksi osaksi mitä haluat katsoa, ​​kun etsit nähdä onko tiedosto on suoritettavan on ensisijaisesti käyttäjä omistaa tiedoston, omistaja, joten tämä jharvard, ja sitten meillä on luvat bittiä tänne vasemmalla, ja tapa lukea tähän on, että viimeinen bitti tyypillisesti käytetään merkintää vai ei-ainakin tässä tapauksessa tämä viimeinen bitti on usein asetettu ad ilmoittamaan että tiedosto on hakemisto eikä vain normaali tiedosto. Sitten seuraavat 3 bittiä täällä määrittää käyttöoikeudet tiedoston omistaja on, joten tässä tapauksessa jharvard, kuten tiedoston omistaja voi lukea ja kirjoittaa tätä tiedostoa mutta siellä on viiva sanomalla, että jharvard voi suorittaa tätä tiedostoa. Seuraavat 3 bittiä ovat ryhmän, niin tämä on opiskelijoiden ryhmä, joten jos siellä oli useita käyttäjiä minun laitteessa, ja meillä oli useita käyttäjiä osana opiskelijoiden ryhmä, Sitten he kaikki voivat lukea tämän tiedoston, mutta he eivät voi kirjoittaa sitä, ja samoin kukaan muu maailma voi vain lukea tätä tiedostoa samoin. On hyvä, pitkä kirjailla tästä, joten voit lukea verkossa. Vuonna Harjoitus spec menemme tämän tarkemmin. [Opiskelija] Onko 218 viittaa maailmalle? 218 on-off pääni olen unohtanut, mutta ei. Katsotaanpa. Olen pimennys on juuri nyt. Takaisin mitä aioimme tehdä tämän chmod + x jossa halusimme antaa dynamic.php executable oikeudet, ja kysymys oli, onko tämä antaisi executable oikeudet kaikille tai vain jharvard, ja näemme tämän käynnissä komennot ja kirjoittamalla ls-l, ja nyt näemme, että se on merkitty suoritettavaksi. Näetkö että oli värin muutos. Nyt dynamic.php on lueteltu vihreä, ja se näyttää vastaus kysymykseen mitä, Charlotte? [Charlotte] Vain jharvard. >> Vain jharvard, joo. Jos haluamme kääntää executable bitin kaikille miten voisi sen teemme? Mitään ajatuksia? >> + X? Joo, aivan. Charlotte sanoi voimme tehdä chmod a + x ja dynamic.php, ja jos nyt otamme ls-l näemme että suoritettavan bitit todellakin käytössä kaikille. Ja voit itse tehdä kääntöpuolella, joten voit sammuttaa sen kaikille käyttäen miinus. Nyt se on pois päältä, ja nyt voimme kääntää sen takaisin päälle jharvard jotta voimme ajaa sen nyt, ja nyt näet, kun otamme koodia tässä erityinen #! viiva huipulla, #! linja, kertoi kuori, kertoi terminaaliimme Hei, kun tätä tiedostoa suoritetaan, käyttää / usr / bin / php tulkita tämän tiedoston ja sitten tulostaa tuotoksen. [Äänetön opiskelija kysymys] Toki haluan vierittää takaisin ylös. Aivan näin. Näet kaikki nämä direktiivit aloittaa tämän punnan ja huutomerkki, joskus kutsutaan roska, hash bang. [Opiskelija] Miten voimme ajaa sen php dynamic.php ennen kuin teemme siitä executable? Kysymys oli siitä, miten voimme suorittaa tämän käyttämällä PHP binary vaikka dynamic.php ei ole suoritettava? Tämä on erittäin tärkeää, koska juuri näin se tulee toimimaan, kun kirjoitat Harjoitus 7. Suurimman osan ajasta PHP-tiedostot eivät ole suoraan suoritettavissa. Siten, että toimii, koska se on PHP binary se executable. Tulkki on asia, joka on parhaillaan toteutetaan, ja niin mitä se tekee on kirjaimellisesti slurping koko sisältö meidän dynamic.php tiedosto ja menee rivi riviltä ja täytäntöönpanovaltion nuo komennot, joten se käyttämällä PHP-tiedosto listana ohjeita. Se ei suoraan täytäntöönpanovaltion sitä. Siellä sanotaan, että nämä tiedostot tulkitaan ajon aikana. Se ajoaika kielensä sijasta jotain, joka määräytyy käännöksen yhteydessä, ei käännetty kieli kuten C. Onko tapa saada käyntiaika kielen toimimaan, jos se kääntää aikaa kielen, kuten jos sinulla on kaikki käynnissä tehty palvelimelle kuin-sinä tiedät mitä tarkoitan? Kyllä, joten kysymys on on olemassa tapa saada juosta aikaa kielillä toimia enemmän kuin kääntää aikaa eri kielillä? Ja siellä ovat, en tarkoita, että on aktiivinen tutkimusalue on paljon näistä yrityksistä. Uskon Facebook on tehnyt paljon työtä PHP kääntämiseen alas, joten se nopeammin, optimoi se koska heidän sivusto on rakennettu PHP. Jos olet seurannut node.js ollenkaan, joka on eräänlainen JavaScript-tulkin pystyä toimimaan JavaScript ulkopuolelle selaimen ulkopuolella selaimessasi, koska perinteisesti JavaScript olisi vain ajaa sisään Firefox tai Chrome, ja se voidaan tehdä jäähtyä animaatioita tapahtuu web-sivulla ja tehdä web sivun dynaaminen. Tämä on ollut rakennettu paljon työtä, että Google on tehnyt tehdä JavaScript ja C + + sitoa yhteen, joten siellä on paljon aktiivista tutkimusta päästä kielillä vuorovaikutuksessa ja optimoida niitä, pääasiassa koska niin monet ihmiset voivat koodata PHP ja JavaScript koska se on paljon helpompaa. Se on paljon mukavampaa. Sinulla ei ole viitteitä. Sinulla ei ole tyyppiä kelluva noin. He halusivat saada hyötyä näistä kääntää aikaa kielillä kaikki tyypin tarkkailun ja nopeuden ja alemman muistin käyttö ja kaikki tämä mutta silti säilyttää joustavuus ja helppokäyttöisyys näitä uusilla. Takaisin meidän alkuperäinen suunnitelma hyökätä. Meillä muutama näistä kysymyksistä täällä meidän ongelma set spec. Mennään läpi todella nopeasti, ja me menemme ympäri huonetta. Charlotte, millainen on 3,50? [Charlotte] Tuo kaksinkertainen. >> Se kaksinkertainen. Jimmy, mitä on tämä seuraava? >> Array. Array, mahtava, ja Jared, mikä on fopen? [Jared] Se voimavara. >> Se voimavara. Sellainen uusi, ei ole tiedosto tähden, ei tiedostoa. Se on resurssi on tyyppiä PHP, ja olen pahoillani, Ella, viimeinen nolla on mitä? Null. Null, miten se kirjoitettu PHP? >> Samalla tavalla. Samoin pääkaupungeissa? >> Joo. Joo, okei. Täällä mennään, meillä kaksinkertainen, meillä array, meillä resurssi, ja sitten meillä null. Katsotaan nyt olet nähnyt, Katsotaanpa, joten nyt kai mitä minäkin haluan tehdä on vetää ylös Tämän sivun täällä, tämä php.net / manuaalinen, joten jos te kopioit tämän ja avaa selain. Aion vetää Chrome, laita se sisään Haluan näyttää sinulle tämän ei vain siksi, voimme puhua koko päivä tyypit ja kaikki hauskoja juttuja vaan koska tämä on PHP käsikirja, ja siellä on paljon PHP ohjelmoijat siellä. On olemassa paljon PHP sivustot siellä, ja seurauksena on paljon dokumentaatiota PHP, ja manuaalinen, tämä php.net, on todella hyvä paikka mennä kun sinulla on kysymyksiä siitä, mitä on paras tapa tehdä X PHP tai mitä toimintoa näyttää? Vain sellainen perehtyminen mitä tämä näyttää, koska tulet tänne usein, bitti ongelma asetettu 7. Jos päädyt tekemään opinnäytetyön, joka käyttää PHP tämä on paikka sinun tulee hyvin perehtynyt. Usein miten ihmiset tekevät tätä he käyttävät Google etsiä sivuston, ja he eivät käytä hakukenttää, joka on täällä oikeassa yläkulmassa, joka on eräänlainen pieni. Jos olet Googling noin jotain tekemistä PHP ja näet yksi käsikirjan linkkejä pop up voit yleensä luottaa, että koska melko hyvä voimavara. Awesome, joten ulos näistä tyypeistä, vain uteliaisuudesta, mitkä emme ole nähneet? Mitään emme ole nähneet täällä? [Student] Resource. >> Näimme resurssi fopen puhelun. [Student] Objects. >> Objektit emme ole nähneet varmasti. Jonotusten emme ole nähneet. On olemassa joitakin näistä pseudo-tyyppejä. Olemme ehdottomasti vain näki kokonaisluku ja kaksinkertainen. Emme näe jotkut toiset, joten jos klikkaa kokonaislukuja Voimme nähdä onko muita kokonaislukuja, että ne ovat täällä? Ovatko ne kaikki niin kokonaisluku, kokonaisluvun, kokonaisluku. Joillakin kielillä on suurempi kokonaisluku tyyppejä, kuten näimme MySQL tänään oli int ja sitten iso int. Cool. Joten, PHP manuaali. Mennään takaisin meidän ongelmamme asettaa spec, ja me nyt selaa sivu 4. Yksi asioista, joita tapahtuu, kun saat kielillä joilla ei ole tätä staattinen tyypitys, joten näitä kieliä, jos sinulla on julistaa tyyppi muuttujan edessä on saat jos saatat alkaa ottaa muuttujia erilaisia vuorovaikutuksessa toistensa kanssa, ja PHP tämä juttu, jossa se yrittää tehdä mitä se pitää järkevintä tehdä kun on 2 erilaista vuorovaikutuksessa toistensa kanssa. Esimerkiksi jos katsomme näitä riviä koodia täällä näette, että meillä mitä tapahtuu, kun yritämme lisätä merkkijono 1 kokonaisluku 2. Mitä tapahtuu, jos yritämme lisätä merkkijono, joka ei ole numeerinen arvo vaan todellinen merkkejä, CS numero 50? Sitten näemme onko jotain erilaista mitä tapahtuu jos sijaan lisätä merkkijonon numero olemme lisäämällä numeron merkkijono, ja niin edelleen ja niin edelleen siihen pisteeseen, jossa saamme jonkinlainen outoja juttuja täällä missä meillä 7 + totta. Mitä hittoa se tarkoittaa? Jos te mennä eteenpäin ja liitä osa tämä koodi laitteeseen. Voit pitää sitä dynamic.php. Saa nähdä mitä tapahtuu. [Opiskelija] Just käyttää print, ei printf? Joo, niin huomaat, että tulosta on myös kelvollinen toiminto tulostaa PHP. On olemassa monia erilaisia ​​tapoja tehdä sitä. Näemme kanssa pari esimerkkiä myöhemmin, kun alamme keskustella siitä ainutlaatuinen ongelma, että me aiomme kirjoittaa ja sitten pitoisuudet ongelma, että me aiomme kirjoittaa että vaikka meillä on fopen ja fclose se useinkaan ole yksinkertaisin tapa lukea tiedoston sisällön. PHP on paljon näitä C-like jäämiä jostakin. [Opiskelija] Kun laitoin kaikki 6 näistä asioista minulla on vain numeron lähdön. [Nate H.] Kun laittaa kaikki 6 nämä asiat. Katsotaanpa on se, koska se on mahdollisesti- Yksi asia on, että nämä print puheluja ei lakkauteta lopussa uusia linjoja. Ei ole uutta erottavan jokainen tulostaa puhelujen joten ehkä olet saada yksi suuri numero, ja se on oikeastaan ​​vain amalgaami rivinvaihtomerkit. [Student] Okei, miten varmista- No, on olemassa joukko erilaisia ​​tapoja. Voisit manuaalisesti laittaa tulostaa uuden rivin merkki, kaiku uuden rivin merkki, tulostaa uuden rivin. [Student] Niin kaiku on sama asia kuin printf? Printf on kuten C printf missä olet tulostat muotoiltu merkkijono. Olet toimittamisen muotomerkkijonoa ja sitten kaikki paikkamerkin muuttujat. Se on usein jotain, joka ei ole käytössä, Katsotaanpa, kuten vastuuvapauslauseke, Olen niin tuttuja PHP kuin olen muilla web kieliä, ja kun olen ohjelmoitu PHP En yleensä käytä printf koska minusta on nopeampi käyttää merkkijono interpolointi ominaisuuksia, että se on, jonka me mennä, ja minä näytän sinulle vain toinen, taas C meillä sellainen täytyy tehdä tämä hacky asia saada se tulostaa oikein. Voit itse laittaa muuttujia suoraan merkkijonoja PHP. Printf on tavallaan liian pitkään, mitä yleensä teen. Kyllä, Ella. [Ella] Yleensä jos saat jäsennysvirhe se tarkoittaa, kuten C-se ei kerro tarkalleen, missä virhe on ja mitä se on, niin se merkitsee katsoa läpi koko koodin ja tajuta se? Se on yleensä enemmän kohdennettuja kuin. Mielestäni tässä tapauksessa se oli hieman pois, joten uskon siinä tapauksessa olimme puuttuu puolipiste. Se yritti saada tolkkua kaikesta, joten kuten nämä tulkita kielillä, tulkki aikoo kokeilla ja tekemään parhaansa, jotta kaikki toimii asianmukaisesti. Näet, esimerkiksi JavaScript- Tulet usein-rivikäskyt päättyvät puolipisteellä aivan kuten he tekevät PHP, aivan kuten he tekevät C. JavaScript jotkut JavaScript-tulkit on paljon selaimet laittaa puolipistettä sinulle jos satut puuttuu niihin. He yrittävät ja majoittaa joitakin epäjärjestys teidän. Siellä se saattaa yrittää ja yrittää ja yrittää tehdä asiat toimivat, ja lopuksi se päästä pisteeseen, jossa se sanoo okei, En voi tehdä asioita toimi pelastamisesta, ja se jos saat rivinumero että voi tuntua hieman pois tarkka paikka. Okei, joten mennään läpi tämän todella nopeasti. Jätimme pois Ella, joten mennään yli Missy, ja Missy, mitä tulostaa merkkijonon 1 plus numero 2 antaa sinulle? [Missy] 3. >> 3. Onko siinä järkeä? Tavallaan? Antaako se sinulle numero? Antaako se sinulle merkkijono? [Missy] joukko. >> Se numero. Mutta se tulostamista, joten se aio antaa teille jonkinlaisen merkkijono. Yksi asia, mitä voimme tehdä tarkistaa tämän on, jos teemme $ var = 1 + 2 ja sitten sanomme kaiku getType, joten käytämme kolmasosa eräänlainen tulostaa täältä. Nyt näemme, mitä tapahtuu täällä. Täällä mitä meillä on meillä kokonaisluku pois tästä. Vaikka olimme lisäämällä tämän merkkijonon numero, emme saaneet merkkijono pois se, kuten Missy sanoi. Olimme saada kokonaisluku. Okei, joten katsotaanpa, seuraavaksi ylös, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Onko siinä järkeä? [Kevin] Joo. [Nate H.] Miksi? Miksi se teistä järkeä? [Kevin] Koska se on vain ottaa merkkijono, jossa numero nolla. Hienoa. Tavallaan epäselviä tilanteita, mutta on hyvä tietää, mitä tapahtuu. Stella, mitä tapahtuu seuraavaksi numero 1 + merkkijono 2? [Stella] 3. >> 3 uudelleen. Ja tässä tapauksessa, saamme merkkijono tai numero? Annetaanpa tämän kokeilla. Joku minua nopeampi saada vastauksen? Charlotte? Minä didn't-kunnossa, katsotaanpa, aiomme tehdä samanlaista asiaa jossa meillä numero plus merkkijono, ja aiomme toistaa tyyppi, mitä saamme. Saamme myös kokonaisluku. Sillä ei ole väliä kumpi on merkkijono, joista yksi on numero. Olemme edelleen menossa saada kokonaisluku. Se on silti aio tehdä mitä voimme odottaa. Selvä, joten Sam, entä 90 + 9 pulloa olutta seinälle? [Sam] 99. >> 99. Ei pulloa olutta seinälle, vaikka. Se antaa meille hieman enemmän tietoa siitä, mitä on tapahtumassa. [Sam] Jos olisit kirjoittanut 9 kirjaimin niin olisit 90, eikö? [Nate H.] Joo. Kysymys oli, jos olisimme kirjoittaneet 9 out N-I-N-E olisimme saaneet 99 tai 90? Me saisin 90. Se on kirjaimellisesti vain etsivät numeromerkit. Se ei fiksu tunnistaa useita sanoja ja juttuja. Kyllä. [Student] Onko olemassa sellaista asiaa kuin tyypittely PHP? On, ja se on juuri niin voisitte tehdä sen C Entä 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Niin, mitä voisi olla yllättävää tästä? Mitä tapahtuisi, jos teit tämän samanlaista asia C- Jos teit 10/7 C? [Charlotte] Se vain antaa teille, riippuen siitä, miten typecasted luulisin se antaa sinulle vain rajallinen määrä numeroita desimaalipilkun jälkeen. Niin, joten rajoitettu määrä desimaalilla. Mitä muuta voisi olla, olisi se anna mitään numeroita desimaalipilkun jälkeen? Usein ei, joten jälleen, riippuen siitä, miten olet tyypittely sen se voi tai ei muuntaa liukuluku. Täällä se oli tavallaan mukavaa, että se teki. Olimme osoittanut teille tämän takaisin, kun aloimme tehdä tällaista kamaa C se todennäköisesti olisi tehnyt hieman järkeä että se ei vain mennä 1. Ja sitten lopuksi, Jamie, entä 7 + totta? [Jamie] 8. >> 8. Mitä se tarkoittaa? Kai se vain antaa todellista arvoa 1. Joo. Mitä tapahtuu, jos muutamme arvoksi false? [Opiskelija] 7. Joo, niin muista mistä puhumme näistä binääri arvoja 1 olemisesta, 0 on pois? Nyt meillä on tosi on 1, 0 on epätosi, ja et ehkä nähneet tämän C esimerkeissä että olemme tehneet viime lukukauden, mutta historiallisesti bool tyyppi C ei ole ollut todellista tyyppiä, joten ihmiset ovat käyttäneet 0 ja 1 sijasta oikean ja väärän. Tämä on osoitus siitä. Okei, joten yksi tärkeä osa tästä kaikesta on, että meillä on nämä eri. Ne voivat olla vuorovaikutuksessa toistensa kanssa. Ne voivat usein olla vuorovaikutuksessa toistensa kanssa tavoilla, jotka ovat mukavia, kuten olemme nähneet täällä. On kiva voida olla merkkijono 1 ja numero 2, lisää ne yhteen ja saat 3. Siinä on järkeä. Kuitenkin, kun kirjoitat sivustoja, ja varsinkin kun olet käsittelyssä käyttäjä syöttää, niin sano olet kirjoittanut web-lomakkeen joka kerää tietoja käyttäjän ja sitten menee käsitellä sitä takana loppuun, palvelimen puolella PHP-koodin Jos odotat, että arvo käyttäjän kirjoitettu ja toimitettu lomakkeeseen olla kokonaisluku tai olla liukuluku tai jotain sinun täytyy erikseen heittää sen ja sitten tehdä joitakin tyyppi tarkkailun. Et halua vain luottaa tällaisen jongleerausta järjestelmä tehdä asioita selvittää, erityisesti turvallisuussyistä ja vain kestävyyttä sivuston. Vain jotain pitää mielessä, että kun olet käsittely lomaketiedot, mitä vastaan ​​tulee postitse tai GET Superglobaalit Varmista, että olet aina vahvistaa sen ja muuntaa sen ja Typecast sitä. Ja aivan kuten puhuimme hetki sitten, että tyypittely PHP on täsmälleen sama kuin C, jossa olet sulkeet ja sitten tyyppi. Pidä se mielessä. Yksi toiminto on kätevä, kun teet tämän on olemme käyttäneet ja tämä on tavallaan kuin syrjään- olemme käyttäneet tätä getType toimintoa täällä selvittää tyypin muuttuja, ja vaikka tämä on kätevä virheenjäljitykseen ja mitä Muuttujan tyyppi on et halua käyttää tätä, esimerkiksi tila, jossa olet tarkkailun nähdä jos getType dollaria var = kokonaisluku tehdä jotain. Tämä on huono, huono, huono. Sen sijaan on olemassa näitä toimintoja kutsutaan on kokonaisluku, on merkkijono, on matriisi, jota haluat käyttää sen sijaan, joten tässä tapauksessa mitä haluaisi tehdä eikä tämä kaveri täällä on käyttää on kokonaisluku var. Ja he usein nimitystä on is_ * siinä mielessä, että voisit korvata * kanssa kokonaisluku, string, jne., ja varmuuden vuoksi todella nopea on tämä on int php. Taisit tehdä joko on int tai on kokonaisluku samoin? Kyllä, alias, joten int kokonaisluku aliakset. Cool. Miten meillä menee? Katsotaanpa nopeutuvan hieman. Nyt aiomme puhua ryhmät, niin näet seuraavassa osassa spec puhumme miten taulukot PHP ovat hieman erilaiset kuin ne ovat C. Todellisuudessa he tavallaan amalgaami matriisit, että olet tullut tuntemaan ja rakastamaan C jossa kaikki on samaa tyyppiä tallennettu peräkkäin ja vierekkäin muistiin, ja sinulla on näitä numeerisia indeksit. Sinulla on indeksi 0, indeksi 1, indeksi 2, ja voit tallentaa arvot nuo indeksit. Voit myös C, kun kirjoitit oikeinkirjoituksen, monet teistä teki tiiviste lähestymistapaa, ja näit, että meillä oli erilaisia ​​varastointi jossa olimme kartoitus avain-arvo, joten kun olet yrittänyt tallentaa jotain tiiviste piti määrittää, että olet halunnut tallentaa sen tietyn avaimen, ja että avain määrittää sijainti, arvo ja jossa se tallennetaan. Olet tavallaan sai sekä näiden käsitteiden tapahtuu samaan aikaan PHP array, ja sen seurauksena usein kutsuvat näitä assosiatiiviset taulukot missä olemme yhdistämällä avaimen arvon. Tässä seuraavassa osassa puhumme yksinkertainen PHP array jossa meillä on avaimet a, b ja c, kaikki jouset, mappaamiseen kokonaislukuja 1, 2, ja 3. Ja voit olla avaimet erilaisia. Sinulla voi olla joitakin avaimet ovat merkkijonoja, jotkut avaimet ovat kokonaislukuja. Voi olla arvot erilaisia. Sinulla voi olla arvo, joka on merkkijono, arvo on kokonaisluku, arvo, joka on esineen tai toisen ryhmän, esimerkiksi kaikki samassa array esine, joka on eräänlainen outo. Sinun ei tarvitse olla array, joka on juuri yhdenlainen elementti. Sinulla voi olla monia eri asioita tapahtuu siellä. Toinen asia huomata on että kun teet nähdä jotain tämän koodin, joka on voimassa PHP julistaa joukko aivan kuten tämä, 0, 1, 2, 3, 4, 5, joka julistaa alustetaan $ arr olla tämän array. Mutta mitä olet itse palaveriin konepellin alla on tällainen implisiittinen sukupolven avaimet missä meillä 0-0, 1-1, 2-2, 3-3. Ja näyttää siltä, ​​että vaikka sinulla on array kuten tämä kaveri täällä jos sinulla on, b ja c avaimina ja sitten aloitat array push tapa alkaa käyttää tätä array kuten pino- joten voit nähdä, että tämä ryhmä vastustaa, matriisi on todella ylikuormittaa. Voimme käyttää sitä array. Voimme käyttää sitä hash taulukon. Voimme käyttää sitä pino. Kun käynnistät kiire päälle tämän taulukon ensimmäinen asia painat päälle tämä on indeksi 0 ja sitten indeksi 1 ja indeksi 2. Voit saada tällainen implisiittinen sukupolven avaimet ellet määritä niitä erikseen. Miten määrittelet avaimet nimenomaisesti, tietenkin, on käyttää tätä kiinnike notaatio, joka on samanlainen kuin paneelit paitsi sen sijaan sallii vain kokonaisluku indeksit tänne, nyt annamme jotain. Jos haluat avaimen olla merkkijono, haluat määrittää sen näin. Jos haluat olla int, voit määrittää sen int haluat käyttää. Kysymyksiä, jotka tähän mennessä? Yksi mukavia asioita tämän ajatuksen on, että voit aina vain yksi arvo tallennetaan tietty avain. Jos me palata meidän laite-haluan poistaa joitakin tätä kamaa. Ja sanokaamme I alustaa array olla 0, 1, 2, tehty. Jos minä nyt tiedä, että esimerkiksi, jos toistan $ arr [0] Aion saada arvon 0 tulostettu, ja koska siellä voi vain olla yksi arvo säilytetään tietty avaimen jos tallentaa jotain $ arr [0], sano, Sitten tiedän kun olen echo $ arr [0] uudelleen En aio saada 0 tulostaa kuin ennen. Olen vain menossa. Joten tämä on periaatteessa sanoa, että en voi olla $ arr [0] tallentamista 2 eri arvoja. Se ei voi tallentaa sekä 0 ja merkkijono, kuten tämä kirjaimellisesti korvaa Mikä oli $ arr [0] aikaisemmin. Syy tuon tähän asti on ajaa se, mitä tapahtuu. Katso tästä, että sain 0 tulostaa ja sitten tänne. Ei ole uusi rivi siellä, koska olin laiska ja ei laittanut että sisään Mitä viileä tästä on voimme käyttää tätä tapaa vangita tämä ajatus joukon jossa emme voi olla useita avaimia sisällä array. Emme voi olla identtisiä avaimia sisällä array. En voi olla avain 0 ja arvon 1 ja 0-näppäintä ja arvo tai näppäintä 0 ja arvon true. Avaimet ovat kaikki siellä on vain 1 avain array. Vaikka sinulla voi olla sama arvo tallennetaan useita kertoja ryhmän eri avaimia se ei ole mahdollista saada samat avaimet useita kertoja PHP array. Jos tarkastelemme tätä seuraava ongelma, unique.php, jos haluamme avata PHP tiedosto sisältää luettelon merkkijonoja, yksi merkkijono per rivi ja haluamme löytää kaikki ainutlaatuisia jousille että tiedosto kaikki mitä on tehtävä on käyttää jotakin näistä PHP paneelit ja käyttää merkkijonot tiedostoon avaimet tähän array ja Päivitämme array me tallentaa nämä uudet avaimet. Kun luemme jokaisen rivin pois tiedoston voimme tallentaa sen array, ja lopussa meillä on meidän avaimet meidän array kaikki ainutlaatuisia merkkijonoja tiedostoon. Onko siinä järkeä? Katsotaanpa, miten tämä toimii. Aiomme avata, mukaan spec, uusi tiedosto nimeltä unique.php. Avaa. Anteeksi, uuden tiedoston. Aiomme aloittaa se pois samalla alku ja loppu tageja. Aiomme tallentaa sen 9 §, ja aiomme kutsua sitä unique.php. Okei, nyt Lähennä Ideana on avata tiedosto, luetaan tiedostoa rivi riviltä. Kunkin rivin tiedostoon meillä on joukko, jossa meillä  riviä keskeisiä. Ja sitten kun pääsemme loppuun täällä $ Arr avaimet ovat ainutlaatuisia linjat tiedostosta, koska tiedämme, että jos laitan line tähän array useita kertoja se vain pitää pakottava vanha arvo ja voimme todellakin laittaa array linjaa kuin itse vain. Tämä on outo. Olemme tallennetaan sama avaimen arvo parin uudestaan ​​ja uudestaan, mutta koska me taataan, että siellä on vain 1 avain kutsutaan rivi joten jos meillä on tiedosto, joka kertoo-tiedoston eläinten ääniä ja se on hau, hau, Miau, miau, moo, moo, ja joka kerta me lukea eläimen ääntä ulos kuten hau ja me tallentaa sen meidän array saamme Hau, ja sitten toisen kerran Tallennamme woof se korvaa ensimmäinen kerta, kun se on tallennettu. Lopulta me vain yksi merkintä array kunkin eläimen ääniä meidän eläinten ääniä tiedosto. Oletteko te luottaa siihen, että voit käsitellä avaamista tiedoston PHP? Yksi tapa tehdä se, mennään yli tämän nopeasti-yksi tapa tehdä se on kanssa fopen kuten näimme aikaisemmin. Voit fopen some_file.txt. Voit avata sen lukutilassa, aivan kuten C. Se on yksi aivan hyvä tapa tehdä se. Voit myös sitten lukemista tiedostoon rivi on samat toiminnot, monet heistä, jotka teitte C. Sinulla on fgets. Sinulla on feof, vaikka emme pidä käyttää, että koska muistan, että ei ollut suuri C. Voit tehdä sen samalla tavalla, mutta tässä on todella cool juttu. Anteeksi, en halua tehdä $ tiedosto, mutta toiminto nimeltään tiedoston PHP, ja tämä toiminto täällä on siistiä, koska se lukee koko sisältö ja tiedostosta, niin some_file.txt, lukee koko sisältö tiedoston array ja sitten voit toistaa sen yli, mikä on melko näppärä. Jos menemme, esimerkiksi web-selaimen ja katsomme Google PHP tiedosto näet tästä, että meidän käsikirja sanoo, että tiedosto lukee koko tiedoston array, ja voimme file_get_contents palauttaa tiedoston sisällön merkkijonona, mutta yleensä vain saada se joukko on todella mukavaa, koska mitä se tekee on se rikkoo sen niin, että jokainen elementti pakassa on yksi rivi tiedoston, joten jos katsomme tiedoston 0, joka on ensimmäinen rivi tiedoston. Tiedosto 1, toinen rivi, tiedosto 2, kolmas rivi, ja niin edelleen ja niin edelleen. Eikö olisi hienoa, jos se oli kaikki mitä piti tehdä C? Aika näppärä. David osoitti tämän luennon, ja muotokieli hän osoitti oli että sen lisäksi meidän standardi loop-in PHP meillä oli, että for ($ i = 0; i <10; i + +), ja voit tehdä tämän PHP myös saman- meillä on myös tämän jäähtyä rakennelma nimeltään foreach. Foreach on todella kätevä, kun iteroimalla yli pakkoja tai näiden tietorakenteet koska sen avulla voit vetää pois jokaisen alkiota ilman käsin tehdä indeksointi itse, ilman käsin luoda indeksin muuttuja, kasvattaa se, vedä arvo array tässä vaiheessa, koska se on hyvin yleinen asia tehdä. Olet luultavasti tehnyt että tonneittain kertaa, kun olit tekemässä C juttuja yli lukukauden, joten tässä foreach voimme silmukan yli tämän tiedoston array, ja syntaksi on, että haluamme nyt silmukan yli tämän taulukon ja täsmennetään, että muuttuja aiomme käyttää tallentaa osa tätä array paikallisesti, paikallista kuulu tämän foreach silmukan, on aiomme kutsua sitä linjaa. Jos se tiedosto vain sanojen ja siellä on yksi sana rivillä Voisimme kutsua sitä sanaa myös, oikeastaan ​​vain annat tämän nimi, mitä haluat kutsua sitä, ja sitten sisällä silmukan, voit tehdä mitä haluat tämän linjan vaihtelevan. Jos se ei riitä saamaan arvoon array ja haluat myös saada indeksi sen mukana voit määrittää nimen indeksin sekä arvo, ja nyt sinulla on mahdollisuus saada 2 muuttujia. Sinulla on $ i ja linja missä $ i on indeksi pakassa, ja linja on linja, että noudetaan tiedosto. Esimerkiksi, jos halusimme tulostaa echo rivillä 0 tiedoston tähän, voisimme tehdä sen aivan kuten tämä "Line $ i tiedoston $ rivi" ja tässä me myös ole nähneet vielä myöskään missä olen totaalisesti ohitetaan tämä koko% s% d liiketoiminnan että jouduimme käsittelemään C, ja sen sijaan olen mennyt suoraan kirjallisesti muuttujat linjassa minun merkkijono. Tätä kutsutaan muuttuja interpoloimalla, string interpolointi missä olet täytteenä muuttujat oikeassa, ja PHP tulkin on fiksu kun se lukee läpi merkkijono, joka alkaa lainausmerkkeihin- ei lainausmerkkejä, yhdellä lainattu jouset, et voi tehdä tätä, mutta kaksinkertainen lainattu jouset kuin se lukee sen läpi etsii muuttujia. Se metsästys heitä, ja jos se näkee muuttujia kestää muuttujan arvo ja tavaraa sen merkkijonon jos se voi muuntaa sen merkkijono edustus, joka on melko näppärä. Nyt mennään kommentoida pois muusta kaikesta, tallentaa, ja mitä voimme tehdä nyt voimme avata tiedoston että voimme kutsua some_file.txt-let 's luoda uuden tiedoston, ja voimme laittaa nippu roskaa tavaraa täällä vain testata kaiken pois, tallentaa, kutsua sitä some_file.txt, koska teen täällä ylhäällä, ja nyt jos olen loitontaa vain varmistaa, että kaikki on samassa hakemistossa, se näyttää olen unique.php ja some_file.txt samassa hakemistossa. Jos juoksen php unique.php miten se tulostuu jokaisen rivin minun tiedostoon ja mikä linja on? Se on aika voimakas, eikö? Katso, se kesti 3 riviä koodia avata tiedostoa. No, 4 riviä koodia. En voi laskea tänään selvästi. Mutta oikeastaan ​​vain 2 mielenkiintoista riviä koodia, koska muut 2 olivat aaltosulkeita, mutta tässä paljon koodia pystyimme avaamaan tiedoston, toistaa sen kautta, vedä rivin numero ja rivi itse ja tulostaa sen. Cool stuff. Charlotte. [Charlotte] Minulla on kysymys syntaksi. Joten foreach käsittelee jokaisen rivin tiedoston avaat, ja sitten kun haluat tehdä asioita joka ikinen viiva juuri tee sitä ja sitten liittää arvo. [Nate H.] Mitä voit tehdä täällä-kysymys oli foreach on tekemistä array, joten foreach syntaksia on todella foreach, ja huomaa, että ei ole tilaa tai jotain väliin osalta ja kunkin. Heillä on mennä oikealle vierekkäin, ja sitten se vie ryhmäksi, ja sitten on tämä toinen avainsana kutsutaan se on siellä, ja sitten sen jälkeen kuin voit joko laittaa yhden muuttujan nimi, jolloin aiot olla vetämällä arvot array, ei indekseihin, tai jos teet sen olemme kirjoittaneet alla saat avaimet ja arvot. Teillä on foreach alkiota tai parin array kiilattu arvo tai vain arvo. Riippuen siitä, mitä tarvitset, jos et tarvitse avaimia, voit mennä arvoa. Jos haluat avaimet voit mennä heidän kanssaan. [Charlotte] Tajusin myös emme koskaan julistettu i tai linjaa. Miten se edes tiedä, mitä ne ovat? [Nate H.] Mitä tarkoitat julistaa? [Charlotte] Emme koskaan kertonut heille, mitä minä tai linja keinoin. [Nate H.] Emme koskaan kertonut tietokone mitä olen tai viiva tarkoittaa kannalta- [Charlotte], että he indeksoitu tai että He- [Nate H.] Emme koskaan kertonut sitä, että tämän pitäisi olla indeksi tai avain ja arvo, ja se johtuu siitä, että on PHP tulkki. Tämä toimii julistuksen ja sanoo okei, avain tulee olemaan muuttuja nimeltään i tallennetaan muuttujaan nimeltä i. Arvo tulee olemaan tallennettu muuttuja nimeltä linja, joten tämä toimii ilmoitusta näiden muuttujien ja sanoo $ i on avain, ja $ rivi on arvo. Joo, Ella. [Ella] Jos näppäimet eivät tehneet numeerisesti miten se päättää, missä järjestyksessä se tulee tulostaa kaiken? Onko se aivan kuten järjestys se merkitään? [Nate H.] Mennään kokeilemaan sitä. Luodaan muuttuja nimeltä arr, ja voimme tehdä menee 7. Sanotaan 0 menee toiselle array 1, 2 tai omena. Sanotaan 7 menee 1, b menee 2, ja 3 menee 4. Tämä on eräänlainen hullu näköinen esimerkki, koska olemme sekoittaa jouset ja kokonaislukuja koko paikka. Ei ole todellista, jotta tämä array. Tarkoitan, että voisimme tilata kaikki aakkosjärjestyksessä avaimet. Voisimme tilata kaiken aakkosjärjestykseen arvon. Voisimme yrittää ottaa huomioon, että jotkut ovat merkkijonoja, jotkut ovat ints, ja voisimme yrittää muuntaa ne kaikki samaa tyyppiä ja katso mitä tapahtuu, tai voisimme harkita niitä arvon, jonka olemme jo tulleet heille jos panemme tämän kaveri ensin tämä kaveri toisella, tämä kaveri on kolmas, tämä kaveri neljäntenä, jne.. Katsotaan mitä tapahtuu, kun otamme tämän koodin. Jos me selaa ja tee sama sellainen asia, ja täällä se ei tulostamalla uusia linjoja. Kun se lukea asioita ulos tiedoston se myös uusien linjojen arvoja, minkä vuoksi se tulostetaan kauniisti, kun taas täällä se ei ole, joten siksi kaikki on smushed yhteen. Katsotaanpa lisätä, että uusi linja vain tehdä asioita mukava. Katsotaanpa uusintana se, ja niin tässä mitä tapahtui. Se tulostaa kaiken pois siinä järjestyksessä, jossa laitamme sen array. Se säilyttää järjestyksen mielessä. Palataan tähän ongelmaan yksilöityä jos haluamme pystyä iteroida yli tiedosto, ja annamme sen some_file.txt, ja aiomme toistaa sen yli näin. Sanoimme, että halusimme käyttää array varmistaa, että olimme saaneet kaikki ainutlaatuinen linjat pois sieltä, ja voisimme tehdä todella helposti vain hieman tallentaminen joukko, että me tietenkin julistaa ulkopuolella silmukka, ja sanoimme, että jos käytämme rivit tiedoston avaimet meidän array jos tuli kaksoiskappale linjaa olisimme ohittaa edellisen arvon. Se ei ole koskaan mahdollista saada 2 avaimet, jotka ovat identtisiä samassa taulukossa. Voimme tehdä juuri niin. Saamme eroon tästä echo lausuma täällä. Täällä me tallennetaan rivi tiedostossa meidän array käyttäen itse avain. Mitään sen, ja käy ilmi, että emme edes tarvitse tätä näppäintä. Emme tarvis muuttuja. Tässä vaiheessa, jos tekisimme toista foreach silmukka ja olimme loop kullakin arr ja linja nyt jos echo-Anteeksi. Emme voi käyttää pilkkua. Meidän täytyy käyttää tätä avainsanaa. Nyt jos me echo linjaa meidän pitäisi saada kaikki ainutlaatuisia sanoja tiedostoon. Jos me mennä jopa some_file.txt, ja sanotaanko teemme omena, banaani, omena, omena, banaani, jos me tulostaa kaikki ainutlaatuisia sanoja tämän tiedoston pitäisi vain saada omena ja banaani tulostaa. Jos me tallentaa, nyt me zoomata takaisin, php unique.php, ja ta-da. Olemme onnistuneesti uniqued tiedosto. Viimeinen osa tätä ongelmaa ei pyydä sinua lajitella tämän array ennen kuin tulostetaan ulos koska tämä yksinkertainen esimerkki siitä, että olemme juuri tehneet olimme onnekkaita siinä mielessä, että tiedosto- teimme tämän teennäinen esimerkiksi omenat ja banaanit. Se oli jo järjestetty. Mutta käyttämällä yksinkertaista lajittelutoiminto voit lajitella taulukon, joka on melko näppärä. Viimeinen asia halusin puhua teidän kanssanne siitä todella nopeasti että tällainen PHP on kaikki hyvin ja hyvä, ja se on erittäin kätevä osata tehdä, jos joudut tekemään vähän nopeasti asioita ohjelmallisesti. Esimerkiksi, jos minun täytyy kirjoittaa ohjelma, eli asettaa kaikille osiin en aio mennä ja kirjoittaa se C Se tulee olemaan pitkä. Se tulee olemaan eräänlainen kipua, varsinkin jos on tiedostoja mukana, aivan kuten te olette nähneet. Se on niin mukavaa, että vain tämä paljon koodia täällä pystyimme rip kautta tiedoston, vedä kaikki ainutlaatuisia arvoja ja tulostaa ne takaisin ulos. Kuitenkin teidän tehtäviä, projekteihin, Jos olet rakentamassa sivustoja PHP voima on, että olemme käynnissä meidän PHP-tiedostoja tällä tulkin- ja tulkki käsittelee kaiken PHP tunnisteet, jolloin kaikki muu koskematon ja sylkee tuloksia. Voimme tehdä tämän rakentaa HTML ohjelmallisesti. Nyt, jos menemme takaisin spec, viimeinen ongelma spec puhuu tästä ajatuksesta pitoisuuksien ja luoda pudotusvalikosta, joka voi tai halua tehdä, riippuen siitä, mitä opinnäytetyö on tekemässä, jonka avulla käyttäjä voi valita luettelosta kaikki mahdolliset pitoisuudet niiden yhden keskittymän. Nyt tämä on eräänlainen tuskaa kirjoittaa tätä ulos ja täytyy tehdä kaikki tämän manuaalisesti, varsinkin kun sinulla on varmistaa että sinulla on kaikki kulmaraudat oikeassa paikassa ja kaikki lainaukset oikeassa paikassa, joten PHP voit tehdä tämän ohjelmallisesti, ja voit tehdä tämän todella nopeasti. Katsotaanpa, miten tämä. Aiomme avata uuden tiedoston. Aiomme laittaa meidän PHP tageja. Aiomme kutsua concentrations.php, ja nyt kun teet tämän, sellainen hyvä miettiä kun yrität yhdistellä PHP ja HTML on miettiminen, okei, mikä on osa että haluan ohjelmallisesti luoda? Mikä osa voin ohjelmallisesti luoda? On totta, että voit tehdä kaikki HTML sisällä PHP lohkoja. Voit toistaa kaikki HTML jouset. Esimerkiksi, jos haluan alkaa tehdä valitse Tunnisteet sisällä PHP Voin sanoa kaiku, sano valitse nimi = pitoisuus, ja sitten alhaalla voisin olla toinen kaiku tag tai toinen kaiku kutsutaan lähelle valitse. Tämä on yksi tapa tehdä se, sillä mitä tämä on kirjaimellisesti aikoo tehdä on tulosta tämän merkkijonon, kun se ajaa läpi PHP tulkin, joten tulos on HTML. Jos tallennan tätä tiedostoa, koska se on juuri nyt ja minä ajaa php concentrations.php katso mitä sain. Sain tämän auki Sulje Valitse tunniste. Jos tekisin tätä ja minä tallentaa tämän tuloksen tiedostoon, sanoa, concentrations.html-odotus, se näyttää l on siirtynyt toiselle puolelle, Nyt jos avaan tänne concentrations.html näet olen kelvollinen HTML-tiedoston. Onko tämä outo? Olemme PHP luoda HTML, luoda pätevä HTML. Miten teemme sen on me vain ottaa PHP Print HTML että haluamme tulostaa. Tämä on kirjaimellisesti miten PHP sivustot toimivat. Kun käyt sivustossa, joka lähettää sinut jotain jotain, jotain, jotain dot com slash index.php tietokone on kirjaimellisesti poimimalla index.php, käynnissä läpi PHP tulkin, ja mitä roskaruokaa tulee ulos se lähettää takaisin selaimen ja sanoo hei, selain, tulkitsen tämän HTML. Kiva juttu on, että se voi olla tuskaa jatkuvasti kirjoittaa kaiku, kaiku, kaiku, kaiku ja liittää kaikki lainausmerkit näin, joten jos haluat kirjoittaa HTML että tulee olemaan staattinen itse voit tehdä sen näin, laittaa sen ulkopuolella, sulje se, ja sitten täällä vain laittaa sisälle PHP tageja, joka tiedät haluat ohjelmallisesti luoda, ja tässä tapauksessa se on näiden optio tageja jotka ovat kipu tuottaa. Esimerkiksi voisimme tuottaa tuhat vaihtoehto tageja tekemällä jotain tällaista, $ i <1000, i + + ja sanomalla echo vaihtoehto value = $-Oho, en voi tehdä sitä. No, katsotaanpa kokeilla sitä ja katso mitä tapahtuu. $ I ja sitten sanomalla $ i