DOUG Lloyd: joten olemme tehneet paljon työtä C, ja C on todella cool kieli, koska se antaa sinulle kyky sukeltaa todella alhainen omaan ohjelmiin. Saamme tehdä asioita kuten todella minuutilta manipuloimalla yksittäisten tavua muistia. Recall että Nata todella antavat meille, että joustavuus. Mutta me aina tarvitse olla että sakko-viljan yksityiskohtaisuutta ohjelmiimme? Todennäköisesti ei, eikö? Ja jos aiomme olla kompromisseja on voi tehdä todella, todella minuutti asioita ja todella, todella suuria asioita, että meidän ei tarvitse ajatella noin, meillä ei ole toteuttaa nämä todella suuria ajatuksia jos he jo rakennettu meille, yleensä rakentaa iso ohjelmia tai suuria hankkeita, me luultavasti ajateltava saaneen lisää kielen tavaraa rakennettu meille, sen sijaan, matalan tason kamaa. Ja siellä PHP todella tulee. Nyt, yksi syy että opetamme PHP CS50 on, että se on voimakkaasti innoittamana C. Ja itse asiassa, mielestäni, on oikeastaan ​​kaksi kantaisä kielet ovat hyvin yleisiä nykyään. C ja LISP. Ja ne ovat kantaisä kielillä koska kaikki muut modernit ohjelmointi kieli, joka on kehittänyt sen jälkeen on inspiroinut yksi tai muiden syntaktisesti. PHP on hyvin samankaltainen rakenteeltaan C, kun taas kielet kuten Scheme, esimerkiksi, joka olet ehkä kuullut, on raskaasti innoittamana kieli nimeltään LISP, joka on vanhempi kieli. Joten syy opetamme PHP CS50 on että, tuntemalla C pohjimmiltaan kuin teet tässä vaiheessa, poimien PHP, joka antaa sinulle kyky tehdä paljon korkeampi asiat kuin C ei, ei ole että suuri osa este, koska sinulla on jo perusajatus syntaksin. C on ollut noin lähes 45 vuotta tässä vaiheessa. PHP on ollut noin noin 20 vuotta. Ja että 25 vuotta välillä, ohjelmoijat todennut, että ne olisivat paljon mieluummin korkeampi kykyjä, ja virheet ja kamppailut 20 vuotta välillä johti PHP ja muita moderneja kieliä. PHP: n suuri valikoima kieli ohjelmisto että allow-- varten ohjelmistot that-- missä täytyy tehdä asioita, että C on itse asiassa monimutkainen. Niinpä esimerkiksi, työ jousten C on hyvin monimutkainen, koska kuten tiedämme, jousille C ovat todella vain ryhmät merkkiä. Se ei ole sisäänrakennettua tietotyyppi. Tai ehkä enemmän pohjimmiltaan, me ei kattanut edes C, mitä jos sinun ei tarvitse tehdä joitakin tietokoneen verkottuminen? Selvä? C on kyky tehdä se, mutta se on niin mystistä ja niin vaikea itse tehdä. Eikö olisi mukavaa, jos kieli oli sisäänrakennettu, helppo tapa toteuttaa verkottumista? Ja PHP on kieli, joka tekee, että tai helpottaa että hieman enemmän. Kuten sanoin, PHP on erittäin voimakkaasti innoittamana C. syntaksi on hyvin samankaltainen. Ja niin se pitäisi toivottavasti siirtyminen toisiinsa hieman pehmeämpi kuin jotkut Muilla kielillä voisi olla. Alkaa kirjoittaa PHP, vain avata tiedoston .php tiedostopääte. Teknisesti tämä ei ole todella tarvitaan, mutta jos haluat asioita, kuten syntaksin korostus IDE, niin että tyyppi nimiä, tai muuttujien nimet, tehtävät, tiedät, avainsanoja kieli on korostettu tiettyä väriä, voit yleensä halua nimetä tiedostosi tietty tiedostopääte. Joten olemme nimenneet tiedosto .php laajennus, mutta sitten myös PHP, kaikki PHP kirjoitamme, että tiedosto on suljettu näissä PHP delimiters että näemme tässä ruudulla. Kulmasuljetta? Php aloittaa. Sitten me kirjoittaa kaikki meidän PHP koodi että haluamme välillä. Ja sitten ? kulmasulkeen sulkea. Jos emme tee tätä, niin mitä tulee tapahtumaan? Se ei tule kaatumaan. Se ei aio todella pilata meidän ohjelma. Mutta se ei tule olla jonka mukaan haluamme. Mitä tulee tapahtumaan, todella, on että kun yritämme ja suorita tämä ohjelma, kaikkea ei näiden erottimet aiotaan tulostaa sanatarkasti. Se ei aio todella suorittaa koodia, se tulee vain tulostaa sen sanasta sanaan. Nyt, miksi on näin? Joten C on mitä kutsutaan koska käännetty kieli. Olet todennäköisesti tuttu askel tehdä ohjelmat, kääntämällä .c tiedostot ja .h tiedostot yhdeksi executable make, erityisesti käyttämällä Kalahtaa kuin meidän kääntäjä. PHP, vaikka, ei on tämä vastaa. PHP on mitä kutsutaan tulkittu kieli. Ja mitä se tarkoittaa? No, se tarkoittaa, että meidän ei tarvitse muuntaa meidän lähdekoodin nollia ja ykkösiä etukäteen. Pikemminkin siellä ohjelma, jota kutsutaan myös PHP, joka ymmärtää PHP ja voi tavallaan tehdä sen lennossa. Se ei oikeastaan ​​tarkalleen tarkka, mutta se on aika hyvä analogia mitä tapahtuu. Se tulkittaessa kyseisiä nollia ja ykkösiä lennossa. Joten jos se ei tiedä miten käsitellä jotain, jos se ei osaa prosessi PHP, luultavasti halusi laittaa että tekstiä siellä, eikö? Olet luultavasti halusi laittaa koodia siellä, vaikka se ei ole välillä PHP-- PHP erottimet. But-- joten se ei tule poistaa sen sinulle, se juuri menossa pohjimmiltaan hävittää sen. Joten se tulee tulostaa sen ulos ruudun. Tämä tuntuu se huono asia, mutta itse asiassa se on olemaan todella hyvä asia, kuten tulemme katso kun puhumme PHP kehityksen, koska se tarkoittaa, että voimme sirotella PHP ja HTML. Voimme käyttää niitä yhdessä luomaan dynaamisia Web-sivun. Mutta lisää, että video PHP kehityksen. Joten mikä on syntaksi PHP? Sitähän tämä video on kyse. Puhutaanpa siitä. Joten aloittaa, muuttujia. PHP muuttujat ovat olemassa. On vain kaksi suurta erot C. Ensimmäinen on se, että on olemassa ei tyyppi määrittelyksi. Meillä ei ole sanoa int, nieriä, kellua, kaikki jutut. Meillä ei tarvitse tehdä enää. PHP on nykyaikainen kieli. Se voi selvittää, mitä olet yrittää tehdä tai tehdä paras arvata, mitä yrität tehdä. Niin se on aika kiva. Toinen asia on, että kaikki muuttuvat nimet on aloitettava dollarin merkki. Se on vain jotain tottua. Se on vähän outo, koska se on niin, että PHP voi ymmärtää mitä muuttuva ja mikä ei. Joten jokainen muuttujan nimi alkaa dollarin merkki. Joten C voisimme sanoa jotain näin, int x = 54. Meillä ei tarvitse tehdä enää PHP. Voimme vain sanoa $ x = 54. Ja voisimme sanoa esimerkiksi, C, jos olisimme punta-mukana CS50 .h header-tiedosto, voisimme sanoa string lause = "Tämä on CS50." Meidän ei tarvitse tehdä sitä PHP, vaikka. Voimme vain sanoa $ lause = "Tämä on CS50." Ja itse asiassa, merkkijono on nyt sisäänrakennettu tietotyyppi PHP, tai pikemminkin PHP ymmärtää mikä merkkijono on. Se erillään array Merkkien kuin se on C. Kaikki suosikki ehdollinen lausunnot C ovat vielä käytettävissä voit käyttää. Joten ei iso siirtyminen siellä. Voimme say-- voimme olla jos lausuntoja, kuten tämä. jos $ y 43, tai $ z = 15. Niin se on melko yksinkertainen. Meillä voi olla, jos ja muuta. Meillä voi olla, jos ja muuta, jos. Ja huomaa jotain ihan kiva täällä, ja tämä on tavallaan yksi niistä Edut PHP vs. C, ilmoitus mitä toimintoa emme käytä täällä? Käytämme == verrata muuttuja, $ nimi, merkkijono. Emme voineet tehdä sen C, eikö? Jouduimme käyttämään toiminto nimeltään StrComp tai StrEndComp tai etuyhteydessä serkut. Ja niin jo näemme nämä edut. Meidän ei tarvitse tehdä jotain typerä tai ehkä unintuitive kuten soittaa toiminto nimeltään StrComp jos vain haluat testata onko arvo on merkkijono. Voisin vain käyttää yhtä kuin tasavertaisten, kuten Voisin tehdä mitään muuta. Joten ei hyötyä. Joskus, muuten, saatat katso if yhdeksi sanaksi, elseif. Ja se on OK PHP samoin. Joten joskus saatat nähdä, että. Se ei ole kirjoitusvirhe. PHP todella ymmärtää elseif. En tiedä miksi he päätti toteuttaa että, mutta kuten olemme nähneet monta kertaa koko meidän videoita toistaiseksi, me ohjelmoijia kiva, jos voimme tehdä asioita nopeasti, joten päästä eroon, että tilaa on ilmeisesti suuri etu. Niin, että jos ja elseif. Meillä on myös kolmen komponentin operaattori, Recall kysymysmerkki paksusuoli, sillä todella lyhyt muoto, jos muu tai ehdollinen haarautuvan. Ja ilmeisesti, tässä, mitä me yritämme tehdä täällä on määrittää muuttuja $ Kirje joko tosi tai epätosi, riippuen siitä $ var on kirjaimella. Joten tämä on melko samanlainen isalpha että olemme tuttuja C. Tämä on tavallaan vastaava PHP. Toiminto on ilmeisesti nimeltään ctype_alpha, mutta se miten sen teemme PHP. Joten kaikki tämä tulee olemaan on, jos $ Var on kirje, $ kirje on totta. Jos $ var ei ole kirjain, $ Kirjain on väärä. Meillä on myös kytkin lausuntoja edelleen. Muistutamme niillä, C samoin. Huipulla siellä, näin teemme jotain get int tai saada merkkijono. Niin PHP on, että rakennettu. Emme tarvitse CS50 kirjasto enää. Voimme vain käyttää toimintoa readline. Mitä se aikoo tehdä on tulosta ulos viesti, "Sinun valtio, please "ja sitten vilkkuu nopea odottaa käyttäjää syöttämään joitakin tietoja. Nyt huomaa mitä muuta voimme tehdä kytkimellä. Jos olet käyttänyt sitä ennen, ehkä muistatte, että kytkin rajoittuu melko paljon kokonaislukuja ja merkkiä, mutta nyt voimme käyttää jouset. Ja itse asiassa, kytkin selvitys PHP on melko vähän joustavampi kuin sen serkku C. Silmukoita. Aivan kuten konditionaalien, kaikki vanhat suosikit ovat edelleen olemassa. Olemme samalla silmukoita, jotka lasketaan 1-100 tässä tapauksessa. Olemme tehdä, kun silmukoita että laskea 1-100, ja meillä on silmukoita että laskea 1-100. Joten ei iso harppaus siellä. Syntaksi on melko paljon täsmälleen sama, paitsi nyt käytämme dollarin merkki muuttuja sijaan julistaa kokonaisluku muuttujia tai jotain meidän laskurit. Tässä kun asiat paljon parempi kuin C, vaikka. Taulukot. Joten Muistan kun olimme puhumme C, jotta meille kasvaa ja kutistua tietopakettia, tarvitsimme lajitella maksukyvyttömyyden Tämän ajatuksen linkitetty lista, koska C taulukot kiinnitettiin koko. Emme voineet kutistua niitä. Emme voineet kasvattaa ne. Meidän piti kohdentaa muistia ja tehdä kaikki tämä hulluus tai käytä liittyvät luetteloita, joka vievät hieman enemmän tilaa. Mutta PHP, taulukot ovat ole vahvistettu koko enää. Ne voivat kasvaa ja ne voivat kutistua. Joten jälleen, nämä 20 vuotta, joka vallitsi ensimmäisen julkaisun C ja ensimmäinen julkaisu PHP, päätimme, että te tiedätte, se olisi todella suuri jos voisimme tehdä tämän. Ja niin otimme tämän. Joten PHP paneelit eivät ole sidoksissa koko, ja koska PHP ei oikeastaan on ohjelmoija avautuvat etupuolelle käsitteet tyypit, Voimme sekoittaa tietotyyppejä meidän paneelit, liian. Joten emme edes tarvitse käyttää kaikkia kokonaislukuja tai kaikki kelluvat pistettä, meillä voi olla yhdistelmä kaikista erilaisia ​​yhdessä array. Julistamisesta array on melko yksinkertainen. Se on aivan kuin muitakin muuttujia. $ Nums = array (1, 2, 3, 4), array on funktio joka on rakennettu PHP, joka luo array sinulle. Tämä luo erilaisia ​​neljästä arvosta, numeroita tässä tapauksessa nimeltään $ nums. Ja siellä on enemmän kuin yksi tapa tehdä se. Ja aiomme katso tämä paljon PHP. PHP on kehitetty monia eri ihmiset ja kasvaa ja kasvaa ja kasvaa. Ei yleensä ole vain kaksi tai kolme tapaa tehdä jotain PHP, siellä on yleensä noin 10 tai 20. Tässä on vain yksi yhteinen tapa julistaa array. $ Nums = hakasulkeen 1, 2, 3, 4. Joten tämä on tavallaan samanlainen kuin C: n kulmaan br-- kihara ahdin merkintä, pikemminkin. $ - tai se olisi int nums neliö Suluissa vastaa kihara ahdin 1, 2, 3, 4. PHP on $ nums = neliö kiinnikkeet 1, 2, 3, 4. Mutta molemmat näistä esimerkeistä täällä antaa minulle johdosta neljä tässä tapauksessa kokonaislukuja. Mitä jos haluan tack jotain nyt? No voin vain sanoa $ nums 4, joka uudelleen, olemme yhä laskettuna 0 täältä PHP, olisi viides alkiota. Voin vain sanoa, että. En aio kärsiä SEG vika, koska minun matriisi on vain tulee kasvamaan sijoittaa että. Se on ihan kiva, eikö? Ja itse asiassa, en edes tarvitse määritellä, missä haluan laittaa sen. Voin vain sanoa tämän ja vain tack se aivan loppuun asti, tai voisin jopa vain sanoa $ nums 20 tai 1000. Se ei ole oikeastaan ​​väliä. Se on edelleen juuri menossa tack se aivan loppuun asti. Voin siis kasvaa, ja as-- olemme aio peitellä sitä täällä, mutta voin liitos tai kaistale elementtejä ulos array samoin, ja array kutistuu mukautumaan että nyt puuttuvat tai tyhjää tilaa. On toinenkin tapa tack jotain päälle jono, joka on toiminto nimeltään array_push. Joten jälleen, juuri tämä ajatus on voi tehdä asioita monin eri tavoin. Joten olemme nähneet kolmella eri tavalla nyt tack toinen elementti päälle jono. Joten tämä lisää toinen elementti loppuun $ nums jono. Ja voimme sekoittaa meidän tietotyyppejä. Niin voisin olla joukko ei 1, 2, 3, 4, mutta 1, totta, 3, 4, jos totta on Boolen, ja sitten jos haluan tack toinen elementti kyseiseen array, ehkä merkkijono, merkkijono "viisi" voisin tehdä että. Ja nyt minun array olisi olla 1, totta, 3, 4, viisi. Sana viisi, ei kokonaisluku 5. Niin paljon joustavuutta siellä. Joustavuus saa jopa parempi, vaikka, koska PHP on tukea jotain kutsutaan tällainen taulukko. Ja me tavallaan epämääräisesti puhui noin assosiatiiviset taulukot C yhteydessä hash taulukoita, koska mitä assosiatiiviset taulukot ovat oikeastaan ​​kaikki noin tekevät avain arvopari kuvaukset. Ja tässä tapauksessa, keys-- jos olemme tuttuja paneelit C-, avaimet ovat indeksiluvut. 0, 1, 2, 3. Ja arvot ovat mitä löydämme, että array 0, array 1, array 2, ja niin edelleen. Joten avaimet ovat indeksit, ja arvot ovat mikä on että joukko paikalla, jonka kyseisen indeksin. Mutta PHP, meidän ei tarvitse tehdä tätä käsite array 0, array 1, array 2 enää. Voimme nyt käyttää todellisia sanoja karttaan avaimet arvoja. Ja niin voisin sanoa jotain tällaista. Voisin luoda matriisi hakasulje syntaksi seuraavasti. $ Pizzat = hakasulkeen "Juusto" ja sitten tällainen kaksoisnuolella merkintätapa, 8.99, "pepperoni," nuoli 10.99-- 9,99, ja niin edelleen. Ja niin mitä täällä tapahtuu? Mitä minä todella tekee? Olen luomassa keskeinen arvo pari kuvaukset. Joten sen sijaan sanomalla esimerkiksi, pizzat 0, kpl 1, pizzat 2, Voin nyt sanoa pizzat juusto, pizzat pepperoni, ja viittaavat arvoihin niihin liittyviä. Joten tässä on meidän avaimia vihreällä. Juusto, pepperoni, vihannes, puhveli kana. Tässä on nuoli, joka tekee tämä keskeinen arvo pari kartoitus. Ja sitten täällä ovat arvoja tässä array Sijainti. Joten se on kuin sanoisi array 0 on 8.99. Tärkeintä on 0. Arvo on 8.99. Voin nyt sanoa array juustoa, tai tässä tapauksessa pizzat juusto, juusto on avain, ja mitä löydän osoitteessa pizzat juusto on 8.99. Se arvon että pidän siellä. Voin siis sanoa asioita, kuten. $ Pizzajuusto = 7.99. Sano Minulla on myynnissä. Haluan dis-- haluan pudottaa hinta juuston pizzaa. Tai voin käyttää kasvis pizza osana kunnossa, tai voin lisätä uusi elementti minun array, aivan kuten voisin tehdä aikaisemmin. Voin lisätä uuden elementin tähän assosiatiivinen joukko avaimella "pekoni" ja arvo 13.49. Mutta tällainen esittelee ongelman, jos ajattelee sitä toista. Kuinka voisimme kerrata tällä array? Oikea? C, olisimme vain silmukka, tyypillisesti, että kulkisi 0 taulukon koko miinus 1. Array on n elementtejä on, voimassa indeksit ovat 0-n miinus 1. Jotta voisimme käyttää varten silmukan selata jokaisen elementin. Mutta se ei oikeastaan asia enää, eikö? Nyt jos meillä on keskeinen arvo pari kuvaukset jossa avaimet ovat sanoja, Miten me kerrata hoitaakseen kaikki sanat? No, onneksi PHP on tapa käsitellä tämäkin, ja niin me hypätä takaisin piireihin toista ottaa käyttöön neljäs eräänlainen silmukka, joka olemassa PHP kutsutaan foreach silmukka. Ja mitä foreach silmukka tekee on se on pohjimmiltaan sama ajatus. Voit käyttää sitä mihin tahansa array. Mutta se on pohjimmiltaan sama idea kuin varten silmukka, paitsi käyttämisen sijasta indeksiluvut, juuri on tämä outo syntaksin jossa soitat jokainen elementti nimi tämän silmukan. Joten tässä tapauksessa, foreach ($ array $ avain). Pohjimmiltaan, koska tuon kommentin toteaa, sisällä että foreach silmukka, se mene yli joka ikinen elementti $ array, joka on tyypillisesti olemaan tällainen taulukko, mutta voi todella olla mitä tahansa array että haluat PHP. Ja joka kerta, että silmukka saatat ovat sanoneet $ array hakasulkeita $ I, voit vain sanoa $ avain. Jotta $ avain tulee alias jokaiselle indeksi PHP assosiatiivisia array, ja niin voit käyttää sitä niin. Niinpä esimerkiksi, olemme nyt saimme pizzat array. Olen tavallaan työntää se nurkkaan siellä joten voimme käyttää sitä tehdä nopea esimerkki. Jos sanon foreach ($ pizzoja $ Pizza), hyvin, mitä tapahtuu? No, aion kerrata läpi jokaisen yksittäinen elementti array $ pizzat, ja näin, aion soittaa jokainen elementti, kun olen sisällä ruumiin että silmukka, $ pizza. Niin, että on eräänlainen stand-in, muistaa, että $ pizza on stand-in sanomalla $ Pizzat hakasulkeita $ i jos käytimme silmukka, jossa voisi siirtyä $ i = 0, tässä tapauksessa, $ I = 3. Jos meillä ei olisi keskeinen arvo pareja täällä, tämä olisi elementti 0, 1, 2, 3, ja me käyttäisimme silmukka mennä $ Pizzat 0, $ pizzat 1, $ pizzat 2, $ Pizzat 3. Joten nyt vain $ pizza on korvaamalla kyseisen henkilön avain. Joten mitä tämä tulee tulostaa? Olen tulostamalla $ pizza. Mitä minä löytää at-- jos olen tulostaa $ pizzat, $ i? Oikea? Jos aion tulostaa i: s elementti pizzat, Mitä minä tulostaa? Aion tulostaa arvot kyseiselle paikalle, eikö? Kuten jos teemme Tässä yhteydessä C, emme yleensä käytä iteraattori muuttuja, int i = 0, i on pienempi kuin 3, i ++, tulostaa 0, 1, 2, 3. Olemme tulostamisen array 0, array 1, array 2, array 3. Ja niin mitä tämä tulostaa on tämä. Se on luettelo hinnoista. 8.99, 9.99, 10.99, 11.99. Nyt nopeasti huomata täällä. Foreach silmukka ei välttämättä tulostaa asiat järjestykseen. Se ei ole taattu. Se yleensä tekee. Se perustuu yleensä järjestyksessä jotka elementit on lisätty array, niin vain muistaa se. Se ei ehkä ole kunnossa. Mutta foreach silmukka kerrata poikki jokainen elementti array kyseessä. Tässä tapauksessa, jälleen, että matriisi on $ pizzat. Voin vaihtaa syntaksia, vaikka, jos Haluan sekä avain ja arvo. Sen sijaan, että sanonta $ pizzat kuten $ pizza, voin sanoa tämän. Ja jos tarkastellaan, mitä olen korostettuna vihreänä täällä, se näyttää keskeinen arvo pari kartoitus. Joten jos sinä-- vaikka et ole täysin varma, mitä se aikoo tehdä, arvata että $ keveiden on menossa on avain tässä tapauksessa ja $ Hinta tulee olemaan arvo. Joten olen korvaamalla nyt jokainen elementti on $ pizzat keskeisenä arvo pari, ja nyt voin viitata avaimen ja arvo, joka saattaa kätevä, esimerkiksi, seuraavasti. "Koko" - tämä on paljon tulostus meneillään here-- "koko" topping "pizza maksaa $" hinta, ja sitten Olen tulostaa ajan ja kenoviiva n. Joten nyt, ilmoitus taas minulla on pääsy avain, $ keveiden, ja arvo, $ hinta. Joten voitte arvata, mitä tämä on menossa tulostaa? Siellä on paljon tulostaa lausuntoja, mutta on vain yksi kenoviiva n, joten se tulee tulostaa jotain entire-- yhdellä rivillä koodia. Jos voin viitata avain ja arvo, niin nyt, eikä vain pysty tulostaa hintoja, Voin tulostaa jotain tällaista. "Koko juusto pizza maksaa $ 8.99." Ja nyt olen käyttäen kaikki keys-- juusto, pepperoni, vihannes, Buffalo chicken-- ja arvot. 8.99, 9.99, 10.99, 11.99 Niin se on vain eri tavalla tehdä foreach silmukka, että sen sijaan vain antaa sinulle pääsyn arvoja, se vain antaa sinä-- se antaa sinulle pääsy avaimia ja arvoja. Joten tulostamalla tiedot. Olen jo tehnyt sen pari eri tavoin, olet ehkä huomannut. Kaksi tehtävää olemme ensisijaisesti nähnyt printti- ja kaiku. Ja aika paljon kaikki aikomukset ja tarkoituksiin, ne ovat täsmälleen samat. They're-- siellä hyvin hienovarainen erotuksella, että ei ole edes kannata joutumassa, mutta pohjimmiltaan kaikkialla voit käyttää tulostaa voit todennäköisesti käyttää echo samoin. Ja se ei ole vain kaksi. PHP on paljon erilaisia tapoja tulostaa asioita, ja se on myös keinoja nivoa muuttujat keskelle merkkijono. Joten muistamme C, oletteko muista mitä toiminto voimme käyttää korvata muuttujia asioihin haluamme tulostaa? Olet luultavasti käyttää tätä toimivat melko paljon. printf, eikö? Joten tämä on mitä meillä oli ennen sisällä n yhteydessä meidän foreach silmukka. Meillä oli näitä viisi erillinen tulostaa lausuntoja, koska se oli ainoa tapa En todellakaan tiennyt tuolloin miten tulostaa viestejä. En tiennyt miten yhdistää muuttuja $ keveiden minun PHP. No, jos vain ottaa villi arvaus, printf, se todella olisi toiminut. printf on toiminto, että voin käyttää PHP, aivan kuten voin käyttää sitä C. Ja niin jotain tällaista, printf, uudelleen, olemme tuttuja että. Ensimmäinen% s korvataan kanssa arvo $ keveiden. Toinen% s korvataan kanssa arvo $ hinta. Ja niin olen interpellating, joka on vain hieno tapa sanoa olen kiinni muuttujia kyseisessä paikassa. Joten olen kytkemällä $ keveiden jossa punainen% s on ja $ hinta jossa sininen% s on, ja sitten haluan saada viestin, "Koko juusto pizza maksaa $ 8.99." Ei ole ainoa tapa voin tehdä sen, vaikka. Ehkä en haluaisi käyttää tätä menetelmää. Tämä on oikeastaan ​​mitä yleisimmin kutsutaan muuttuja välikysymykseen. Voin käyttää kaikua. Voisin käyttää tulostaa myös, kuten näemme. Mutta mitä täällä tapahtuu? Ensinnäkin minun täytyy paeta dollarin merkki. Koska muistan, kun olimme todella tulostamalla hinnat pizzat, Olin todella muotoilut niitä raha lukuja dollarin merkki. Mutta käytämme dollarin merkkejä myös edustamaan muuttujanimet PHP, ja erityisesti kun olen tällä menetelmällä on kihara ahdin muuttuja Välikysymykseen menetelmä, tarvitsen paeta minun dollarin merkki, joten se ei ajatella Puhun muuttuja. Se tulee todella, kirjaimellisesti tulostaa dollarin merkki. Joten tavallaan analogize sen mitä näet lopussa siellä. Se ei oikeastaan Tulosta kenoviiva n, eikö? Se tulostaa uusi rivi merkki. Tämä is-- se ei aio Tulosta kenoviiva dollarin merkki, se tulee tulostaa vain dollarin merkki merkki. Sama ajatus. Ohjausmerkkijonoja, mitä nämä asiat ovat nimeltään. Mutta huomaan, että en tee minkäänlaista% s vaihdot, Olen vain kirjaimellisesti kytkemällä näiden muuttujien. Ja niin this-- mitä tapahtuisi täällä on se, että arvo $ topping-- uudelleen, vain sopusoinnussa mitä olemme olleet puhumme niin far-- juustoa saisi kytketty siellä. Ja $ hinta olisi arvosta riippumatta on klo pizzat, hakasulkeita, juustoa, joka oli 8.99. Ja niin tämä myös tulostaa "Koko juusto pizza maksaa $ 8.99." Ja kuten sanoin, voisin käyttää tulostaa täällä sijasta kaiku, ja toiminnallisuus on melko täsmälleen sama. Se tulostaa sama asia. On toinenkin tapa tehdä se, ja tämä on toinen etu PHP kanssa jouset. Voimme tehdä merkkijono ketjuttamista. Voisimme tehdä tämän C, liian, käyttämällä toiminto nimeltään strcat, mutta jälleen, jouduimme soittaa erillisiä toimintoja. Se oli tämä koko sotku tehdä. Jouduimme punta-sisällyttää string.h. Se oli tuotanto, eikö? Mutta nyt voin vain käyttää tätä piste operaattori ketjuttaa langat yhteen. Joten olen ketjuttamalla "koko" ja sitten mikä tahansa arvo $ keveiden on, ja sitten toinen string, "pizza kustannukset $" ja sitten ketjutetaan riippumatta arvo $ hinta on, ja sitten aivan lopussa olen tacking aikana kenoviiva n. Ja niin tämä olisi myös tulostaa "koko" - jälleen, jos me puhumme ensimmäinen osa tätä pizzat array-- "Koko juusto pizza maksaa $ 8.99." Aika, kenoviiva n, jälleen, jossa $ keveiden ja $ hinta korvaavan mitä olimme määritetty meidän foreach kaareen keskeinen arvo pari kartoitus. PHP voi käsitellä toimintoja. Toiminnot olivat eräänlainen olennainen C, kuten näimme. Kuten muuttujia, meidän ei tarvitse määritä palautuva funktion, koska se ei ole oikeastaan ​​väliä. Ja emme määritä tietotyypit parametreja, koska he eivät oikeastaan asia, kuten olemme nähneet PHP. Jokainen toiminto on otettu käyttöön toiminnolla avainsanan. Näin saimme ilmoittaa PHP, joka mitä me puhumme on funktio. Ja meillä ei tarvitse käsitellä tärkein lainkaan, koska tulkki, PHP tulkki, toimii ylhäältä alas, riippumatta. Jos se näkee voit tehdä funktiokutsu, se tulee mennä etsimään funktiokutsua, vaikka se tulee myöhemmin. Mutta se tulee lukea ylhäältä pohja, joten meidän ei tarvitse määrittää, Tässä kun aloitat. Aloitat linjalla 1 teidän PHP ja työskennellä alas sieltä. Joten tässä on se, miten me loisi toiminto nimeltään hard_square. Se ilmeisesti kestää yhden parametri, joka soitan $ x. Tämä toiminto on monimutkainen vain havainnollistaa eri asioita. Meillä on vielä paluuarvot. Olen käyttäen silmukka täällä. Mutta se on pohjimmiltaan vain, mitä tämä merkitsee vain $ x kertaa $ x. Mitä olen todella tekee on vain lisäämällä x 0 x kertaa tai $ x nolla $ X kertaa. Mutta se on tehokkaasti täsmälleen kertomista $ x kertaa $ x. Voin silti palauttaa arvon, tässä tapauksessa $ tulos, ja olen tehnyt toiminto PHP. Näin voit käyttää sitä yhteydessä. Joten ehkä olen sisällä joitakin PHP-tiedosto. Ilmoituksen sininen siellä Olen käyttänyt minun PHP eroittimille kulmasuljetta kysymysmerkki php. Välillä ne ovat kaikki PHP että haluan kirjoittaa. Joten olen ilmeisesti menossa get-- Aion pyytää käyttäjältä antaa minulle numero, myymälä, joka muuttuja, myymälä että muuttuja $ x, mitä he antoivat minulle. Sitten aion yhtyä hard_square tästä arvosta, ja ilmeisesti menossa tack uusi rivi samoin, ja sitten myöhemmin I will määritellään funktio hard_square niin että kun teen soittaa hard_square, se tietää mitä puhun. Nyt voisin myös tehdä jotain tällaista. Tämä on hieman erilainen. Se on lähes täsmälleen sama kuin mitä näimme ennen, paitsi sen sijaan sanoa vain $ x siellä parametri hard_square, Sanon $ x = 10. Joten tämä on esimerkki puolustava ohjelmointi, vartiointi ohjelmat haitallisilta käyttäjille. Tämä on yksi tapa tehdä jokin virhe tarkistamalla, että emme oikeastaan on kuin vaihtoehto C. Emme voi koskaan Määritä oletusarvo jotain. Meillä oli aina tarkistaa onko, esimerkiksi, jos teimme puhelun GetString, se oli kaikkein oikein jos heti kun tarkastetaan, että pyysimme onko merkkijono että käyttäjä antoi meille ei ole yhtä suuri kuin null, koska emme halua aloittaa kanssa tyhjä merkkijono. Täällä, tämä on tapa varoa, että. Jos käyttäjä ei anna meille jotain jotenkin, mitä aiomme tehdä? No, me vain sanoa mitä he eivät anna meille, olemme juuri menossa plug 10 sijaan. Joten jos ne eivät anna meille arvo, vain käyttää 10 oletuksena. Ja niin täällä, Huomaan, että olen tekemässä soittaa hard_square, mutta ei ole nopea käyttäjälle, eikö? Olen juuri tekemässä tyhjä puhelun. Mutta minun toiminto hard_square odottaa parametri. Mitä tämä tulee tulostaa? Se tulee tulostaa 100, eikö? Koska käyttäjä ei anna minulle mitään. Ja niin olen juuri menossa olettaa että 10-- 10 on oletusarvo. Ja niin tämä tulostaa ulos 100 omalla rivillään. PHP-tiedostot eivät tarvitse olla vain yksi tiedosto. Voit yhdistää useita tiedostoja yhteen, aivan kuten voit C. tavalla teimme että C oli tyypillisesti tehdä # include saada header tiedostoja vedetään. Emme tee sitä PHP. Teemme jotain kutsutaan require_once. Ja sitten on tämä koko asia, mitä tämä __dir__? Se on vain erityinen muuttuja, tai erityisiä vakio, todella, joka määrittää mitä nykyinen hakemisto on. Ja niin se tulee näyttämään nykyisessä hakemistossa tiedostoa nimeltä cs50.php tässä esimerkissä täällä, ja se tulee kiinni että tiedosto yläreunassa PHP-ohjelma, olettaen, että laitat vaatia kerran linja yläreunassa PHP tiedoston. Joten PHP käytetään pääasiassa, mutta ei yksinomaan käytetty, kuin kieli web-pohjainen ohjelmointi. Se on todella, miten se tuli olla. Mutta se on täynnä kieli, kuten olemme nähneet. Olemme nähneet jokseenkin kaikki asiat että se voi tehdä on samanlainen kuin C, ja se voi tehdä pahus paljon enemmän. Mutta koska se on täynnä kieltä ja me voi tehdä komentoriviltä ohjelmointi se. Voimme ajaa komentoriviltä ohjelmia. Kaikki mitä tarvitaan komentoa line-ohjelma, joka on kirjoitettu PHP on, että sinulla on PHP tulkki. Joten se on eräänlainen analoginen ottaa kääntäjä koneellesi jos haluat kääntää C-koodia muuttaa sen ohjelmatiedostoja. Sinun täytyy olla PHP tulkki että on olemassa järjestelmä jotta voit tulkita PHP tiedostot. Olettaen et, ja yleensä tämä tulkki kutsutaan PHP, ja se on yleensä kytköksissä eniten latauksia tai laitoksia PHP että voit saada verkossa, ja varmasti nimi PHP tulkki meillä on CS50, IDE. Kaikki sinun on tyyppiä php tiedosto. Ja mitä ohjelman aikoo tehdä on se menossa ajaa läpi tulkki, se on menossa sivuuttaa kaikki, mikä ei välillä kyseessä mark-- tai, kulmasuljetta kysymysmerkki php, PHP eroittimille ja tulostaa sen, ja se tulkitsee ja suorittaa koodi sisällä PHP delimiters. Joten pop yli CS50 IDE ja vilkaista pari PHP tiedostot, käynnissä pari PHP tiedostot, vuonna komentorivin käyttöliittymän CS50 IDE. Joten tässä olemme CS50 IDE, ja olen ottanut vapauden avaamisesta tiedosto nimeltä hello1.php. Ja ilmeisesti, sisältö tiedosto on vain PHP rajoittimien siellä, ja välillä, echo ("Hei, maailma"). Tämä on melko yksinkertainen PHP-ohjelma. Olen juuri menossa selaa minun pääteikkunaa täällä, ja aion kirjoittaa php hello1.php, Enter. Hei maailma. Se on luultavasti mitä olimme odottanut sitä tehdä, eikö? Mennään ylös ja ottaa toinen tarkastella ohjelman. hello2.php. Melko sama asia, ei paljon täällä. Tällä kertaa kuitenkin, aion pyytää käyttäjä antaa minulle niiden nimet. Käytän että readline toimintoa uudelleen. $ Nimi = readline. Se on nopea, "Mikä on nimesi?" Ilmeisesti olen tulostus se omalla rivillään. Ja sitten, joten linja alla että on nopea jossa käyttäjä voi syöttää heidän nimensä. Ja sitten Käytän hieman muuttuja välikysymykseen täällä linja 3 tulostaa "Hei" ja mitä käyttäjä kirjoittaa. Joten tämä on analoginen sanoen, Hei, pilkku,% s jos käytimme printf C. Joten mennään ja tulkita tätä ohjelmaa. Joten jälleen, minä selaa minun pääteikkuna. php hello2.php. Mikä on nimesi? Doug. Hei, Doug. Minulla on myös toinen tiedosto nimeltä hello3.php. Aion tyhjentää näyttö Ohjaus L, ja aion toteuttaa sitä. Mikä on nimesi? Doug. Hei, Doug. Joten käyttäytyminen on identtinen hello2.php, mutta miksi se hello3.php? No, tässä on ero. Tässä tapauksessa ilmoituksen että linjalla 1 täällä, Minulla on jotain, joka ei ole välillä PHP erottimet. Olen vain tulostus out-- tai I juuri kirjoittanut, "Mikä on nimesi?" Kun PHP tulkki näkee tämän, se ei ole aavistustakaan miten sitä tulkitaan PHP, ja niin sen sijaan ei ole, se juuri menossa sylkeä se pois. Niin huomaa rivillä 3 nyt, minun kutsu readline, ei ole nopea enää. Olen vain todella menossa to-- kun PHP tulkki näkee tämän, se tulee tulostaa "Mikä on nimesi?" Sitten se näkee, OH, OK, here's-- kaikki muu tulee olemaan tulkita PHP, joten siksi tämä toimii. Minulla ei tarvitse välttämättä kysymään käyttäjä to-- sisällä readline, Voin vain sen ulkopuolella PHP rajoittimien ja mahdollistaa tulkki vain tulostaa sen minulle. Joten et itse vain on yksi joukko PHP rajoittimien ohjelmaasi. Voit itse olla useita niistä, avaamalla ja sulkemalla ne tarvittaessa. Joten katsomaan on pari ohjelmien vuonna CS50 IDE jossa havainnollistaa tätä ajatusta useita sarjaa rajattu PHP. OK, joten olen avannut tiedosto tässä kutsutaan add1.php. Ja huomaa, mitä täällä tapahtuu. Aivan kuten ennen, minulla on yksi PHP joukko delimiters. Aion tulostaa viesti, "Anna minulle numero." Sitten aion lukea linja ja tallentaa sen muuttujaan $ num1. Sitten aion tulostaa uudelleen. Anna minulle toinen numero. Lue linjan käyttäjä, myymälä mitä ne kirjoitetaan sisään $ num2. Lisää ne yhteen ja tallentaa että johtaa muuttuja nimeltä $ summa, ja sitten tulostaa, " summa nämä kaksi lukua on "ja sitten tehdä välikysymys jstk siellä muuttuja $ summa. Joten vain ajaa tätä kautta tulkki vahvistaa, että tämä on mitä odotamme. php add1.php. Antakaa minulle numero 3. Antakaa minulle toinen luku, 4. Summa nämä kaksi lukua on 7. Se on 3 ja 4. OK? Joten ei mitään hirveän fancy siellä. Ja Nyt avata add2.php. Täällä minulla pari PHP rajattu asetetaan siellä, eikö? Linjat 1, 3-- linjat 1 ja 3 ei ole PHP erottimia. Joten kun tulkki näkee heidät, se on vain menossa sylkäistä tarkalleen mitä olen kirjoittanut siellä. Niin siitähän minä olen tekee kaikki minun kehotukset. Riveillä 2 ja 4, näemme hyvin tuttu $? php tavallaan eroittimille joten nämä kaksi riviä ovat menossa suorittaa PHP. Ja sitten rivi 5, minulla on tämä outo juttu täällä, eikö? Tämä kulma kiinnike kysymysmerkki yhtäläisyysmerkki. Minä jopa suurentaa vähän pidemmälle. Näet tämä on mitä olen puhumme oikeassa, tämä $? =. Osoittautuu, että se on niin yleistä, että syystä, että avaamme joukko PHP erottimia on tulostaa arvo. Ja siinä kaikki aiomme tehdä. Mutta on myös lyhenne tästä. $? = On PHP lyhenteenä sanomalla jotain $? php echo summa sekä num1 ja num2. Joten tämä on vain yksi lyhenne tästä. Joten jos en suorita tämä ohjelma, php add2.php. Minä zoom alas hieman. Antakaa minulle numero 4. Antakaa minulle toinen numero. Ja koska en oikeastaan ​​välitä tietotyyppejä PHP, voin sanoa 4.8. Summa nämä kaksi lukua on 8.8. Tämä toiminto käyttäytyy aika paljon täsmälleen sama kuin odotamme, yhtä hyvin. Ja minulla on vielä yksi avattu täällä kutsutaan dice.php. Kokeile tätä uudelleen. Minulla on vielä yksi täällä kutsutaan dice1.php, joka myös, katso, on että kulmasulje kysymys merkitse yhtäläisyysmerkki merkintätapa siellä, mutta huomaa, että tässä tapauksessa olen kutsumalla funktiota randia, joka kuten voisi odottaa generoi satunnaisluvun. "Sinä vieritti" ja se tulee laskea joitakin satunnaisia ​​numero, mod 6 + 1. Niin että annan minulle numero välillä 1-6. Muista, että mod 6 antaisi minulle numero on välillä 0-5, mutta jos olen simuloida noppaa rullat, joka on mitä teen täällä, En halua näitä noppia mennä 0 5, haluan noppaa, jotka menevät 1-6. Ja niin tämä on tapa saada minua välillä 1-6. Teen tämän kahdesti. Ilmeisesti olen liikkuva kahta noppaa tässä ohjelmassa. Niin minä tyhjentää näytön, ja minä teen php dice1.php. Voit rullattu 4 ja 2. Ja jos juoksen ohjelma uudestaan, rullattu 5 ja 5. Joten joka kerta kun käynnistät ohjelman, Saan eri numerot, koska joka kerta, kun teen niin, se alkaa yli. Se tulee luoda uusi sarja satunnaisia ​​numeroita minulle. Joten jos olemme tottuneet käynnissä olevat ohjelmat C, olemme tottuneet kirjoittamalla ./ ohjelman nimeä, eikö? Näin olemme tehneet kaikki meidän ohjelmia C toistaiseksi. Voimme tehdä tämän PHP samoin lisäämällä jotain kutsutaan roska alkuun meidän PHP-tiedosto. Tiedän, että se on tavallaan typerä sana. Se on lyhyt hash Bang. Se on ensimmäinen kaksi merkkiä siellä. Muista kutsumme huutomerkki usein bang tietotekniikassa. Se saattaa myös olla teräviä Bang. On pari tapaa tulkita sitä. Mutta se on pohjimmiltaan erityinen eräänlainen komento, että PHP tulkki ymmärtää niin, OH, haluan voit suorittaa tämän ohjelman, joka on ilmeisesti / käyttäjä / bin / php, joka on todella jossa PHP tulkki nimenomaan elää meidän järjestelmä. Joten it's-- mitä tapahtuu tässä tulkki ymmärtää, OH, Olen ilmeisesti tarkoitus käyttää tähän ohjelmaan suorittaa tämän tiedoston. Ja niin se auttaa ohitetaan vaihe ottaa sanoa php something.php. Siellä on yksi muiden saalis täällä, joka on että jos me haluamme ohjelmia toimi odotetulla tavalla, me täytyy tehdä jotain kutsutaan tiedosto lupaa muutosta. Ja me go-- ja puhumme hieman hieman enemmän tiedostojen lupaa muutoksia meidän video MVC, mutta riittää kun sanoa, että tämä on mitä sinun tarvitsee tehdä jotta teidän Php-tiedostoja executable. Joten katsomaan tätä meidän lopullinen esimerkki ohi CS50 IDE. Joten täällä IDE Minulla on kaksi tiedostoja tässä PHP hakemiston, jotka eivät vaikuta olevan nimeltään .php. Minulla on toiminto nimeltään add-- Minulla on tiedosto nimeltä ADD3 ja tiedosto nimeltä dice2. Joten ottaa nopeasti etsiä ja avata ADD3. Ja kuten näette, alussa minun tiedosto Olen tämän roska, eikö? Tämä hash huutomerkki. Nyt, luultavasti myös ehkä huomata, että jostain syystä, Minulla ei ole mitään syntaksin korostaa enää, ja tämä on mitä viittasin aikaisemmin, oli se, että jos en nimeä minun tiedosto Php, minulla ei ole hyötyä on syntaksikorostuksen enää. Tämä tiedosto on vain kutsutaan ADD3. Jotta voin käyttää sitä myöhemmin kanssa ./ ADD3 eikä ./ add3.php. Joten reason-- se on edelleen hieno, se on edelleen voimassa PHP, mutta se ei ole syntaksin korostettu, koska tätä tiedostoa ei kutsuta something.php. Se on ainoa todellinen ero täällä, ja roska. Joten katsotaan mitä tapahtuu, kun Yritän ja suorita tämä ohjelma. ./ ADD3, aivan kuten olisin C. Bash. ./ ADD3 lupa evätään. Tämä on mitä aiot nähdä, jos unohdat käyttää chmod komentoa muuttaa käyttöoikeuksia tiedoston. Kuten on käynyt ilmi, säännöllinen PHP tiedostoja voi vain panna täytäntöön. Niitä voidaan tulkita, mutta olemme tehdä jotain hieman erilaista täällä. Me suorittamalla sen. Ja niin minun täytyy lisätä lupaa toteutuksen, chmod + x ADD3. Sitten voin sanoa ./ ADD3. Antakaa minulle numero. 5, 6. Summa nämä kaksi lukua 11. Samoin olen jo chmoded dice2, joten voin vain kirjoittaa ./ dice2, rullattu 1 ja 1, sinua rullattu 5 ja 4, ja niin edelleen. Niin se on aika paljon Ajatus PHP syntaksi, eikö? Siellä on paljon saada läpi, tiedän. Mutta toivottavasti olet nähnyt nyt että PHP ei ole kovinkaan erilainen kuin C ja todella antaa meille mahdollisuuden ottaa asioita pykälän tai kaksi. Emme oikeastaan ​​tarvitse huolehtia liian paljon about-- emme oikeastaan tarvitse huolehtia liikaa matalan tason tiedot me oli murehtia C, eikö? Voimme keskittyä korkeamman tason kamaa, että PHP antaa meille mahdollisuuden tehdä ja kestää selvänä, että se toimii meille. Joten se antaa meille mahdollisuuden nyt, siirrytään C PHP, tehdä ohjelmia, jotka ovat paljon enemmän monimutkainen ja ehkä paljon vankempi. Joten Toivottavasti sinulla on hauskaa työ PHP, ja olen Doug Lloyd. Tämä on CS50.