[Powered by Google Translate] [Nädal 8] [David J Malan] [Harvardi Ülikool] [See on CS50.] [CS50.TV] Tere tulemast tagasi. See on CS50, ja see on algus 8. nädalal. Paar võimalused sel nädalal nende hulgas see jutt siin, kus süüa saab kätte. Täpsema tutvu slaidid kes on praegu portaalis. Ja ka teine ​​üritus sel nädalal meie endi Thomas Carriero. Ta on üks CS50 endine juht õpetamise stipendiaatide kes on praegu Dropbox, ja ta on mees, kes konks meid koos sa tead, mida, nii et kui tahad veel seda pea nende arutelu täna pärastlõunal jaoks Dropbox ja rohkem. CS50 lõuna on sel reedel. Kas meiega liituda, kui teil on võimalik, 01:15, nagu ikka, kell Tule ja Jää. Ja nüüd me sukelduda midagi, mida nimetatakse Seminarid. Meie CS50 Seminarid, mäletate, on need vabatahtlik klasside juhitud õpetamise stipendiaatide ja muidugi abilised ja sõbrad käigus, inimesed rühmast loengusse nimega ABCD, mis on kontserni technophiles loengusse, samuti rühmituse nimega HCS, Harvardi Computer Society, üliõpilastele, kes on samuti huvitatud computing. Tänavune nimekirja seminarid on seminarid Android ja iOS-i ja JavaScripti ja PHP, Unix, Vim ja rohkem, nii aru, et need seminarid on tulemas. Kui soovite RSVP jaoks mõni neist pea et link seal. Siis postitada käigus veebilehte ajad ja kohad, kui nad on valmis. Aga tean, et seal on 5 aasta väärtuses enne seminari kättesaadavaks internetis, millest paljud on ikka väga praegune mõttes tehnoloogiaid, mida Sul tahad mängida oma lõpliku projekti, nii pea sinna mõned saadaval videod sätestatut. CSS, you need, kes tunnevad CSS juba, Mis on see Lühidalt? Mis on CSS? See kaskaadlaadistikke, ja mida see tähendab? Mida see teeb meie jaoks, CSS? Olgu, lähme soojendada lihtsamaga, HTML, hüpertekst-märgistuskeel. Mida see teeb meie jaoks? Üldse kedagi? Läheb tõesti ebamugav Nende küsimuste. HTML, hüpertekst-märgistuskeel. Jah? Ei? [Kuuldamatu õpilase vastus] Okei, hea, see võimaldab meil märgistada teksti kuvada veebibrauser. See ei ole programmeerimiskeelt. See on tõepoolest märgistuskeel, mis tähendab, et see juhendab brauser kuidas kuvada teavet, nii lihtsamaid kehastus see nagu oleme näinud on midagi super lihtne nagu boldfacing, sulg b suletud sulg ütleb seda teksti paksuks, ja see on tegelikult lihtsalt üks paljudest viisidest kus me saame teha, ja tõepoolest, nendel päevadel parem lähenemisviis kuni stylizing oma veebilehel, et teha asju paksus kaldkirjas ja tsentreeritud ja põhjendatud jms, ei tehta kaudu HTML üksi vaid pigem tehnikat nimega CSS, kaskaadlaadistikke. See on keele juurde ise. See liiga ei ole programmeerimiskeel vaid- igaüks, see on Dan, kes hoiab ühinevad meiega täna. Mõned tehnilised raskused. Pole probleem. CSS võimaldab meil Tyylitellä lehele luues nn omadused, niiet võta pilk see teel mõned põhilised näited. Lubage mul minna seadme täna. Mul on allikas 8 Esmaspäev kataloogi siin, ja ma lähen minema kataloog nimega CSS kus meil on terve hunnik failide ootab meid siin, ja selles kaustas on meil näiteks search0.html alates viimane aeg. Nüüd meenutavad koos search0 jätsime selle teadmiseks poolt omamoodi rakendamisel Google või tõesti lihtsalt esiotsa see nädal või nii tagasi, ja märkate, et meil oli mõned uued märksõnad on. Meil oli h1 jaoks suured, julge pealkiri, vormi, mis võimaldas meil tegelikult on HTML-vormi kasutaja sisend. Tegevus, mis oli määratletud tegevuse atribuut aasta HTML-vormi tag? Mis oli tähendust see, tegevus? Ma lihtsalt seda teha täna. Tegevus on sihtkoht, kus vorm läheb esitatakse. Asjaolu, et see ütleb action = "google.com / search" tähendab, et kui kasutaja klõpsab nuppu Esita või samaväärne mis tahes kujul väljad nad täitsid ei kavatse saata mitte meie serveris või meie seade, vaid pigem selle konkreetse URL Google. Ja meetod see saab kasutada nimetatakse saada, ja saada, nüüd on lihtsalt tehnikat möödaminnes informatsiooni koos veebiserver teel link, niiet võta pilgu tagasi sellele, kuidas see töötab. Pange tähele, et seal on sisend, kelle nimi on q mille tüüp on tekst ja siis teine ​​sisend tüüpi esitama mille väärtus on CS50 Otsi, ja tõepoolest, kui me avada see fail siin, search0.html, see on super lihtne vorm, ja kui ma otsin midagi arvutiteadus ja siis vajuta ENTER või kliki CS50 Otsi märgata, et mis juhtub, on väljaspool saada Google Olen just lõppes sellelt aadressilt ülaosas, google.com / search? q = arvuti + teaduse, ja arvutiteadus on muidugi, mida ma kirjutada sisse + Tähendab lihtsalt, et seal tühik oli, ja see on tehtud, mille brauser lihtsalt veenduda, et seal ei ole segadust ja valge ruumi tegelikku URL. Ja siis q, muidugi, on parameetri nimi. Me ei ole näinud, kuidas me, programmeerija, saab tegelikult juurdepääsu q veel. Me ei saa eeldada, et Google teab, mida teha selle siin, aga me jõuame sinna õigel ajal täna. Aga las ma vaatan selle asemel kell search1.html, mis paistab pisut teistsugune, sest ma otsustasin, et see vorm siin oli natuke lame. Ma mõtlen, see on ülaosas vasakul. Seal tõesti ei esteetika, ja nii ma tahan Tyylitellä see veidi nagu Google, kelle koduleht, tagasikutsumine, kuigi sa ei pruugi külastada seda, et sageli, näeb välja selline täna Halloween. Kui me selle asemel avada versioon 1 seda faili otsing 1.html, ma olen keskendunud ta. Ikka päris kole, aga vähemalt nüüd olen hakanud kontrollida esteetika seda lehte, mitte ainult märkida ära selle. Võtame pilk otsing 1, ja seal on tõesti ainult üks erinevus siin, mis võivad välja hüpata sind, või ehk mitte, kuid milline on üks rida või väljavõtte vahe? Seal on stiili atribuut, nii selgub, et HTML enamik elemente, kõige tage on stiili atribuut neile, ja sees, et stiili atribuut on jutumärkides stringi, ja et jutumärkides stringi on CSS. Võid panna CSS-stiil seal täpsustades seda vara nimetus millele järgneb koolon, mille väärtust. See on selline kahetsusväärne disain otsuse mõned aastad tagasi et CSS on keel iseendale kuid süntaktiliselt see on väga erinev HTML. Sel juhul näeme, et sees minu kodulehte, mis on kirjutatud HTML, Mul on CSS sees need jutumärgid, ja konventsiooni CSS on see, et teil on, mida nimetatakse vara järgneb jällegi, koolon, järgneb kõnealuse vara väärtus, mistõttu ei ole võrdusmärk. Ei ole täiendavaid hinnapakkumisi. See on lihtsalt see koolon eraldab põhiväärtus paari, ja teksti rida ei täpselt, mida ta ütleb. See viib teksti kehas lehele, mis on tõesti julgust lehel keskuses. Okei, lõpptulemus siis, et oleks selge, on see. Mitte kõik, et seksikam, kuid vähemalt on see keskendunud ja veidi nagu päris Google. Aga kui ma selle asemel avada versioon 2 nimetatud ja rõhutada siia uus silt kokku? Nüüd pead oma lehe, mis varem oli vaid mis tag kõik eelnev näiteid? See oli just see pealkiri. Hetk tagasi pea tag nägi välja selline. Nüüd selle asemel on tal stiilis silt sees on, ja seda ka, ma vabandan, süntaktiliselt tundub väga erinev HTML, aga sa harjud sellega, mille sees stiil tag Ma võin nüüd tegur, mida oli hetk tagasi atribuut, stiili omadus, ja ma ei pane seda väga üleval minu lehel. Miks? Noh, see on samm puhastamine asju, meelega kirjalikult C kood me mõnikord kirjutada funktsioone tegurdada ühine funktsionaalsus. See on lihtsalt veidi puhtamaks alustada faktooring välja asju nagu esteetika et ühes keskses kohas, mitte lasta see kõik Lomittaa kogu oma HTML. Ka see, mida ta ütleb, kuigi seal on natuke uus süntaks. See siin on valija ja keha tähendab lihtsalt valida keha element ja kohaldada järgmisi omadusi ta. Noh, vara on täpselt sama. Hea meede Olen lisanud semikoolon lõpus, mis kipub olema konventsiooni, ja ma olen murtud kogu selle vara aastal looksulg sest ma oleks tegelikult võinud olla erinevad asjad siin. Ma võiks tegelikult öelda midagi sellist värvi: sinine; Nüüd on see liiga ei kavatse olla samm midagi kõik, et ilusam, aga kui ma nüüd minna tagasi 2. versiooni Olen vähemalt nüüd tehtud keha minu lehekülje teksti kõik sinine. Nupp jääb samaks, kuna see on sisend. See pole puhas tekst. Aga kõike muud, mis on teksti, nagu CS50 Otsi up üles, on tegelikult sinine. Jällegi, kõik me oleme teinud nüüd on eemaldada body, teate, stiilis atribuut, ja oleme tegureid seda siin. See ei ole suur edasiminek, kuid kui me võtame selle ühe sammu edasi märgata, mida me saame teha selles kolmas versioon siin. Aastal search3.html veebileht on peaaegu identne välja arvatud see, mida uus silt nüüd? Link, nii see ei ole väga tabavalt nimetatud sest sa ei seo mõttes klikitav hüperlink. Pigem sa oled omamoodi teed on võrdväärne # include C mille link tag href atribuut ja rel atribuut ütleb minna ja koopia pasta sisu faili nimega search3.css siin sisuliselt. See ei ole päris seda, aga see on vaimu. Ta ütleb, minna seda faili avada, search3.css, ja käsitleda seda kui kasutaja oli kirjutatud ta siinsamas juht lehele nagu ma tegin eelmises näites. Search3.css, vahepeal on üsna lihtne. See on tõesti ainult sisaldab täpselt, mida oli hetk tagasi stiilis silt, kuid ma olen tegureid seda siin oma faili. Kuigi me ei ole kulutanud palju aega üldse HTML-või veebi programmeerimine lihtsalt intuitiivselt mis on motivatsioon ehk faktooring välja See väike väljavõte isegi CSS omaette faili ja siis ka seda linki tag siin? [Kuuldamatu õpilase vastus] Okei, see on lihtsam lugeda nii, et teil on oma CSS CSS faili. Sa pead oma HTML HTML-faili, nii et see on rohkem loetav selles mõttes. Mis veel võiks olla mõjuvaks? Jah. [Kuuldamatu õpilase vastus] Jah, nii et saate selle lisada mitu korda, nii et praegu me teeme need põhilised näited üksikute faili, kuid eeldan, et sa oled tegelikult teeb tõeline veebilehel nagu te tahte pset 7 või oma lõpliku projekti ehk ja sa tahad olla mitu veebilehti, nagu on kindlasti levinud tegelik World Wide Web, ja oleks mingi lombakas on kopeerida ja kleepida sama sinine värv ja sama teksti joondatud keskele iga üks neist lehtedest. Pigem on mõttekam tegurdada palju nagu me oleme teinud C koos. h fail, pane see üks keskne koht, sel juhul search3.css, ja seejärel lastakse iga faili oma veebilehel, et tegelikult kuuluvad selle faili teel see silt siin rida 16. Nagu tavaliselt juhul, alustasime versiooni 0, millised teosed kuid ei ole tingimata parim, ja iga samm, Otsi 1, otsing 2 ja nüüd otsing 3 oleme võtnud neid beebi samme poole disainilahendusi, mis on veidi puhtam ja rohkem ettevalmistus keerulisemate lehekülgede, et me võiks teha mööda teed. Lubage mul avada viimane näide on siin lihtsalt näidata isegi rohkem stiliseeritud lehe, kuid kõigepealt vaatame HTML. See on search4.html, ja märkad, et struktuuriliselt see on peaaegu sama välja arvatud uue sildi div. Div on silt, mis tutvustab jagunemise osas. Sa ei mõtle seda nähtamatut ristkülik. See omamoodi loob loog ala kodulehte et saate Tyylitellä kõik korraga. Mida ma olen teinud siin on järgmine. Toas minu body, mis on seal olnud kogu aeg Ma ütlen luua jagamise leht siin läbi rida 45 läbi 47, ja see tähendab sisuliselt mulle nähtamatu ristkülik ülaosas lehel. Siis anna mulle teine ​​ristkülik, kuigi nähtamatu, allpool seda, ja selle määrama nimi sisu ja seejärel lõpuks anna mulle kolmandasse jakku lehe allosas nimetatakse ID. Eks me näe, miks ma olen seda teinud vaid hetk, kuid kontseptuaalselt mul kaudu rajoon. Mul on sisu jagamine, ja mul jalus jagamise leheküljel kuigi need on vaid võtmerõngas. Kasutaja ei kavatse vt 3. ristkülik, kuid omamoodi struktuurilt seal kulisside taga nad on tegelikult olemas. Nüüd, keda see huvitab? Miks tegelikult seda teha? Kõik muu lehel on sama nagu me oleme näinud. Siin on minu vorm. Siin on minu panus, mu sisend, reavahe jne. Siin on pilt, kuigi, nii et me näeme, kust see tuli just praegu. Siin on jalus, mis on uus, lihtsalt sellepärast, et ma tahtsin tutvustada veel mõned sisu siin. Kui me liikuge üles märkama, et ID käesoleva div on päises. ID käesoleva div on sisu, ja ID see on jalus. Ja nagu nimigi ütleb, kui teil on ID-atribuudi HTML, definitsiooni järgi peab üheselt identifitseerida üks elemente, üks sildid oma lehele. Koormus on täiesti teid meeles pidada, et teil on päis ID juba. Sul on jalus. Sul on sisu ID juba. Arvuti ei kavatse aru saada, mis saadaval ID on teie jaoks, nii et võid kogemata anda 2 silte ID kaudu, ja mis oleks lihtsalt vale. Sa pead meeles pidama, mida olete loonud, aga kui olete teinud, et teate mida me saame teha siin. Nüüd saan määrata minu stiil sildi ülaosas ehk samaväärselt minu CSS faili, kui ma veel kasutada seda versiooni, Võin öelda # header, ja mida see tähendab on see, et mida iganes tag Käesoleva veebilehe on ID kaudu ja #, lihtsalt inimeste konventsiooni esindab ID. Terav märk või naela märk kujutab ID. Päise on nimi, mille ma andsin talle. See tähendab, kohaldatakse käesoleva CSS vara mis iganes sildi seda lehte kannab ID päises. Sama asi siin. Kasutage seda vara, mis juhtub olema sama, mis tahes element kelle ID on sisu, ja siis siia märgata Mul on väike Kasvataja jalus. Iga element, mille ID on jalus, millest ei saa olla vaid ühe definitsiooni järgi minna ja teha oma fondi suurus väiksem, selle fondi kaalu julge, tema marginaal 20 pikslit. Mida see tähendab? See on lihtsalt varu peal, all, ja vasakule ja paremale. See tähendab, anna mulle 20-pixel nähtamatu varu ümber lihtsalt suruda kõik muu eemale natuke, nagu te võite teha Word, Microsoft Word või Lehekülgi vms. Ja siis tekst Joonda keskele. Vaatame lõpptulemus, ja siis läheme tagasi kuni üks allesjäänud väljavõtte CSS seal. See on versioon 4, meie viimane otsingu näiteid, ja see on palju, palju seksikam. Nüüd, õiglus, ma lihtsalt Google'st "google font logo generaator." Ja see võimaldas mul luua GIF, pildi formaat, mis näeb välja nagu see seal. Tegelikult saab seda teha ka. Meil on "google fonte logo generaator." Vaatame, kas me saame seda teha. Okei, ma arvan, et see on kodulehel olen kasutanud. Võime öelda, EÜ 10, näiteks, ja muuta need oma. Võid mängida seda kogu päeva ja seejärel paremklõps see ja siis lae tegelik GIF, mis on kõik, mida ma tegin. Ja tõepoolest, sellepärast minu HTML, mäletan, siin Mul oli pilt sildi, mis me nägime lühidalt eelmisel nädalal mille allikas on logo.gif. Ja mis veel oli motivatsioon, kellel see alt atribuut, see alternatiiv atribuut? Jah. [Kuuldamatu õpilase vastus] Hea, et 2 põhjustel tõesti, kui brauser ei tõmba pilti sest teil on aeglane võrguühendus või pilt on vigane või midagi sellist vähemalt inimeste näete "CS50 otsing" ja siis ka ligipääsetavuse põhjustel. Kui teil on kasutaja, kes on pime ja kasutab ekraanilugeja ja seega ilmselt ei näe pilte nad saavad vähemalt kuulake teksti kui oma arvuti räägib ta neile. Üldiselt see on parim tava, kui tegemist on juurdepääs lehekülge nii et isegi kasutajad, et olukord võib kuule ega näe, kui nii võib öelda, mis see on, mis on teie leheküljele. On veel üks asi, mis ma siin tegin mis on natuke huvitav, ja me näeme selle kohta rohkem Ülesanded nr 7 kaudu üks lühikesed püksid juhtis üks õpetamise stipendiaatide. Aga # sisu viitab silt kelle ID on sisu, kuid siis on tühik, ja siis seal on sõna sisend. Noh, huvitav on CSS on, et saate viitavad sildid leht omamoodi hierarhiliselt ja mida see väljavõtte CSS abil on leida numbrit kelle ID on sisu ja seejärel kohaldatakse järgmisi omadusi kõigile sisend sildid, mis on järeltulijad sisu, et on mis on liigestatud sees on. Taane jällegi on ainult oluline arvuti, mitte inimene, kuid kokkuleppeliselt me ​​taane asjad nagu me minna sügavamale lehel nii et see tähendab, kohaldatakse varu 5 pikslit tahes sisend element see on kuskil sees või nested sees  element, mille ID on sisu. Kes see siis kehtib? Noh, seal on tegelikult lihtsalt need 2 kutid siin. Pange tähele, et sees vormis seal on 2 sisendit, kui seal on olnud kõik need näited. Aga teate, et need 2 sisendit juhtub olema pesitses sees, kuigi veidi sügavalt, paar kihti taandus, sees silt, kelle ID on sisu. Mida see tähendab? Kui läheme brauseri siin näete kunagi nii vähe- andke mulle suumimiseks-et seal on natuke polstri vahele nuppu ja vahel tekstiväljale. Lubage mul ajutiselt Lülita välja. Lubage mul minna oma CSS, ja lase mul minna ja lihtsalt muuta marginaali 5 pikslit kuni 0 pikslit. Lubage mul minna siis ja salvestage fail, minna tagasi otsingumootor ja reload, ja vaadata keset lehekülge. Kõik sai kokku surutud, ja kui ma esimest vahustatud Selles näites üles Ma arvasin, et vaatasin lolli teksti väli ja seejärel nuppu kohe selle all. Tahtsin pad seda natuke, nii et ma sisse marginaalid. Mida me ei tee loeng on läbida mitukümmend CSS omadused, mis on olemas, sest jällegi, on asju, nagu kirja suurus, font kaalu, marginaal, teksti joondada ja mõnikümmend teised, ja me nimetame teid probleemide kehtestatud 7 kuni erinevate õpetused online ja viiteid, mis võimaldavad teil valida neid asju. Aga on tõesti tähtis lõpus päev on mõista, kuidas need asjad on rakendatud. Jällegi, kui meil on stiil tag mille sees võib minna valimisele omamoodi tunnused, mis määravad kellele sa soovid rakendada neid omadusi, ja siis paned omadused nagu põhiväärtus paari kooloniga eraldatult ja siis lõppes semikooloniga, või saate rippida kõik selle välja ja pane see eraldi CSS faili omaette. Olgu, mingeid küsimusi on mõisted või üldpilti CSS? Sa jälle näha rohkem seda pset 7, kuid me hoiame seda üldiselt päris lihtne. Ei? Hea küll. On aeg tegelik programmeerimiskeelt ja me tuleme tagasi natuke CSS kujul näiteks. PHP on tegelikult imeliselt arusaadavas keeles sest see on süntaktiliselt peaaegu võrdväärne C. Teisisõnu, kui sa tead, C, tead enamasti PHP, vähemalt süntaktiliselt, kuigi seal on mõned uued funktsioonid ja mõned uued kontseptsioonid me peame vaatama. Aga enamasti, nüüd, et me üleminekut C PHP enamik uusi asju on tõesti suur pilt, kuidas te kasutate keele programm veebis, mitte käsureal või vilgub kiiresti, nagu me oleme seda teinud siiani. Eelotsusetaotlus, eriti pset 7 ja lõplik projekt aastast ei ära seda siia URL, kui soovite lugeda üles formaalsused PHP. See on tegelikult nagu tasuta online õpiku tõhusalt, ja te leiate ka, et mida on tõesti tore PHP on see, et seal on sadu funktsioone, mis sellega kaasneb, arvestades, C sa ei pea juurdepääsu rohkem funktsioone kui oli matemaatika raamatukogu CS50 raamatukogu. PHP ja palju kaasaegsete keelte, Python ja Ruby nende seas, saate juurdepääsu nii palju rohkem funktsioone, mis tähendab, sa saad kirjutada palju vähem koodi, sest sa ei saa seista õlgadele teisi inimesi kes on juba kirjutanud teatud asju teile. Võtame kiirülevaate süntaksit PHP ja siis kirjutada mõned näited. Mis on ilus umbes PHP ennekõike on seal ei ole peamine funktsioon. Kui soovite kirjutada programm PHP sa lihtsalt hakake kirjutama koodi, ja sa ei pea muretsema peamine. Ei ole int. Pole mingit tulu. Pole argv, argc, mida on vaja, kui sa kirjutad programmi. Pigem saab lihtsalt hakake kirjutama koodi, ja see on osaliselt sest PHP on, mida nimetatakse tõlgendada keeles. C koostati, ja see koostati selles mõttes, et hakkate koos lähtekoodi, kestab see läbi rõkkama, mis on kompilaator, ja lõpuks pärast mõningaid mitmeid samme sa saad objekti kood, 0. ja 1s. PHP ja Python ja Ruby ja Pearl ja teised On erinevaid keeli, et sa ei kompileerida neid. Sa ei lähe lähtekoodist et 0. ja 1s. Sa lihtsalt käivitada lähtekoodi, ja sa jooksed lähtekoodi kirjutage tavaline tekstifail, mis lõpeb. php sel juhul asemel. c, ja mida programm teeb arvutis on see sõna otseses mõttes tõlgendab oma koodi rida rea ​​kaupa. Teisisõnu, selle asemel kirjutada programm ja käivitage programm otse teie asemel kirjutada programm koos fail lõpeb. php. Siis sa jooksed tegelik programm nimega php.exe, kui sa oled nii Windowsi, või lihtsalt PHP kui sa oled Mac OS või Linux, ja annate sisendi PHP programm oma lähtekoodi, ja selle eesmärk elus on lugeda oma koodi ülevalt alla, vasakult paremale, ja mida iganes sa ütlesid seda teha. Vaatame, mida see saab tähenda süntaktiliselt. PHP on meil tingimused. See klapp on identne mida sa nägid juba nädal 1 sest süntaktiliselt tingimused, IFS ja muud investeerimisfondid ja muud PHP välja täpselt selline. Kui tegemist on tõeväärtus väljendeid nad ei kavatse välja täpselt selline. Kui tegemist on anding asjad koos, sest tõeväärtused see läheb välja täpselt selline. Lülitid tunduvad sama, ja sa saad lisakasu PHP et lülitite C võiks sisse lülitada ainult char või int. Sa ei saa sisse lülitada stringi väärtus. PHP saate tegelikult on väljend et on muutuja, mille sisu on string, ja tegelikult võite seda teha sõnede reaalses intuitiivinen, ei osuti võrdlus, et otsustada, kas teha juhul i või j või midagi muud. Eks me näe, mis potentsiaalselt enne pikk. Loops liiga imeliselt on samad. Sest silmad on käivitamise, seisund, ja mõned mitmeid uuendusi. Kuigi silmad on olemas ka PHP. Kas samas silmuseid olemas ka PHP, ja massiivid olemas PHP, kuid siin, kus süntaks hakkab natuke erinev, kuid mõisted on samad, ja kontseptsioone tõesti on samad nagu need olid 0-nädalal koos Scratch. Kõigepealt on $ märk. See oli disain otsuse PHP millega tahes muutuja PHP, mille konstruktsioon algab $ märk. Pole veel X, Y, Z. See on nüüd $ X $ Y $ Z lihtsalt sellepärast. See on midagi, mida meeles pidada, ja nüüd paremas servas see sarnaneb massiiv, aga me kasutame nurksulgudes siin. PHP ja JavaScript, kui me lõpuks näha, kuulutada array sa avatud nurksulg ja suletud square bracket, ja siis on komadega eraldatud väärtused, kas ints või stringid või sümbolid, mida iganes sa tahad, sees selle väljendi seal. Nüüd, kuidas me tegime midagi sellist C? Mis oli süntaks staatiliselt kuulutatakse massiivi teadaoleva arvu? See oli looksulg, nii väike erinevus siin, kuid nii PHP ja lõpuks JavaScript see lihtsalt kasutab nurksulgudes, nii tõesti ainult huvitav detail siin on $ märk muutuja nimi ja ka nurksulud, ja seal on üks kummaline asi mis on välja jäetud ka vasakul servas = märk. Mis puudu, et oleme olnud vaja mitu nädalat nüüd? Jah. [Kuuldamatu õpilase vastus] Suurus, mistõttu ei ole mainitud suurusest massiivist. Ausalt, seal ei mainita nurksulgudes vasakul kohta = märk, ja mida veel puudub piir? Jah. >> [Kuuldamatu õpilase vastus] Tüüp, siis millised on huvitav eelkõige umbes PHP on see, et see ei ole tugevalt tipitud keeles C on ja mis on tugevalt tipitud selles mõttes, et sa ütlema char, peate ütlema int, siis pean ütlema sularahaga. Anytime soovite muutuja teil on öelda rõkkama mida selle tüüp on. PHP on vähe lazier. See on lõdvalt kirjutatud selles mõttes, et sul võib olla ujukite ja tähed ja nöörid ja ints ja nii edasi, ent keel ise ei huvita, mida sa panna sees muutuja. Sa ei pea teavitama ette, milline andmetüüp liigub muutuja. See on täiesti su enda otsustada, nii et see on kena aastal, et sa ei pea muretsema nii palju andmeid kirjutada ja murettekitav mida teie argumendid on ja nii edasi. See tähendab ka lõpuks funktsioonid PHP hakkavad saama tagasi kas int enamiku ajast, ja võibolla üks kord samal ajal nad tagasi bool, tõeväärtus vale, näiteks et tähenda, et midagi läks valesti. See annab meile mõned plussid, kuid ta ka teeb meile omamoodi mille konstruktsioon natuke lazier kui tegemist on andmete kirjutamist. Mida veel on meeles pidada siin? Muutujad tundu päris niimoodi, et $ s = "Hello, world." See on võib-olla inferable eelmisest näitest, ja meil on teist tüüpi silmus. See üks me tegelikult näha kord samal ajal, kuna see on üsna mugav, foreach ehitada. Sel juhul foreach silmus võtab sisse oma sulgudes 3 sõna tavaliselt, $ Enne midagi, mis on just see massiiv sa tahad itereerime liikmed, siis sõna otseses mõttes märksõna, ja siis lõpuks teise muutuja nimi, et sa saad valida. See võib olla suva, baar, või element, ja mida see konstruktsioon ei on kui $ massiiv sisaldab 10 elementi iga iteratsiooni selle massiivi-kahju, iga iteratsiooni Selle ahela muutuja nimega element saab olema uuendatud olla esimene element massiivi, siis teine ​​element massiivi siis kolmas element massiivi, kõrvaldades nii vajaduse teha veidi tüütu nurksulg märke ja $ I, et indeks array. PHP teeb kõik, et töö teile ja iga iteratsiooni lihtsalt annab sulle järgmise elemendi massiivist ilma et peaksite teadma või hoolivad oma numbriline indeks asukohta. Ja siis lõpuks, nüüd, seal on üks teine ​​funktsioon PHP et see saab olema väga kasulik, eriti kui hakkame programmeerimine veebis ja mis on tuntud kui assotsiatiivne massiiv. Massiivid, et me teame, seega kui 20 sekundit tagasi ja viimased 8 nädalat on arvuliselt indekseeritud massiivid omamoodi traditsioonilise massiivid, kus indeksid on ints, 0, 1, 2, kogu tee üles. Assotsiatiivne massiivid on palju võimsam. Nad võimaldavad teil on meelevaldne võtmed, suvalise indeksite ja omavoliline väärtused. Arvestades, et traditsioonilise massiivi see on 0, 1, 2, aastal assotsiatiivne massiiv saab olla indeks või võti suva, mille väärtus on baar. Võite siis on veel üks oluline kelle nimi on Baz ja mille väärtus on qux. Jällegi loll infotehnoloogia üldise muutuja nimed siia, aga point on selles, et see massiivi ei ole sulg 0 või 1 rühma. See asemel läheb on sulg suva ja sulg Baz. See on palju rohkem mitmekülgne, et me ei kavatse olla võimalik seostada sõnad teiste sõnadega, võtmed väärtused täiesti suvaliselt, ja me ei kavatse olema võimalus saada need väärtused tagasi konstantse ajaga sest all kapuuts mida assotsiatiivne massiiv tõesti on hash tabelit. Tuletame meelde, et hash tabelit saab panna mõned sisend meeldib panna sõna David kui soovite lisada David võtta mingi sõnastik ja siis saad tagasi mõned väärtus tavaliselt. Juhul speller, õige või vale. David või mis iganes sõna on või ei ole sõnastikus. Assotsiatiivne massiiv on tõesti ainult hash tabelit, aga see on palju kasutajasõbralikumaks kehastus ta. Nagu me näeme, et see läheb meile võimaluse teha mõned asjad väga, väga lihtsalt. Võtame pilk mõned põhilised PHP näited ja vaata, mis me saame teha selles keeles. Lubage mul minna ja avada meie allikas kataloog täna fail nimega hello1.php. See fail on veel kommentaar, kui see on tegelik kood, las ma tegelikult eemaldada kõik kommentaarid failist ja esitleda teile võib-olla kõige lihtsam PHP programm siin. 5 rida, ja mõned neist on valge ruum, nii märkate mõned olulised erinevused siin. Faili nimi on hello1.php. Kõige esimene rida, kuigi on , Mis ongi minu PHP koodi. Vaatame, kuidas juhtida seda. Ma lähen tagasi oma terminaliakent siin. Ma lähen minema minu PHP kataloog. Pange tähele, et meil on terve hunnik faile, esimene millest üks on hello.php. Lubage mul minna ja teha selle, hello1.php, siseneda. Luba ei anta. Okei. Kuidas me oleme määratud asju nagu see varem? Mis see on? >> [Kuuldamatu õpilase vastus] Me vajad lugeda ja kirjutada, kuid lubage mul teha ls-l. Mäletad seda veidi segasena väljund, mille hello1 tundub olema loetav ja kirjutatav mind kuid loetav kõik teisedki. Tuleb välja, et tegelikult ei ole samm õiges suunas. Erinevus, jälle koos tõlgendada keel on teil ei ole programmi käivitada otse. Sa asemel joosta tõlgi ja anda see kood et olete kirjutanud, et ta saaks seda tõlgendada rida-realt. Sel juhul tõlk või programmi ma tegelikult tahan joosta on sõna otseses mõttes nimetatakse PHP. Kuskil sellel kõvaketas seadme on olemas programm keegi kirjutas nimega PHP, või Windows php.exe. Mida ma teen siin ma lähen tegelikult käivitada PHP kuid annab seda käsurea argument kood, mis ma kirjutasin, ja siis ma suumida ja vajuta enter. See töötab minu programm minu jaoks, ülevalt alla, vasakult paremale. Lubage mul minna ja avada veidi vastuolus käesoleva. Aastal hello2.php teate, et see liiga Enamasti kommentaare, nii et las ma saan lahti neist nii häiritud, ja mis on selgelt erinev nüüd selle faili? Seal on see uus liin, veidi segasena ülaosas. In real 1 on see #! / Bin / php. Bin on konventsiooni Linux ja Mac OS binaare nii / bin tähendab see kaust, mis sisaldab kamp kahendfaile mis on programmeeritud, millest üks on PHP. #! on hüüdnimega Jutt, mis on kiire viis öelda seda, ja mida see tähendab on see, et kui sa jooksed selle programmi nüüd on vihje ülaosas faili mis ütleb arvutile, mida tõlk kasutada. Läheb veidi tüütu, kui teil oleks öelda oma kasutajate ja teie kliendid "Kuule, me kirjutasime selle programmi nimega hello1.php." Kõik, mida pead tegema, on igavesti käivitada PHP ja siis nimi selles programmis. Ausalt, see oleks lihtsalt kenamaks joosta hello1.php, ja tõepoolest, me saame, kui me teeme järgmine. Lubage mul minna ja teha ls-l, ja teate hello2 see on ikka just lugesin kirjutada ja siis loe lugeda, nii et ma ei saa veel teha, hello2.php. Aga me tutvustas seda kunagi nii lühidalt viimase aja chmod käsk. Kui ma seda chmod a + x, mis tähendab, kõik pluss teostatavust ja siis hello2.php ja siis ei ls-l jälle teate, mis muutunud. Üks, Linux näitab mulle failinimi roheline anda edasi ideed et see täitmisfaili, kuid veelgi tähtsam, vasakul servas märgata, et natuke esindavad x käivitatava on nüüd. Mis see nüüd tähendab, ma saan käivitada ./hello2.php nagu tavaliselt, Enter, ja kuna Jutt tipus toimiku see on vihje, jälle, Linux, mis ütleb, kasutada tõlgi teha selle faili. Ära muretse sundides kasutaja tegelikult kirjuta see. Ja mis on tore nüüd on see on selline ebaoluline minu kliendid või minu sõbrad Mis keeles ma kirjutasin selle programmi, et ma saaks edasi minna mv ja ümber selle asja hello2, näiteks. Ja nüüd kui ma ./hello2 ja välja suumida minu programm töötab edasi. Need laiendid on inimeste konventsioon, mis on vajalik midagi nagu rõkkama ja Mark, kes neid otsida. Aga PHP, ma nimetan seda faililaiend, mida tahan. Ma ei petta maailma mõtlema, et ma olen tõesti hea Ruby, ja ma võiks kirjutada hello2.rb ja seejärel käivitage see, ja voila, nüüd on mul Ruby versiooni, mis on täielik vale. Aga laiendid on mõttetu kui fail on käivitatav ja on see eriline vihje ülaosas faili. Nüüd, kui kõrvale, las ma näitan sulle kiire versioon 3, mis on omamoodi kasulik trikk teada. Aastal hello3 ma tegin midagi pisut valesti et ma uuendada lähtekoodi online. Versioon 3 selgub, et kõige Linuxile seal on programm nimega env keskkonna, ja mida saate teha siin on, kui sul pole aimugi, kus PHP on paigaldatud kohalikule kõvakettale, sest tõepoolest see võib varieeruda arvuti et keegi kasutab, env lihtsalt ütleb joosta env, mis on enamikus süsteemides, ja aru saada, kus PHP on. Lihtsalt üldine trikk, et sa ei pea muretsema leida, kus programm on. Aga kui sa hoolikalt teada, kus programm on ja sa ei ole hooldatud seni saab kasutada mis käsk. Lubage mul välja suumida ja tüüp, mis php, ja märka seda ütleb mulle, et see on tegelikult usr / bin / php. See on selline vale. See on ka prügikasti. See lihtsalt näitab mulle esimese löögi. Kui sa kunagi mõelnud, kui rõkkama on, mis rõkkama, et see on usr / bin / rõkkama, mis teha, usr / bin / teha, ja mida see tähendab, kõik see aeg sa oleks võinud kirjutada usr / bin / rõkkama sisestada joosta rõkkama, aga see on selline tüütu seda teha, nii et mõned kaustad nagu usr / bin ja bin eeldatakse, et vaikimisi nii arvuti teab, et uurida nende eest ise. Iga küsimustele kirjalikult super, super lihtne Hello World programm PHP ja siis töötab see? Sest nüüd me hakkame tutvustada ahvatlevamaks süntaks. Olgu, siin me läheme. Need programmid oleme näinud tegelikult neid kõiki enne. Kui ma avada, näiteks, teeme beer1.php, me ei lähe läbi mitmeid versioone, kuid mida ma tegin aastal Istusin ja valatakse see või ümber minu C koodi PHP koodi siin. Enamik faili ülaosas on kommentaarid siin. Tuleb välja, seal on üks uus funktsioon peame nimetatakse readline. GetString, mäletate, alates 0-nädalal aastast oli CS50 asi. PHP kaasas oma kasutajasõbralik funktsioon nimega readline et võtab 1 argument, mis täpsustab kiire et sa tahad näidata kasutajale, ja mis readline ei on ta naaseb iganes kasutaja tipib sisse Sel juhul ma kuulutab muutuja nimega $ n. Ma salvestamine see tagastatav väärtus readline pärast ajendades kasutajal selle stringiga. Lihtsalt varundada, et tegelikult joosta seda asja, lubage mul minna ja käivitada PHP beer1.php. Mitu pudelit on veel? Teeme lihtsalt 2 Käesolev aega. Enter. See on kõik. Programm on funktsionaalselt identne C versiooni nädalat tagasi. Aga süntaktiliselt vaatame, mis on teistsugune. Pärast saan int kasutaja teate, et ma teen mõned veatuvastuse, ja kui n on väiksem kui 1 Loobusin ja ma välja printida Vabandame sõnumi kasutaja ja lõpeta 1. Ka see on natuke erinev.  C mida me tegime? C me andis 1. PHP väljute 1, mis ausalt öeldes on minu arvates natuke rohkem intuitiivne sest sa oled sõna otseses mõttes programmist väljumine. Olgu, ja siis siia alla tüütu laul on identne süntaktiliselt välja arvatud muutuja, nii siin all kooskõlas 24 aastast märgata minu jaoks silmus on peaaegu sama, aga mul on $ ees i ja n, ja mis on ka puudu rida 26, et oleme olnud minevikus deklareerimisel muutuja i? Pole mingit tüüpi. See on vale PHP öelda int. Sa lihtsalt ei pea seda tegema. Arvuti, tõlk PHP on piisavalt tark, et aru et kui paned numbri $ ma seda ravida kui number teile. Ja siis siia me pistik $ i, $ i, $ i - 1. Kõik see on sama, ja siis siia me teeme "Vau, see on tüütu" printf ja sulgege (0). Jällegi, Buffee siin on see, et kuigi me ei kavatse kulutada suhteliselt vähe aega PHP, kindlasti versus mida me tegime C, see on peaaegu sama, ja nii me teeme täna ja järgmisel nädalal ja pärast seda on keskenduda tõesti mõned uued ideed. Lihtsalt vaata, et üks teine ​​asi ei tõlkima üle C, see oli super lihtne programm me tegime nädal 1 või 2 et cubed väärtus. Aga mis oli huvitav sel ajal umbes see programm on, et see kasutusele mõiste kohandatud kirjutatud funktsiooni, et me ise kirjutas. Süntaksit PHP on peaaegu sama. Siin on minu programm üles tippu. Teade jälle puudub igasugune arusaam peamistest. Ma hakake kirjutama koodi, ja need ongi hakka täide tõlk. Ma printida x on nüüd 2, arvatavasti. Siis ma väita cubing ... Siis ma nimetan kuubik funktsioon ja liigu kataloogi $ x ja määrata tulu väärtuseks $ x. Siis ma väita, et see on kuubis, ja siis ma ütlen seda, mis loodetavasti ütlen x on nüüd 8. Süntaks funktsiooni PHP on kunagi nii veidi erinev. Jällegi puudu on naasmise tüüp. Jällegi puudu on naasmise tüüp ja ka kadunud on, mida muud tüüpi? [Kuuldamatu õpilase vastus] Noh, okei, see on hea. Lähme tagasi tulla, et teises. Meil ei ole näiteks int siin. Me ei Näiteks on int siia, sest jällegi PHP sa lihtsalt ei pea ja ei tohiks seda teha, vaid seal on see uus märksõna nimetatakse funktsiooni. PHP on peaaegu veidi selgem, sest kui sa tahad funktsioon sa sõna otseses mõttes öelda, funktsioon, annad talle nime ja seejärel komadega eraldatud nimekiri kui mõni oma argumendid. Pole vaja öelda tühine või midagi sellist, ja siis tulu on sama, $ * $ * $. Mis on ka puudu? Sammy juhtis sellele siin. Ülaosas faili üldse PHP ka on prototüüp. Ka see on ette nähtud. Keeled ja tõlkide nagu PHP on targemad kui C kunagi oli aastal tõlkijad nagu rõkkama. Tuletame meelde, et rõkkama, kui sa ei ütle seda, et kuubik on olemas, kui sa ei ütle seda, et printf olemas nagu prototüüp või # include, noh, see pidi kisa sind ja isegi ei kompileerida koodi. PHP ja moodsam keeled on palju targemad, kui tegemist on käesoleva. Nad võtavad endale läbi lugeda kõik oma koodi ja siis ütleb teile üksnes juhul, kui ta leiab, kuup kuhugi. Ei ole oluline, kui kuubik on allosas või top või isegi mõnes eraldi failina. PHP jms keeled on nüüd piisavalt tark, et vaadata tulevikku kõike enne leides sind teinud vea. Kui ei, et jätta meid? Teeme viimane näide on siin tingimustes, ja kui ma avada conditions2.php teate liiga süntaks siin on peaaegu sama. Ma kasutan readline asemel getString, kuid see rida on sama mis enne, "Ma tahaksin täisarv palun." Siis veel, kui tingimus, muidu kui ja siis teine, kuid funktsionaalselt on see programm on samuti identsed, mida me tegime nädalat tagasi nii et kui ma saan selle asja, php on conditions2, ja ma annan selle numbri nagu 23 - Ma valisin positiivne arv. Kui ma annan talle -1 ma valisin negatiivse numbriga. Kui ma annan ta 0 Ma tõesti korjatakse 0. Nii et kes hoolib see kõik? Noh, üks lõbus omamoodi harjutusi siin minu jaoks vähemalt oli tagasi minna ja näha, kui kiiresti ma võiks rakendada pset 5 õigekirjavead pset. Tuletame meelde, et seal oli see fail nimega speller.c, ja seal oli fail nimega dictionary.c. Mis ma tegin oli mul mingi veetis paar minutit ja ma ümber C kood PHP koodi, ja me ei kuluta palju aega speller sest nii nagu pset 5 te tegelikult ei vaja kulutama palju aega speller ise, sest teie tähelepanu oli sõnaraamat. Piisab, kui öelda, et kui sa loed läbi speller, see fail siin, see on päris palju vastab C kood andsime teile pset 5. Ma olen lihtsalt lisada mõned $ kohtades. Ma muutsin teatud funktsioonide nimed, kui nad ei eksisteerinud PHP. Seal on veel üks asi siin, preg_match, mis on veidi Kasvataja viis teha midagi, kuid me tuleme tagasi, et lõpuks. Aga lühidalt öeldes, speller on peaaegu identsed, ja kui te vaatate väga alt mida ta lõpuks sülitab välja on see siin, sõnad valesti kirjutatud sõnu sõnastikku, sõnad tekstis. Olgu, mis on huvitav nüüd on järgmine. Ülaosas minu faili ma nõuavad dictionary.php. Nii nagu C on # include PHP on eriline funktsioon nimega vaja et päris palju teeb sama asja, vaja faili nimega dictionary.php. Kuidas ma saan minna rakendamisel pset 5? Lubage mul minna ja avada fail siit. Lubage mul vähe viide siin. Ja las ma luua uus fail ja alustada kutsudes seda dictionary.php. Las ma panen selle teise kausta, et saaksime teha seda elada. Ja nüüd ma suumimiseks Ma lähen alustada minu PHP faili sulg php suletud sulg. Ja siis siin olid mõned funktsioonid Ma pidin rakendada pset 5 seega lubage mul alustada selle rakendamist mõned neist, nii funktsiooni kontroll, mis pidi võtma sõna argumendina. Me teeme seda ja tulevad tagasi see hetk. Oli funktsioon koormus, mis võttis, mida argumendina? Sõnastik, nii fail, et ma tegelikult tahtsin laadida. Oli funktsioon suurus, mis ei võtnud ühtegi argumenti ja seal oli funktsiooni-milline oli teine? Unload, mis ei võtnud ühtegi argumenti kas. Need on 4 funktsiooni, et mul oleks vaja nüüd rakendada PHP, ja mida ma lähen tegema, on minna ja seda teha. Palju sa kasutada hash tabelit pset 5 seega lubage mul minna ja luua hash tabelit PHP. Valmis. See annab mulle hash tabelit. Noh, miks? Üks, muutuja nimega $ tabel, lihtsalt võluda idee hash tabelit. Nurksulgudes, kuigi mäletan, esindavad mida? Massiiv, kuid PHP massiivid ei pea olema arvuliselt indekseeritud. Tegemist võib olla ka assotsiatiivse massiivi mis tähendab, et saate pea suvalise võtmed ja väärtused. Palju meeldib pset 5, you need, kes tegid hash tabelit rakendusi siis ilmselt sisestatud sõna ja siis lisatakse see ahel seotud nimekirju, või sa salvestatud väärtus tõene kuhugi või midagi selle kohta. Sa kuidagi meelde, et sõna oli seal. Sest nüüd, et see saab olema minu hash tabelit, ja nii nüüd edasi minna rakendamisel kontrolli funktsioon Ma lihtsalt pean otsima sees, et hash tabelit ja vaata, kas sõna on olemas. Mida ma teen on ma öelda, kui- oletame isset, mis on PHP funktsioon, mis sõna otseses mõttes tähendab lihtsalt on võti komplekt, nii isset ($ tabel [$ word] ja kui, siis tagastab true. Nii see on. See on pset 5 PHP. Noh, õiglus, eks. Teine tagasi false, nii see ei ole seal. Mis tegelikult toimub? Noh, kui tabel-või hash tabelit siin üldisemalt- on assotsiatiivne massiiv, mis tähendab, et saate indeks sinna koos sõna nagu "sõna" ja sa pead tagasi mingi väärtus. Oleme omamoodi saada ühe sammu võrra ees end. Oleks selline tore, kui me tegelikult laaditud fail esmalt nii koormus ei ole päris nii lihtne, kuid lubage mul minna ja klopsima  tõesti kiire rakendamise koormus. Lubage mul minna ja öelda sõnu saab faili sõnaraamat. Fail funktsioon PHP avab faili ja naaseb sa massiivi kõik sõnad selles failis lihtsalt ulatab need teile. See oli suur valu liiga, oli ju? Nüüd foreach, see on meie uus ehitada, foreach ($ sõnu $ word). See silmus kavatseb alustada itereerimise üle massiivi sõnad ja määrata $ sõna muutuja iga sõna fail alates esimesest teise kolmanda neljanda kõik viis nii et ma ei pea tegema tüütu [i] märke jms. Ja mida ma lihtsalt teha kavatsed kõigi nende sõnade on seda säilitada minu laua indekseerimise ümber tabeli ja siis teeme tõsi, sest meeles et sõna on minu sõnaraamatus ma tõesti pean tegema on selline klapp natuke ja ütlen seda sõna mu hash tabel on seal, tõsi. Ja kui see ei ole seal, ma ei pea otseselt panna vale, muidu ma pean panema vale kõigi võimalike sõnad universumis. Piisab mulle lihtsalt luua indeksi väärtus true, kui sõna on tegelikult minu hash tabelit. Nüüd ma lõikamine paari nurgad siin, et ma siputan käed nüüd, kuid nüüd koormuse funktsioon on tehtud. Ma koormuse kõik sõnad failist massiivi. Ma itereerime et massiiv, ja iga sõna array Ma ühendage see minu hash tabel 1 rida koodi. See on lõbus. Tead kuidas me saame rakendada suurus nüüd? Noh, suurus on alati üsna lihtne, õiglus. Siin saame lihtsalt tagasi kokku tabeli. See on päris lihtne liiga, loendada asju lauale. See on tegelikult omamoodi ole kõige tõhusam. Ma peaks ilmselt muutuja nimega suurus nii et me ei saa seda teha pidevalt aega, kuid see on päris lihtne. Oh, ja siis maha laadida, kui me tõesti tahame olla anal siin võime öelda, et kuidas sa lossimiseks midagi. Sa lihtsalt seatakse võrdne tühja massiivi, ja see läheb lahti kõik, mis seal kirjas oli. Ei ole vaja helistada tasuta. Jällegi, ma olen kärpima mõned nurgad, ja ma vabandan määramise Ülesanded nr 5 ehk C, kuid kui me nüüd edasi minna ja käivitada see, Ma lähen reaalselt sõita versioon, mille ma kirjutasin enne just nii, et ma ei teinud süntaksi vigu üldse. Lubage mul minna ja joosta speller. Kasutamine on sama. Siin on sõnastiku faili, mis sisaldavad vaid sõna suva. Siin on tekstifail, mis sisaldavad vaid foo bar. Olgem õigekirja kontrollida seda, et speller, kasutades seda sõnastikku fail selle tekstifaili. Seal on üks valesti kirjutatud sõna, baar, ja voila. Teha pset 5. Võtame 5-minutilise pausi siin, ja me tuleme tagasi ja rohkem PHP. Olgu, me oleme tagasi. Teeme-vihkavad mind mõnda aega. Lähme nüüd tegelikult näha, kas see ei olnud positiivne tegelikult rakendatakse seda asja PHP. Tõsi, ta võttis 45 sekundit rakendada. Aga lähme edasi nüüd ja kestab asju. Lubage mul minna ja käivitada C versioon on speller, ja me kasutada seda üks suuremaid faile, mis on King James Bible. Ja see siin on-lähme meie C kausta speller on King James 5th. Palju valesti sõnu. Okei, nii see on väljund siis ilmselt sain isegi kui ajad on natuke erinev, kui sul kõik töötab korralikult, ja nii aega kokku õigekirja kontrollida King James Bible oli 0,38 sekundit, seega päris hea kasutades, et rakendamine. Nüüd lubage mul minna PHP versioon, mis me just kirjutasid. Ma jooksen speller kuningas James. Oih, ignoreeri seda viga. Ma olen vales kataloogis. Speller on King James 5th. Peaaegu valmis. Okei, nutikas vaatleja saab aru, et oli rohkem kui 3 sekundit seal. See on tõeline sõiduaega. Selgub, et see võtab aega, et sülitada palju teksti välja sest puhverdusvõime küsimusi, kuid pikk lugu lühike, mis oli 3,15 sekundit masina ajal CPU aega, võrreldes mis see oli hetk tagasi? Nagu .3. Ma mõtlen, et see on suurusjärgus aeglasem, nii et kui on see, et naeruväärne aeglustumine tulevad? Noh, nagu on juhtunud ka kõige tahes disain otsuse oleme teinud klassi viimase 9 nädala seal on peaaegu alati see kompromiss. Mõnikord vahel lihtsalt ruumi, mõnikord vahel ruumi ja aja, ruum, aeg ja arendamise jõupingutusi, ja tõepoolest siin, kuigi me salvestada tohutul hulgal aega, võib-olla potentsiaalselt 10-20-30 tundi arengu ajal rakendatakse õigekirjakontrolli poolt piitsutamine see üles kõigest 45 sekundiga selle keele hind mida me maksame, et see on suurusjärgus aeglasem, mille tulemusena ja see üldjuhul ongi enamike tõlgendada keel, PHP, Python, Ruby, Pearl või teised, mille kui sa lähed kestab see läbi tõlgi ja on seda lugeda oma koodi rida-realt, ülevalt alla, vasakult paremale, et käsi läheb aega oma, ja mida sa tunned siin 3 sekundi asemel 0,3 sekundiga on asjaolu, et seal on see käsi, kes on sõna otseses mõttes tõlgendada meie kood rida-realt, ja Jumal hoidku, kui sa oled sees silmus tohutu fail sisaldab sadu tuhandeid sõnu. See õhuliini läheb küündivad ja liita ja liita ja tõusta. Sest tööriista nagu seda see ilmselt ei ole parim keelt kasutada rakendamiseks õigekirjakontrolli kui vahetu on huvi oma kasutajatele ja sulle. Aga luksus meil hetkel on, kui te kasutada nagu PHP või palju tõlgendada keeles kontekstis Web, et asi, mida kasu et internet on palju aeglasem kui enamik arvuteid. Sa pead GHz protsessor arvuti, 2 GHz, võibolla isegi rohkem nendel päevadel. Aga reaalsus on internet on suur summa latentsus mille jaoks brauser rääkida server, kuigi me nägime eelmisel nädalal et see on päris kiire, pool millisekundi või nii, et liiga lisab üles ja kui sa alla laadida asju nagu pildi või Facebook foto või saada kiirsõnumeid üle Facebook jutuvadin, Gchat vms, kõik need edasi-tagasi ajad vahel brauseri ja serveri hakkavad tõusta, mis teeb sinu keelevalikut paljudel juhtudel ole nii oluline, et sa trahvi kasutades veidi aeglasem keel nagu PHP või Python või Ruby kuid mis on tohutult tasa, et teie ja teie kolleegid ja Teie sõpradele, sest saate rakendada asjad nii, nii palju kiiremini. Ja pealegi, teil on palju väiksem oht ​​teatud turvalisuse vigu. Ei ole viiteid, PHP. Pole seg vigu, mida saab kergesti esile kutsuda samamoodi võid ka C. Mis C sa oled super lähedal riistvara. PHP ja sarnaste keelte sa oled omamoodi kõrgemale tasemele, kui nii võib öelda, kus on palju vastuväiteid ja sinu vahel, mis tegelikult toimub masina sees, ja see on lihtsalt kompromiss. Me oleme saanud selle punktini, millel need moodsam, kõrge keeles nagu PHP, sest õppetunnid keeles nagu PHP C. Aga kui sa ei mõista, mis on kestnud alla kapuuts kõik see aeg te kindlasti ei saa teha õigeid otsuseid, ja kindlasti, kui tegemist on töö kohas nagu Facebook või Google või mõni neist kohtadest, mis on üha mängides suure andmekogumi isegi kui sa lähed tagasi ja ei premed ja töötame koos mõnede MD mõne suure andmekogumi seotud patsiendi ja arsti ja nagu kasutades õigeid vahendeid on väga kaalukad sest vastasel juhul oma analüüsis mõned andmekogum võib võtta sekundit, või see võib sõna-sõnalt võtta tundi. See on vaid üks näide, mitte nurjata teile, kui palju vaeva see oli C, kuid mis aitavad teil mõista, et kui sa ellu midagi C sa tõesti aru, või teoreetiliselt tõesti aru kuidas kõik on või peaks olema töö, ja sul on peaaegu täielik kontroll üle, mis toimub all kapuuts, ja nende kõrgema tasandi keeles sa pead loobuma suurema kontrolli inimesi, kes leiutas neid ja alluvad rohkem oma disaini otsuseid kui sinu oma. Aga kui me enesestmõistetavaks, et tulemuslikkuse ei ole päris nii tähtis veebis, sest neid teisi küsimusi, lihtsalt võrgu kiirused on natuke aeglasem kui CPU kiirust niikuinii, nii saame omamoodi endale lubada kasutada veidi aeglasem keel kui tasa on saame arendada asjad 10 korda kiirem või isegi enam. Vaatame, kuidas me saame hakata kasutama seda. Lubage mul minna kausta vahel tänapäeva näited nimetatakse frosh.ims, ja see oli tegelikult isiklikult ajendatud asjaolust, et kõige esimene asi, Ma kirjutasin, et Web aastat tagasi võtmise järgselt CS50 ja CS51 oli kodulehel Frosh arukate tootmissüsteemide programmi, uustulnuk ettevõttesisene sport, mis ajal see oli piisavalt aastat tagasi, et ajal puudus kodulehel programmi, kuigi seal oli veebis ja selle asemel oli Proctor sisse Wigglesworth mille kui sa tahad registreeruda võrkpalli või jalgpalli või mis iganes te täitke paberile. Sa oleks siis minna üle õue. Sa oleks siis koputan nende uksele ja slaidi oma ukse või käe Proctor paberile oma nimi peal, kas sa ei taha olla meeskonna kapten, Mis spordiala sa tahtsid teha ja mida Dorm sa olid sisse See oli omamoodi vana kooli viis asju, ja see oli peamine võimalus automatiseerida palju selles protsessis. Sa lihtsalt minna veebilehele. Sa kirjutad midagi sisse Sa saad e-postiga kinnituse ja buum, sa oled teinud. See oli esimene asi, mida ma tegin, kuigi keeles nimetatakse Pearl, aga see on suhteliselt lihtne teha PHP, ja see on omamoodi esindaja probleemidest võite alustada lahendamine, kui saab ennast väljendada programmiliselt ja ei pea lootma asju nagu Google sites või Exceli või tööriistad, mida antakse teile. Te nüüd on võimalus teha asju niimoodi. See on super inetu versioon kujul, kuid olgem lihtsalt kasutada seda vestluse alguses, kus see on jämedalt mida vorm tundus aastat tagasi meie jaoks võimaldada inimestel veebis sisse logida Frosh IEd. Palusime nimi, ruut, kas nad tahtsid olla kapten, mees või naine, ja mis siis Dorm nad olid, ja siis nad seda vormi. Olgem esimene pilk all kapuuts on HTML, mis tähistab seda kodulehte. Lubage mul minna froshims0, ja kui kõrvale, sest pset 7 Ma teen iseenesestmõistetavaks kataloogid ja kaustu, et ma panen asjad sisse Me sõelub täpselt, kus asjad on minna seade, mis mod käsud pead käivitama, nii et ärge muretsege kõik loll andmed sünkroniseerida sisse saada-minna siin. Olgu, siin on froshims0.php. Las ma kerin alla ja mis on uudishimulik siin, see on PHP fail, kuid mis seal sees on see, selgelt? See on kogu partii HTML, ja tõepoolest, PHP päritolu tegelikult oli selle eest, et Web-kesksemaks keeles. Hetk tagasi olime harjunud seda rakendada õlu näiteks tingimused Näiteks tere näiteks ja see on hea. Võite kasutada PHP skript keel kus skript on tõesti ainult nomenklatuur anda kiire ja räpane programmi või midagi et te kirjutate kirjutasid või üldisemalt tõlgendada keeles. PHP on super kasulik, sest sa oled näinud, kui kiiresti suhteliselt saame kokku klopsima programmid PHP. Aga see oli tõesti mõeldud kasutamiseks veebis, ja mõeldud Web selles mõttes, et märgata siin ülaosas faili Ma algab