[Powered by Google Translate] [Viikko 8] [David J Malan] [Harvardin yliopisto] [Tämä on CS50.] [CS50.TV] Tervetuloa takaisin. Tämä on CS50, ja tämä on alku 8 viikon. Pari mahdollisuuksia tällä viikolla, joukossa tätä puhetta täällä, jossa ruokaa on tarjolla. Lisätietoja tutustu diat ovat verkossa. Ja myös toinen tapahtuma tällä viikolla oman Thomas Carriero. Hän on yksi CS50: n entisen johtajan opetus kaverit, jotka on nyt Dropbox, ja hän on kaveri, joka koukussa meidät ylös tiedätkö mitä, joten jos haluat enemmän tuon pään heidän puhua tänä iltapäivänä Dropbox ja enemmän. CS50 lounas perjantaina. Onko liittyä meihin jos sinulla on mahdollisuus, 1:15, kuten tavallista, Fire and Ice. Ja nyt me sukeltaa jotain kutsutaan Seminaarit. Meidän CS50 Seminaarit, Recall, nämä valinnaiset luokat johtama opetuksen kaverit ja tietysti avustajien ja ystäviä tietenkin ihmiset ryhmästä kampuksella kutsutaan ABCD, jossa on ryhmä technophiles kampuksella, sekä yhtyeen HCS, Harvardin Computer Society, undergraduates jotka ovat kiinnostunut myös tietotekniikka. Tämänvuotinen roster seminaareja sisältää seminaareja Android ja iOS-ja JavaScript ja PHP, Unix, Vim, ja enemmän, niin ymmärtää, että nämä seminaarit ovat tulossa. Jos haluat vastata kutsuun mitään niistä suunnata että URL siellä. Sitten lähettää kurssin verkkosivuilla ajat ja paikat, kun ne on viimeistelty. Mutta tiedämme, että n 5 vuoden verran ennen seminaarien saatavilla verkossa, joista monet ovat edelleen hyvin nykyisessä kannalta teknologioiden saatat haluavat pelata oman opinnäytetyöt, joten pää siellä joitakin saatavana videoita sen. CSS, ne teistä, jotka tuntevat CSS jo Mikä on se pähkinänkuoressa? Mikä on CSS? Se CSS-tyylisivut ja mitä se tarkoittaa? Mitä tämä tehdä meille, CSS? Selvä, mennään lämmetä helpomman yksi, HTML, Hypertext Markup Language. Mitä tämä tehdä meille? Jokainen ollenkaan? On tulossa todella hankala kysyä näitä kysymyksiä. HTML, Hypertext Markup Language. Kyllä? Ei? [Äänetön opiskelija vastausta] Okei, hyvä, se antaa meille mahdollisuuden merkitä jopa näytettävän tekstin selaimen. Se ei ole ohjelmointikieli. Se on todellakin kuvauskieli, eli se ohjaa selaimen miten näyttää tietoa, joten yksinkertaisinta inkarnaatio tätä olemme nähneet on jotain erittäin yksinkertaista, kuten boldfacing, alkusulkumerkki b kiinni kiinnike sanoo tehdä tämän tekstin rohkea, ja se on oikeastaan ​​vain yksi monista tavoista jossa voimme tehdä sen, ja todellakin, näinä päivinä parempi lähestymistapa ja stylizing sivuillesi, jolloin asiat rohkea ja kursiivilla ja keskitetty sekä perusteltuja ja vastaavat, ei ole tehty kautta HTML tageja yksin vaan pikemminkin tekniikkaa kutsutaan CSS, CSS-tyylisivut. Tämä on kieli outo. Sekin ole ohjelmointikieli, mutta- kaikki, tämä on Dan, joka pitää yhdistää meidät tänään. Joitakin teknisiä ongelmia. Ei ongelma. CSS mahdollistaa tyylitellä sivulle asettamalla mitä kutsutaan kiinteistöä, joten katsotaanpa katsomaan tätä Poiketen joitakin perusasioita esimerkkejä. Sallikaa minun mennä laitteen tänään. Olen lähteen 8 maanantai hakemiston täällä, ja aion mennä hakemistoon CSS jossa meillä on koko joukko Tiedostojen odottavat meitä täällä, ja tämän kansion meillä on, esimerkiksi, search0.html viime kerralla. Nyt Muistelen search0 jätimme tämän huomautuksen jonkinlaisessa täytäntöön Googlen tai oikeastaan ​​vain etuosa sen viikko sitten, ja huomaa, että meillä oli joitakin uusia tunnisteita siellä. Meillä oli H1 iso, rohkea otsikko, muoto, joka antoi meille mahdollisuuden todella on HTML muodossa käyttäjän syötettä. Toiminta, mikä oli tarkoitettu toiminnan ominaisuuden HTML-lomakkeen tunniste? Mikä oli merkitystä tämän toiminnan? Otan vain tehdä tämän tänään. Toimenpide on kohde, jossa lomake tulee toimittaa. Se, että sanotaan action = "google.com / search" tarkoittaa, että kun käyttäjä napsauttaa Lähetä-painiketta tai vastaava tahansa muodossa kentät he täytetty aiotaan ei ole lähetetty palvelimelle tai meidän laite vaan kyseisen URL Google. Ja menetelmä se tulee käyttämään kutsutaan päästä, ja saada, nyt on vain tekniikka välittämästä tietoa pitkin web-palvelin Poiketen URL, joten sallikaa vilkaista taaksepäin miten tämä toimii. Huomaa, että siellä on tulo, jonka nimi on q , jonka tyyppi on tekstin ja sitten toiseen tuloon tyyppiä esittämään joiden arvo on CS50 haku, ja todellakin, jos me avata tämän tiedoston tänne, search0.html, se on erittäin yksinkertainen muoto, ja jos etsin jotain tietojenkäsittelytiede ja paina Enteriä tai klikkaa CS50 Haku huomaa, että mitä tapahtuu on kuin päästä Google Olen nimenomaan päätyi tämän URL huipulla, google.com / search? q = tietokone + tieteen, ja tietojenkäsittelytiede on tietenkin mitä olen kirjoittanut tuumaa + Vain sitä, että siellä välilyönti oli ja se tehdään selaimen vain varmistaa, että ei ole sekavuus ja valkoista tilaa varsinaisen URL. Ja sitten q, tietenkin, on parametrin nimen. Emme ole nähneet, kuinka me, ohjelmoija, voi tosiasiallisesti käyttää q vielä. Voimme olettaa, että Google tietää, mitä tehdä täällä, mutta me sinne ajoissa tänään. Mutta haluan katsoa sen sijaan on search1.html, joka näyttää hieman erilainen, koska olen päättänyt, että tämä lomake täällä oli vain hieman ontuva. Tarkoitan, se on ylhäällä vasemmalla. Ei todellakaan ole estetiikkaa sitä, ja niin haluan tyylitellä tähän hieman kuten Google, jonka kotisivu, Recall, vaikka et ehkä käydä sitä usein, näyttää tältä tänään Halloween. Jos sen sijaan avata versio 1 Tämän tiedoston haku 1.html, olen keskellä sitä. Silti melko ruma, mutta ainakin nyt olen alkanut hallita estetiikkaa tämän sivun, ei vain merkkauksen sen. Katsotaanpa katsomaan haku 1, ja siellä on oikeastaan ​​vain yksi ero tässä jotka saattavat hypätä ulos sinua, tai ehkä ei, mutta mitä yhden rivin tai pätkä ero? On tämä tyyliattribuutti, joten näyttää siltä, ​​että HTML useimmat elementit, useimmat tunnisteet voivat olla tyyliattribuutti niitä, ja sisällä että tyyliattribuutin on noteerattu merkkijono, ja että lainasi merkkijono on CSS. Voit laittaa CSS tyylisivu siellä määrittämällä sen ominaisuuden nimi seuraa kaksoispiste, jota seuraa arvo. Tämä on tavallaan valitettavaa suunnittelu päätöksen joitakin vuosia sitten että CSS on kieli outo, mutta syntaktisesti se on hyvin erilainen kuin HTML. Tässä tapauksessa näemme, että sisällä minun verkkosivun, joka on kirjoitettu HTML, Olen CSS sisällä näitä lainauksia, ja yleissopimus CSS on, että sinulla on ns kiinteistön seurasi jälleen, kaksoispiste, jälkeen kyseisen kiinteän omaisuuden arvosta, joten ei ole yhtäläisyysmerkkiä. Ei ole ylimääräisiä lainausmerkkejä. Se on vain tämä kaksoispiste erottaa avaimen arvo-pari, ja tekstirivi tekee mitä se sanoo. Se tasaa tekstin runko sivun, joka on todella rohkeutta sivun keskustassa. Okei, lopputulos sitten on selvä, on tämä. Ei kaikki seksikkäämpää, mutta ainakin se on keskellä ja hieman enemmän kuin todellisia Google. Mutta mitä jos minä sen sijaan avata versio 2 tästä ja huomauttaa tänne uusi tagi kokonaan? Nyt pää sivuni, joka aikaisemmin oli vain joka tag kaikki ennen esimerkkejä? Se vain oli tämä, otsikko. Hetki sitten pään tag näytti tältä. Nyt sen sijaan se on tyyli tag sisällä se, ja tämäkin, pyydän anteeksi, syntaktisesti näyttää hyvin erilainen kuin HTML, mutta siihen tottuu, jolloin sisällä tyyli tag Voin nyt tekijä, mikä oli hetki sitten määrite, tyyliattribuutti, ja voin laittaa sen hyvin alkuun sivuni. Miksi? No, tämä on askel kohti puhdistus asioita, aivan kuten kirjallisesti C-koodia olisimme joskus kirjoittaa toimintoja tekijä yhteiset toiminnot. Se on vain hieman puhtaampi aloittaa factoring pois asioita, kuten estetiikka yhteen keskitettyyn paikkaan mieluummin kuin ottaa se kaikki lomittaa koko HTML. Sekin tekee mitä se sanoo, vaikka siellä vähän uuden syntaksin. Tämä tässä on valitsin, ja ruumis vain tarkoittaa valitse runkoelementti ja soveltaa seuraavat ominaisuudet siihen. Hyvin, omaisuus on täsmälleen sama. Hyvä toimenpide Olen lisännyt puolipiste lopussa, joka yleensä yleissopimukseen, ja olen kääritään koko tämän omaisuuden vuonna aaltosulkeita koska voisin oikeastaan ​​olla eri asioita täällä. Voisin oikeastaan ​​sanoa jotain väriä: sininen; Nyt tämäkin ei tule olemaan askel kohti jotain kaikki kauniimpi, mutta jos nyt palata versio 2 olen ainakin nyt tehnyt elin minun sivun tekstin kaikki siniset. Painike pysyy samana, koska se tulo. Se ei ole puhdasta tekstiä. Mutta kaikkea muuta tekstiä, kuten CS50 Search ylös, on itse asiassa sininen. Jälleen kaikki olemme tehneet nyt poistaa body, ilmoitus, tyyliattribuutti, ja olemme laskelmiin sitä täällä. Tämä ei ole valtava parannus, mutta jos otamme tämän askeleen pidemmälle huomaa mitä voimme tehdä tässä kolmannessa versiossa täällä. Vuonna search3.html verkkosivu on lähes identtinen paitsi mitä uusia tag nyt? Link, joten tämä ei ole kovin osuvasti nimetty koska et yhdistää merkityksessä klikattava hyperlinkin. Pikemminkin, olet tavallaan tekee vastaavan # include C jolloin yhteys tunnisteen href attribuuttia ja rel attribuutti sanoo mennä eteenpäin ja kopioi liitä tiedoston sisällön nimeltä search3.css täällä lähinnä. Se ei aivan tee sitä, mutta se on sen hengen. Siinä sanotaan aukasta tiedoston, search3.css, ja käsitellä sitä ikään kuin käyttäjä olisi kirjoittanut sen täällä pään sivun aivan kuten tein edellisessä esimerkissä. Search3.css puolestaan ​​on melko yksinkertainen. Se oikeastaan ​​vain sisältää mitä oli hetki sitten tyyliin tag, mutta olen laskelmiin sitä täällä oman tiedoston. Vaikka emme ole viettänyt paljon aikaa lainkaan HTML tai web ohjelmointi vain intuitiivisesti mitä motivaatio, ehkä, sillä factoring ulos Tässä pieni pätkä jopa CSS omaksi tiedostoon ja sitten lukien se linkki tag täällä? [Äänetön opiskelija vastausta] Okei, se on helpompi lukea siinä mielessä, että sinulla on CSS CSS-tiedosto. Sinulla on HTML HTML-tiedostoon, joten se on enemmän luettavissa mielessä. Mitä muuta voisi olla vakuuttava? Joo. [Äänetön opiskelija vastausta] Joo, niin voit sisällyttää sen monta kertaa, joten nyt teemme nämä perus esimerkkejä yksittäisiä tiedostoja, mutta kai olet todella tehdä todellinen verkkosivuilla kuten Saat PSET 7 tai opinnäytetyön kenties, ja haluat olla useita verkkosivuja, koska on varmasti tavallisia varsinainen World Wide Web, ja se olisi eräänlainen ontuva täytyy kopioida ja liittää sama sininen väri ja sama teksti linjassa keskus jokainen näistä sivuista. Pikemminkin se järkevämpää tekijä ulos, aivan kuten olemme tehneet C kanssa. h tiedoston, laita se yksi keskeinen paikka, tässä tapauksessa search3.css, ja sitten sallia minkä tahansa tiedoston sivustoosi todella ovat, että tiedosto tapa tämän tag täällä line 16. Koska on tyypillisesti asia, aloitimme versio 0, millaisia ​​teoksia mutta ei ole välttämättä paras, ja kunkin vaiheen, haku 1, haku 2, ja nyt haku 3 olemme ottaneet nämä askelin kohti malleja, jotka ovat hieman puhtaampia ja ovat valmistelevia monimutkaisempien sivujen voisimme tehdä tiellä. Saanen avata viimeisen Esimerkiksi täällä vain näyttää vieläkin tyylitelty sivun, mutta ensin katsokaamme HTML. Tämä on search4.html, ja huomaat, että rakenteellisesti se on melkein sama paitsi uuden tunnisteen, Div. Div on tagi, joka esittelee jako sivun. Voit ajatella tätä näkymätön suorakulmion. Se tavallaan luo väylä alueen verkkosivun että voit tyylitellä kaikki kerralla. Mitä olen tehnyt täällä on seuraavanlainen. Sisällä ruumiini tag, joka on ollut siellä koko ajan, Sanon luoda jako sivun täällä linjojen 45 kautta 47, ja tämä tarkoittaa lähinnä antaa minulle näkymätön suorakulmion yläreunassa sivun. Sitten anna minulle toinen suorakulmio, joskin näkymätön, alle, ja tunnistaa sen nimen sisällön, ja sitten lopuksi, anna minulle kolmasosa jako sivun alareunassa kutsutaan tunnus. Näemme, miksi olen tehnyt tämän vain hetken, mutta käsitteellisesti minulla otsikon jako. Minulla sisällön jako, ja minulla on alatunnisteeseen jako sivun vaikka nämä ovat vain markup. Käyttäjä ei tule näkemään 3 suorakulmioita, mutta tavallaan rakenteellisesti siellä kulissien takana he todella läsnä. Nyt, who cares? Miksi oikeastaan ​​tehdä tämän? Kaikki muu sivulla on sama kuin olemme nähneet aiemmin. Tässä on minun muodossa. Tässä on minun input, minun panos, rivinvaihdon ja niin edelleen. Tässä kuva, vaikka niin näemme, missä tämä tuli vain hetken. Tässä footer, joka on uusi, vain koska halusin esitellä jotkut enemmän sisältöä tänne. Jos me selaamalla ylös huomata, että ID Tämän div on otsikon. ID Tämän div on sisältöä, ja ID tämä on alatunnistetta. Ja kuten nimestä voi päätellä, kun sinulla on tunnus-määritteen HTML määritelmän on yksilöitävä yksi osa, yksi tunnisteet sivusi. Taakka on täysin teitä muistamaan, että sinulla on otsikko tunnus jo. Sinulla alatunnisteen. Sinulla sisällön tunnus jo. Tietokone ei aio selvittää, mitä tarjolla tunnus on sinua varten, niin voisitte vahingossa antaa 2 tageja ID otsikon, ja se olisi vain väärin. Sinun pitää mielessä, mitä olet luonut, mutta kun olet tehnyt, että huomaa, mitä me voimme tehdä. Voin nyt määritellä minun tyyli tag yläreunassa tai yhtäpitävästi minun CSS-tiedoston, jos olin vielä käytössä tämä versio, Voin sanoa # header, ja mitä se tarkoittaa, että mitä tahansa tag Tämän verkkosivun on tunnus otsikon ja #, vain ihmisen yleissopimuksessa edustaa tunnus. Terävä merkki tai punnan merkki edustaa tunnus. Header on nimi, jonka annoin sen. Tämä tarkoittaa soveltaa tätä CSS omaisuus mihin tahansa tag tällä sivulla on tunnus otsikon. Sama käsitellä täällä. Soveltaa tämän ominaisuuden, joka sattuu olemaan sama, mikä tahansa elementti jonka tunnus on sisältö, ja sitten tänne huomaa Sain hieman harrastaja kanssa alatunniste. Jokainen elementti, jonka tunnus on footer, josta voi olla vain yksi määritelmä, mennä eteenpäin ja tehdä sen fontin kokoa pienempi, sen fontti paino rohkea, sen marginaali 20 pikseliä. Mitä se tarkoittaa? Se on vain marginaali ylhäällä, alhaalla, ja vasemmalle ja oikealle. Tämä tarkoittaa antaa minulle 20-pikselin näkymätön marginaali sen ympärille vain työntää kaiken muun pois vähän, että saatat tehdä Wordissa, Microsoft Word tai sivut tms.. Ja sitten teksti Tasaa keskelle. Katsotaanpa lopputuloksen, ja sitten menemme takaisin ylös yksi jäljellä pätkä CSS siellä. Tämä on versio 4, viimeinen etsinnän esimerkkejä, ja se on paljon, paljon seksikkäämpi. Nyt, oikeudenmukaisuus, juuri googled "google font logo generaattori." Ja se saa minut luoda GIF, kuvan muodossa, joka näyttää, että. Itse voit tehdä tämän myös. Meillä on "google fontteja logo generaattori." Katsotaan jos voimme tehdä tämän. Okei, mielestäni tämä on sivusto käytin. Voimme sanoa Ec 10, esimerkiksi, ja tehdä niistä omia. Voit pelata tätä koko päivän ja sitten oikealla klikkaa sitä ja sitten lataa varsinaisen GIF, mikä on kaikki mitä tein. Ja todellakin, siksi minun HTML, muistuttaa, tänne Minulla oli kuva tag, jonka näimme lyhyesti viime viikolla , jonka lähde on logo.gif. Ja mikä vielä oli motivaatiota ottaa tämä alt attribuuttia, tämä vaihtoehto määrite? Joo. [Äänetön opiskelija vastausta] Hyvä, niin 2 syytä todella, jos selain ei voi vetää kuvan koska olet hidas verkkoyhteys tai kuva on vioittunut tai jotain, että ainakin ihmisen näkee "CS50 haku" ja sitten myös esteettömyyden syistä. Jos sinulla on käyttäjä, joka on sokea ja käyttää näytönlukijaa ja siksi ilmeisesti näe kuvia he voivat ainakin kuulla tekstiä jos heidän tietokoneensa puhuu sen heille. Yleensä tämä on paras käytäntö, kun kyse on esteettömyyden sivujen niin että vaikka käyttäjät tilanteessa voi kuulla tai nähdä, niin sanotusti, Mikä se on, joka on sivulla. On yksi asia, että tein täällä joka on hieman mielenkiintoinen, ja näemme lisää tästä ongelmasta asettaa 7 kautta yksi shortsit johti yhden opetuksen kaverit. Mutta # sisältö viittaa tag jonka tunnus on sisältöä, mutta sitten on välilyönti, ja sitten on sana tulo. No, mitä kiinnostavaa CSS on, että voit viittaavat tunnisteet sivun eräänlainen hierarkkisesti, ja mitä tämä pätkä CSS keinoja on löytää tag jonka tunnus on sisältö, ja sitten soveltaa seuraavia ominaisuuksia kaikkien tulo-tunnisteita, jotka ovat jälkeläisiä sisältö, se on, että on sisennetty sen sisälle. Sisennys taas on tärkeää vain tietokoneessa, ei ihmisen, vaan yleissopimukseen me luetelmakohdassa muassa mennään syvemmälle sivulle, joten tämä tarkoittaa sovelletaan marginaali 5 pikseliä tahansa syöttöosassa että on jossain sisällä tai sisäkkäin sisällä  elementti, jonka tunnus on sisältöä. Ketä se koskee? No, on oikeastaan ​​vain nämä 2 kaverit täällä. Huomaa, että sisällä lomakkeen siellä 2 tuloa, koska siellä on ollut kaikkien näissä esimerkeissä. Mutta huomaa, että nämä 2 tuloa sattuvat olemaan sisäkkäin, vaikkakin hieman syvästi, pari kerrosta sisennys, sisällä tunnisteen, jonka tunnus on sisältöä. Mitä tämä tarkoittaa? Jos menemme selaimen täällä voi nähdä yhä niin vähän, haluan zoomata-että hieman pehmuste välissä painiketta välillä tekstikenttään. Saanen poistaa väliaikaisesti irti. Anna minun mennä jopa minun CSS, ja anna minun mennä eteenpäin ja juuri muuttaa marginaali 5 pikseliä 0 pikseliä. Anna minun mennä eteenpäin sitten ja tallenna tiedosto, palaa hakukone ja lataa, ja katsella sivun keskelle. Kaikkea todella puristetaan yhteen, ja kun ensimmäinen lyöty tämän esimerkin ylös Ajattelin, että katsoin tyhmä kanssa tekstikenttään ja sitten painiketta heti sen alapuolella. Halusin pad sitä vähän, joten otin käyttöön marginaalit. Mitä emme tehdä luennon läpi useita kymmeniä CSS-ominaisuuksia olemassa siksi, taas on asioita, kuten fonttikokoa, font paino, marginaali, tekstiä tasata, ja muutamia kymmeniä muita, ja me viitata sinulle ongelma asettaa 7 eri tutorials verkossa ja viitteet, joiden avulla voit poimia näitä asioita. Mutta mikä on todella tärkeää lopussa päivän on ymmärtää miten nämä asiat sovelletaan. Jälleen, jos meillä on tyyli tag sisällä, jotka voi mennä valitsimet, eräänlainen tunnisteita, jotka määrittävät jolle haluat hakea näitä ominaisuuksia, ja sitten laitat ominaisuudet avaimen arvo pari erottaa kaksoispiste ja sitten päättyi puolipisteellä, tai voit repiä kaiken tämän pois ja laita se erilliseen CSS-tiedosto itseensä. Selvä, kysyttävää käsitteitä tai iso kuva CSS? Tulet taas nähdä enemmän sitä PSET 7, mutta me pitää se yleensä melko yksinkertainen. Ei? Selvä. On aika todellinen ohjelmointikieli, ja tulemme takaisin hieman CSS muodossa esimerkin. PHP on todella ihanan ymmärrettävällä kielellä että se on rakenteeltaan lähes vastaava C. Toisin sanoen, jos tiedät C, tiedät että suurin osa PHP- ainakin syntaktisesti, vaikka joitakin uusia ominaisuuksia ja joitakin uusia käsitteitä meidän täytyy katsoa. Mutta suurin osa nyt, että me siirtyminen C PHP useimmat uutta tavaraa on todella iso kuva, miten käytät kieltä ohjelman Web verrattuna komentoriviltä tai vilkkuu nopeasti kuin olemme tehneet tähän mennessä. Vertailukohtana, erityisesti PSET 7 ja opinnäytetyön eteenpäin, älä hyödyntää tätä URL, jos haluat lukea siitä muodollisuudet PHP. Se on oikeastaan ​​kuin ilmainen online oppikirja tehokkaasti, ja löydät myös, että mitä todella mukavaa noin PHP on, että on olemassa satoja toimintoja, jotka tulevat sen kanssa, taas C sinulla ei välttämättä saada enemmän toimintoja kuin oli matematiikka kirjasto, CS50 kirjastoon. PHP ja paljon nykykielten, Python ja Ruby joukossa, saat pääsyn niin paljon enemmän toimintoja, mikä tarkoittaa, että saat kirjoittaa paljon vähemmän koodia, koska et voi seisoa olkapäät muiden ihmisten jotka ovat jo kirjoittaneet tiettyjä asioita sinulle. Otetaanpa nopea kierros syntaksia PHP ja sitten kirjoittaa muutamia esimerkkejä. Mitä kivaa PHP ensisijaisesti ei ole mitään päätehtävä. Jos haluat kirjoittaa ohjelman PHP juuri alkaa kirjoittaa koodia, ja sinun ei tarvitse murehtia main. Ei ole int. Ei ole paluuta. Ei ole argv, argc että tarvitaan kun kirjoitat ohjelman. Pikemminkin voit vain aloittaa kirjoittaa koodia, ja tämä on osittain koska PHP on mitä kutsutaan tulkita kieltä. C koottiin, ja se on laadittu siinä mielessä, että aloitat lähdekoodia, ajaa se läpi clang, joka on kääntäjä, ja lopulta muutaman useita vaiheita saat konekielisessä 0s ja 1s. PHP ja Python ja Ruby ja Pearl ja muut ovat erilaisia ​​kieliä että et kääntää niitä. Et siirtyä lähdekoodin 0s ja 1s. Sinä vain ajaa lähdekoodia, ja juokset lähdekoodin kirjoittamalla tavallista tekstitiedosto, päättyy. php tässä tapauksessa sijasta. C, ja mitä ohjelma tekee tietokoneen on se kirjaimellisesti tulkitsee koodin rivi rivi. Toisin sanoen, sen sijaan kirjoittaa ohjelma ja ajaa ohjelman suoraan sinulle sen sijaan kirjoittaa ohjelman tiedoston päättyy. php. Sitten käynnistät varsinaisen ohjelman nimeltä php.exe, jos olet Windows, tai vain PHP jos olet Mac OS tai Linux, ja annat tulona PHP ohjelmaan oman lähdekoodia, ja sen tarkoitus elämässä on lukea koodi ylhäältä alas, vasemmalta oikealle, ja tehdä mitä olet kertonut sen tehdä. Katsotaan, mitä tämä tulee tarkoittamaan syntaktisesti. PHP olemme olosuhteissa. Tämä dia on sama mitä näit takaisin viikolla 1 koska syntaktisesti olosuhteet, IFS ja muu jossittelua ja muualla PHP näyttää täsmälleen samalta kuin tämä. Kun se tulee boolean ilmaisut he aikovat näyttää juuri tältä. Kun se tulee anding asioita yhdessä booleans se tulee näyttämään täsmälleen samalta kuin tämä. Kytkimet näyttävät samalta, ja saat lisäetuna PHP että kytkimet C voi vain kytkeä päälle char tai int. Voisit ei kytkeydy päälle merkkijonoarvo. PHP voit itse olla lauseke että on muuttuja, jonka sisältö on merkkijono, ja voit itse tehdä merkkijono vertailu todellisessa intuitiivisella tavalla ei osoitin vertailua, jotta päättää tehdä asian i tai j tai jotain muuta. Näemme, että mahdollisesti ennen pitkää. Silmukat liian ihanan ovat samat. Silmukoiden on alustus, ehto, ja jotkut useita päivityksiä. Vaikka silmukat esiintyy myös PHP. Tee samalla silmukoita myös olemassa PHP, ja taulukot olemassa PHP, mutta tässä tarina syntaksin alkaa saada hieman erilainen, mutta käsitteet ovat samat, ja käsitteet ovat todella samat koska ne olivat viikon 0 Scratch. Ensinnäkin on $ merkki. Tämä oli malli päätös PHP jolloin tahansa muuttujan PHP suunnittelun alkaa $ merkillä. Ei enää X, Y, Z. Se on nyt $ X, $ Y $ Z vain siksi. Se on jotain pitää mielessä, ja nyt oikealla puolella Tämä näyttää samanlaiselta array, mutta käytämme hakasulkeiden täällä. PHP ja JavaScript, sillä me lopulta nähdä, julistaa array teet avoin hakasulje ja suljettu hakasulje, ja sitten on pilkulla erotettu lista arvoista, onko ints tai merkkijonoja tai merkkiä, mitä haluat, sisällä että ilmaisun siellä. Nyt, miten voimme tehdä jotain C? Mikä oli syntaksi staattisesti julistamisesta joukko tunnettuja numeroita? Se oli aaltosulkeita, joten pieni ero täällä, mutta molemmissa PHP ja lopulta JavaScript se vain käyttää hakasulkeissa joten todella ainoa mielenkiintoinen yksityiskohta tässä on $ merkki muuttujan nimen ja myös hakasulkeita, ja siellä on yksi omituista joka on jätetty myös vasemmalla puolella = merkki. Mitä puuttuu että olemme vaaditaan viikkoja nyt? Joo. [Äänetön opiskelija vastausta] Koko, joten ei ole mitään mainintaa taulukon koko. Suoraan sanottuna, ei ole mitään mainintaa hakasulkeissa vasemmalla puolella ja = merkin, ja mitä muuta puuttuu linja? Joo. >> [Äänetön opiskelijan vastausta] Tyyppi, niin mitä mielenkiintoista varsinkin noin PHP on se, että se ei ole voimakkaasti kirjoitettu kieli kuten C on ja joka on vahvasti kirjoitettu siinä mielessä, että sinun täytyy sanoa char, sinun täytyy sanoa int, sinun täytyy sanoa kellua. Aina kun haluat muuttujan sinun täytyy kertoa clang mikä sen tyyppi on. PHP on hieman lazier. Se väljästi kirjoitettu siinä mielessä, että voit olla kellukkeet ja merkkiä ja jouset ja ints ja niin edelleen, mutta kieli itse ei oikeastaan ​​välitä mitä laitat sisällä muuttuja. Sinun ei tarvitse ilmoittaa sille etukäteen mitä tietotyyppiä on menossa muuttuja. Se on täysin sinun, joten tämä on mukavaa että sinun ei tarvitse huolehtia niin paljon tietoja kirjoittamalla ja huolestuttavaa mitä argumentit ovat ja niin edelleen. Tämä tarkoittaa myös sitä lopulta toimii PHP ovat menossa pystyä palaamaan joko int suurimman osan ajasta, ja ehkä kerran kun He palaavat bool, boolean false, esimerkiksi merkiksi siitä, että jotain meni pieleen. Tämä antaa meille puolensa, mutta se myös tekee meidät tavallaan suunnittelun vähän lazier, kun se tulee tietojen kirjoittamista. Mitä muuta pitää mielessä täällä? Muuttujat näyttävät aivan kuin tämä, joten $ s = "Hello, world." Se on ehkä pääteltävissä edellisen esimerkin, ja meillä on toinen tyyppi silmukan. Tämä yksi me itse nähdä silloin tällöin, koska se on varsin kätevä, foreach rakentaa. Tällöin foreach silmukka ottaa sisälle sen sulkujen 3 sanaa tyypillisesti, $ Jotain ensin, mikä on mitä array haluat toistaa yli jäsenille, sitten kirjaimellisesti avainsanan, ja sitten lopuksi, toisen muuttujan nimi, että saat valita. Se voi olla foo, bar, tai elementti, ja mitä tämä konstruktio ei on jos $ array sisältää 10 elementtiä joka iteraatio tämän array-Anteeksi, jokaisella iteraatio tämän silmukan muuttujan nimeltään elementti tulee olemaan päivitetty olla ensimmäinen alkio, sitten toinen alkio, Sitten kolmas alkiota, jolloin vältetään tarve tehdä hieman harmittaa hakasulje notaatio ja $ I jotta indeksinä taulukkoon. PHP tekee kaiken tuon työn puolestasi ja joka iterointia vain ojentaa sinulle seuraavan alkion array eikä sinun tarvitse tietää tai välitä sen numeerinen indeksi sijainnin. Ja sitten lopuksi, nyt, on olemassa yksi muu ominaisuus PHP että tulee olemaan erittäin hyödyllistä, varsinkin kun alamme ohjelmointi Web- ja joka on tunnettu assosiatiivisia array. Matriiseja että tiedämme toistaiseksi kuin 20 sekuntia sitten ja viimeiset 8 viikkoa on numeerisesti indeksoitu ryhmät, eräänlainen perinteisen paneelit, joissa indeksit ovat ints, 0, 1, 2, koko matkan ylös. Assosiatiiviset taulukot ovat paljon tehokkaampia. Niiden avulla voit olla mielivaltainen avaimet, mielivaltainen indeksit ja mielivaltaisia ​​arvoja. Ottaa huomioon, että perinteisessä array se on 0, 1, 2, vuonna assosiatiivinen array voi olla indeksi tai avaimen foo, jonka arvo on bar. Voit sitten toinen keskeinen jonka nimi on Baz ja joiden arvo on qux. Jälleen tyhmä tietojenkäsittelyoppi geneeristen muuttujan nimiä täällä, mutta kohta on, että tämä ryhmä ei ole kannattimen 0 tai kannatin 1. Se sen sijaan olemaan kiinnike foo ja kiinnike Baz. Tämä on paljon monipuolisempi, että aiomme pystyä liittämään sanat sanoen avaimia arvoihin täysin mielivaltaisesti, ja aiomme pystyä saamaan nämä arvot takaisin vakioaikavälein koska alla huppu mitä assosiatiivisia array todella on hash taulukon. Muistuttaa, että hash table voit laittaa joitakin tulon kuten laittaa sana David jos haluat lisätä David jonkinlainen sanakirja, ja sitten saat takaisin jotain arvoa tyypillisesti. Kun kyseessä on aapinen, tosi tai epätosi. David tai mikä sana on tai ei ole sanakirjassa. Assosiatiivisia array on oikeastaan ​​vain hash-taulukko, mutta se on paljon käyttäjäystävällisempiä inkarnaatio sitä. Kuten näemme, se tulee antaa meille mahdollisuuden tehdä joitakin asioita hyvin, hyvin helposti. Otetaan katsomaan joitakin perustiedot PHP esimerkkejä ja mitä voimme tehdä tällä kielellä. Anna minun mennä eteenpäin ja avata meidän lähdehakemistoon tänään tiedosto nimeltä hello1.php. Tämä tiedosto on enemmän kommentti kuin se on todellista koodia joten haluan todella poistaa kaikki kommentit tiedosto ja esitellä teille ehkä yksinkertaisin PHP-ohjelma täällä. 5 linjat, ja jotkut niistä ovat valkoinen tila, niin huomaat joitakin keskeisiä eroja täällä. Tiedosto on nimeltään hello1.php. Aivan ensimmäinen rivi, vaikka on Tarkoittaa, että on se minun PHP-koodin. Katsotaanpa miten ajaa tätä. Aion mennä takaisin minun pääteikkuna täällä. Aion mennä minun PHP hakemistoon. Huomaa, että meillä on koko joukko tiedostoja, joista ensimmäinen on hello.php. Anna minun mennä eteenpäin ja suorittaa tämän, hello1.php, kirjoita. Lupa evätään. Okei. Miten olemme kiinteä asioita, kuten tämä aikaisemmin? Mikä tuo on? >> [Äänetön opiskelijan vastausta] Tarvitsemme lukea ja kirjoittaa, mutta anna minun tehdä ls-l. Muista tämä hieman arvoituksellinen ulostulo jolloin hello1 näyttää olevan luettavissa ja kirjoitettavissa minua mutta luettavissa kaikki muu. Paljastui, että tämä oikeastaan ​​ole askel oikeaan suuntaan. Erotus, jälleen, tulkittu kieli ei et suorita ohjelmaa suoraan. Sinä sen sijaan ajaa tulkin ja ojennan sen koodin että olet kirjoittanut niin se voi tulkita sen rivi riviltä. Tällöin tulkki tai ohjelman olen itse haluat käyttää on kirjaimellisesti nimeltään PHP. Jossain tällä kiintolevylle laite on ohjelma joku muu kirjoitti nimeltään PHP tai Windows php.exe. Mitä aion tehdä tässä aion todella ajaa PHP mutta antaa sen komentorivillä koodin kirjoitin, ja sitten minä loitontaa ja paina enter. Se toimii minun ohjelma minulle, ylhäältä alas, vasemmalta oikealle. Anna minun mennä eteenpäin ja avata hieman varianssi tästä. Vuonna hello2.php ilmoituksessa, että tämänkin on enimmäkseen kommentit, joten haluan päästä eroon näistä kuin häiriötekijä, ja mikä on selvästi erilainen nyt tästä tiedostosta? On tämän uuden, hieman arvoituksellisia yläreunassa. Rivillä 1 on #! / Bin / php. Bin on yleissopimuksen Linux ja Mac OS binäärit, niin / bin tarkoittaa tämä kansio sisältää kasan binäärejä , joka on ohjelmoitu, joista yksi on PHP. #! on lempinimeltään roska, joka on nopea tapa sanoa se, ja mitä tämä tarkoittaa on, että kun ohjelma suoritetaan nyt siellä vihje yläosassa tiedoston joka kertoo tietokoneen mitä tulkki käyttää. Se saa hieman harmittaa, jos olisit kertoa käyttäjille ja asiakkaille "Hei, me kirjoitti tämän ohjelman nimeltä hello1.php." Kaikki mitä sinun tarvitsee tehdä, on ikuisesti ajaa PHP ja sitten nimi ohjelman. Suoraan sanottuna, se olisi vain mukavampi ajaa hello1.php, ja todellakin, me voimme jos teemme seuraavasti. Anna minun mennä eteenpäin ja tehdä ls-l, ja ilmoituksen hello2 se on silti vain lukea kirjoittaa ja sitten lukea lukea, joten en voi vielä tehdä tätä, hello2.php. Mutta me esitteli tämän hurjan nopeasti viimeisen kerran, chmod komento. Jos en chmod + x, mikä tarkoittaa kaikkia plus toteutettavuutta, ja sitten hello2.php ja tee ls-l taas huomaa mikä muuttui. Yksi, Linux näyttää minulle tiedostonimen vihreä välittää ajatusta että se on suoritettavissa, mutta vielä tärkeämpää, vasemmalla puolella huomaa että bitti edustaa x suoritettavia on nyt asetettu. Mitä tämä nyt tarkoittaa sitä voin ajaa ./hello2.php kuten tavallista, Enter, ja koska shebang aivan tiedoston alkuun se vihje, jälleen, Linux, joka sanoo Käytä tätä tulkin suorittaa tämän tiedoston. Älä ole huolissasi pakottaa käyttäjä todella kirjoittaa sitä. Ja mitä hienoa on nyt se tavallaan merkityksetön minun asiakkaille tai ystäväni mitä kieltä Kirjoitin tämän ohjelman, niin voin mennä eteenpäin mv ja nimeä tämä asia hello2, esimerkiksi. Ja nyt jos teen ./hello2 ja loitontaa minun ohjelma toimii edelleen. Nämä tiedostopäätteet ovat ihmisen yleissopimus, joka on tarpeen ja jotain clang ja Make jotka etsivät heitä. Mutta PHP, voisin kutsua tätä tiedostopääte mitä haluan. Voisin huijata maailman luulemaan että olen todella hyvä Ruby, ja voisin kirjoittaa hello2.rb ja suorita sitten tämä, ja voila, nyt minulla on Ruby-versio, joka on täydellinen valhe. Mutta tiedostopäätteet ovat merkityksettömiä jos tiedosto on suoritettava, ja on tämän erityisen vihje yläreunassa tiedoston. Nyt, kuten syrjään, anna minun näyttää sinulle nopeasti version 3, mikä on tavallaan hyödyllinen temppu tietää. Vuonna hello3 tein jotain hieman väärin että minä päivittää lähdekoodin verkossa. Versiossa 3 käy ilmi, että useimmissa Linux-koneissa siellä ohjelma nimeltä env ympäristöä, ja mitä voit tehdä tässä, jos sinulla ei ole aavistustakaan missä PHP on asennettu kovalevylle, koska se todellakin voi vaihdella tietokoneen että joku käyttää, env sanoo vain juosta env, joka on useimmissa järjestelmissä, ja selvittää missä PHP on. Vain yhteinen temppu, joten sinun ei tarvitse huolehtia siitä, selvittää missä ohjelma on. Mutta jos et huolellisesti selvittää, missä ohjelma on, ja et ole välittänyt toistaiseksi voit käyttää minkä komennon. Saanen loitontaa ja tyyppi, jotka php, ja huomaa se kertoo minulle se on oikeastaan ​​usr / bin / php. Se on tavallaan valhetta. Se on myös bin. Se vain osoittaa minulle ensimmäinen osuma. Jos olet joskus miettinyt missä clang on, mikä clang, sehän on usr / bin / kalahtaa, jotka tekevät, usr / bin / tee, ja mitä se tarkoittaa on koko ajan olet voinut kirjoittaa usr / bin / clang tulee ajaa clang, mutta se on aika ikävä tehdä sitä, joten jotkut kansiot kuten usr / bin ja bin oletetaan olevan oletusarvot niin tietokone tietää katsomaan ne sinulle. Kaikki kysymykset kirjoittamisesta super, super yksinkertainen Hello World-ohjelma PHP ja sitten ajamalla se? Koska nyt aloitamme esitellä enemmän pakottavia syntaksi. Selvä, nyt mennään. Nämä ohjelmat olemme nähneet oikeastaan ​​ne kaikki ennen. Jos minä avata esimerkiksi Tehdään beer1.php, emme mene läpi useita versioita, mutta mitä tein oli Istuin alas ja kaatoi sen tai muunnettu minun C PHP-koodin tähän. Useimmat alkuun tiedoston kommentit täällä. On käynyt ilmi, että yksi uusi toiminto tarvitsemme kutsutaan readline. GetString, Recall, viikosta 0 eteenpäin oli CS50 juttu. PHP on oma käyttäjäystävällinen toiminto nimeltään readline joka vie 1 argumentti, joka määrittää nopeasti jonka haluat näyttää käyttäjälle, ja mitä readline tekee on se palauttaa riippumatta käyttäjän tyypit sisään Tässä tapauksessa olen julistaa muuttuja nimeltä $ n. Olen tallentaminen se palauttaa arvon readline jälkeen kysymättä käyttäjältä tällä merkkijonolla. Vain varmuuskopioida, todella ajaa tätä asiaa, anna minun mennä eteenpäin ja ajaa php beer1.php. Kuinka monta pulloa tuleeko? Toivotaan vain tehdä 2 tällä kertaa. Enter. Siinä kaikki. Ohjelma on toiminnallisesti identtinen C versioon viikkoa sitten. Mutta syntaktisesti katsotaanpa mitä eri. Kun saan int käyttäjältä huomaa, että olen tekemässä joitakin virheentarkistukset, ja jos n on pienempi kuin 1 lopetin ja minä tulostaa Anteeksi viestin käyttäjälle ja poistu 1. Tämäkin on hieman erilainen.  C Mitä me teimme? C palasimme 1. PHP poistut 1, joka suoraan sanottuna on mielestäni hieman intuitiivinen koska olet kirjaimellisesti poistuu ohjelmasta. Selvä, ja sitten tänne harmittaa laulu on sama syntaksi paitsi muuttujan, joten tänne on line 24 eteenpäin Huomatkaa for silmukka on lähes sama, mutta olen $ eteen i ja n, ja mikä on myös puuttuu linjaa 26, joka meillä on ollut aikaisemmin kun todetaan muuttujan i? Ei ole tyyppiä. On väärin PHP sanoa int. Et yksinkertaisesti ei tarvitse tehdä sitä. Tietokone, tulkki PHP on fiksu ymmärtää että jos laitat numeron $ I se hoitaa sitä kuten puhelinnumeron. Ja sitten täällä meidän plug in $ i, $ i, $ i - 1. Kaikki tämä on sama, ja sitten täällä teemme "Vau, se on ärsyttävää" printf ja sitten poistua (0). Jälleen takeaway tässä on, että vaikka me aiomme viettää suhteellisen vähän aikaa PHP, varmasti versus mitä teimme C, se on melkein sama, joten mitä me teemme tänään ja ensi viikolla ja sen jälkeen on keskityttävä todella joitakin uusia ideoita. Vain nähdä, että yksi asia ei kääntää vuodelta C, Tämä oli erittäin yksinkertainen ohjelma teimme viikko 1 tai 2, kuutiona arvo. Mutta mikä oli mielenkiintoista tuolloin tästä ohjelmasta on, että se käyttöön käsitteen mukautetun kirjallinen tehtävä, että me itse kirjoitti. Syntaksi PHP on melkein sama. Tässä on minun ohjelma ylös. Huomaa jälleen poissa on jokin käsitys tärkeimmistä. Aloitan kirjoittaa koodia, ja tämä on mitä menossa toteuttamia tulkki. Olen tulostaa x on nyt 2, oletettavasti. Sitten väittävät cubing ... Sitten pyydän datakuutiofunktioiden ja kulkea $ x ja antaa palauttaa arvon $ x. Sitten väittävät, että se on kuutioitu, ja sitten sanon tämän, mikä toivottavasti sanovat x on nyt 8. Syntaksi toiminnon PHP on koskaan niin hieman erilainen. Jälleen puuttuu palautuva. Jälleen puuttuu on palautuva ja myös puuttuu, mitä muuta? [Äänetön opiskelija vastausta] No, okei, se on hyvä. Palataan siihen toisessa. Meillä ei ole esimerkiksi int tässä. Meillä ei ole, esimerkiksi, ovat int tässä, koska, jälleen, PHP et yksinkertaisesti ei tarvitse ja ei pitäisi tehdä, että vaan on tämä uusi avainsanan nimeltään toiminto. PHP on melkein hieman selkeämpi, sillä kun haluat funktion te kirjaimellisesti sanoa toiminnon, annat sille nimen ja pilkuilla erotettuina jos joku sen väitteitä. Ei tarvitse sanoa mitättömäksi tai mitään sellaista, ja sitten paluu on sama, $ * $ * $. Mitä puuttuu myös? Sammy totesi tämän täällä. Ylimpänä tiedoston kokonaan poissa PHP on myös prototyyppi. Tämäkin on tarkoituksellista. Kielet ja tulkit kuten PHP ovat älykkäämpiä kuin C koskaan ollut vuonna kerääjiä kuten clang. Muistuttaa, että clang, jos et kerro sitä, että kuutio on olemassa, jos et kerro sitä, että printf olemassa kuin prototyyppi tai # include, hyvin se aikoi huutaa sinulle ja ei edes kääntää koodia. PHP ja modernit kielet ovat paljon fiksumpia, kun se tulee tähän. He ottavat tehtäväkseen lukea läpi kaikki koodi ja sitten huutaa vain, jos se havaitsee kuutio minnekään. Sillä ei ole väliä, jos kuutio on alhaalla tai ylhäällä tai jopa joissakin erilliseen tiedostoon. PHP ja vastaavat kielet ovat nyt fiksu katsoa tulevaisuuteen kaikessa ennen päättämällä sinulle tehneensä virheen. Jos se jättää meidät? Tehdään vielä viimeinen esimerkki tästä olosuhteissa, ja jos minä avata conditions2.php huomautus liian syntaksin tässä on lähes sama. Käytän readline sijasta GetString, mutta että linja on sama kuin ennen, "Haluaisin kokonaisluku kiitos." Sitten on, jos ehto, if, ja sitten muuta, mutta toiminnallisesti tämä ohjelma on myös sama, mitä teimme viikko sitten, joten jos juoksen tämä asia, php conditions2, ja annan sen numero kuin 23 - Otin positiivinen numero. Jos annan sen -1 Otin negatiivinen luku. Jos annan sen 0 Olen todellakin poimittu 0. Joten kuka välittää tästä kaikesta? No, yksi hauska sellainen harjoituksia täällä Ainakin minun oli mennä takaisin ja nähdä, kuinka nopeasti voisin toteuttaa PSET 5, kirjoitusvirheet PSET. Muistaa, että siellä oli tiedosto nimeltä speller.c, ja siellä oli tiedosto nimeltä dictionary.c. Mitä tein oli sellainen viettänyt muutaman minuutin, ja minä muunnetaan C-koodia php koodia, ja emme viettää paljon aikaa aapinen koska aivan kuten PSET 5 et todellakaan tarvitse viettää paljon aikaa aapinen itse koska huomio oli sanakirja. Riittää, kun sanon, että jos luet aapinen, tämä tiedosto täällä, se on aika paljon vastaavia C-koodia Annoimme sinulle PSET 5. Olen vain lisännyt joitakin $ paikoissa. Olen muuttanut eräiden toimintojen nimet, jos he eivät ole PHP. On vielä yksi asia täällä, preg_match, joka on hieman harrastaja tapa tehdä jotakin, mutta tulemme takaisin, että lopulta. Mutta lyhyt, aapinen on lähes identtinen, ja jos tarkastellaan alareunassa mitä se lopulta sylkee on täällä, sanoja väärin kirjoitettujen, sanoja sanakirjasta, sanoja tekstissä. Selvä, niin mitä mielenkiintoista on nyt seuraava. Ylimpänä minun tiedoston olen vaativat dictionary.php. Aivan kuten C on # include PHP on erityinen toiminto nimeltään vaativat että melko paljon ei sama asia, vaatia tiedosto nimeltä dictionary.php. Miten voin mennä noin täytäntöön PSET 5? Anna minun mennä eteenpäin ja avata tiedosto tästä. Otan hieman viittaus tähän. Ja anna minun luoda uusi tiedosto ja soita tämä dictionary.php. Sanon sen toiseen kansioon, jotta voimme tehdä tämän elää. Ja nyt minä Lähennä Aion aloittaa minun PHP tiedoston alkusulkumerkki PHP kiinni kiinnike. Ja sitten täällä oli muutamia toimintoja minun piti toteuttaa PSET 5, joten aloitan täytäntöön joitakin näistä, niin funktio tarkistaa, mikä oli otettava sanaa argumenttina. Teemme niin ja palata siihen hetken. Oli tehtävä kuorman, joka otti mitä sillä argumentti? Sanakirja, niin tiedosto halusin ladata. Oli tehtävä koko, joka ei ottanut mitään perusteluja ja siellä oli toiminta-mikä oli toinen? Unload, joka ei ottanut mitään perusteluja joko. Nämä ovat 4 toiminnot että minun pitäisi nyt toteuttaa PHP, ja mitä aion tehdä, on mennä eteenpäin ja tehdä tämän. Paljon käytit hash taulukon PSET 5, joten anna minun mennä eteenpäin ja luoda hash taulukon PHP. Valmis. Se antaa minulle hash taulukon. No, miksi? Yksi, muuttuja on nimeltään $ taulukko, vain loihtia ajatus hash taulukon. Hakasulkeita kuitenkin muistaa, edustaa mitä? Array, mutta PHP ryhmät eivät tarvitse numeerisesti indeksoitu. Ne voivat myös olla assosiatiiviset taulukot, mikä tarkoittaa, että voit olla mielivaltaisia ​​avaimia ja arvoja. Aivan kuten PSET 5, ne teistä, jotka tekivät tiiviste toteutuksia luultavasti asetettu sanan ja sitten lisätään sen ketjun linkitettyjä listoja, tai voit tallentaa arvon tosi jonnekin tai jotain tältä osin. Jotenkin muistaa että sana oli siellä. Nyt se tulee olemaan minun tiiviste, joten nyt edetä toteuttamisessa tarkistustoiminnon Minun täytyy vain katsoa sisälle että tiiviste ja katso, jos sana on siellä. Mitä aion tehdä, on aion sanoa, jos- sanotaanko isset, joka on PHP funktio, joka kirjaimellisesti tarkoittaa vain sitä on avain asetettu, joten isset ($ taulukko [$ sana] ja jos näin return true. Siinä kaikki. Se PSET 5 PHP. No, oikeudenmukaisuus, okei. Else return false, joten se ei ole siellä. Mitä todella tapahtuu täällä? No, jos pöytä-tai hash taulukon täällä yleisemmin- on assosiatiivinen array Eli voit indeksoida siihen jossa sana kuten "sana" ja sinun täytyy saada takaisin jotain arvoa. Olemme aika saada askeleen itseämme. Olisi tavallaan mukavaa, jos me todella lastattu tiedosto ensin, joten kuormitus ei ole aivan niin yksinkertainen, mutta haluan mennä eteenpäin ja lietsoa  todella nopea täytäntöönpano kuorman. Anna minun mennä eteenpäin ja sanoa sanoja saa tiedoston sanakirja. Tiedoston funktio PHP avaa tiedosto ja palaa teille joukko kaikkien sanojen tiedoston, vain ojentaa ne sinulle. Se oli iso kipu liian, eikö? Nyt foreach, tämä on uusi konstruktio, foreach ($ sanoja $ sana). Tämä silmukka aikoo aloittaa iteroimalla yli array sanat ja määrittää $ sana muuttuja jokaisen sanan tiedosto ensimmäisestä toiseen ja kolmanteen ja neljänteen aina joten minun ei tarvitse tehdä harmittaa [i] notaatio ja vastaavat. Ja mitä minä yksinkertaisesti teemme jokaiselle näistä sanoista on tallentaa sen minun taulukossa indeksointi taulukkoon ja sitten tekee totta koska muistaa että sana on minun sanakirja en todellakaan tarvitse tehdä on eräänlainen kääntää hieman ja sanoa sanan minun tiiviste on siellä, totta. Ja jos se ei ole siellä, en tarvitse erikseen laittaa vääriä, muuten olisin laittaa vääriä kaikkien mahdollisten sanojen maailmankaikkeudessa. Riittää minulle vain asettaa indeksin arvo true jos sana on oikeastaan ​​minun hash taulukon. Nyt olen leikkaus pari kulmat täällä, että minä heiluttaa käsiäni at nyt, mutta nyt kuorman toiminto on valmis. Lataan kaikki sanat tiedostosta array. Olen toistaa yli että array, ja jokaisen sanan array En kytke se minun hash taulukon 1 rivi koodia. Tämä on hauskaa. Tiedät miten voimme toteuttaa koko nyt? No, koko on aina melko helppoa, oikeudenmukaisuus. Täällä voimme vain tehdä palata määrä taulukon. Se on melko helppo myös laskea useita asioita taulukossa. Se on oikeastaan ​​aika ole tehokkain. Minun olisi luultavasti muuttuja nimeltä kokoa, jotta voimme tehdä sen jatkuvasti aikaa, mutta se on melko helppo. Niin, ja sitten purkaa, jos todella haluamme olla anaali täällä Voimme sanoa, että miten te purkaa jotain. Sinä vain määrittää muuttujan yhtä tyhjän array, ja se pääsee eroon kaikesta, joka oli siellä. Ei tarvitse soittaa ilmaiseksi. Jälleen olen leikata joitakin kulmat, ja pahoittelen osoitetaan Harjoitus 5 ehkä C, mutta jos me nyt mennä eteenpäin ja suorittaa tämän, Aion todella ajaa versio kirjoitin etukäteen juuri niin, että en tee mitään syntaktisia virheitä lainkaan. Anna minun mennä eteenpäin ja ajaa aapinen. Käyttö on sama. Tässä on sanakirja tiedosto joka vain sisältää sanan foo. Tässä on tekstitiedosto, joka juuri sisältää foo bar. Katsotaan oikeinkirjoituksen tarkistaa tämän, joten aapinen, käyttäen tätä sanakirja tiedosto tähän tekstitiedosto. Siellä on yksi väärin kirjoitetun sanan, baari, ja voila. Tehdään PSET 5. Otetaanpa 5 minuutin tauko täällä, ja me tulemme takaisin ja PHP. Selvä, olemme takaisin. Tehdäänpä-vihaa minua taas. Katsotaanpa nyt itse nähdä, jos tämä ei ole positiivinen todella täytäntöön tämä asia PHP. Myönnettäköön, se kesti 45 sekuntia toteuttaa. Mutta mennään eteenpäin nyt ja hoitaa asioita. Anna minun mennä eteenpäin ja ajaa C-versio sekä aapinen, ja me ajaa se yksi suurimmista tiedostoja, mikä on King James Bible. Ja täällä on-Mennään meidän C-kansioon, speller kuningas James 5th. Paljon väärin kirjoitettuja sanoja. Okei, se on lähtö luultavasti saanut, vaikka ajat ovat hieman erilaisia, jos sinulla kaiken toimimaan oikein, joten aikaa yhteensä oikeinkirjoituksen King James Bible oli 0,38 sekuntia, joten ihan hyvä käyttää, että täytäntöönpano. Nyt haluaisin mennä PHP versio, jota juuri kirjoitti. Saanen ajaa aapinen kuningas James. Oho, ohita se virhe. Olen väärässä hakemistossa. Speller kuningas James 5th. Melkein valmis. Okei, ansiokas tarkkailija ymmärtää, että oli yli 3 sekuntia siellä. Tämä on totta käyntiaika. On käynyt ilmi, että se vie aikaa sylkeä paljon tekstiä ulos koska puskurointi asioista, mutta pitkä tarina lyhyt, , joka oli 3,15 sekuntia koneen aikaa, CPU-aika, vs. mitä se oli hetki sitten? Kuten 0.3. Tarkoitan, se on kertaluokkaa hitaammin, niin missä on se naurettavaa hidastumisesta tulevat? No, kuten on käynyt eniten kaikista suunnitteluun päätös teimme luokassa viime 9 viikkoa siellä lähes aina tätä vaihtokauppaa. Joskus välillä vain tilaa, joskus väliin tilaa ja aikaa, tilaa, aikaa ja kehitystyötä, ja itse asiassa tässä, vaikka pelastimme valtavasti aikaa, ehkä mahdollisesti 10.20.30 tuntia kehityksen aikaa täytäntöön oikeinkirjoituksen tarkistus yliluottelemalla sitä vain 45 sekunnissa tällä kielellä hinta me korvaamaan on, että se on suuruusluokkaa hitaampaa seurauksena, ja tämä on yleensä asianlaita useimpien tahansa tulkittu kieli, PHP, Python, Ruby, Pearl tai muita jolloin Jos aiot ajaa se läpi tulkin ja saada se lukea koodi riveittäin ylhäältä alas, vasemmalta oikealle, että välikäsi vie jonkin aikaa omaa, ja mitä tunsit täällä 3 sekunnin sijasta 0,3 sekuntia on se, että tämä on välikäsi, joka on kirjaimellisesti tulkita meidän koodi rivi riviltä, ​​ja Jumala varjelkoon, jos olet silmukan sisällä valtava tiedosto sisältää satoja tuhansia sanoja. Että yläpuolella tulee lisätä ylös ja lisää ylös ja lisää ylös ja täsmää. Jotta väline näin se luultavasti ole paras kieli käyttää toteuttamiseksi oikeinkirjoituksen tarkistus, jos välittömyys kiinnostaa käyttäjät ja sinulle. Mutta ylellisyyttä meillä hetki on, jos käyttää kieltä, kuten PHP tai paljon tulkita kielillä yhteydessä Web, että asia, sinulla on hyötyä että internet on paljon hitaampaa kuin useimmissa tietokoneissa. Sinulla GHz CPU tietokoneeseen, 2 GHz, ehkä jopa enemmän näinä päivinä. Mutta todellisuus on Internetissä on suuri määrä latenssi jolloin sillä selaimen puhua palvelimelle, vaikka näimme viime viikolla että ihan nopeasti, puoli millisekunnin tai niin, sekin täsmää, ja jos lataat asioita, kuten kuva tai Facebook-valokuvan tai saada pikaviestejä Facebook pulista, Gchat tai vastaavat, kaikki nämä meno-paluu kertaa välillä selaimen ja palvelimen alku täsmää, mikä tekee juuri sinun kielen valinta monissa tapauksissa ei kaikki asiaan, joten olet hieno käyttämällä hieman hitaampi kieli kuten PHP tai Python tai Ruby mutta jonka olemassa valtava upsides sinulle ja työtovereillesi ja ystäväsi koska voit toteuttaa asioita niin, niin paljon nopeammin. Ja lisäksi sinulla on paljon pienempi riski tiettyjen tietoturva-aukkoja. Ei ole viitteitä PHP. Ei ole seg viat voit helposti aiheuttaa samalla tavalla kuin voisi C. Kanssa C olet erittäin lähellä laitteiston. PHP ja vastaavien kieliä olet tavallaan korkeamman tason, niin sanotusti, kanssa paljon puolustusta välillä sinulle ja mitä todella tapahtuu koneen sisältä, ja se on vain kompromissi. Olemme saaneet siihen pisteeseen ottaa nämä enemmän nykyaikaisia, korkean tason kielellä kuten PHP koska opitut kielet kuten PHP C. Mutta jos et ymmärrä, mitä on tekeillä alla huppu kaiken tämän ajan et varmasti pysty tekemään oikeita suunnitteluun päätöksiä, ja varmasti kun se tulee töissä paikassa, kuten Facebook-tai Google- tai mikä tahansa näistä paikoista, jotka ovat yhä leikkivät suurten tietomäärien vaikka mennä takaisin ja tehdä premed ja työskentelemme joidenkin MD joitakin suuria datakokonaisuudella johon potilaat ja lääkärit ja kuten käyttämällä oikeita työkaluja on erittäin vakuuttava koska muuten analyysin joidenkin tietojen joukko saattaa kestää sekunnin, tai se voi kirjaimellisesti kestää tunteja. Tämä on vain yksi esimerkki, ei estetä sinulle kuinka paljon vaivaa se oli C mutta auttaa sinua ymmärtää, että kun et toteuttaa jotain C te todella ymmärtää, tai teoriassa oikein ymmärrä miten kaikki on tai pitäisi toimia, ja sinulla on lähes täysi kontrolli yli missä mennään alla huppu, ja näitä korkeamman tason kielillä sinun täytyy luopua valvomaan paremmin ihmiset keksi niitä ja niihin enemmän niiden suunnitteluun liittyviä päätöksiä kuin sinun. Mutta jos otamme itsestäänselvyytenä, että suorituskyky ei ole aivan yhtä tärkeä Web koska näistä muista asioista, vain verkon nopeudet ovat hieman hitaampia kuin prosessorin nopeudet muutenkin, jotta voimme tavallaan varaa käyttää hieman hitaampaa kieli jos upsides ovat pystymme kehittämään asioita 10 kertaa nopeampi tai jopa enemmän. Katsotaanpa miten voimme alkaa käyttää tätä. Sallikaa minun mennä kansioon keskuudessa nykypäivän esimerkkejä nimeltään frosh.ims, ja tämä oli todella henkilökohtaisesti motivoi se, että aivan ensimmäinen asia Kirjoitin Web vuosia sitten ottamisen jälkeen CS50 ja CS51 oli verkkosivuilla Frosh IMS-ohjelmaan, fuksi sisäiset urheilu, joka tuolloin tämä riitti vuotta sitten, että tuolloin ei ollut verkkosivuilla ohjelmaa, vaikka oli web- ja sen sijaan oli Proctor vuonna Wigglesworth jolloin jos halusi rekisteröityä lentopalloa tai jalkapalloa tai mitä voisitte täyttää paperille. Voit sitten kävellä pihan poikki. Olisit sitten koputtaa heidän ovelleen ja liu'uta kotiovelle tai käsi Proctor paperinpala sinun nimesi, vai et halua olla joukkueen kapteeni, mitä urheilu halusitte tehdä, ja mitä asuntolan olit tuumaa Se oli tavallaan vanhan koulun tapa tehdä asioita, ja tämä oli ensisijainen mahdollisuuden automatisoida paljon tätä prosessia. Sinä vain mennä verkkosivuilla. Kirjoitat jotain sisään Saat sähköpostitse vahvistuksen, ja puomi, olet valmis. Tämä oli ensimmäinen asia, jonka tein, vaikkakin kielellä nimeltä Pearl, mutta se on suhteellisen helppo tehdä PHP, ja tämä on tavallaan edustava ongelmista voit alkaa ratkaista, kun voit ilmaista itseäsi ohjelmallisesti ja ei tarvitse tukeutua asioita, kuten Google-sivustoissa tai Excel tai työkaluja, jotka annetaan sinulle. Teidän on nyt mahdollisuus tehdä asioita, kuten tämä. Tämä on erittäin ruma version muodossa, mutta katsotaanpa vain käyttää sitä alussa keskustelun, jossa tämä on suunnilleen missä muodossa näyttivät vuotta sitten meille jotta ihmiset Webissä rekisteröityä Frosh infrastruktuurin. Pyysimme nimeä, valintaneliö vai ei halunnut olla kapteeni, mies tai nainen, ja mitä sitten asuntolan he olivat, ja sitten he lähetä tämä lomake. Katsotaanpa ensin katsoa alla huppu oli HTML, joka edustaa tämän sivun. Sallikaa minun mennä froshims0, ja varaavat PSET 7 otan itsestäänselvyytenä hakemistot ja kansiot Laitan asioita sisään Me opastamme sinua tarkalleen missä tavaraa on mennä laitteeseen, mikä mod komennot täytyy ajaa, joten älä välitä kaikkia tyhmä yksityiskohtia synkronointi get-go tänne. Okei, tässä on froshims0.php. Saanen selaa alaspäin ja mitä utelias täällä, Tämä on PHP tiedosto, mutta mitä sen sisällä, selkeästi? Se on paljon HTML, ja todellakin, PHP: n alkuperä todella olivat siitä, että Web-centric kieltä. Hetki sitten käytimme sitä toteuttamaan olutta esimerkiksi olosuhteet esimerkiksi Hei esimerkki, ja se on hienoa. Voit käyttää PHP scripting kieli jos käsikirjoitus on oikeastaan ​​vain nimikkeistössä annettu nopea ja likainen ohjelma tai jotain, mitä kirjoittaa käsikirjoitusta tai yleisemmin tulkitaan kieltä. PHP on erittäin hyödyllinen, että koska olet nähnyt, kuinka nopeasti suhteellisen voimme lietsoa ohjelmia PHP. Mutta se oli todella suunniteltu käytettäväksi web- ja suunniteltu Web siinä mielessä, että huomaa täällä yläosassa tiedoston En aluksi