[Powered by Google Translate] [Nedēļa 8] [David J Malan] [Hārvarda] [Tas ir CS50.] [CS50.TV] Laipni lūdzam atpakaļ. Tas ir CS50, un tas ir sākums 8 nedēļas. Pāris iespēju šonedēļ, vidū šis diskusija šeit, pie kuriem daži pārtikas tiks pasniegtas. Lai iegūtu sīkāku informāciju izbraukšana slaidus, kas ir tiešsaistē. Un arī cits notikums šonedēļ mūsu pašu Thomas Carriero. Viņš ir viens no CS50 ir bijušais vadītājs mācību līdzcilvēkiem, kuri ir tagad pie Dropbox, un viņš ir puisis, kurš saliekts mūs līdz ar jūs zināt, ko, tādēļ, ja jūs vēlaties vairāk, ka galvas viņu runāt šajā pēcpusdienā par Dropbox un vairāk. CS50 pusdienas ir šo piektdien. Vai pievienoties mums, ja jums ir iespēja, 1:15, kā ierasts, uz Uguns un ledus. Un tagad mēs nodoties kaut ko sauc Semināri. Mūsu CS50 Semināri, atgādināt, ir šīs izvēles nodarbības, ko vada mācību vieszinātnieki un kursa palīgi un draugi protams, ļaudis no grupas par Campus sauc ABCD, kas ir grupa technophiles uz pilsētiņu, kā arī grupa sauc HCS, Hārvardas Computer Society, undergraduates kuri līdzīgi interesējas skaitļošanas. Šogad žurnāla semināru ietver seminārus par Android un iOS un JavaScript un PHP, Unix, Spars, un vairāk, tāpēc saprotam, ka šie semināri nāk uz augšu. Ja vēlaties, lai RSVP par kādu no tiem doties uz šo URL tur. Pēc tam mēs post par kursu mājas lapā norises laiku un vietu, kad tie tiks pabeigti. Bet zinu, ka 5 gadu vērts iepriekšējo semināru pieejama tiešsaistē, daudzi no kuriem joprojām ir ļoti daudz pašreizējā attiecībā uz tehnoloģijām jūs varētu vēlas spēlēt ar jūsu gala projektu, tāpēc dodies tur dažas pieejamās video būvēšana. CSS, tiem no jums, kuri ir pazīstami ar CSS jau, kas tas ir īsumā? Kas ir CSS? Tas kaskādes stila lapas, un ko tas nozīmē? Ko tas darīt mums, CSS? Labi, pieņemsim iesildīties ar vieglāku viens, HTML, hiperteksta iezīmēšanas valodu. Ko tas darīt mums? Kāds vispār? Tas kļūst patiešām neērti jautā šiem jautājumiem. HTML, hiperteksta iezīmēšanas valoda. Jā? Nē? [Dzirdams studentu reaģēšanas] Labi, labi, tas ļauj mums, lai atzīmētu tekstu, lai parādītu tīmekļa pārlūku. Tas nav programmēšanas valoda. Tas ir patiešām iezīmēšanas valoda, kas nozīmē, ka tā uzdod pārlūku, kā parādīt informāciju, tāpēc vienkāršākais iemiesojums tas, kā mēs esam redzējuši ir kaut kas super vienkāršu, piemēram boldfacing, atvērts bracket b slēgta iekava saka padara šo tekstu treknrakstā, un tas ir tiešām tikai viens no daudziem veidiem kurā mēs varam darīt, un, protams, šajās dienās labāka pieeja lai stylizing savu interneta lapu, lai lietas treknrakstā un slīprakstā un centrēts un pamatota un tamlīdzīgi, nav veikta, izmantojot HTML tagus atsevišķi bet ar tehniku, ko sauc CSS, kaskādes stila lapas. Tas ir valoda pati par sevi. Tas arī nav programmēšanas valoda, bet- visiem, tas ir Dan, kas tur savieno mūs šodien. Dažas tehniskas grūtības. Nav problēmu. CSS ļauj Stylize lapu nosakot to, ko sauc īpašības, tāpēc pieņemsim to apskatīt šo veidā dažiem pamata piemēriem. Ļaujiet man aiziet uz ierīces šodien. Man ir avota 8 pirmdiena direktoriju šeit, un es esmu gatavojas iet uz direktoriju sauc CSS kur mums ir visai ķekars Failu gaida mūs šeit, un šajā mapē mums ir, piemēram, search0.html no pēdējo reizi. Tagad, atgādināt ar search0 devāmies uz šo piezīmi pēc veida īstenojot Google vai tiešām tikai priekšējā galā par to nedēļā vai tā atpakaļ, un ievēroju, ka mums bija dažas jaunas tagus tur. Mums bija H1 par lielu, drosmīgu pozīcijā, formā, kas ļāva mums tiešām ir HTML veidlapu lietotāja ievadi. Rīcība, kāda bija jēga rīcības atribūtu uz HTML veidlapas tagu? Kāda bija šī, darbības jēga? Es ņemšu tikai darīt šodien. Rīcība ir galamērķis, kur forma būs jāiesniedz. Tas, ka šis saka darbība = "google.com / search" nozīmē, ka tad, kad lietotājs noklikšķina uz iesniegšanas pogas vai ekvivalents jebkādā formā lauki tie aizpildīti gatavojas nosūtīt ne uz mūsu serveri vai mūsu ierīce, bet gan ar šo konkrēto URL Google. Un metode tas gatavojas izmantot sauc saņemt, un saņemt, lai tagad, ir tikai paņēmiens, lai iet informāciju kopā ar web serveri veidā URL, tāpēc pieņemsim veikt ātri apskatīt atpakaļ, kā tas darbojas. Ievērojiet, ka tur ir ieejas, kura vārds ir q kuru tips ir teksts un pēc tam ievadīt otrreiz tipa iesniegt kuru vērtība ir CS50 meklēt, un, protams, ja mēs atvērt šo failu šeit, search0.html, tas ir super vienkārši forma, un, ja es meklētu kaut ko līdzīgu datorzinātņu un tad hit ievadiet vai noklikšķiniet uz CS50 Search ievēroju, ka tas, kas notiek ir tikai kļūst Google Es esmu īpaši beidzās šajā URL augšpusē, google.com / search Q =? dators + zinātne, un datorzinātne ir acīmredzami tas, ko es drukāti collas Zīme + tikai nozīmē, ka tur telpa raksturs bija, un tas ir darīts ar pārlūku tikai, lai pārliecinātos, ka tur nav apjukums un balto faktisko URL. Un tad Q, protams, ir parametrs nosaukums. Mēs neesam redzējuši, kā mēs, programmētājs, faktiski var piekļūt q vēl. Mēs varam pieņemt, ka Google zina, ko darīt ar šo šeit, bet mēs tur nokļūt laicīgi šodien. Bet ļaujiet man to apskatīt vietā pie search1.html, kas izskatās nedaudz atšķirīga, jo es nolēmu, ka šī forma šeit bija tikai nedaudz klibs. Es domāju, tas ir pie augšējā kreisajā pusē. Tur tiešām nav estētika ar to, un tāpēc es gribu Stylize šo nedaudz vairāk kā Google, kura mājaslapa, atsaukšana, pat ja jūs nevarēsiet apmeklēt to, ka bieži vien, izskatās šodien Halloween. Ja mēs tā vietā atvērt šo failu, meklēt 1.html 1 versija, es esmu centrēts to. Joprojām ir diezgan neglīts, bet vismaz tagad esmu sācis kontrolēt estētiku šajā lapā, ne tikai marķējuma augšu pantu. Pieņemsim to apskatīt 1 meklēšanas, un tur patiešām ir tikai viena atšķirība šeit, kas varētu izlēkt pie jums, vai varbūt ne, bet kāda ir viena līnija vai fragmentu atšķirība? Tur ir šis stils atribūtu, tāpēc izrādās, ka HTML lielākā daļa elementu, vairums tagi var būt stila atribūtu uz tiem, un iekšā šī stila atribūts ir citēts virkne, un kas kotētas virkne ir CSS. Jūs varat likt kaskādes stila lapas, kas tur precizējot to kā īpašuma nosaukums seko kols seko vērtību. Tas ir sava veida neveiksmīgā projektēšanas lēmumu pirms dažiem gadiem ka CSS ir valoda pati par sevi, bet sintaktiski tas ir ļoti atšķirīgs no HTML. Šajā gadījumā mēs redzam, ka iekšpusē manu mājas lapā, kas ir rakstīts HTML, Man ir CSS iekšā šos citātus, un par CSS konvencija ir tas, ka jums ir, ko sauc par īpašumu seko, atkal, resnās zarnas, seko apmērā no šā īpašuma, tāpēc nav vienādības zīme. Nav papildu citāti. Tas ir tikai tas resnās atdalītas atslēgas vērtību pāri, un teksta līnija dara tieši to, ko tā saka. Tas saskaņo tekstu ķermeņa lapā, kas ir patiešām zarnas no lapas, centrā. Labi, gala rezultāts tam, lai būtu skaidrs, tas ir. Ne visi, kas sexier, bet vismaz tas ir centrēts un nedaudz vairāk kā reālā Google. Bet ja es tā vietā atvērt versija 2 Šī un norādīt uz leju šeit jaunu tagu pavisam? Tagad galvas manu lapu, kas agrāk bija tikai kas tag visos iepriekšējos piemēros? Tas vienkārši bija tas, titulu. Pirms brīža vadītājs tagu izskatījās. Tagad tā vietā tas ir stils tag iekšpusē no tā, un tas arī, es atvainojos, sintaktiski izskatās ļoti atšķiras no HTML, bet jūs pierastu pie tā, ar ko iekšpusē stila taga Es tagad var faktors, ko bija pirms brīža atribūts, stils atribūts, un es varētu nodot to pie ļoti top manu lapu. Kāpēc? Nu, šis ir solis pretī tīrīšanas lietām augšu, līdzīgi rakstiski C kods mēs dažreiz rakstīt funkcijas faktors kopējas funkcionalitāti. Tas ir tikai nedaudz tīrāku sākt faktoringu veic lietām, piemēram, estētika uz vienu centrālā atrašanās nevis to visu izkaisīt visā savā HTML. Arī tas, ko tā saka, pat ja tur ir jaunu sintaksi mazliet. Tas šeit ir atlasītāju, un ķermenis vienkārši nozīmē izvēlēties ķermeņa elementu un piemērot šādus rekvizītus uz to. Nu, īpašums ir tieši tāds pats. Labs pasākums Esmu pievienotās semikolu beigās, kas mēdz būt konvenciju, un es esmu ietin visu šo īpašumu cirtaini lencēm, jo ​​es patiešām varētu būt dažādas lietas šeit. Es patiešām varētu teikt kaut ko līdzīgu krāsas: zila; Tagad arī tas nav būs solis jebko visu, kas glītāka, bet, ja es tagad iet atpakaļ uz versiju 2 Es esmu vismaz tagad ir ķermeņa manu lapas teksta visu zilā. Poga paliek tās pašas, jo tas ir ieguldījums. Tas nav tīrs teksts. Bet viss pārējais, kas ir teksts, piemēram CS50 meklēt up top, faktiski ir zilā krāsā. Atkal visi mēs esam darījuši tagad tiek izņemt no ķermeņa tag, paziņojot, stilu atribūts, un mēs esam noteicis to šeit. Tas nav milzīgs uzlabojums, bet, ja mēs šo vienu soli tālāk pamanīt to, ko mēs varam darīt šajā trešā versija šeit. Jo search3.html mājas lapa ir gandrīz identisks izņemot to, ko jaunu tagu tagad? Saikne, tāpēc šis nav ļoti trāpīgi nosaukts jo jūs neesat savieno tādā nozīmē, klikšķināmos hipersaiti. Drīzāk, tu esi veida dara ekvivalentu # ietvert C kuru saikne tagu ar href atribūtu un rel atribūts saka iet uz priekšu un kopēt ielīmēt saturu failu sauc search3.css tieši šeit, būtībā. Tas nav gluži darīt, bet tas ir gars no tā. Tajā teikts iet atvērt šo failu, search3.css, un pret to, it kā lietotājs bija drukāti to tepat galvas lapas tāpat kā es darīju iepriekšējā piemērā. Search3.css, tikmēr ir diezgan vienkāršs. Tas tiešām vienkārši ir tieši tas, ko bija pirms brīža stilā tagu, bet es esmu noteicis to šeit uz savu failu. Pat ja mēs neesam pavadījuši daudz laika visu HTML vai tīmekļa programmēšanu vienkārši intuitīvi kāda ir motivācija, varbūt, faktoringu ārpus šo mazo fragments pat CSS uz savu failu un tad arī to ar šo saiti tagu šeit? [Dzirdams studentu reaģēšanas] Labi, tas ir vieglāk lasīt tādā nozīmē, ka jums ir jūsu CSS CSS failu. Jums ir jūsu HTML jūsu HTML failu, tāpēc tas ir vieglāk lasāms šajā ziņā. Kāds cits varētu būt pārliecinoši? Yeah. [Dzirdams studentu reaģēšanas] Jā, lai jūs varētu iekļaut to vairākas reizes, tāpēc tagad mēs darām šos pamata piemēri ar atsevišķiem failiem, bet pieņemsim, ka jūs faktiski padarot reālā mājas tāpat kā jūs par 7 PSET vai jūsu gala projektu varbūt, un jūs vēlaties, lai vairākas interneta lapas, kas ir noteikti kopējā par faktiskais World Wide Web, un tas būtu sava veida klibs lai ir kopēt un ielīmēt to pašu zilā krāsā un tas pats teksts saskaņots centru katrā no šīm lapām. Drīzāk tā ir lielāka jēga faktors, kas, līdzīgi kā mēs esam darījuši C ar. h failu, ielieciet to vienā centrālā vietā, Šajā gadījumā search3.css, un pēc tam ļauj jebkuru failu savā mājas lapā, lai reāli iekļaut šo failu veidā šī taga šeit 16 rindā. Kā tas parasti notiek, mēs sākām ar 0 versiju, kāda veida darbu bet ne vienmēr labākais, un ar katru soli, meklēšana 1, meklēšana 2, un tagad meklēt 3 Mēs esam izmantojuši šīs bērnu pasākumus uz dizainparaugiem, kas ir nedaudz tīrāka un vairāk sagatavošanās vairāk sarežģītu lapām ka mēs varētu darīt uz leju ceļa. Ļaujiet man atvērt vienu pēdējo piemēru šeit tikai, lai parādītu vēl vairāk stilizēts lapā, bet vispirms pieņemsim apskatīt HTML. Tas ir search4.html, un ievēroju, ka strukturāli tas ir gandrīz tāds pats izņemot ieviešot jaunu tagu, div. Div ir tagu, kas ievieš sadalījumu lapā. Jūs varat domāt par to kā neredzamu taisnstūris. Tā veida rada vāla zonas mājas lapā ka jūs varat stylize visu uzreiz. Ko es esmu darījusi šeit ir šāds. Iekšā mana ķermeņa tag, kas ir tur visi kopā, Es saku izveidot sadalījumu lapā šeit pa 45 līnijām, izmantojot 47, un tas nozīmē, ka būtībā man neredzamu taisnstūri gar lapas augšpusē. Tad dod man otru taisnstūri, lai gan ar neredzamu, zemāk, ka, un identificēt to ar nosaukumu saturu, un tad visbeidzot, man 1/3 sadalījumu lapas apakšā sauc ID. Redzēsim, kāpēc es esmu izdarījis tikai brīdi, bet konceptuāli man ir iesākuma sadalījumu. Man ir satura sadalījumu, un man ir kājenes sadalījumu lapas pat ja tie ir tikai atzīmes. Lietotājs nav gatavojas redzēt 3 taisnstūri, bet sava veida strukturāli tur aiz kulisēm viņi faktiski klāt. Tagad, kurš rūpējas? Kāpēc patiesībā darīt? Viss pārējais lapā ir tādi paši kā mēs esam redzējuši iepriekš. Te ir mana forma. Te ir mana ieejas, mans ieguldījums, līnijas pārtraukumu un tā tālāk. Lūk attēls, lai gan, tāpēc mēs redzēsim, ja tas nāca no tikai brīdi. Lūk kājene, kas ir jauns, tikai tāpēc, ka es gribēju, lai ieviestu daži vairāk satura šeit. Ja mēs ritinātu uz augšu pamanīt, ka šī div ID ir iesākums. Šīs div ID ir saturs, un šo vienu ID ir kājeni. Un kā liecina nosaukums, ja jums ir ID atribūts HTML, pēc definīcijas tas ir unikāli identificē viens no elementiem, kas ir viens no jūsu lapā tagus. Slogs ir pilnīgi par jums jāatceras, ka jums ir iesākuma ID jau. Jums ir kājeni. Jums ir saturs ID jau. Dators nav gatavojas izdomāt pieejama ID ir par jums, lai jūs varētu nejauši dot 2 tags ID galvenes, un tas būtu vienkārši nepareizi. Jums ir jāpatur prātā, ko esat izveidojis, bet tad, kad jūs esat darījuši, lai paziņojumu, ko mēs varam darīt šeit. Es tagad var norādīt manā stilā tag augšā vai līdzvērtīgi manā CSS failu, ja es vēl joprojām izmantojot šo versiju, Es varu teikt # galveni, un ko tas nozīmē, ka neatkarīgi no tagu Šajā mājas lapā ir ID galvenes un #, tikai ar cilvēka konvenciju, pārstāv ID. Straujais zīme vai restīte pārstāv ID. Galvene ir vārds, kas man deva to. Tas nozīmē, piemēro šo CSS īpašuma lai kāds tagu šajā lapā lāči ID galvenes. Pats nodarbojas šeit. Piemērot šo īpašumu, kas notiek, ir tas pats, uz jebkuru kura ID ir saturs, un pēc tam uz leju šeit paziņojums es saņēmu mazliet mīļotājs ar kājeni. Elements, kura ID ir kājenes, kas tur var būt tikai viens pēc definīcijas iet uz priekšu un darīt tās fonta izmērs ir mazāks, tā fonta svars drosmīgs, tā starpība 20 pikseļi. Ko tas nozīmē? Tas ir tikai starpība augšā, apakšā, un pa kreisi un tiesības. Tas nozīmē dot man 20 pikseļu neredzamu starpību ap to tikai push viss pārējais prom no tā mazliet, piemēram, jūs varētu darīt Word, Microsoft Word vai lapu vai līdzīgi. Un tad teksts saskaņot centru. Pieņemsim redzēt gala rezultātu, un tad mēs iesim atpakaļ līdz vienu atlikušo fragmentu no CSS tur. Šī ir versija 4, mūsu ilgst meklēšanas piemērus, un tas ir daudz, daudz sexier. Tagad, godīgumu, es tikko googled "google fontu logo ģeneratoru." Un tas ļāva man radīt GIF, attēla formāts, kas izskatās, piemēram, ka tur. Patiesībā, jūs varat darīt pārāk. Mums ir "google fontu logo ģeneratoru." Redzēsim, vai mēs varam izdarīt. Labi, es domāju, ka tas ir mājas lapā es izmantot. Mēs varam teikt EK 10, piemēram, un padarītu tos paši. Jūs varat spēlēt ar šo visu dienu un tad tiesības, noklikšķiniet uz tā un pēc tam lejupielādēt faktisko GIF, kas ir viss, kas man bija. Un patiesi, tāpēc manā HTML, atgādināt, nekā šeit Man bija attēla tagu, ko mēs redzējām īsumā pagājušajā nedēļā kuru avots ir logo.gif. Un kāda atkal bija motivācija, kam šo alt atribūtu, Šī alternatīva atribūtu? Yeah. [Dzirdams studentu reaģēšanas] Labi, tāpēc 2 iemesli tiešām, ja pārlūkprogramma nevar uzvilkt attēlu jo jums ir lēns tīkla savienojums vai attēls ir bojāts vai kaut kas tamlīdzīgs vismaz cilvēks var redzēt "CS50 meklēšanu," un tad arī pieejamības dēļ. Ja jums ir lietotājs, kurš ir akls un izmanto ekrāna lasītāju un tāpēc, protams, nevar redzēt attēlus viņi var vismaz dzirdēt tekstu, ja viņu dators runā to viņiem. Kopumā šī ir labākā prakse, kad runa ir par pieejamību lappušu tā ka pat lietotājiem šajā situācijā var dzirdēt vai redzēt, tā sakot, kas tas ir, ka ir jūsu lapā. Tur ir viena cita lieta, kas man bija šeit kas ir nedaudz interesanti, un mēs redzēsim vairāk par šo problēmu komplekts 7 izmantojot vienu no šorti, ko vada viens no mācību vieszinātnieki. Bet # saturs attiecas uz atzīmi kura ID ir saturs, bet tad tur telpu raksturs, un tad tur ir vārds ieejas. Nu, kas ir interesanti par CSS ir tas, ka jūs varat atsaukties uz birkas lappuses Kārtot hierarhiski, un ko tas CSS līdzekļiem Fragments ir atrast tagu kura ID ir saturs, un tad piemēro šādus rekvizītus visiem ieejas tagus, kas ir pēcnācēji satura, kas ir kas ir izrobots iekšpusē no tā. Līdzinājums, atkal, ir tikai svarīgi ar datoru, nevis uz cilvēku, bet pēc tradīcijas mēs ievilkumu lietas kā mums iet dziļāk lapā, tāpēc tas nozīmē piemērot normu 5 pikseļi uz jebkuru ieejas elementu kas ir kaut kur iekšā vai ligzdotas no  elements, kura ID ir saturs. Kurš, kas attiecas uz? Nu, tur tiešām tikai šie 2 puiši šeit. Pamanīt, ka iekšpusi veidā tur ir 2 ieejas, jo tur ir bijis visu šo piemēru. Bet paziņo, ka šie 2 ieejas gadās būt ligzdotas, kaut mazliet dziļāk, pāris slāņi atkāpi, iekšpusē tag kura ID ir saturs. Ko tas nozīmē? Ja mēs ejam uz pārlūku šeit jūs varat redzēt kādreiz tik nedaudz, ļaujiet man tuvinātu-ka ir par polsterējumu mazliet starp pogas un starp teksta laukā. Ļaujiet man pagaidām savukārt ka off. Ļaujiet man aiziet līdz manu CSS, un ļaujiet man iet uz priekšu un vienkārši mainītu šo starpību no 5 pikseļi uz 0 pikseļiem. Ļaujiet man iet uz priekšu, tad un saglabāt failu, dodieties atpakaļ uz meklēšanas dzinēju un pārlādēt, un skatīties vidū lapā. Viss got saspiests kopā, un, kad es pirmo reizi saputota šo piemēru augšu Es domāju, ka izskatījās stulbi ar teksta laukā un tad poga tieši zem tā. Es gribēju, lai pad it nedaudz, tāpēc es iepazīstināja starpības. Ko mēs nedarītu lekciju, ir iet cauri vairākiem desmitiem CSS īpašības, kas pastāv, jo, atkal, ir lietas, kā burtu izmērs, fonts svaru, starpība, teksta izlīdzināt, un daži desmiti citi, un mēs nodot jums problēmu komplekts 7 dažādos konsultācijas tiešsaistē un norādes, kas ļauj uzņemt šīs lietas uz augšu. Bet kas ir patiešām svarīgi beigās, dienā ir izprast, kā šīs lietas tiek piemēroti. Atkal, ja mums ir stils tagu iekšā kas varat iet selektori, kārtot identifikatoru, kas norādītu Uz ko vēlaties lietot šos īpašumus, un tad jūs nodot īpašības, kā galveno vērtību pāra atdalītas ar kolu un tad beidzās ar semikolu, vai jūs varat kraķis visu šo, un nodot to atsevišķā CSS failu pati par sevi. Viss labais, kādi jautājumi par jēdzieniem vai liels priekšstatu par CSS? Jūs atkal redzēt vairāk par to 7 PSET, bet mēs turpinām to parasti ir diezgan vienkārši. Nē? Labi. Ir pienācis laiks par faktisko programmēšanas valodu, un mēs atgriezties mazliet CSS veidā piemērs. PHP ir tiešām lieliski saprotamā valodā jo tas ir sintaktiski gandrīz līdzvērtīga C. Citiem vārdiem sakot, ja jūs zināt, C, jūs zināt, lielākā daļa PHP, vismaz sintaktiski, lai gan ir dažas jaunas funkcijas un daži jauni jēdzieni mums būs apskatīt. Bet lielākā daļa, tagad mēs pāreja no C līdz PHP Lielākajā daļā jauno sīkumi ir tiešām liels attēls, Kā jūs izmantot valodu programmas tīmeklī, nevis pie komandrindas vai mirgojošu ātri, kā mēs esam darījuši līdz šim. Par atskaites, it īpaši ar 7 PSET un galīgo projekta vēlāk, Vai izmantot šo URL šeit, ja jūs vēlaties, lai izlasītu up par PHP formalitātes. Tas tiešām patīk bezmaksas tiešsaistes mācību grāmata efektīvi, un jūs atradīsiet arī, ka to, kas ir patiešām jauki par PHP ir, ka pastāv simtiem funkciju, kas nāk ar to, tā kā C Jums nav obligāti piekļūt vairāk funkcijas nekā bija math bibliotēka, CS50 bibliotēka. PHP un Moderno valodu Python un Ruby starp tiem daudz, Jums piekļūt tik daudz vairāk funkciju, kas nozīmē, jums rakstīt daudz mazāk kodu, jo jūs varat stāvēt uz citu cilvēku pleciem , kas jau ir rakstīts dažas lietas jums. Pieņemsim veikt ātri tūre sintaksi PHP un tad uzrakstīt dažus piemērus. Kas ir jauka par PHP pirmkārt ir tur nav galvenā funkcija. Ja jūs vēlaties rakstīt programmu PHP jūs vienkārši sākt rakstīt kodu, un jums nav jāuztraucas par galveno. Nav int. Nav atgriešanās. Nav argv, argc kas ir nepieciešams, kad jūs uzrakstīt programmu. Drīzāk jūs varat vienkārši sākt rakstīt kodu, un tas daļēji ir jo PHP ir tas, ko sauc interpretē valodas. C tika apkopoti, un tā tika apkopota tādā nozīmē, ka jūs sākat ar izejas kodu, palaist to caur šķindēt, kas ir kompilators, un galu galā pēc kāda skaita soļus jūs saņemsiet objekta kodu, 0s un 1s. PHP un Python un Ruby un Pearl un citi Ir dažādi veidi, valodu, kas jums nav apkopošanai. Jums nav iet no avota kodu, lai 0s un 1s. Jūs vienkārši palaist pirmkodu, un jūs palaist pirmkodu rakstot uz parasto teksta failu, kas beidzas. php šajā lietā vietā c. un ko programma dara datorā tas ir burtiski interpretē savu kodu pozīcijai pa līniju. Citiem vārdiem sakot, nevis uzrakstīt programmu un palaist programmu tieši jūs, nevis uzrakstīt programmu ar failu, kas beidzas. php. Tad jūs palaist faktisko programmu sauc php.exe, ja jūs par Windows, vai tikai PHP, ja jūs par Mac OS vai Linux, un tu sniedz kā ieguldījumu, lai PHP programmas savu pirmkodu, un tā mērķis dzīvē ir, lai lasītu savu kodu augšas uz leju, no kreisās uz labo, un vai kāds jūs esat teicis to darīt. Paskatīsimies, ko tas gatavojas nozīmē sintaktiski. PHP mums ir apstākļi. Šī slide ir identisks tam, ko jūs redzēja atpakaļ 1 nedēļas jo sintaktiski apstākļi, IFS un cits IFS un cits PHP izskatās tieši tāpat kā šis. Kad runa ir par boolean izteiksmes viņi gatavojas izskatās tieši tāpat kā šis. Kad runa ir par anding lietas kopā, jo booleans tas notiek, lai izskatās tieši tāpat šis. Slēdži izskatās vienādi, un jūs saņemsiet papildu labumu PHP ka in C slēdži varēja pārslēgties tikai uz char vai Int. Jūs nevarētu pāriet uz virknes vērtību. PHP jūs faktiski var būt izteiksmi kas ir mainīga, kura saturs ir virkne, un jūs faktiski var darīt stīgu salīdzinājumu reālajā intuitīvā veidā, nav rādītājs salīdzinājums, lai izlemtu, vai darīt lietas man vai j vai kaut kas cits. Mēs redzam, ka potenciāli pirms ilgi. Cilpas pārāk brīnumaini ir tas pats. Par cilpas ir inicializācijas, nosacījums, un daži no jaunumiem numuru. Bet cilpas pastāv arī PHP. Vai vienlaikus cilpas pastāv arī PHP, un masīvi pastāv PHP, bet šeit ir, ja sintakse sāk saņemt mazliet atšķirīgs, bet jēdzieni ir tas pats, un jēdzieni tiešām ir vienādi kā tas bija nedēļā 0 ar nulles. Pirmkārt un galvenokārt ir $ zīme. Tas bija dizaina lēmums PHP turklāt jebkuru mainīgo PHP ko dizains sākas ar $ zīmi. Tur ir ne vairāk X, Y, Z. Tas tagad $ X, $ Y $ Z tikai tāpēc. Tas ir kaut kas jāpatur prātā, un tagad par labajā pusē Tas izskatās līdzīgi masīvs, bet mēs esam izmantojot kvadrātiekavas šeit. PHP un JavaScript, jo mēs beidzot redzēt, deklarēt masīvu jūs darīt atvērtu kvadrātiekavas un slēgtas kvadrātiekavas, un tad jums ir ar komatiem atdalītu vērtību sarakstu, vai Ints vai virknes vai chars, ko jūs vēlaties, iekšā šī vārda tur. Tagad, kā mēs kaut ko darīt, kā šis C? Kāds bija uz statiski deklarējot masīvu zināmo sintakse? Tas bija cirtaini bikšturi, tāpēc nelielas atšķirības šeit, bet gan PHP un galu galā JavaScript tas vienkārši izmanto kvadrātiekavas, tik tiešām vienīgais interesanta detaļa šeit ir $ zīme mainīgo nosaukumu un arī kvadrātiekavas, un tur ir viens ziņkārīgs lieta kas ir izlaisti kā arī kreisajā pusē = zīmi. Kas trūkst, ka mēs esam bijuši pieprasot nedēļas tagad? Yeah. [Dzirdams studentu reaģēšanas] Lielumu, tāpēc nav no lieluma masīvs pieminēt. Atklāti sakot, tur nav kvadrātiekavās pieminēšana kreisajā pusē no = zīmi, un ko vēl ir pazudis no līnijas? Yeah >> [dzirdams studentu reaģēšanas]. Veids, lai to, kas ir interesants, jo īpaši par PHP ir tas, ka nav stingri drukāti valoda kā C ir, un tas ir stipri drukāti kas nozīmē, ka jums ir jāsaka palija, Jums jāsaka int, jums jāsaka pludiņu. Anytime jūs vēlaties mainīgo Jums pateikt šķindēt kāda tā tips ir. PHP ir nedaudz lazier. Tas ir brīvi drukāti tādā ziņā, ka Jūs varat būt pludiņus un chars un stīgas un Ints un tā tālāk, bet pati valoda nav īsti aprūpi, ko jūs likts iekšā ir mainīgs. Jums nav to informēt iepriekš, kādu datu tips notiek ar mainīgo. Tas ir pilnībā atkarīgs no jums, tāpēc tas ir jauki jo jums nav jāuztraucas par daudz par datu ierakstot un neuztraucoties, ko jūsu argumenti ir un tā tālāk. Tas nozīmē arī eventuāli funkcijas PHP gatavojas, lai varētu atgriezties nu int lielāko daļu laika, un varbūt reizi brītiņa tie būs atgriešanās bool, Būla nepatiess, piemēram, lai norādītu, ka kaut kas nogāja greizi. Tas dod mums dažas upsides, bet tas arī padara mūs veida ar dizainu mazliet lazier kad runa datu rakstīt. Kas vēl ir tur paturēt prātā? Mainīgie izskatās gluži kā šis, tāpēc $ s = "Hello, World". Tas ir iespējams, secināms no iepriekšējās, piemēram, un mums ir cita veida cilpas. Tas viens mēs faktiski redzēt vienu reizi, bet, jo tas ir diezgan parocīgs, foreach būvēt. Šajā gadījumā foreach cilpa ņem iekšā no tās iekavas 3 vārdus parasti, $ Kaut pirmais, kas ir tas, ko masīvs jūs vēlaties atkārtot pār locekļiem, tad burtiski atslēgvārdu kā, un tad visbeidzot, cits mainīgā nosaukums, kas jums izvēlēties. Tas var būt foo, bārs, vai elements, un ko tas būvēt dara ir, ja $ masīvs satur 10 elementus par katru atkārtojuma šis masīvs-piedodiet, par katru atkārtojuma šīs cilpas mainīgo sauc elements būs jāatjaunina būt pirmais elements masīva, tad otrais elements masīva, tad trešais elements masīva, tādējādi novēršot nepieciešamību darīt nedaudz kaitinošas kvadrātiekava notācija un $ I lai indeksā masīvs. PHP dara visu šo darbu, lai jūs un par katru iterāciju tikai rokas jums nākamo elementu no masīva bez jums, kam nepieciešamības zināt vai rūp tās skaitlisko indeksa vietā. Un tad visbeidzot, tagad, tur ir vēl viena iezīme PHP kas būs ļoti noderīga, it īpaši, ja mēs sāktu uzstādījuma tīmeklī, un kas ir pazīstams kā asociatīvā masīva. The masīvi, ka mēs zinām līdz šim no 20 sekundes pirms un par pēdējo 8 nedēļu tiek skaitliski indeksētas bloki, kārtot tradicionālo masīvu, kur indeksi ir Ints, 0, 1, 2, visu ceļu uz augšu. Asociatīvas bloki ir daudz spēcīgāks. Tās ļauj jums ir patvaļīgu atslēgas, patvaļīga indeksi un patvaļīgi vērtības. Tā kā tradicionālā masīvā tas ir 0, 1, 2, jo asociatīvā masīva var būt indekss vai atslēgu foo kuru vērtība ir bārs. Pēc tam jūs varat būt citu atslēgu, kuras vārds ir baz un kuru vērtība ir qux. Atkal, stulba datorzinību sugas mainīgo nosaukumi šeit, bet punkts ir tas, ka šis masīvs nav bracket 0 vai Stiprinājumi 1. Tas tā vietā nāksies bracket foo un bracket Baz. Tas ir daudz vairāk universāls, ka mēs ejam, lai varētu saistīt vārdus ar citiem vārdiem, atslēgas ar vērtībām pilnīgi patvaļīgi, un mēs braucam, lai varētu saņemt šīs vērtības atpakaļ pastāvīgu laiku jo zem motora pārsega, ko asociatīvais masīvs patiešām ir, ir hash tabulu. Atgādināt, ka hash tabulu ļauj īstenot kādu ieguldījumu patīk īstenot vārda Dāvidam, ja jūs vēlaties, lai ievietotu Dāvidu par sava veida vārdnīcu, un tad jūs saņemsiet atpakaļ kādu vērtību parasti. Attiecībā uz Speller, patiess vai nepatiess. Deivids vai kāds vārds ir vai nav norādīts vārdnīcā. Asociatīvā masīva patiešām ir tikai hash tabulu, bet tas ir daudz vairāk lietotājam draudzīgs iemiesojums no tā. Kā mēs redzēsim, tas notiek, lai ļautu mums darīt dažas lietas ļoti, ļoti viegli. Pieņemsim to apskatīt dažus pamata PHP piemēri un redzēt, ko mēs varam darīt ar šo valodu. Ļaujiet man iet uz priekšu un atvērt mūsu avota direktorijā šodien failu sauc hello1.php. Šis fails ir vairāk komentārs, nekā tas ir faktiskais kods, tāpēc ļaujiet man faktiski noņemt visus komentārus no faila un jūs iepazīstināt varbūt vienkāršākais PHP programmas šeit. 5 līnijas, un daži no tiem ir balta telpa, tāpēc ievērosiet dažas nozīmīgas atšķirības šeit. Failu sauc hello1.php. Pati pirmā rinda, lai gan, ir ,? Nozīmē, ka tas arī viss par manu PHP kodu. Let 's redzēt, kā palaist šo. Es esmu gatavojas doties atpakaļ uz manu termināļa logu šeit. Es esmu gatavojas iet manā PHP direktorijā. Ievērojiet, ka mums ir visai ķekars failus, pirmais no kuriem ir hello.php. Ļaujiet man iet uz priekšu un palaist šo, hello1.php, ieceļot. Atļauja liegta. Labi. Kā mēs esam noteikti lietas, piemēram, tas bija agrāk? Ko tas nozīmē? >> [Dzirdams studentu reaģēšanas] Mums vajag lasīt un rakstīt, bet man darīt ls-l. Atcerieties šo nedaudz noslēpumains produkciju, kuru laikā hello1 Šķiet, ka lasāma un rakstāms ar mani bet lasāma ikviens cits. Izrādās tas patiesībā nav solis pareizajā virzienā. Atšķirība, atkal, ar interpretēts valodu ir jums nav palaist programmu tieši. Tu nevis vadīt tulku un nododiet to kodu ka jūs esat rakstiski, lai tā varētu interpretēt tā pozīcijai. Šajā gadījumā, tulks vai programmu es tiešām gribu palaist ir burtiski sauc par PHP. Kaut kur uz šī cietā diska ierīces ir programma kāds cits rakstīja sauc par PHP, vai uz Windows php.exe. Ko es esmu gatavojas darīt, šeit ir es esmu gatavojas faktiski palaist PHP bet arī tā kā komandrindas argumentu kodu, kas man rakstīja, un tad es ņemšu tālināt un hit ienākt. Tā darbojas mana programma man, no augšas uz leju, no kreisās uz labo. Ļaujiet man iet uz priekšu un atvērt nelielu novirzi šo. Jo hello2.php paziņojums, ka tas ir pārāk lielākoties komentāri, tāpēc ļaujiet man atbrīvoties no tiem, kā novērst uzmanību, un kas ir acīmredzami atšķirīgs tagad par šo failu? Tur šī jaunā līnija, nedaudz noslēpumains augšpusē. 1 līnijas tas ir #! / Bin / php. Bin ir konvencija par Linux un Mac OS binaries, tāpēc / bin nozīmē šī ir mape satur ķekars binaries kas ir ieprogrammēts, no kuriem viens ir PHP. #! ir nicknamed zaņķis, kas ir ātrs veids, kā pateikt to, un ko tas nozīmē ir tas, ka tad, kad jūs darbināt šo programmu tagad tur mājienu augšpusē faila kas stāsta dators, ko tulks, lai izmantotu. Tā izpaužas mazliet kaitinošas, ja jums bija pateikt saviem lietotājiem un jūsu klientiem "Hei, mēs rakstīja šo programmu sauc hello1.php." Viss, kas Jums jādara, ir uz visiem laikiem palaist PHP un tad sauc šo programmu. Atklāti sakot, tas būtu vienkārši jaukāk palaist hello1.php, un, protams, mēs varam, ja mēs rīkoties šādi. Ļaujiet man iet uz priekšu un darīt ls-l, un paziņojuma hello2 tas joprojām tikai lasīt rakstīt un pēc tam lasīt lasīt, tāpēc es vēl nevar izdarīt, hello2.php. Bet mēs ieviesta šī kādreiz tik īsi pēdējo reizi, chmod komandu. Ja man chmod a + x, kas nozīmē visu plus izpildes iespējām, un tad hello2.php un tad tie ls-l atkal pamanīt to, ko mainīt. Viens, Linux kurā man faila nosaukumu zaļā nodot ideju ka tas ir izpildāms, bet vēl svarīgāk, kreisajā pusē pamanīt, ka mazliet pārstāv X izpildāmā tagad ir noteikts. Ko tas tagad nozīmē, es varu palaist ./hello2.php kā parasti, hit ievadīt, un jo zaņķis pašā augšā no faila tas mājiens, atkal, lai Linux, kas saka izmantot šo tulks palaist šo failu. Vai nav jāuztraucas par liekot lietotājam faktiski rakstīt to. Un, kas ir jauki tagad ir tas veida nozīmes uz manu klientu vai mani draugi Kādā valodā es uzrakstīju šo programmu, lai es varētu iet uz priekšu ar mV un pārdēvēt šī lieta hello2, piemēram. Un tagad, ja man ./hello2 un attālinātu mana programma turpina darboties. Šie failu paplašinājumi ir cilvēka konvenciju, kas ir nepieciešams par kaut ko līdzīgu šķindēt un padarīt kas meklē tiem. Bet PHP, es varētu nosaukt šo failu paplašinājums kaut ko es gribu. Es varētu triks pasauli domāt, ka es esmu patiešām labi Ruby, un es varētu uzrakstīt hello2.rb un tad palaist šo, un voila, tagad man ir Ruby versija, kas ir pilnīgs meli. Bet failu paplašinājumi ir bezjēdzīga ja fails ir izpildāms un ir šo īpašo mājienu augšpusē faila. Tagad, kā malā, ļaujiet man parādīt Jums ātri versija 3, kas ir sava veida noderīgu triks zināt. Jo hello3 es tomēr kaut nedaudz nepareizi ka es ņemšu atjaunināt pirmkoda tiešsaistē. 3 versijā izrādās, ka uz lielāko daļu Linux datoriem tur programma, ko sauc env videi, un ko jūs varat darīt šeit ir, ja jums nav ne jausmas, kur PHP tiek uzstādīta uz vietējo cieto disku, jo tas patiešām varētu mainīties atkarībā no datora ka kāds izmanto, ENV vienkārši saka palaist env, kas ir lielākajā daļā sistēmas, un izdomāt, kur PHP. Tikai kopīga triks, tāpēc jums nav jāuztraucas par atrast, kur programma ir. Bet, ja jūs uzmanīgi, lai uzzinātu, kur programma ir, un jums nav jārūpējas līdz šim Jūs varat izmantot, kas komandu. Ļaujiet man attālināt un veids, kas PHP, un pamanāt, ka tas stāsta man tas faktiski usr / bin / php. Tas ir sava veida meli. Tas ir arī bin. Tas tikai rāda man pirmo hit. Ja jums kādreiz prātoju, kur šķindēt ir, kas šķindēt, kas ir kas usr / bin / šķindēt, kas padara, usr / bin / darīt, un ko tas nozīmē, visu šo laiku jūs varētu būt rakstīt usr / bin / šķindoņa ievadīt palaist šķindēt, bet tas ir sava veida garlaicīgs to darīt, tāpēc dažas mapes tāpat usr / bin un bin tiek pieņemts, ka saistību nepildīšanas tāpēc dators zina meklēt tiem jums. Visus jautājumus par rakstot super, super vienkāršu Hello World programmu PHP un tad darbojas to? Jo tagad mēs sākam ieviest pārliecinošu sintaksi. Labi, šeit mēs iet. Šīs programmas mēs esam redzējuši tiešām visi no tiem pirms tam. Ja es atvērt, piemēram, pieņemsim do beer1.php, mēs nav iet caur vairākām versijām, bet tas, ko es darīju Tika Es apsēdos un izlēja to vai pārveidot mans C kods PHP kodu šeit. Lielākā daļa no faila augšdaļā ir komentāri šeit. Izrādās, ka ir viens jauns funkcija mums sauc readline. GetString, atsaukšana, no nedēļā 0 vēlāk bija CS50 lieta. PHP nāk ar savu lietotājam draudzīgu funkciju sauc readline ka aizņem 1 argumentu, kurā norādīts, nekavējoties ka jūs vēlaties, lai parādītu lietotājam, un ko readline dara ir tas atgriež neatkarīgi lietotājs iekšā Šajā gadījumā, es esmu deklarējot mainīgo sauc $ n. Es esmu uzglabātu tajā atgriezto vērtību readline Pēc pamudinot lietotājam šīs virknes. Tikai, lai atpakaļ uz augšu, lai faktiski palaist šo lietu, ļaujiet man iet uz priekšu un palaist php beer1.php. Cik pudeles būs tur būt? Darīsim 2 šo laiku. Enter. Tas arī viss. Programma ir funkcionāli identisks C versiju no nedēļas atpakaļ. Bet sintaktiski pieņemsim redzēt, kas ir atšķirīgs. Pēc man int no lietotāja paziņojuma, ka es esmu darot kādu kļūdu pārbaudi, un ja n ir mazāks nekā 1 Es atmest un es izdrukāt žēl ziņu lietotājam un izceļošanu ar 1. Arī tas ir nedaudz atšķirīgs.  C Ko mēs darām? C mēs atgriezāmies 1. PHP izejat ar 1, kas atklāti ir es domāju nedaudz vairāk intuitīvi jo jūs burtiski Izejot programmu. Visas tiesības, un pēc tam uz leju šeit kaitinošas dziesma ir identisks sintaktiski izņemot mainīgo, 24 tāpēc noteikti šeit rindā uz priekšu pamanīt mans cilpa ir gandrīz tas pats, bet man ir $ priekšā i un n, un kāda ir arī trūkst no 26 līnijas, ka mēs esam bija agrāk , deklarējot mainīgo i? Nav veids. Tas ir nepareizs PHP teikt int. Jums vienkārši nav nepieciešams to darīt. Dators, tulks PHP ir pietiekami gudrs, lai realizētu ka, ja jūs nodot numuru $ es tā pret to kā skaitlis jums. Un tad noteikti šeit mēs plug $ i, $ i, $ i - 1. Tas viss ir tas pats, un tad noteikti šeit mēs "Wow, tas ir kaitinošas" printf un pēc tam izejiet (0). Atkal, takeaway šeit ir tāda, ka, lai gan mēs esam gatavojas tērēt samērā maz laika uz PHP, protams salīdzinot ko mēs darījām C, tas ir gandrīz tas pats, un lai ko mēs darīsim šodien un nākamnedēļ un ārpus tām ir jākoncentrējas tiešām par dažām jaunajām idejām. Tikai, lai redzētu, ka viena cita lieta, tas tulkot pāri no C, tas bija super vienkārša programma mums bija 1 nedēļa vai 2 ka kubā vērtību. Bet kāda bija interesanti tajā laikā par šo programmu ir, ka tas ieviesa jēdzienu pasūtījuma rakstisku funkcijas ka mēs paši rakstījāt. In PHP sintakse ir gandrīz tāds pats. Te ir mana programma augšu augšas. Pamanīt atkal prombūtnē ir kāds jēdziens galvenais. Es sāktu rakstīt kodu, un tas ir tas, kas notiek, lai saņemtu izpildīts ar tulku. Es izdrukāt x ir tagad 2, domājams. Tad es varu pieprasīt cubing ... Tad es aicinu kuba funkciju un caurlaide x $ un piešķirt atgriešanās vērtību x $. Tad es apgalvo, ka tas ir kubā, un tad es saku, kas, cerams, saka x tagad 8. Par funkciju PHP sintakse ir kādreiz tik nedaudz atšķiras. Atkal trūkst, ir atgriešanās tips. Atkal trūkst, ir atgriešanās tips un arī trūkst, ir kāda cita veida? [Dzirdams studentu reaģēšanas] Nu, labi, ka ir labs. Pieņemsim atgriezties ka sekundē. Mums nav, piemēram, int šeit. Mums nav, piemēram, ir int šeit, jo, atkal, PHP Jums vienkārši nav nepieciešams, un nedrīkst darīt, bet tur ir šis jaunais atslēgvārds sauc funkciju. PHP tas ir gandrīz mazliet skaidrāks, jo, kad jūs vēlaties funkciju Jūs burtiski pateikt funkciju, jūs arī tā nosaukumu un pēc tam ar komatu atdalīti ja kāds no argumentiem. Nav nepieciešams pateikt tukšumu vai kaut kas tamlīdzīgs, un tad atgriešanās ir tas pats, $ * $ * $. Kas ir arī trūkst? Sammy norādīja tas šeit. Augšpusē faila pilnīgi izpaliek PHP arī ir prototips. Arī tas ir ar nolūku. Valodas un tulki, piemēram, PHP ir gudrāki par C kādreiz bija jo apkopotāji piemēram šķindēt. Atgādinām, ka šķindēt, ja Jums nav pateikt to, ka kubu pastāv, ja Jums nav pateikt to, ka Printf pastāv kā ar prototipu vai ar # ir, labi, ka tas būs kliegt pie jums, un nav pat sastādīt savu kodu. PHP un vairāk mūsdienu valodas ir daudz gudrāki, kad runa ir par šo. Viņi būs ņemt to uz sevi izlasīt visu savu kodu un tad kliegt pie jums tikai tad, ja tā konstatē kuba nekur. Tas nav svarīgi, ja kubs ir apakšā vai augšā vai pat dažos atsevišķā failā. PHP un līdzīgas valodas tagad pietiekami gudrs, lai skatīties uz priekšu par visu pirms tā uzskatīja tevi par tādu kļūdījies. Ja tas, ka atstāj mūs? Darīsim vienu pēdējo piemēru šeit apstākļos, un, ja es atvērtu conditions2.php paziņojumu pārāk sintakse šeit ir gandrīz tāds pats. Es esmu, izmantojot readline vietā GetString, bet līnija ir tāda pati kā iepriekš, "Es gribētu skaitlis lūdzu." Man tad ir, ja nosacījums, kas cits, ja, un tad cits, bet funkcionāli šī programma ir arī identisks tam, ko mēs darījām nedēļas atpakaļ, tāpēc, ja man palaist šo lietu, php no conditions2, un es arī tā numuru, piemēram 23 - Es paņēmu pozitīvu skaitli. Ja es arī tā -1 es paņēmu negatīvu skaitli. Ja es arī tā 0 Es patiešām palielinājies 0. Tā, kas rūpējas par visu šo? Nu, viens no fun veida vingrinājumi šeit man vismaz bija doties atpakaļ un redzēt, cik ātri es varētu īstenot PSET 5, pārrakstīšanās PSET. Atceros, ka tur bija šī failu sauc speller.c, un tur bija failu sauc dictionary.c. Ko es darīju bija es veida pavadīja dažas minūtes, un es pārvērš C kodu PHP kodu, un mēs nevarēsim tērēt daudz laika uz Speller jo tāpat 5 PSET jums nav tiešām ir nepieciešams pavada daudz laika uz Speller pati, jo jūsu uzmanību bija vārdnīcu. Pietiek pateikt, ka, ja jūs lasīt, izmantojot Speller, Šis fails šeit, tas ir diezgan daudz līdzvērtīgu C kodu mēs deva jums par 5 PSET. Esmu tikko pievienotās daži $ vietās. Es esmu mainījies dažu funkciju nosaukumi, ja tie nebija PHP. Ir vēl viena lieta šeit, preg_match, kas ir nedaudz mīļotājs veids, kā to kaut ko, bet mēs būsim atpakaļ, ka beidzot. Bet sakot, Speller ir gandrīz identisks, un ja paskatās pašā apakšā ko tas galu galā atklepo tas šeit, vārdiem nepareizi, vārdus vārdnīcā, vārdu tekstā. Labi, lai to, kas ir interesanti tagad ir šādi. Augšpusē manu failu es esmu vajadzīga dictionary.php. Tāpat kā C ir # ietvert PHP ir īpaša funkcija sauc nepieciešama ka diezgan daudz dara to pašu, nepieciešama failu ar nosaukumu dictionary.php. Kā es varu iet par īstenojot PSET 5? Ļaujiet man iet uz priekšu un atvērt failu šeit. Ļaujiet man veikt nelielu atsauci šeit. Un ļaujiet man izveidot jaunu failu un sākt aicinot šo dictionary.php. Ļaujiet man nodot to citā mapē, lai mēs varam darīt dzīvot. Un tagad es tuvinātu iekšā Es esmu gatavojas sākt savu PHP failu ar atvērtu kronšteinu PHP slēgta kronšteinu. Un tad šeit bija dažas funkcijas man vajadzēja, lai īstenotu uz 5 PSET, tāpēc ļaujiet man sākt īstenot dažus no tiem, tā funkciju pārbaude, kas bija jāņem vārdu kā argumentu. Mēs darīsim to un nāk atpakaļ uz to brīdi. Tur bija funkcija slodzi, kas stājās kādā kā argumentu? Vārdnīca, lai fails, ka es tiešām gribēju, lai slodze. Tur bija funkcija lielums, kas neveica nekādus argumentus un tur bija funkcija-kāda bija cits? Izkraut, kas neveica nekādus argumentus nu. Tie ir 4 funkcijas, kas man būtu nepieciešams, lai tagad īstenot PHP, un ko es esmu gatavojas darīt, ir iet uz priekšu un darīt to. Daudzi no jums izmanto hash tabulu 5 PSET, tāpēc ļaujiet man iet uz priekšu un izveidot hash tabulu PHP. Darīts. Tas dod man hash tabulu. Nu, kāpēc? Viens, mainīgo sauc $ galda, vienkārši uzburt ideju par hash tabulā. Kvadrātiekavās, lai gan, atgādināt, atspoguļo to, ko? Masīvs, bet PHP masīvu nav jābūt skaitliski indeksēti. Tie var būt arī asociatīvas bloki, kas nozīmē, ka jūs varat būt patvaļīgi atslēgas un vērtības. Līdzīgi kā 5 PSET, tiem no jums, kas bija hash tabulu implementāciju Jūs, iespējams, ievietots vārdu, un tad ievieto to ķēdi saistītu sarakstiem, vai jūs uzglabāt vērtību patieso kaut vai kaut kas šajā sakarā. Jūs kaut atcerējās to, ka vārds bija tur. Tagad, kas būs mana hash tabulu, un tāpēc tagad iet par īstenošanu izvēles funkcija Man vienkārši vajag meklēt iekšpusē šī hash tabulas un redzēt, ja vārds ir tur. Ko es esmu gatavojas darīt, ir es esmu gatavojas teikt, ja- teiksim isset, kas ir PHP funkcija, kas burtiski nozīmē ir atslēgu komplekts, tāpēc isset ($ tabula [$ vārds], un ja tā atgrieztos taisnība. Viss. Tas ir PHP 5 PSET. Nu, taisnīgumu, labi. Cits atgriezties viltus, tāpēc tas nav tur. Kas īsti notiek šeit? Nu, ja galda vai hash tabulā ir vairāk vispārēji ir asociatīvas masīvs, kas nozīmē, ka jūs varat indekss tajā ar vārdu, piemēram, "vārdu", un jums ir, lai saņemtu atpakaļ kādu vērtību. Mēs esam veida, kā iegūt vienu soli priekšā sevi. Tas būtu sava veida jauki, ja mēs faktiski iekrauj failu vispirms, tāpēc slodze nav tik vienkārši, bet ļaujiet man iet uz priekšu un sakult  tiešām ātri īstenot slodzes. Ļaujiet man iet uz priekšu un teikt vārdus kļūst failu vārdnīcu. Failu funkcija PHP atver failu un atgriežas jums masīvs visas šīs lietas vārdiem, vienkārši nodod tos jums. Tas bija liels sāpes pārāk, bija ne? Tagad foreach, tas ir mūsu jaunais konstrukcija, foreach ($ vārdi kā $ vārds). Šī cilpa gatavojas sākt atkārtojot pa masīva vārdus un piešķirt uz $ vārda mainīgais katru vārdu failā no pirmā uz otro, lai trešās līdz ceturtās galam tāpēc man nav jādara kaitinošas [i] nošu un tamlīdzīgi. Un ko es esmu vienkārši gatavojas darīt par katru no šiem vārdiem ir uzglabāt to mana galda, indeksējot uz galda un tad dara patiesi, jo jāatceras ka vārds ir manā vārdnīcā viss man tiešām ir jādara ir sava veida uzsist mazliet un saka, tas manā hash tabulā vārds ir tur, taisnība. Un, ja tas nav tur, man nav skaidri likt viltus, citādi man ir likts viltus visu iespējamo vārdus Visumā. Pietiek man tikai noteikt indeksa vērtība līdz patiess, ja vārds ir faktiski manā hash tabulā. Tagad, es esmu griešana pāris stūriem šeit, ka es ņemšu vilnis savu roku pie tagad, bet tagad slodze funkcija tiek darīts. Es slodze visus vārdus no faila masīvu. Es atkārtot pār šo masīvu, un katram vārdam masīvā Es plug to hash tabulā ar 1 līniju kodu. Tas ir jautri. Jūs zināt, kā mēs varam īstenot izmēru tagad? Nu, izmērs vienmēr ir diezgan viegli, jo taisnīgumu. Šeit mēs varam vienkārši atgriezties skaits no tabulas. Tas ir diezgan viegli too, saskaitīt lietas tabulā. Tas ir tiešām sava veida nav efektīvākais. Es, iespējams, ir mainīga sauc lielumu, lai mēs varam darīt to pastāvīgu laiku, bet tas ir diezgan viegli. Ak, un tad izkraut, ja mēs patiešām vēlamies būt anālais šeit mēs varam teikt, ka, kā jūs izkraut kaut. Jūs vienkārši iestatīt mainīgo vienāds ar tukšu masīvu, un tas izpaužas atbrīvoties no visa, kas bija tur. Nav nepieciešams zvanīt bez maksas. Atkal, es esmu samazināt dažas stūriem, un es atvainojos par piešķirot problēmu kopumu 5 varbūt C, bet, ja mēs tagad iet uz priekšu un palaist to, Es esmu gatavojas faktiski palaist versija, ka es uzrakstīju iepriekš tikai tāpēc, ka man nav nekādas sintakses kļūdas whatsoever. Ļaujiet man iet uz priekšu un palaist Speller. Lietošana ir tas pats. Šeit ir vārdnīca fails, kas tikai satur vārdu foo. Te ir teksta fails, kas tikai satur foo bar. Pieņemsim pareizrakstības pārbaude to, lai Speller, izmantojot šo vārdnīcu failu uz šo teksta failu. Ir viens kļūdaini vārdu, bārs, un voila. Darīts ar 5 PSET. Paņemsim 5 minūšu pārtraukumu šeit, un mēs būsim atpakaļ, un vairāk par PHP. Labi, mēs esam atpakaļ. Darīsim-naida mani uz brīdi. Pieņemsim tagad faktiski redzēt, ja tas nav pozitīvs faktiski īsteno šo lietu PHP. Piešķirts, tas bija 45 sekundes, lai īstenotu. Bet iesim uz priekšu tagad un vadīt lietas. Ļaujiet man iet uz priekšu un palaist C versiju gada Speller, un mēs to par vienu no lielākajiem failu, kas ir King James Bible. Un tas šeit ir-iesim uz mūsu C mapi, Pareizrakstības par King James 5.. Daudz Vārdos. Labi, tā ka ir izeja jūs, iespējams, ieguvuši pat ja laiks ir mazliet atšķirīgs, ja jums viss darbojas pareizi, un tā laika kopumā pareizrakstības pārbaude King James Bible bija 0,38 sekundes, tāpēc ir diezgan laba, izmantojot šo īstenošanu. Tagad ļaujiet man iet uz PHP versiju, kuru mēs tikko rakstīja. Ļaujiet man palaist Speller par King James. Whoops, ignorēt šo kļūdu. Es esmu nepareizā direktorijā. Pareizrakstības par King James 5.. Gandrīz izdarīts. Labi, vērīgs novērotājs būs saprast, ka bija vairāk nekā 3 sekundēm tur. Tas ir patiess darba laiks. Izrādās, ka ir nepieciešams laiks, lai iespļaut daudz teksta ārā jo buferizācijas jautājumus, bet garš stāsts īss, ka bija 3.15 sekundes mašīna laikā, CPU laiks, pret ko tas bija pirms brīža? Piemēram 0,3. Es domāju, tas ir par kārtu lēnāk, lai kur ir tā, ka smieklīgi lejupslīde nāk no? Nu, kā tas ir bijis gadījums ar gandrīz visiem projektēšanas lēmumu mēs esam padarījuši klasē pēdējo 9 nedēļu tur ir gandrīz vienmēr tas Tradeoff. Dažreiz starp tikai telpā, dažreiz starp telpu un laiku, telpa, laiks un attīstības centieniem, un tiešām šeit, lai gan Mēs saglabāti milzīgu laiku, varbūt potenciāli 10-20-30 stundas attīstības laikā īstenojot pareizrakstības pārbaudītājs ar sitieniem to tikai 45 sekundēs ar šo valodu cena, ko maksājam, ir, ka tas ir par kārtu lēnāks kā rezultātā, un tas parasti notiek ar gandrīz visiem interpretēts valodā, PHP, Python, Ruby, Pearl vai citi ar kuru no ja jūs gatavojas palaist to caur tulka un ir to lasīt savu kodu pozīcijai, no augšas uz leju, no kreisās uz labo, ka starpnieks ir gatavojas veikt kādu laiku savu, un ko jūs bija sajūta šeit ir 3 sekunžu pretstatā 0,3 sekundēs ir fakts, ka tas ir starpnieks, kurš ir burtiski interpretēt mūsu kodu pozīcijai, un nedod Dievs, ja tu esi iekšā no cilpas ar milzīgu datni simtiem tūkstošiem vārdu. That gaisvadu gatavojas pievienot un pievienot un pievienot un pievienot augšu. Par instrumentu, piemēram, tas, tas ir iespējams, nav labākais valodu lietot, lai īstenotu pareizrakstības pārbaudītājs ja neatliekamību ir interese jūsu lietotājiem un jums. Bet luksusa mums ir brīdi ir, ja tu izmantot, piemēram, PHP valodas vai no interpretēt valodu daudz saistībā ar Web, lai šo jautājumu, jums ir labā ka internets ir daudz lēnāks nekā vairumam datoru. Jums ir GHz CPU datoru, 2 GHz, varbūt pat vairāk šajās dienās. Bet realitāte ir internetā ir liels daudzums latentuma turklāt attiecībā pārlūkprogrammu runāt ar serveri, lai gan mēs redzējām pagājušajā nedēļā ka ir diezgan ātri, puse milisekunžu vai arī tā, ka pārāk iznāk, un, ja jūs lejupielādējot lietas, piemēram attēlu vai Facebook foto vai iegūt tūlītējos ziņojumus nekā Facebook pļāpāšana, Gchat vai līdzīgi, visi šie turp-atpakaļ laikos starp pārlūkprogrammu un serveri sākt pievienot uz augšu, kas padara jūsu konkrēto valodas izvēli daudzos gadījumos ne viss, kas nepieciešams, lai jūs esat naudas sodu, izmantojot mazliet lēnāks valodu piemēram, PHP vai Python vai Ruby bet par kuriem ir milzīgs upsides uz jums un jūsu kolēģiem un jūsu draugi, jo jūs varat īstenot lietas tik, tik daudz ātrāk. Un turklāt, jums ir daudz mazāks risks, atsevišķu drošības trūkumus. Tur nekādas PHP norādes. Nav SEG kļūmes, ka jūs varat viegli inducēt tāpat tu varētu C. Ar C jūs esat super tuvu aparatūru. Ar PHP un līdzīgi valodā tu esi veida augstākā līmenī, tā teikt, ar daudz aizsargspējas starp jums un ko patiesībā notiek iekārtas iekšpusē, un tas ir tikai tradeoff. Mums ir gotten līdz vietai, kam šie mūsdienīgu, augsta līmeņa valodām piemēram, PHP, jo gūto pieredzi tādās valodās kā PHP C. Bet, ja jūs nesaprotat, ko ir bijis notiek zem pārsega visu šo laiku Jūs, protams, nevar izdarīt pareizo lēmumu, un protams, ja runa ir par darbu citā vietā, piemēram, Facebook vai Google vai kādu no šīm vietām, kas kļūst arvien spēlē ar lielu datu kopu pat ja jūs iet atpakaļ un darīt premed un strādā ar kādu MD par dažiem lieliem datu kopas iesaistīt pacientus un ārstus un, piemēram, izmantojot pareizos instrumentus, ir ļoti pārliecinošs jo citādi jūsu analīzi par dažu datu kopas varētu veikt sekundes, vai tas varētu burtiski veikt stundas. Šis ir tikai viens piemērs, nevis sagraut jums ar to, cik daudz lielāku piepūli tas bija C, bet, lai palīdzētu jums novērtēt, ka tad, kad jūs ieviest kaut ko C jūs tiešām saprast, vai teorētiski, īsti saprast cik viss ir vai būtu darba, un jums ir gandrīz pilnīga kontrole pār to, kas notiek zem pārsega, un ar šīm augstāka līmeņa valodām Jums ir atteikties lielāku kontroli, lai cilvēkiem, kas izgudroja tos un ir pakļauti vairāk, lai to dizaina lēmumiem nekā jums. Bet, ja mēs uzskatām par pašsaprotamu, ka sniegums nav tik svarīgi tīmeklī dēļ šiem citiem jautājumiem, Tikai tīkla ātrums ir nedaudz lēnāks nekā CPU ātrumu vienalga, lai mēs varētu sakārtot par atļauties izmantot mazliet lēnāks valodu ja upsides mēs varam attīstīt lietas 10 reizes ātrāk vai pat vairāk. Let 's redzēt, kā mēs varam sākt izmantot šo. Ļaujiet man aiziet uz mapi starp mūsdienu piemēriem sauc frosh.ims, un tas bija tiešām personīgi motivēts ar to, ka pati pirmā lieta Es uzrakstīju par Web gadus atpakaļ, ņemot CS50 un CS51 bija mājas par Frosh ARS programmā, pirmkursnieks Iekšējās sporta, kas tajā laikā tas bija pietiekami gadus atpakaļ, ka tajā laikā nebija programmai mājas lapā, lai gan tur bija Web, un tā vietā bija proktors jo Wigglesworth kurā, ja jūs vēlējāties lai reģistrētos volejbolu vai futbolu vai kāds jūs varētu aizpildīt papīra. Jūs tad staigāt pāri pagalmam. Jūs tad klauvē pie viņu durvīm un slidkalniņu to durvīm vai rokas uz Proctor papīra gabals ar savu vārdu par to, vai jūs vēlaties būt komandas kapteinis, kādi sporta jūs vēlētos darīt, un ko kopmītnes jums bija iekšā Tā bija sava veida vecās skolas veids, kā to lietas, un tas bija galvenais iespēja automatizēt daudz šajā procesā. Jūs dodieties uz mājas lapā. Jūs rakstīt kaut iekšā Jūs saņemsiet apstiprinājuma e-pastu, un uzplaukums, jūs darīts. Tas bija pats pirmais, ko es darīju, lai arī valodu sauc Pearl, bet tas ir salīdzinoši viegli darīt PHP, un tas ir sava veida pārstāvja no problēmas, jūs varat sākt risināt, ja jūs varat izteikt sevi pragmatiski un nav jāpaļaujas uz lietām, piemēram, Google vietnes vai Excel vai instrumenti, kas tiek nodotas ar jums. Jums puiši tagad ir iespēja darīt lietas, kā šis. Tas ir super neglīts versija formas, bet pieņemsim tikai izmantot to, lai sarunas sākumā kuru tas ir apmēram, ko formas izskatījās gadiem par mums lai cilvēki tīmeklī pierakstīties uz Frosh IP. Mēs lūdza vārdu, ar rūtiņu par to, vai viņi gribēja būt kapteinis, vīrietis vai sieviete, un tad ko kopmītnes viņi, un tad viņi varētu iesniegt šo veidlapu. Lets vispirms apskatīt zem motora pārsega pie HTML, kas pārstāv šo mājas lapu. Ļaujiet man iet froshims0, un kā malā, par 7 PSET es esmu ņemot par pašsaprotamu katalogi un mapes, ka es varēšu lietas iekšā Mēs jums palīdzēsim, kur tieši sīkumi ir iet armatūru, kas mod komandas jums ir palaist, tāpēc nav jāuztraucas par visiem stulba ziņas sinhronizēšana in no get-go šeit. Labi, šeit ir froshims0.php. Ļaujiet man ritiniet uz leju, un kas ir ziņkārīgs šeit, Tas ir PHP failu, bet to, kas iekšpusē tā, skaidri? Tas ir visai daudz HTML, un tiešām, PHP pirmsākumi tiešām bija par to Web orientētus valoda. Pirms brīža mēs to izmanto, lai īstenotu alus piemērs, nosacījumi Piemēram, sveiki piemērs, un tas ir jauki. Jūs varat izmantot PHP kā skriptu valoda ja skripts ir tiešām tikai nomenklatūra dota ātri un netīro programmas vai kaut kas jums rakstīt scenāriju vai vispār jāinterpretē valodu. PHP ir super noderīga, jo jūs esat redzējuši, cik ātri salīdzinoši mēs varam sakult programmas PHP. Bet tas bija tiešām paredzēts izmantot, lai Web, un paredzēti Web tādā nozīmē, ka ieraudzīt šeit augšpusē faila Es sāktu ar