[Muusika mängib] SPEAKER 1: See on CS50 ja see on lõpuks nädalas seitse. Täna on ehk kus me tõesti õpetamise te keeltes. Me kasutusele viimase paari aasta nädalat HTML ja CSS, millest kumbki on programmeerimiskeeli. Ja tõepoolest, kuigi me ei teinud vaata peaaegu kõik sildid et HTML kaasas ja peaaegu kõik omaduste, et CSS kaasas, see on omamoodi seda HTML ja CSS. Me lihtsalt üldiselt alustada eeldades, et teil mõistab üldjoontes ideed sildid ja atribuudid, ja lehti on saatnud alates kliendi server. Sest täna hakkame vaatama teine ​​programmeerimiskeel, PHP. Me teeme seda super kiire. Me ei kavatse õpetab PHP per se, palju nagu me ei püüdlevad õpetab C, per se, vaid pigem programmeerimine. Ja tõepoolest, üks eesmärgid selle käigus ei ole õpetab C, või HTML või CSS või PHP, või mõnel teisel buzz sõnu või lühendeid, vaid pigem infotehnoloogia ja kuidas programmi põhjalikult. Ja tõepoolest, täna me hakkame võtma need abirattad välja kõik edasi sõidab läbi keeles nimetatakse PHP, järgmiselt. Siin on, mida selles keeles välja näeb. Selgub, et puudub vajadus põhiülesanne on kirjutatud programmi keeles nimetatakse PHP. Nii et juba kõlab natuke lihtsam kui C, kellega me oleme tuttavad. Tuleb välja, et kui sa Teatan, et muutuja, sa seda peaaegu identne C. Kuid seal on selgelt üks erinevus siin kui ma kuulutada string, või äkki kaks erinevust. Mis näeb välja teistsugune? Sihtrühm: Dollari märk. SPEAKER 1: Jah, seal on dollari kirjutama, mida me pole kunagi näinud. Ja mis on puudu? Jah? Sihtrühm: [kuuldamatu] SPEAKER 1: Jah, ei ole andmete tüübi. Nii selgub, et PHP on see, mida me helistada lõdvalt kirjutatud keeles, kus C on tugevalt tipitud. Lõdvalt kirjutatud lihtsalt tähendab, et on erinevaid andmetüüpe seal on stringid ja ints ja ujub. Aga arvuti arvud, et välja. Sa inimese programmeerija ei pea sellest aru saada. Nii et kõik mida sa pead tegema kuulutada muutuja on dollari märk, nime oma varieeruv ja seejärel näiteks tsitaat lõppeb, tere. Noh see on see, mida tingimus näeb välja nagu PHP. Kõik erinevused? Ei. Nii selgub need on identsed. Ja siis võib-olla vähem filiaali või mitme tegevusala, aga süntaks pöördeid täpselt sama. Loogiline väljendid võivad tellida koos. Loogiline väljendeid saab anded koos. Teil on veel lüliteid. Isegi kui sa ei ole kasutanud Nende need ei eksisteeri C ja nad funktsionaalselt samaväärne PHP. Ja tegelikult, PHP nad veidi võimsam. In C, saate võrrelda vaid teatud andmetüübid nagu ints ja sümbolit, samas PHP saab tegelikult võrrelda täis fledge stringid ilma muretsema viiteid jms. Nii et siin on jaoks silmus. See on lihtsalt pseudokoodi kood, kui soovite. Aga struktuurilt on identne C. Siin on samas silmus, pseudokoodi therefore-- identne C. Siin on teha küll loop-- identsed. Ja nii seal on selline See muster siin kusjuures seal on mõned muud süntaktilise funktsioonid me tõepoolest näeme. Tegelikult siin on kena kuidas PHP kusjuures, Kui soovite itereerima Üle hulga, ja sa ei taha hüpata kaudu vaimse ja süntaktilise kõvadele võttes int i võrdub 0, i vähem kui n, i pluss pluss-- mis on lihtsalt palju tüütu süntaks. Võite öelda, natuke rohkem voolavalt iga numbrid kui number, kus sel juhul dollari märk numbrid, ma oletan, on nagu massiivi nimetatakse numbrid. Ja siis ma olen eeldades number, ainsuses, saab olema muutuv. Ja mida PHP teevad mulle kui ma kinnitada, üle selle loop on, iga iteratsiooni see saab uuendada muutuja number olla nda elemendi numbrid, mitmuses. Nii see lihtsalt töötleb selle mulle. No nurksulgudes ei dollari märk, no semikoolonit. See on natuke lihtsam. Noh, kui soovite massiiv, selgub sa saab midagi päris sarnased C. süntaks on veidi erinev. Aga siin on hulgaliselt nn dollar allkirjastatud numbrid. Ja ma kasutan, PHP, kandiline Sulgudes selgub. Ja me näeme neid uuesti in JavaScript-- järjekordne keeles. Ma lihtsalt kasutada nurksulg märke on komadega eraldatud nimekiri täisarvud, antud juhul. Aga see annab mulle massiivi. Kuid veelgi võimsam PHP, meil on ka see, mis on üldiselt nimetatakse assotsiatiivne massiivid. Ja palju keeli on need samuti. Asi C massiivid on see, et indeksid massiivi, asi, mida kasuta nurksulgudes, mille kaudu Teile juurdepääsu elemente, peab olema see, mida? Sihtrühm: [kuuldamatu] SPEAKER 1: Nad peavad olema numbrid või täisarvud, eriti nullist üles. Noh, PHP, ja selgub välja, teistes keeltes te võite olla indeksid, mis ei ole numbrilist. Aga nad on tegelikult sõnad või fraasid, nii et selle asemel Püüa meeles pidada, kus midagi on, või salvestatud muutuja i, saab tegelikult kasutada sõna ja öelda selle-- võite öelda sõna niimoodi. Nii dollari märk quote on nimi muutuja siin. See on mõnevõrra funky süntaks see ühendab kaks olulist väärtust paari muutujate jaoks. Täpsemalt, see annab mulle massiivi, mis on pikkusega 2. Aga indeksid ei ole 0 ja 1. Indeksid on tsitaat lõppeb sümbol ja tsitaat lõppeb hinnaga. Ja väärtusi nende indeksid võrra, on FB Facebook ja $ 79,53, kui ma viimati kontrollida oma hind selle eest. Mida see tähendab? Noh, see tähendab, et selle asemel, et kirjalikult koodi nagu see, kus ma varem midagi nagu dollar sign-- või pigem C Ma pole isegi dollari märk. Ma teeksin midagi nagu hinnapakkumisi ja seejärel Ma teeksin sulg i saada mingil meelevaldselt arvuliselt indekseeritud väärtus. Alates tänasest PHP, kui te tahad saada mingi väärtus, me justkui rohkem semantiline ekspressiivsus. Lihtsalt fancy viis öelda saame helistage asju, mida nad on. Ja kui sa tahad saada millegi sümbol, nüüd sa sõna otseses mõttes teha Tsiteerin lõppeb sümbolit Nurksulgudes selle asemel, et lihtsalt number. Nii et see on kena mugavuse. Ja see ongi vist nüüd. Seal kobarad muid funktsioone PHP. Ja tõepoolest, PHP kaasas lõpmatuseni köögivalamu. Kümned, sajad funktsioone tulla PHP-- nii palju rohkem kui tuli C. Ja see pole mõeldud uputama vaid aidata sa mõistad, et me ei enam kirjutada koodi see on omamoodi siia kontseptuaalselt. Nüüd saame lihtsalt alustada ära palju lisafunktsioonid mis keeltes nagu PHP on. Nii et me ei pea muretsema liikuvaid asju ringi mälu. Me ei pea muretsema malloc ja kõik need madalamal tasemel, võimas üksikasjad, et te maadelda koos, kui mitte võitlema, pset5, kuid võite alustada Varsti enesestmõistetavaks. Tegelikult olgem kirjutada super Lihtne programm PHP, järgmiselt. Ma lähen peaga CS50 IDE siin, ja mida ma lähen tegema on luua uus fail, mis väga lihtsalt läheb nimetada hello dot PHP. Nii et selle asemel dot c, see on nimetama hakatakse dot PHP. Ja siis see fail, Ma ei alusta kirjutamist. Aga selgub, et üks asi, mida ma pean teadma, on see, et mis tahes PHP faili üldiselt vajab alustada mõned süntaksit. Sarnase sisuga HTML, kuid jällegi, PHP on programmeerimiskeel, ei märgistuskeel. Nii et iga fail, ja see on omamoodi loll otsin ma tunnistama. Avatud sulg, küsimärk, PHP. Ja see on alles keele viis öelda, hey, arvuti siin on natuke koodi kirjutatud keeles nimetatakse PHP. Ja siis päris lõpus oma faili sa selline omamoodi vastand. Sa ei kirjuta PHP uuesti, sa lihtsalt teha küsimärk, nurksulu. Ja siis midagi paned sees Nende kahe sildid, nii et rääkida, on või peaks olema, PHP koodi. Nii teeme midagi super lihtne. Ma lähen edasi minna ja teha print def, tere, kurakriips n salvestada. Ja nüüd minu kiire, ma lähen teha, et hello-- ei, ma lähen tegema, dot kaldkriips tere. Ei, dot kaldkriipsuga, hm. Nii midagi on teistsugune. Ja tõepoolest, see on oluline erinevus vahel PHP ja keeltes nagu C C oli niinimetatud koostatud keeles. Mida see tähendab C tuleb koostada? Milline oli mõju? Jah. Sihtrühm: Kirjutas see masin koodi seega võiks käivitada arvuti poolt. SPEAKER 1: Täpselt. Me peame kõigepealt teisendada see nn masin koodi, ühtede ja nullide, Enne seda tegelikult olla käivitatav ja arusaadav arvuti. Intel inside. CPU sees arvutis. PHP, seevastu on, mida nimetatakse tõlgendanud keeles, mis tähendab, et sa ei kompileerida arvesse ühtede ja nullide, masin koodi sa mitte jätta seda lähtekoodi. Ja sa mitte andke seda sisendina programmile tõlgi et keegi kirjutas aastat tagasi, et mõistab seda rida-realt, iseloomu olemust. Nii teisisõnu, Inimestel seal kirjutas programm, mis näeb sinu koodi rida-realt, ja selgitada, mida arvuti peaks tegema, teisendamata otse ühtede ja nullide. Nii et kui ta näeb silmus, see nn tõlk saab olema nagu kõik õige, ma peaks midagi uuesti ja uuesti ja uuesti. Mida ma peaksin tegema? Lubage mul vaadata järgmise rea. Lubage mul vaadata järgmise rea. Ja see on tõesti tõlgendab seda rida-realt. Nii et täita seda, ma ei kasuta make. Ma ei kasuta dot kaldkriipsuga sel juhul. Ma asemel teha PHP, mis on nimi programm, a.k.a. Tõlk, mis on eelinstalleeritud CS50 IDE, ja nüüd ma pean läbima käsurea argument, mis on lihtsalt nime esitada, et ma tahan tõlgendada. Või rohkem juhuslikult, et ma jooksen. Ja kui ma Enter, et meil on see. Tere, Maailm. Nüüd tuleb välja, et ma Kasutatud print def sihilikult ületada meid C PHP. Enamik PHP programmeerijate, nagu näete, ei vaevu isegi kasutades print def. Nad lihtsalt kasutada funktsiooni nimetatakse print, mis C ei olnud. Ja nii kui ma uuesti, siis nüüd, kui see tegelikult käitub praktiliselt samad. Ma ei saa kasutada protsenti s ja protsenti i ja nii edasi, kuid on ka teisi viise PHP teeme seda. Kuid see on ainult öelda, et süntaktiliselt, va mõned imelik asju top, ja mõned imelik tähemärki alla allosas, mõistete nüüd on programmeerimine selles teises keeles saab olema täpselt sama. Tegelikult teeme veel ühe näite. Nii et ma lähen edasi minna ja sulgege fail. Lubage mul luua veel üks, et Ma helistan tingimused 1 dot PHP. Nii ei nulli, sest see, mida ma tegin oli Vaatasin tagasi paar nädalat tagasi, meil oli fail nimega tingimused 1 dot C. Ja mida Ma ei muudeti see minu pea, ja siin paberil, ja varsti kursuse veebilehel, rida-realt arvesse PHP. Nii et C versiooni, me tegime midagi nagu string s saab saada string. Nii et see on natuke erinev mida teha, et PHP. Selle asemel, ma lihtsalt lähen teha, või õigemini, ma oleks võinud teha int n saab saada int, selles näites varem. Nii et selle asemel, et ma lähen tegema, n saab lugeda line, ma tahaks täisarv, palun. Nii et see on vaid minu kiire. Ja nii see osutub ning Ma tean ainult seda alates lugenud või näinud funktsiooni Enne, loe ridade funktsiooni PHP võtab argumendiks, et on kiire inimese ja tema elu mõte on lugeda rida teksti et ta liigid. Ja siis ta salvestab selle teksti muutuja n. Ja nüüd ma tahta midagi teha nagu mina tegin nädalat tagasi, nagu nädal üks tasemega. Kui n on suurem kui null, siis, ma lähen laenata, et süntaks me just nägin, print def, valisid positiivne number, kurakriips n. Else, kui n võrdub võrdub nulliga, ma olen läheb edasi minna ja öelda, print def, valisid null kurakriips n. Else, antud juhul peaks muidugi, print def, valisid negatiivse numbriga. Ja me saame kindlasti rakendada loogika see asi hunnik erinevaid viise, kuid siinkohal on see, et süntaktiliselt, vaevalt midagi uut. See on lihtsalt dollari märk ja Uue funktsiooni ja lugeda line. Aga põhimõtteliselt, mida uut nüüd on ma tõlgendades seda. Ma kulgeb see sisendina teise programmi. Nii et kui ma tahan teha selle, kui Ma ei teinud ühtegi viga, Ma lähen jooksma PHP, ning tingimused 1 dot PHP, Enter, Ma lähen kirjuta number 50, ja Oletame nüüd see toimib. Kuna loogika on Sama värk nagu nädal üks. Hea küll, et on päris underwhelming, eks? Me võiksime seda igal Keelte arv. Teeme midagi nii võimsam. Lõpetame probleem seatud viis. Nii et ma lähen edasi minna ja seda teha. Ma lähen luua faili nimetatakse sõnastik dot PHP, ja kallutada võite olla rüselus maha palju märkmeid, lisades ainult aidata kui sa oled lubatud rakendada püstitatud probleeme viis PHP. Aga eks näis, kui kiiresti nüüd saab rakendada, et sama probleem komplekti. Nii sõnastik dot PHP, ma lähen eeldada, et seal on juba faili maailmas nimetatakse speller. Ja tõepoolest, ma tegin seda ette, ja me ei käi see rida realt, aga kui sa oled uudishimulik hiljem ja tõesti wrap meelt umbes erinevused c ja PHP, sõna otseses mõttes võrrelda seda faili speller, tänapäeva lähtekoodi et me postiga hiljem täna vastu p komplekti viie speller dot c, et anname, ja see on peaaegu sama rida-realt. Seal on veel mõned dollari märgid. Paar funktsioonid veidi erinev. Aga see on kena viis omamoodi näha, kuidas tõlkida ühest keelest teise. Ja see on peaaegu identne rea haaval. Aga ma lähen eeldada, et see olemas, ja mida ma teen siin on püüdma löök oma Mind Autor reimplementing kogu probleem määrata viis, kuidas kiiremini kui olete teinud siiani. Nii näiteks, ma lähen esimest Kinnitan globaalse muutuja nimega suurus, ja seada see võrdub nulliga. Nüüd, kui ei ole palju sääste. Ennustus sa ellu suurus üsna sama, või vihje vihje, eks täna õhtul või homme, lihtsalt kasutades globaalse muutuja nimega suurus, ja milles see võrdub nulliga. See ei ole eriti Hämmastav spoiler. Mis oli teie andmestruktuurides valik, neile, kes on sukeldus ja loe spec, mida andmestruktuurid on enamik teist on kasutanud? Hash tabeli või proovida, võibolla Mõnes variante. Nii rakendab hash tabelis vähemalt on selline palju ridu koodi, õige? Ja mitte kõik neist võib olla funktsionaalne siinkohal nädalal, aga see on hea. Sest PHP, kui ma tahan hash tabelit, tehtud. Õigus? Nii et muutuv, et ma olen lihtsalt deklareeritud on ilmselt nimetatakse dollari märk lauda Ühe kasutusele enne. Aga ma tõesti tahan, kell lõppu päevas, massiivi. Aga mitte arvuliselt indekseeritud massiiv, sest see on nagu nädal kaks kraami, kui me rääkisime massiivid. Ma tahan hash tabelit. Aga hash tabelis on tõesti vaid konkreetsete viis öelda, soovite assotsiatiivne massiiv. Sa tahad, et oleks võimalik assotsieerunud võtmed väärtustega. Võtmed väärtustega. Mis on sõnastik, tõesti? Noh see on terve hunnik võtmeid. Sõnad nagu õun, pirn ja banaan, ja kõik need ingliskeelsed sõnad et me käe. Ja need väärtused, sa oled tegelikult sisestades oma sõnastikku kas tõene või puudumine, vale. Teisisõnu te sisestate terve hunnik põhiväärtus paari, Apple, tõsi, pirn, tõsi, banaan, tõsi. Nii et kui sa alla laadida või välja up, et andmed oma hash tabelis oma kontrolli funktsioon, sa oled kas saada tagasi vastus, jah, ma leidsin ta minu keeruline hash tabelit, või ei, see ei ole seal, nii et sa tagasi vale. Nii et seda teha, kõik, mida vajan on andmed struktuur, nagu ma varem kavandatud. Ma lihtsalt pean suutma siduda sõnu nagu, tsitaat lõppeb, sümbol, väärtusega nagu tõsi. Nii et minu hash tabelit. Olgem tegelikult kasutada. Nii et mõned funktsioonid Mul on vaja rakendada. Ma lähen edasi minna ja hammustada off funktsioon nimega suurusest. See ei võta argumente. Mul ei ole viitsinud sõna, tühine, PHP. Ma lihtsalt lähen tagasi suurusest. Ja kui kõrvale, PHP on Selle minorly tüütu detail, kus, kui midagi on globaalne, sa pead öelda funktsioon, kus te kasutate see, hei, see on globaalne muutuja. Nii, väike rumalus, aga sa pean seda siiski. Nii kuidas last? Ma lähen rakendada funktsioon nimega koormus mis võtab nime sõnastik, just nagu probleemi seatud viis. Ja enne kui ma jätkata, märgata, et mul ei ole on kirjutades üsna samu asju. Mis on ilmselt erinevad PHP umbes kuidas deklareerida funktsioon versus C? Jah. Sihtrühm: [kuuldamatu] SPEAKER 1: No tagastamise tüübist. Ja tõepoolest, see on nii, PHP kuivõrd see on lõdvalt kirjutatud, Samuti on veidi lohakas selles mõttes. Te ei täpsusta, kui programmeerija mida see funktsioon tagastab. Sa oleks tegelikult otsida kell kood selle välja mõelda. Või lugeda kommentaare või dokumente. Nii plussid ja miinused selliseid otsuseid. Aga ma pean ütlema, Võtmesõnaks, funktsioon. Ja kui me õpime JavaScript paar nädalat me näeme sama asja uuesti, kuid see on sama mõte. Nimi funktsioon, tema argument või argumendid või selle puudumist, ja nüüd siin on rakendamiseks. Nii et ma lähen lõigata mõned nurgad lihtsalt dramaatiline olla hetkeks. Aga ma lähen edasi minna ja öelda. See on, kuidas ma saan laadida faili massiivi. On funktsiooni PHP nimega faili. Sa annab selle nime faili. See kätt tagasi massiivi sees mis on iga rida failist. Nullist üks, püsti n miinus 1 jooned. Ongi, eks? Pole f lugeda. Pole f get s. Pole protsenti s. Ei ole peavalu. Pole feof. Kõik see kraam mis olete olnud maadlus ehk p seatud neli ja viis, kaob. Nii et ma lihtsalt ei loe neid read faili ja siis sa tead, mida? Kui ma tahan korrata üle neid sõnu, Ma võin teha, iga rida nagu joon. Pea meeles, et see oli omamoodi kaval viis iterating üle massiivi, indeks indeksi ja iga iteratsiooni calling Praeguse line, dollari märk line. Ja siin ma lähen ja öelda tabel, sulg, liin, saab tõsi. Teisisõnu, see on, kuidas I lisada oma hash tabelit PHP. Ma ütlen dollari märk tabel, mis Mul on assotsiatiivne massiiv, mis oli tühja kohta koodirida ülevalt. Ma siis indeks sinna mitte, kasutades mitmeid, kuid sõna-sõnalt abil märksõna, et ma hoolin. Võibolla on see õun või pirn või banaan või mis iganes, aga konkreetselt ma indekseerimine sinna nagu ma varem väljapakutud. Võtan nimi minu assotsiatiivne massiiv, ja siis ma kasuta quote lõppeb ka Nurksulgudes koos haaknõela, selle asemel, et tegelik number. Ja nii ongi. Koormuse funktsioon on teinud. Kui see loop itereerib, ma panin Kõike arvesse hash tabelit. Nüüd väike disclaimer, seal on paar asja ma ei vaja määrata. Ja versiooni ma pärast Internetis on kõik nüansid, aga see on enamasti lihtsalt tuleb mingi Vigade kontrollimise ja mõned Pisimuudatused. Aga see on tõesti põhisisu ta. Kui ma nüüd tahan rakendada funktsiooni nimetatakse vaadake, mis eeldab Sõna selle argumendi, kuidas võiks ma minna seda teed, et? Noh, ma lihtsalt ütlen, kui sees minu laua juures asukohast sõna, kui on määratud. Nii et kui on on-- tegelikult, sa tead, mida? Ma lähen tegema seda natuke pseudokoodi. Aga mõte on sama. Kui see võrdub tõsi, tagasi tõsi. Hästi. Else-- saab sellist näha, kus see on going-- tagasi vale. Valmis. Vaata tehakse. Päris kena, eks? Ja mis siis on see tõesti saada aadressil? Ja ka see, ma lõikasin mõned nurgad. Vaata eelvaade kõigile kerget nüansid. Aga see põhisisu ta. Indeks oma assotsiatiivne massiiv, a.k.a. Hash tabelis, kas seal on väärtus seal, kui see on seatud, et tõsi, ja kui jah, tagasi tõsi. Nii oleme arvu vähendatud kõik keerukust. Nii liiki meeles puhuriga, eks? Ma ei viitsinud viimistlus seda unload, sest fact-- oh, sa tead, mida? Jah, olgem lõpetada see tühjenemise. Laadida oma hash tabelit võib tunduda nagu funktsioon unload, tagasi. OK, nii et see maha laadida. Sest seal on midagi lossimiseks, eks? Pole malloc. Ma ei ole selgesõnaliselt küsida operatsioonisüsteemi midagi. Ma lihtsalt hakkasin kasutades muutujaid. Ja nii see ka on märk funktsioone kõrgema keeles. Nii jälle, kõige selle aja jooksul oleme arutanud siin C. Super madal. Näete arvuti mällu. Võite puudutada midagi tahan oma arvuti RAM, paremaks või halvemaks. Siin me läheme loobuma, et võim. Aga my god, vaatame, kuidas palju vähem koodi kirjutasin. Tegelikult, kui ma ei rääkinud ja räägi enam minu kirjutades, me oleks võinud teha Selle näiteks viis minutit tagasi. Mis siis hind on makstud? Noh olgem heita. Võtame pilk. Ma lähen edasi minna ja joosta CS50. Lubage mul kõigepealt minna Tänapäeva näiteid, kus Mul on tekstid kataloog nagu enne. Ma lähen jooksma lahendus, mis Kaasas probleem seatud viis nn speller, mis on CS50 konto. Ja ma lähen, et kasutada seda midagi suur nagu King James Bible, just nii, et me tõesti panna personali lahendusi proovile. Nüüd mõnikord internet on natuke aeglasem, veidi kiiremini, võib võtta aega, et kerida. Aga ta võttis kokku .56 sekundit õigekirja kontrollida King James Piibel kasutab personali lahendus. Nii päris hea. Yours võib olla palju aeglasem ja see on täiesti korras. Aga see on õige siin. Nii et töötajad lahendus. Kui ma lähen sisse ja koristada PHP versiooni. Ja ma lähen teen natuke nagu küpsetamine Näita asi. Me läheme kood Kirjutasin varem, nii et see on täiesti õige. Kuna koodi kirjutasin ei kavatse olla täiesti õige hetk. Aga kui ma saan PHP versioon, Mida ma pean loobuma täna? Tegi mulle viis minutit rakendada p määrata viis, ma väita. Mis hind on Maksin? Jah. Sihtrühm: Speed. SPEAKER 1: Speed. Mida sa silmas pead? Sihtrühm: See läheb kauem aega. SPEAKER 1: Olgu. Vaatame. See läheb kauem aega, mitte kirjutada, aga käivitada. Jah. Nii proovime seda. Nii et siin ma lähen edasi minna ja teha PHP on speller, ja kuna faili nimetatakse speller. Nii et ma ei töötab sõnastik, meenutada, Ma töötab programm nimega speller. Ma lähen edasi samas faili, King James viies. See sõidab. See võib olla lihtsalt Interneti kiirus, nii ei loe liiga palju seda. Aga see ei tunne enam kindel. 1,26 sekundit. Nüüd, kui on ikka päris kuradi kiire, eks? Ja ainus põhjus, et tundsin pigem kolme või nelja või viie sekundit, et lihtsalt sellepärast, internet oli olla aeglane. Arvuti veedetud aeg oli 1,26 sekundit versus Arvan 0.56. Nii rohkem kui kaks korda aeglasem. Nüüd, kui on ikka päris darn kiire, kuid see on märk ja tõepoolest, et täpset hinda. Kuna me tõlgendamisel koodi rida-realt, ja et programm PHP loeb minu kood ülevalt alla, vasakult paremale, ta peab tegema rohkem mõtlemist. Peab liiki teisendada see sees ise vastavaid machine koodi sõita, kui nii võib öelda, kuigi mehaanikud on natuke teistsugune. Selle asemel, et lihtsalt toitmisest Intel CPU toores ühtede ja nullide et ta mõistab algupäraselt. Nii absoluutselt, käed alla, oleme maksnud hinda. Ja kood kirjutatud keeles nagu PHP kipub olema aeglasem. Aga minu jumal. Nüüd, kui ma õigekirja kontrolli oma file veedan ma ekstra 0.7 või nii sekundit vs 20 tundi rakendada kiiremini õigekirjakontrolli, eks? See on selline kompromiss. Ja kui sa oled hakanud just p seatud viie, ei pruugi olla 20 tundi. Oleks ju palju vähem kui see. Aga see on kompromiss, päris. Ja kui sa kasutad koodi tõesti suur andmekogud, või isegi vanem riistvara, sellist liiki erinevused saab kindlasti tõusta. Kõik küsimused siiani? Jah. Sihtrühm: [kuuldamatu] SPEAKER 1: Sorry, ei sa ütled seda veel kord? Sihtrühm: [kuuldamatu] SPEAKER 1: Sa oled loobunud aega. Noh, nii jah. Sa säästes aega ei ole vaja kompileerida, kui see on, mida sa küsida. Ja tõepoolest, on CS50, enamik programme, kuigi nad võivad võtta aega kirjutada, et nad on suhteliselt lühike. Mõnikümmend, mõnisada rida koodi, ja nii nad koostada päris kiiresti. Aga kui hakkate kirjalikult suurem programme, nagu kui sa Microsoft või olete Google ja kirjalikult tõesti suur programmid C või C ++, või sarnaselt koostatud keeles, võib võtta mitu sekundit, või isegi minuti või kauem koostada miljoneid rida koodi. Ja ka seal, et Erinevus läheb tõusta. Ja tegelikult, kui me Üleminek täna, samal päeval täna, et veebi programmeerimine kasutades PHP, sa oled leiame seda lihtsalt nii palju rohkem nauditav kirjutada koodi kui sa ei pea tegema need rumalad sammudele nagu muuta oma terminal Akna tüüp make hello, re käivitada, pange aknas. Just nii palju rumalaid mehaaniliste etappidega, et lihtsalt saada takistuseks teed huvitav, lõbus töö. Ja tõepoolest me visata, et ära PHP. Ja me saame suhelda sellega kiiremini. Jah. Sihtrühm: [kuuldamatu] SPEAKER 1: Muidugi. Kas ma selgitada, mida see tähendab, et tõlgendada? Kui teil koostada keel nagu C, siis läheb alla nagu me ütlesime, et masin kood, ühtede ja nullide. Ja Intel otsustas aastat tagasi, et teatud mustrid ühtede ja nullide esindavad lisaks või lahutamine, või printida või muid põhilisi toiminguid. Tänapäeva maailmas tõlgendanud keel nagu PHP või JavaScripti, või Python, või Ruby või kimpu teised asemel keegi on kirjutanud interpreter-- sel juhul, see on ka nn PHP identne nimi; language-- et sisuliselt on suur silmus see, et itereerib üle kõik liinid kood et ma söödan sisendina, nagu hello dot PHP või sõnaraamatu dot PHP. Ja siis sa ei mõtle nende suur loop kellel on palju tingimustel. Ja need tingimused öelda, kui inimese on kirjutatud märksõna, alustada teed oma kood uuesti ja uuesti. Või kui inimene on kirjutatud koodirida, kui ainult täita oma Järgmisel real tinglikult. Nii et see on tõesti nagu tõlgendamisel see on inimese tunne, line realt, ja et lihtsalt võtab aega. See võtab õhuliini. Ja nii see on price-- hea question-- maksame. Nii teeme teise demo see on natuke rohkem dramaatiline. Seal on, ma ütleksin, ballpark see on 90% tõenäosusega ei suuda jubedalt, kuid siis tuleb üllatunud 10% tõenäosusega. Nii igal aastal püüame seda teha, millega me proovida kirjutada programm, mis läbib Probleem seatud null, mis ennast esitatud telefoni numbrid ja palju muud demograafilised andmed, ja me programmiliselt Kirjuta Teile tekstisõnumi. Ja siis igaüks telefoninumber kostab helisignaal või vibreeriv, ja see on lihtsalt hämmastav, sest Noh, vaatame, mida arvutid teha. See harva töötab korralikult tundub, suures osas sest ma tavaliselt saada mustas nimekirjas Gmail või mõne muu teenuse jaoks tegelikult üritab seda teha skaalal. Aga naljakas asi on liiga, sest me ei ole kõik täna siin, lõbus Tegelikult viimane kord, kui me proovisin seda kaks aastat tagasi, Ma arvan, et ma kirjutasin programmi et istus aasa iterating üle kõik õpilased klassis, ja igaüks neist tekstisõnum ja ta ütles midagi sellist, miks ei ole sa loengus? Armastus, CS50 bot. Sul pole aimugi, kui palju vabandav ja omamoodi valus kirju Olen saanud vastust n miinus 100 inimest, kes ei olnud siin see päev. Ja isegi naljakam, rohkem häbiväärne story-- sa tead, et paneme ta sinna. See on juba video paar aastat tagasi. Nii et varsti näete mind kirjuta jaoks silmus, millega see on väga lihtne kirjutada viga, et silmus, nii et esimest korda silmusest läbi, siis Kirjuta ühe tekstisõnumi. Teist korda läbi silmuse ma pidanud saatma veel ühe tekstsõnumi ja siis veel üks tekst sõnum ja veel üks. Selgub aga, kui sa teed kirjaviga kavandamisel, mõnikord võib kirjutada programme, et saata üks tekstsõnumi, siis kaks tekstisõnumeid, siis kolm tekstsõnumeid kõigile kes on juba saabunud tekstisõnum. Ja kui sa tead, midagi, pluss midagi, pluss midagi, pluss midagi, on suur O palju tekstisõnumite või n ruudus või $ 0,10 tekstisõnum $ 20.000. Õnneks ma tabanud kontroll-C enne seda juhtus, aga ma võlgnen vähemalt üks edeltäjistänne 20 $ eest 200 imelikel tekstisõnumeid, et mitte ainult läks telefon, kuid Samuti oli nagu vanem klapp telefoni nii et see meeldib surutakse välja oma mälu iga muu isikliku teksti sõnum oli ta tegelikult saanud. Nii et meil on üks eesmärk täna, mitte seda teha. Ehk lennureżiim sisse lülitada. Hästi. Nii lähme sisse Programm siin callled-- et ma helistan teksti dot PHP. Ja ette, mul on kaks faili siin. Tegin faili lihtsalt töötajad, et ju kõik töötajad on info, kõik nimed kursuse kodulehelt. Ja siis nüüd ma lihtsalt panna mõned võlts numbrid 555-1212. Nii et need tegelikult ei lähe kuhugi. Aga märgata sees see CSV faili, mis me rääkisime põgusalt enne kontekstis faili IO. Mis on CSV-faili? Komaeraldusega muutujaid. Ja see on selline nagu väga kerge andmebaasi, kui soovite. Seal on selline omamoodi neli veergu seda pilti, ja seal sakilised, kuid komadega sisuliselt esindavad veergude faili. Esimeses veerus on TF või CA nime. Teise veeru oma perekonnanime. Kolmas veerg on oma telefoninumbri. Ja neljas veerg ilmselt on-- Neljandas veerus on ilmselt see, mida? OK, nii et see on nende kandja. Nii Verizon või Sprint, või mida mitte. Ja kui ma end valesti varem, CSV. Komadega eraldatud väärtuste CSV siin. Mida ma saan teha seda? Jah, see on lihtsalt suur tekstifaili ja see on selline pikk, eks? Nagu see läheb olla selline tüütu. Ja selgub siiski, et kui ma soovite saata tekstisõnumi, olgem ütlevad Alex siin. Lubage mul minna oma brauseri ja väljuda täisekraanil lihtsalt, et ma saaks lülitada edasi ja tagasi. Selgub, vaatame, kas ma minema siin, ja Gmaili sisse logida, on kõik korras. Ära vaata seda osa. Lihtsalt ma saan näha. muidugi livestream saab ikka veel, mida ma teen. Hästi. Nii et siin on lihtsalt Gmaili John Harvard konto. Nii et kui ma tahan saata tekstisõnum Alex, Võin muidugi kirjutada sõnumi. Ja selgub, ja ma olen testitud seda Alex enne siin siis võite lisada teatud domeeni nimi inimeste telefoninumbrid, sest seal on olemas maailmas asju nimetatakse SMS posti väravaid. Milline on fancy viis öelda kõik meist, kes on mobiiltelefonidega, telefoninumbrid, muidugi, arvatavasti ei oma vedaja, teatud järelliide nagu on Vtext.com Verizon tekstisõnum dot com, et saate lisada oma isiklik telefoninumber ja seejärel sa sõpra või teie vanemad saavad tekst, mida selle konkreetse aadress. Ja Verizon on server, e- server, et peale selle e-sõnumi, vaadeldakse numbriline osa ja seejärel kasutab iganes erilist tööstuse magic nad on tegelikult saata välja üle lainetes oma eriti raku telefoni. Nüüd on see tore, sest ma ei ole tea, kuidas saata tekstisõnum või kirjutada koodi veel minu mobiiltelefon, ja te võite teha täpselt, et lõplik projekt, kuid nüüd on kõik Mul on minu laptop siin. Nii et ma tahan korrata üle, et CSV faili, liin, mida joon, mida joon, mida joon, haarata igast töötajate telefoninumbrid, ja nende kandja ja programmiliselt, concatenate, see tähendab, et ühendada telefon number vastava domeeninime ja siis saatke e-mail. Nii et palju samme. Ja õnne teed, et C. See on õudusunenägu olukorrast avada faili lugemiseks line, joonega, joonega, kui näeme, või võib peagi näha probleemsete seatud viie, kui mitte Probleem seatud nelja ja seejärel dünaamiliselt concatenate kaks stringid koos, sest C, võtma kaks stringid ja kombineerima need, mida sa minimaalselt pead tegema kõige tõenäolisem? Sa pead deklareerima rohkem mälu, eks? Ja küsida, malloc, kas ma saaksin rohkem mälu? Nii et ma ei pane pool sellest siin, pool sellest siin. See on lihtsalt nii palju samme. Ja selles punktis olete kaotanud huvi loll väike demo kus te teete kõik telefoni piiks. Teeme sellist PHP stiilis, millega me lihtsalt hakata kasutama rohkem selle köögivalamu. Ja ideid on põhimõtteliselt sama, kuid me ei pea muretsema liiga palju, et madalamal tasemel. Vaatame, kuidas võin minna seda teed. Ja just nii, et ma ei ole korrata mineviku vigu, Olen kirjutanud mõned märkmed mina siin. Ja vaatame, kas ma saan kõndida juures läbi mõned olulised sammud, ja siis aegu jagame ehk lõigata mõned nurgad lõpus. Ma lähen edasi minna ja teha avatud sulg PHP hakata seda pilti. Ja ma lähen edasi minna ja seda teha. Failisang, kui saate Kohe näha, tegelikult nõuab funktsiooni nimetatakse f avatud. Ja pidage meeles, see avab faili. Ja tsiteerida, lõppeb, r tähendab mida, jälle? Lihtsalt avage seda lugeda. Nüüd p seatud, et sa tegid seda. Ja hakkama võiks olla midagi, fu, baar, bas, mis tahes muutuja nime. Aga üldiselt arvuti teadlane kutsuksin avatud faili andes sulle failisanga, midagi kinni hoida nii rääkida. Ma lihtsalt teha mõned veatuvastuse. Nii et kui käepide on vale, lihtsalt meeldib C, ma teen midagi, Faili avamine nurjus, kurakriips n. Ja siis ma lihtsalt lähen minna ja väljumist. Ja selgub, PHP, Ma ei ole sees funktsiooni. Ei ole peamine ülesanne siin. Nii et ma ei tule iseenesest. Ma väljuda. Milline on sisuliselt sama asi. Ja ma väljudes ühe y ilmselt. Üks tähendab lihtsalt viga mingisugune. See on nullist, nii et see on viga. Olgu, nii et kui ma olen siin nüüd minu programm Olen avatud faili. Ma lähen edasi minna ja kuulutada massiivi nimetatakse aadressid, ja C oleksin teada suurus massiivi ette, eks? Või ma oleks vaja kuulutada see on pointer, ja siis kasuta malloc. Ja siis iga kord kui ma lugenud läbi teise rea faili Ma lähen vaja malloc rohkem mälu, malloc rohkem mälu. See on tüütu. Ja õnneks PHP ja Ruby, ja Python ja JavaScript, et nad kasvab oma massiivid automaatselt. Enam malloc. Enam ei ole mälu haldamine. Arvuti hoolitseb selle. Aga hind, mida maksta. See on veidi aeglasem. Ja seesugust programmi me ei kavatse märgata. Me läheme talle 100 tekstisõnumeid. Näiteks ei kavatse tunda. See on tõesti ainult hakkab loe oma keele valik kui su andmeid või programme saada tõesti suurt, kui on tegemist rohkem meie veebipõhine kraami. Aga nüüd lähme edasi liikuda. Kuigi see osutub seal on funktsiooni C nimetatakse f saada CSV. Faili saada CSV, mis võtab failisang kuna see argument, ja see jätkub siis, rida, mille rida, mida järjest lugeda järjest. Nii see lihtsalt kõlab line teksti failist. Aga mis on tore seda funktsiooni, see ei ole lihtsalt anda mulle rida teksti. Tundub neile komade ja korrastab rida. Ja sõeluda line tähendab jagada seda teatud väärtusi selles kontekstis. Teisisõnu, dollari märk reas on muutuja, mis on annan mina kamp indeksid. See saab olla Esimese veeru minu CSV. See saab olema teine veerus, see saab olema kolmas, ja see saab olema neljas. Sest mäletate, ja Excel ei koostööd viimane kord tegime seda, aga kui ma alla laadida töötajad dot CSV. Oih, ei nimeta. Kui ma alla laadida töötajad dot CSV, ja püüdke seda, Olen juba registered-- oh ma ei uuenda Excel, sest viimane kord. Näete, et töötajad dot CSV, mul on neli veergu. Nii et kui ma lugenud Esimene rida Abby siin dollari märk rida 0 on Abby, dollari märk reas üks on Lyons, dollari märk järjest kaks on tema number, ja siis tema telefoni vedaja. Nii see on kõik. Ja see on tore, sest ma ei pea nüüd nuputada kus kõik need komadega tegelikult on. Nii et ma lähen edasi minna ja Selleks, sest definitsiooni, Ma ütlen, et ta nimi on rea sulg null, nagu lubatud. Ja ma lähen grab-- ja tegelikult, sa tead, mida? Ma ei hakka muretsema tema nimi, sel juhul. Ma lähen, et hoida seda lihtsam. Ma teen oma number on rea sulg kaks, ma arvan. Ja tema kandja oli kus? Row kolm, üks üle. Nii midagi uut. See on lihtsalt null indekseerimise massiivi. Ja nüüd, ma lähen tegema järgmist. Kui vedaja võrdub võrdub AT & T-- Ma lihtsalt lähen on loop-- Ma tahan, et luua talle aadressi, mis näeb välja nagu see. See saab olema 617-555-1212 kell, mis see on, text.ATT.net, on see, mida ma tahan teha. Niisiis, kuidas ma seda teen? Ma lähen tegema järgmist. Tema aadress saab olema tema number, ja nüüd, lubage mul minna ja teha seda. See on mõned funky süntaks. Ma võiks teha protsenti trikk, aga ma ei saa tegelikult lihtsalt seda teha. Nii et see on PHP asi, kuid Vaatleme, mida ma teen. Dollarit kirjutama aadressi vasakul, vaid muutuv. Andke mulle muutuja. Ma ei pea täpsustada, millist tüüpi. PHP sellest aru. Paremal pool, Milline on andmete tüübi Selle kogu asja kohta paremal pool? Paistab string, sest seal on topelt tsiteerib vasakus servas ja paremas servas. Nüüd on mõned funky uus süntaks siin. Seal on looksulg, ja dollari märk number. Aga võta arvata, mis on selle süntaks Tõenäoliselt räägib PHP teha mulle? Jah. Lihtsalt sisesta väärtus on. Nii ei protsendi s. Me võiksime kasutada print f või s print f või millekski selliseks, kuid PHP ja palju kõrgema taseme keelte, sa lähed, et näha, mida võiks teha sama funktsionaalselt, võibolla kuuel viisil. Ja nii see hakkab muutuma küsimus disaini ja stiili. Nii et see on lihtsalt segasena otsin teed öelda, anna mulle e-posti aadressi, kuid plug-in number vahel looksulg. Ja looksulg mitte sattuda lõpliku aadress. Nüüd saame vahele jätta mõned nende ridade aja pärast. Nii et kui vedaja on võrdne võrdub verHorizon-- Oih, Verizon-- ma tahan teha midagi väga sarnased, kus aadress muutub, quote, Tsitaat lõppeb, number on text.ATT.net. Ja siis ma saan teha sama liiki asi ülejäänud kandjad. Aga ma lihtsalt ei dot, dot, dot nüüd. Ja nüüd oletame, et Tahan lisada massiivi, suruda. Tahan lisada massiivi nimega aadressid. See aadress, see on, kuidas sa lisada midagi massiivi PHP. Sa ei pea tegema malloc. Sa ei pea suurust massiivi. Sa lihtsalt öelda massiivi, viik. Mida sa tahad push-- mida massiivi sa tahad suruda midagi peale? Aadressid. Mida sa tahad pealeminevaks aadressid? Aadress. Ja tegelikult, kui te tõesti tahan olla tark, mõned süntaktiline suhkur seda, kui nii võib öelda, mis tähendab lihtsalt, kuidas sa saad seda teha ilusamaks moel oleks seda teha. Ka mõjub kasvab aadressid massiivi suurus ühe, ja siis sulpsti et täiendavaid e-posti aadress ta. Jah. Sihtrühm: [kuuldamatu] SPEAKER 1: kirjaviga kohta muidu kui-- oh, vedaja. See on OK. Samuti ei meeldi minu jätmine rakendada selle programmi raames hiljem. Aga aitäh püüdmiseks. Veel üks viga. Aitäh. Me tahame, et see on Vtext.com. Jah. Hästi. Nii et kui see jäta meid? Me oleme kirjutanud koodi faili avada. Meil on loop itereerima üle rida failis. Meil on kood, mis lisab minu massiiv, ühekaupa, korrektselt vormindatud e-posti aadress. Nii et kõik, mis tõesti jääb on saata talle igale neist inimestest. Nii et ma olen läinud edasi ja readied ennast järgmiselt. Mida ma teen siin on-- ja olgem minna ja jäta mõned tegelik kood, mis näeb välja selline. Nii et siin on eelküpsetatud versiooni kirjutasin varem. Ja teate ma lõpetasin rakendamise Sprint. Ma lõpetasin rakendamise T-Mobile. Ma lõpetasin rakendamise Virgin Mobile. Ja ma vabandan ette. Seal on mõned vedajad, et mõned õpilased klassis on et ma ei viitsinud loetleda et kui tingimus siin. Nii ei ole kõik tekstid lähevad. Aga vaatame, mida muud ma pean tegema. Ma sulgeda fail, vaid nagu p seatud neli. Ja see on uus süntaks. Ja me näeme vähe natuke see aja jooksul, eriti p pani seitse ja kaheksa. Aga see on süntaksi loomiseks eritüüpi struktuuri. Selgub, seal on raamatukogu, mis Kaasas PHP, nimetatakse PHP meileris. Selle eesmärk elus on programmiliselt saata e-kirju. See kood keegi kirjutas, et lihtsustab meil saata e-kirju, nii et me ei pea pidama läheb edasi ja tagasi, et Gmail, ja kleepida inimeste e-posti aadresse. Seal on terve hunnik ridu siin mis ausalt, ma lihtsalt selline kopeerida ja kleepida dokumentatsiooni. Ja tegelikult, kui sa oled uudishimulik, ma jätsin kõik URLid dokumentatsiooni kood, mis me postiga hiljem. Ja märkad, et üks mida ma teen on, ma ütlen seda raamatukogu Gmail'i serveris, eks? SMTP me rääkisime põgusalt, kui me olid Yale'i olemisest lihtne mail Transfer Protocol. See on protokoll, mis servereid kasutada e-kirjade saatmiseks, ja see on-- Gmail on üks neist. Sadama, see on TCP pordi number. See on hea, kui sa ei ole näinud 587 enne. Lihtsalt tean, et alates dokumentatsiooni. Siin on minu kasutajanimi. Ma lähen kasutada CF50 bot. Ja ühel hetkel, ma lihtsalt lähen kirjuta bot tegelik salasõna. Ja siis siia, pane tähele, mis jääb. Ma panen oma aadressilt tuleb bot CS50.net. Ma arvan, et ma ei kahetse saates tekstisõnum 800 inimest, mis ütleb, igatsen sind, armastus CS50 bot, võibolla neile, kes ei saanud teha täna. Ja siis vastavalt 76, mida ma pean tegema? Selline näeb välja C. Nii i võrdub 0, n equals-- nüüd loota on uus. Tuleb välja, et kui sa tahad saada arvu asju massiivi, sa ei pea mäleta seda enam. Sa võid küsida funktsiooni nimetatakse arvu, ja ta ütleb teile, kui palju aadressid on, et massiivi. Ja siis ma lähen lisada aadress, e-posti. Ja ma tean, et see on dokumentide abil. Seal on add aadress funktsiooni. Ja nüüd märkate seal on üks tükk süntaks. Me oleme näinud seda enne C. sarnase sisuga. Sa ei mõtle dollari märk postivedude muutuja, mis see on. Aga see on struct sees mis on mitte ainult omadused, muutujaid, kui soovite. Aga selgub, et PHP, mis on objektorienteeritud programmeerimine keeles, nagu Java, kui sa võtad APCS. Dollar märk mail, kui soovite mina-- tal ka võrgu sees see, või meetodeid. Nii et see tähendab, et eriline PHP meileris raamatukogu, kui mul on varieeruv selle, kui ma tahan helistada funktsioon, mis Kaasas et raamatukogu tänapäeva eesmärkidel, lihtsalt tean, et sa nooleklahvide märke. Pole dot märke. See on lihtsalt nool. Aga see ei viida. See on lihtsalt laenatud C süntaksit. Nii kõne lisada aadressi sees Selle raamatukogu objekti või muutuv. Hästi. See on maagiline liin. See, kuidas ma talle talle. See on samaväärne avamine Gmail, kirjutades välja ja lööb talle. Aga see läheb selle asemel Kirjuta e-mail sellele aadressile, kus see organ, alates CS50 bot. Ja nüüd peamine liin. See rida puudus nagu 2011 kui ma mõtlen, kui ma üritasin seda. See liin on muidugi puhastab aadressid. Nii loogiliselt, kui ma ei ole selge, aadress Pärast iga iteratsiooniga esimese e-posti või tekstisõnumi läheb Alice, teine ​​läheb Alice ja Bob kolmas läheb Alice ja Bob ja Charlie, seega väga kallis viga Tegin sel aastal. Vaatame. Kas on mingeid küsimusi Enne saadame teile kõigile tekst Sõnumi 10 protsenti tõenäosus? Kas küsimusi on? Hästi. Olgem mul minna siin ja muutus parool, mida peaks tegema, tõenäoliselt saada musta nimekirja Gmaili. Nii nad ei pruugi kõik minna välja, sest nad ilmselt ei meeldi meie saates 800 e-kirju in jaoks silmus kõik korraga. Kuna see ei ole eriti inimeste käitumist. Oh, ma lähen muuta üks teine ​​asi. Up tipus, ma lähen sent-- muuta faili õpilastele dot CSV. Ja ma ei ava seda, kuid see on identsed CSV faili ei 100 töötajat, kuid 800 üliõpilast, lihtsalt Harvardi, sest Yale on oktoober vaheaja sel nädalal. Ja tundub, et selline jobu asi teha teksti neile kõigile, miks nad ei ole klassis puhkusel. See on OK. Just Harvardi üliõpilastele täna sees, et fail. Ja nüüd lähme tagasi minu terminali aknas. Ma olen selline närviline. OK, nii nüüd ma lähen minema Kataloog ja PHP teksti dot PHP. Kuidas üks vapper vabatahtlike? Nii et ma ei taha seda mulle. OK, tulge sisse. Mis su nimi on? Maya Maya. SPEAKER 1: Maya. Tule üles, Maya. Hästi. Vaatame, kas see toimib. Panen oma e-posti aadress file-- oma telefoninumbri faili nii et loodetavasti ma saan ühe samuti. Meeldiv tutvuda. Maya: Ka. SPEAKER 1: Nii et kõik mida sa pead tegema, on Enter saata 800 tekstisõnumeid, kui ma ei keera. Nice. Kas võtta aega, statistiliselt, kuni saame talle aadressiks tekstisõnum, mis on toas praegu. Olgem jõlkuma ja näha. Sihtrühm: [vilistamine] SPEAKER 1: Oh, jah. Sihtrühm: Oh, gotcha. SPEAKER 1: silmad are-- seda ei ole aeglane, sest PHP. See on aeglane, sest Gmail on vähendanud meie mitte lastes meil saata rohkem kui nagu üks e-posti sekundis. Midagi? See oli raske asi minu jaoks testima kodus vaid mina ja mu üks telefon, nii. Kas see loodetavasti alates bot? Jah? No? Ütle jah. No? See sõber? Ebamugav. OKEI. Päris kindel, et see töötab küll. Uh oh. Nad black-- oh, oota üks hetk. Oh, sa tead, mida? Üks hetk palun. Ainult Maya ja I-- Mia, see oli? Maya Maya. SPEAKER 1: Maya, ei kavatse tead, mida ma tegin valesti. Oh, oota üks hetk. Ma arvan, et just saatis 100 tekstsõnumeid 555-1212. Ootel. Ma ei saa võita igal aastal. OKEI. Maya? Kinnitage, et post tootmist. Kurat võtaks! Tulenevalt aadress. OK, seista. Vabandust. See on valus igal aastal. OK, üks hetk. See on hea. Olen asemel läheb seda teha. Prindi aadress. OK, seista. Prindi aadressid, sulg i. Jah, mulle meeldib, et. Dollar sign-- OK ma seletan, mida ma olen teeme hetkeks, kui olen käivitada. Igal aastal. OK, siin me läheme. Mul on Lihtsalt-- ja ma ei taha näidata kõigile telefoninumber kuid Maya saab kinnitada koos tukkuma pea, et ta näeb igaühe telefoninumbri klassi et ma lähen kopeerida programmi nimega Gmail. Ja kui Gmail, mida me tahame öelda? Igatsen sind. Love-- see pole mulle. Ma ei ole isegi tabanud Kirjuta veel. Nii saab minna ja teha see, kui ma suumida. OKEI. Nii ma kasutan programmi nimega Gmail nüüd. Kui Maya, soovid klõpsa nupule Saada, me simuleerida mida see kood pidanud. Midagi? [Piiksud] Sihtrühm: Yep. SPEAKER 1: Jah? Salvation? Sihtrühm: Yep. SPEAKER 1: Miss you. Ja ma lähen välja saata puhata. Saatsin välja poole, sest ma ei usu, Gmail ei lase neid läbi minna. Nii lihtsalt meeles pidada, täna on see päev mis te olete õppinud, et ma ei kasuta Gmaili. See oli kohutav. Suur aplaus Maya. Aitäh. Olgu, nii. mida [Piiksud] Saime mõne piiksu, jah? Hästi. Nüüd ma lähen 700 tõesti õnnetu kirju tagasi klassikaaslastega. Nii vähemalt me ​​näeme kui see oli seda väärt. Mis läks valesti? Ma aru saada, mis läks vale tagantjärele, aga lihtsalt vaadata, kuidas lihtne see oli seda teha PHP. Mida me saame tegelikult teha nüüd, meil on see väljendusrikkus PHP. See was-- see oli jube. Hästi. Vaat mida pidanuks. See oli mulle testimiseks täna hommikul minu telefoni tegelik pilt mu telefon. Aga nüüd Vaatleme, miks me tegelikult sisse kõik see kraam esimese koha. Nii eesmärgiks pole kirjuta need programmid, mis on kirjutatud käsurea, eks? Ma kirjutasin lihtsa hello programm, ma kirjutasin väike programm, mis teeb conditionals, ja kasutatud loe line ja nii edasi. Ja teoreetiliselt, ma lihtsalt kirjutasin programm, mis saadeti 800 tekstisõnumeid, anda või võtta 800. Ja see programm oli kõik veel kestab käsurea. Ja see on muidugi ei veebis, eks? Eesmärgiks on praegu hakata kasutama mida ma väita, on lihtsam kasutada keel, daresay rohkem võimas keeles poolest omadused, mis sellega kaasneb, et alustada kirjutada koodi, mis tekitab veebilehti. Nii viimast korda ning eelmisel nädalal, me rääkisime HTTP ja HTML. Ja mis tore HTML on see, et see on lihtsalt puhas tekst. Ja tekst on kindlasti midagi, mida saab prindi sõna otseses mõttes helistades print f funktsioon, või väljatrükki. Ja tõepoolest, see on, mida PHP on Nüüd läheb võimaldab meil teha. Nii ühed näited me on tänapäeva lähtekoodi, lisaks mõned koodi et ma sinna üles hetk tagasi, meil programmid nagu see näiteks. Froshims või Uustulnuk Ettevõttesisene Sports, oli tegelikult üks esimesi extracurriculars Ma tegelema hakkasin aastat tagasi. Ja minu toakaaslane ja ma koos mõned teised lapsed loengusse, kasutatakse kulgema froshims programmi. Ma saan oma tekstisõnumeid nüüd. Nüüd, et me, juba järgmisel päeval, nii et see oli 1996 või nii, seal oli internet, kuid ei olnud process-- seal polnud veebilehel froshims. Ja kui sa tahad sisse logida jalgpall või võrkpall või mis iganes, siis oleks täitke see asi nimetatakse paberile, ja siis oleks kõndida üle Harvard õue, ja siis oleks lükake arvesse mail pilu Proctor, kes oli Wigglesworth, üks hostelis. Ja see oli sulle registreeritud. Ja ta oleks siis kirjutada talle teile käsitsi, palju nagu ma just tegin siin Maya, ja siis oleks kinnitas nagu oleks registreeritud. Nii et see oli nagu väike rippus puu, nii rääkida. See oli tobe, et olime kasutades paberit selle eest. Ma tahtsin, et suudame minge veebilehele, või on uustulnukat minna veebilehel, registreerida sport, ja lihtsalt automatiseerida palju seda kraami paneb oma nime ja e- ja nii edasi viiakse andmebaasi kantud. Ja tegelikult, kõige esimene versioon kodulehel, kasutades super kole HTML, võis välja midagi sellist. See oli tegelikult irooniliselt, rohkem piinlik vaadata, kui see tagasi siis. Aga ma kasutasin programmeerimiskeelt. Mitte PHP, vaid pigem nimetatakse Perl, mis on vanem keele kuid väga sarnase sisuga. Ja ma lihtsalt täiesti õpetas ta endamisi. Ja ta võttis mind mõnda aega aru saada, küsib palju küsimusi sõbrad. Aga ideid on olid samad. Sest see, mis PHP oli tõesti mõeldud jaoks ei ole käsurida kraami me lihtsalt mängitakse, kuid veebi programmeerimine. See on tõesti seotud oma funktsioon määrata veebi järgmiselt. See on froshims. Ja kui ma tahtsin registreerida sellisel kujul, see on üsna kole, Kindlasti, kuid lubage mul minna ja olla vähem mugav tudeng, ja mis iganes spordiala Matthews, Klõpsake Register. Mida ma tahan, et oleks võimalik teha, on esitama teabe vormi, mitte Google'i serverisse nagu eelmisel korral, täiesti petmine kasutades oma backend, ma tahan rakendada oma backend koodi. Mis tähendab, et kirjutada PHP kood, mis elab URL mis kujul andmeid saab esitada. Ja siis oma koodi, kirjutatud PHP server, Seejärel saab vastata, et kasutaja sisend. Nagu tema nimi või mugavuse tase, või ühiselamus, ja siis sellega midagi teha. Sel juhul ma lihtsalt rumalalt trükitud it out teksti, mis ei ole nii ilus. Aga sa võiks kindlasti kujutan ette, kui sa tead, HTML, ja saate kohe teada, kuidas luua HTML print f ja print, ja sarnaseid funktsioone, saate kindlasti luua ilusam veebileht, mis ütleb, hey David, sa nüüd registreeritud. Sa oled vähem mugav üliõpilane Matthews, eks? Sa võid kasutada terve hunnik% ses, või lokkis traksid ja dollari märk märkus Ma kasutasin hetk tagasi, et luua teksti, mis on kasutajasõbralikum kui see. Võtame pilk selle ühe faili. Froshim null dot PHP näeb välja selline. Kui ma uuesti CS50 IDE, froshim null näeb välja selline. See on froshim null dot PHP. Ja mida sa märkad seda faili? Sihtrühm: [kuuldamatu] SPEAKER 1: Sorry, veidi valjem? Sihtrühm: [kuuldamatu] See kõik on HTML. Ja tegelikult on see, sest Mis on huvitav umbes PHP on see, et see oli mõeldud olevat, paremaks või veel hullem, segunesid HTML koodi. Ja tegelikult, kuigi see faili, froshim null dot PHP, on PHP kommentaar tipus sellest, et see kõik on lihtsalt HTML. Aga seevastu kui ma avada, olgem ütleme, registreeri null dot PHP, mis lihtsalt on suur Kommentaari tipus. Ka see tundub peaaegu täielikult nagu HTML, välja arvatud see, mida? Line, mis, 21 tundub natuke imelik. Aga märkate Ma sisenen PHP režiim Avatud sulg küsimärk PHP. Siis on mul mõned asjad. Ja siis lõpuks, et liin peaaegu Mul on, küsimärk PHP. Ja see on see, mida ma mõtlen segunesid. Võite kirjutada HTML, et sa lihtsalt soovi, et server sülitama. Aga kui sa tahad midagi teha dünaamiline videolõigu lehel nagu sisestada oma nime või Dorm või mugavuse tase, Oskan kasutada funktsiooni nagu print r, mis on prindi rekursiivne, mis tähendab lihtsalt välja printida see muutuja, vormindamist aga soovite. See on tõesti mitte Inimese eesmärkidel, see on lihtsalt silumiseks või diagnostika eesmärgil. Nii see on, kuidas ma seda tegin. Kui ma selle asemel minna froshims kaks dot PHP, märkate, et hagi käesoleva vormi ei ole registreeritud null dot PHP kui old-- eelmise tegelikult oli. Aga see on registreeritud kaks dot PHP. Nii vaatame, kuidas see käitub natuke teistmoodi. Kui ma minema versioon kaks. Kui siin, kui ma registreeruda David vähem mugav, Dorm of Mathews, registreerida. Nii see kord öelnud, siis on registreeritud, tegelikult mitte. Vaatame, mida ma tegin siin. Kui ma vaatan registrisse kahte dot PHP, see on veel mõned PHP koodi. See on veidi puhtam, kuigi ikka mähib pikavõitu sellel liinil. Märka siin. Ma printida oma HTML tag, mu pea tag, minu pealkiri tag, pea, keha. Ja siis ma hakkan öelda asjad sisestage PHP režiim. Ja nii, et silt, avatud sulg PHP-- küsimärk PHP ütleb, hey, server, execute-- tõlgendada järgmised asjad nagu PHP kuni näete lõpumärgendi. Ja kuigi sa ei pruugi teada ühtegi teiste PHP kui olete näinud seni saab sellist lugeda see päris intuitiivselt. Kui nimi on tühi, või mugavus on tühi, või ühiselamus on tühi, mida ma pean tegema? Mida ma öelda, et kasutaja? Sa pead andma oma nime, mugavust ja ühiselamus, ja nii edasi. Else, ma ütlen teile on registreeritud ka tegelikult mitte. Ja ma ei ütle tõesti sest puudub andmebaasis. Ma ei tee midagi andmeid. Ma lihtsalt visata see ära demonstratsiooni eesmärgil. Nüüd ma mingi skimped üle line 22. Seal on rohkem süntaks seal, kuid dollari märk rõhutavad post on omamoodi huvitav. Ja see on see, mida on tore PHP. PHP, teil on, mida nimetatakse mõned super globaalseid muutujaid. Nad on omamoodi isegi rohkem olulisem kui globaalseid muutujaid. Ja need kõik kapitaliseeritud sellisena, tulevad PHP. Nii et kui teil on server, mis on veebiserver paigaldatud, nagu Apache, ja installida keel toetust PHP, äkki sa saab hakata kasutama neid super globaalsete muutujate oma koodi. Ja mis tore PHP on see, et kui sa lihtsalt kirjutada faili lõpeb dot PHP, pane see veebiserver, ja siis esitada kujul seda kaudu, et tegevuse tag ja vormi tag, et tegevus atribuut vormi tag, PHP ja veebis täiesti arvud välja, kuidas haarata kõik need põhiväärtus paarid URL nagu küsimus märgi q võrdub kassid, see nuputada, kuidas q ja kassid. Kui saadate foto või kasutajanime, või salasõna meeldi Facebook, PHP nuputada teile kus kõik need andmed on. Ja see lihtsalt käsi sa assotsiatiivne massiiv nimetatakse dollari märk alakriips posti või dollari märk rõhutavad saada, sõltuvalt sellest, kas sa oled kasutades get või post sõlmimiseks. Ja see lihtsalt käe super globaalne muutuja, nii et kui sa tahad saada nime et kasutaja kaudu esitada, et web vormi, siis sõna otseses mõttes lihtsalt öelda nime super globaalne muutuja, quote, lõppeb, nimi. Ja tsiteerida, lõppeb mugavust, ja tsitaat, lõppeb ühiselamus. Ja me ei kavatse olla võimeline tegema see ja nii palju PHP. Ja kuigi see oli keeristorm pilk see, me sukelduda palju järgmisel nädalal. Me kasutusele andmebaasi nii, et sa oled tegelikult hakkan rakendamisel oma e-kaubanduse based-- nagu kodulehel vaid nädal aega. Nii me näeme järgmine kord, ja loodan, et sa said tekstisõnumeid. Bye. [Muusika mängib] [DOOR AVAMINE] SPEAKER 2: Kuule. SPEAKER 3: Mis on? SPEAKER 2: Mida sa teed? SPEAKER 3: Töö probleem komplekti. SPEAKER 2: Nice. Viska viis. [VISKA VIIS] Mis are-- uh, mida sa siin teed? SPEAKER 3: Just poomise läbi. Just tulin tagasi jõusaalis. Ma ei saa aidata, kuid märka, kui me suure fived, et teil on päris karm käsi. Kas sa minna jõusaali? SPEAKER 2: Ei Ei. SPEAKER 3: Dude, sa näed päris suur. Milline on halb, sest kõik teavad 8-Palli on suur mees ülikooli. Viska viis. SPEAKER 2: Uh, ei. Ei, ma arvan, et ma olen hea. Ma arvan, et ma olen hea.