1 00:00:00,000 --> 00:00:03,920 >> [Muusika mängimine] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. Humala: Hea küll. 4 00:00:13,800 --> 00:00:15,640 See on CS50. 5 00:00:15,640 --> 00:00:17,620 See on algusest nädalal kaheksa. 6 00:00:17,620 --> 00:00:22,440 Ja te võib-olla mäletate, et jätsime maha viimane aeg vaadata uue keele 7 00:00:22,440 --> 00:00:23,240 kokku. 8 00:00:23,240 --> 00:00:25,905 Tegelikult on üks, mis on üsna kerge ja see ei ole isegi 9 00:00:25,905 --> 00:00:26,940 programmeerimiskeelt. 10 00:00:26,940 --> 00:00:31,100 See on märgistuskeel, mis laseb meil tegelikult struktureerida ja teha veebilehti. 11 00:00:31,100 --> 00:00:33,350 Ja kui sa midagi muud koos see-- 12 00:00:33,350 --> 00:00:35,670 või sa varsti, kui te pole veel. 13 00:00:35,670 --> 00:00:38,530 Me ei kavatse kasutada Cascading Style Sheets või CSS, mis 14 00:00:38,530 --> 00:00:40,971 on teist tüüpi keelt mille omadusi ja väärtusi 15 00:00:40,971 --> 00:00:43,220 et läheb tehkem Asjad muuta värvi 16 00:00:43,220 --> 00:00:46,010 ja asendit muuta ja selliseid lisasid. 17 00:00:46,010 --> 00:00:49,940 Aga täna ja edasi, hakkame keskenduda võimsam keeles 18 00:00:49,940 --> 00:00:52,810 tegelik programmeerimiskeeli nagu PHP. 19 00:00:52,810 --> 00:00:54,880 >> Nii et PHP on olnud juba mõnda aega. 20 00:00:54,880 --> 00:00:56,810 Ja nagu näete, see kavandati peamiselt 21 00:00:56,810 --> 00:01:00,280 varakult tegeliku kasutada veebi arengut 22 00:01:00,280 --> 00:01:02,360 ja tegelikult teeniva veebilehti. 23 00:01:02,360 --> 00:01:04,849 Mis liiki funktsioone ei keel 24 00:01:04,849 --> 00:01:10,040 vaja selleks, et muuta veebi lehti dünaamiliselt on? 25 00:01:10,040 --> 00:01:14,760 >> Teisisõnu, kui soovite, et luua sisu dynamically-- nagu Facebook 26 00:01:14,760 --> 00:01:19,480 Uudistevoog, mis on pidevalt muutuv, või kiirsõnumeid et pop-up aeg 27 00:01:19,480 --> 00:01:21,872 et AEG_ nagu milline on tähtsaim osa funktsionaalsusest 28 00:01:21,872 --> 00:01:24,580 vajate programmeerimiskeelt mis oleks teile dünaamiliselt 29 00:01:24,580 --> 00:01:28,070 prindi uut teavet ekraanil? 30 00:01:28,070 --> 00:01:28,685 >> Õpilane: Code. 31 00:01:28,685 --> 00:01:29,560 DAVID J. Humala: Code. 32 00:01:29,560 --> 00:01:30,440 OK. 33 00:01:30,440 --> 00:01:31,995 Võtame seda. 34 00:01:31,995 --> 00:01:35,310 Veidi täpsem. 35 00:01:35,310 --> 00:01:37,639 Ma mõtlen, et me võiksime teha seda C, ausalt. 36 00:01:37,639 --> 00:01:38,930 Oleks valu kaela. 37 00:01:38,930 --> 00:01:41,045 Aga-- see kohustus? 38 00:01:41,045 --> 00:01:41,895 >> Õpilane: Jah. 39 00:01:41,895 --> 00:01:42,677 Muutujad, äkki? 40 00:01:42,677 --> 00:01:43,760 DAVID J. Humala: muutujad. 41 00:01:43,760 --> 00:01:44,160 OK, muidugi. 42 00:01:44,160 --> 00:01:45,740 Muutujad võivad kindlasti aitab meid välja. 43 00:01:45,740 --> 00:01:47,020 Ja isegi midagi lihtsamat. 44 00:01:47,020 --> 00:01:50,640 Me kasutasime seda juba esimesest programm juba esimesel päeval 45 00:01:50,640 --> 00:01:55,686 kui me tegelikult ütles "hello world". 46 00:01:55,686 --> 00:01:56,570 >> Õpilane: Print. 47 00:01:56,570 --> 00:01:57,778 >> DAVID J. Humala: Print, eks? 48 00:01:57,778 --> 00:02:01,050 Trüki või printf sisse maailma C. Nii et kõik see aeg, 49 00:02:01,050 --> 00:02:03,362 oleme olnud meie kõrvaldamise language-- C 50 00:02:03,362 --> 00:02:05,570 aastal particular-- ja isegi Scratch, et asi, mis 51 00:02:05,570 --> 00:02:07,400 võib tekitada tekstijadasid. 52 00:02:07,400 --> 00:02:11,090 >> Noh, kui HTML, nagu me nägime eelmisel nädalal, on lihtsalt terve hunnik tekstijadasid 53 00:02:11,090 --> 00:02:14,692 ehkki avatud sulgudes ja suletud sulgudes ja mingi riim 54 00:02:14,692 --> 00:02:16,650 ja põhjus selle taga, ka siis võiksime tõesti 55 00:02:16,650 --> 00:02:20,440 alustada teeniva veebilehti kas käsitsi kirjutades neid läbi gedit 56 00:02:20,440 --> 00:02:23,870 või Microsoft Wordi, sest see matter-- me lihtsalt vaja tekstiredaktor. 57 00:02:23,870 --> 00:02:26,830 >> Või võiksime kirjutada koodi, Sinu soovitus 58 00:02:26,830 --> 00:02:30,435 varem, et oleks meile dünaamiliselt HTML, 59 00:02:30,435 --> 00:02:32,560 ja see, mida me ei kavatse algust teha PHP 60 00:02:32,560 --> 00:02:34,900 ja lõpuks isegi keeles nimetatakse JavaScript, 61 00:02:34,900 --> 00:02:37,910 on ühes keeles, et tekitada teise. 62 00:02:37,910 --> 00:02:40,720 Ja tõepoolest, see on see, mida Facebook ja paljud, paljud teised saidid 63 00:02:40,720 --> 00:02:44,530 teha, et tegelikult dünaamiliselt näidata teile uut infot. 64 00:02:44,530 --> 00:02:47,117 >> Nii et olgem algab see-- segasena otsin rida, vaid üks 65 00:02:47,117 --> 00:02:48,450 see on tegelikult päris võimas. 66 00:02:48,450 --> 00:02:51,210 Siiani oleme kasutanud C, mis on koostatud keeles. 67 00:02:51,210 --> 00:02:55,050 Ja just kiire recap-- koostatud keel on see, mis iseloomulik? 68 00:02:55,050 --> 00:02:59,050 Sa ilmselt vaja koostada ta, kuid mida see tähendab? 69 00:02:59,050 --> 00:03:00,505 Jah? 70 00:03:00,505 --> 00:03:02,940 >> Õpilane: See peab olema koondatud masina koodi. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. Humala: OK. 72 00:03:03,060 --> 00:03:04,530 See peab olema paigaldatud masinkoodiks. 73 00:03:04,530 --> 00:03:07,340 Nii et te võtate oma lähtekoodi, mis on omamoodi inglise moodi. 74 00:03:07,340 --> 00:03:09,270 Sa teisendada, et midagi madalamat, 75 00:03:09,270 --> 00:03:11,590 mis lõppkokkuvõttes nimetatakse objekti code-- 0-ja 1-d. 76 00:03:11,590 --> 00:03:14,830 Ja see on nende 0-ja 1-d, et CPU, nagu need, mida Intel, 77 00:03:14,830 --> 00:03:16,110 tegelikult mõista. 78 00:03:16,110 --> 00:03:19,690 >> Nüüd, PHP ja Python ja Ruby ja JavaScript ja kobarad muu 79 00:03:19,690 --> 00:03:23,190 keeltes ei koguta keelt, kuid on tõlgendanud keeles 80 00:03:23,190 --> 00:03:26,630 mis tähendab, et sa lihtsalt kirjutada neid ja siis sa ei muuta need 0-ja 1-d. 81 00:03:26,630 --> 00:03:30,790 Sa mitte ainult anda siis, kui sisend kellegi programmi 82 00:03:30,790 --> 00:03:32,080 nimetatakse tõlk. 83 00:03:32,080 --> 00:03:34,460 Ja selle isiku Programm on kavandatud 84 00:03:34,460 --> 00:03:38,280 mõista, mida iga ja Iga sümbol Python või PHP 85 00:03:38,280 --> 00:03:42,650 või Ruby või mitmeid teistes keeltes tähendab. 86 00:03:42,650 --> 00:03:44,760 >> Ja nii kõik, mida me vajame, on midagi sellist. 87 00:03:44,760 --> 00:03:46,350 Nii et tegelikult ma lähen minna üle seadmetele 88 00:03:46,350 --> 00:03:48,100 siin, just ühessegi vana akna ja me oleme 89 00:03:48,100 --> 00:03:52,580 läheb minna ja avatud faili nimega, ütleme, tere. 90 00:03:52,580 --> 00:03:55,780 Nüüd varem, ma oleks säästnud seda isegi juhul, kui faililaiend, 91 00:03:55,780 --> 00:03:57,910 aga ma lähen tegema midagi veelgi lihtsam siin. 92 00:03:57,910 --> 00:04:02,450 Ma lähen edasi minna ja alustada see fail on segasena süntaks. 93 00:04:02,450 --> 00:04:06,310 Nii et "kasutaja, bin, env, keskkonna, php. " 94 00:04:06,310 --> 00:04:10,670 >> See on lihtsalt üks rida koodi, mis on ütle oma operatsioonisüsteemi, 95 00:04:10,670 --> 00:04:13,730 minna leida oma kohaliku keskkond iganes see on, 96 00:04:13,730 --> 00:04:18,149 kus PHP on-- interpreter-- ja minna ja kasutada seda tõlk 97 00:04:18,149 --> 00:04:20,589 tõlgendada järgmine kood. 98 00:04:20,589 --> 00:04:22,760 Nüüd on see omamoodi kole omadus PHP. 99 00:04:22,760 --> 00:04:24,980 Aga selles keeles, mis tahes kord, kui kirjutada PHP koodi 100 00:04:24,980 --> 00:04:29,200 sa pead olema üks nendest inetu PHP silte piiritlemise alguses 101 00:04:29,200 --> 00:04:32,220 Teie code-- 00:04:37,430 >> Aga allpool siin, ma ei saa nüüd midagi üsna lihtne, nagu printf hello komaga 103 00:04:37,430 --> 00:04:40,922 maailma längkriipsu n lähedal quote lähedal sulgudes. 104 00:04:40,922 --> 00:04:42,630 Ja siis lihtsalt hea meede, ma lähen 105 00:04:42,630 --> 00:04:45,380 minna ja lähedal minu php tag siia 106 00:04:45,380 --> 00:04:47,390 nii, et kõik välja kenasti päris trükitud. 107 00:04:47,390 --> 00:04:50,780 >> Ja kui ma vajutan Salvesta gedit on tegelikult piisavalt tark 108 00:04:50,780 --> 00:04:54,620 vaadata, et väga esimest rida ja mõistma, oh, sa oled kirjalikult PHP koodi. 109 00:04:54,620 --> 00:04:56,710 Lubage mul süntaksi esiletõstu seda värvi 110 00:04:56,710 --> 00:04:58,690 siin nii, et see tähistab läbi veidi rohkem. 111 00:04:58,690 --> 00:05:01,300 Aga nüüd ma lähen alla minu terminalis. 112 00:05:01,300 --> 00:05:02,340 Ma suumida. 113 00:05:02,340 --> 00:05:06,860 >> See programm oli "tere" nii et ma lähen tegema dot kaldkriipsuga hello, 114 00:05:06,860 --> 00:05:07,990 aga luba keelduda. 115 00:05:07,990 --> 00:05:08,490 Ja bash. 116 00:05:08,490 --> 00:05:10,610 Me tegelikult kuulnud, et asi paar nädalat tagasi 117 00:05:10,610 --> 00:05:13,140 kontekstis Shellshock, üks neist vead. 118 00:05:13,140 --> 00:05:16,240 >> Aga keelati oleme näinud enne, ehk erinevas kontekstis. 119 00:05:16,240 --> 00:05:19,060 Kas keegi meelde tuletada, kuidas võite määrata midagi 120 00:05:19,060 --> 00:05:22,100 kui luba ei anta nagu see on? 121 00:05:22,100 --> 00:05:23,490 Mis on käsk, vähemalt? 122 00:05:23,490 --> 00:05:24,159 >> Õpilane: Chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. Humala: Jah, chmod, muutmise režiimis faili. 124 00:05:26,700 --> 00:05:30,171 Ja sa saad seda enam kasutada Käesoleva järgmisel nädalal hilisema probleemi 125 00:05:30,171 --> 00:05:30,670 määratud. 126 00:05:30,670 --> 00:05:33,211 Aga nüüd ma lähen muuta režiim ei tohi olla loetav, 127 00:05:33,211 --> 00:05:36,650 aga anda igaühele executeability privileegid, võime 128 00:05:36,650 --> 00:05:37,710 käivitada seda faili. 129 00:05:37,710 --> 00:05:40,360 Ja ma lähen anda et faili tere. 130 00:05:40,360 --> 00:05:45,150 >> Kui ma nüüd tegema dot kaldkriipsuga tere siseneda, siis Vaata, tegelikult mu programm, hello world. 131 00:05:45,150 --> 00:05:48,760 Ja milline samm tegin ma selgelt jäta üldse? 132 00:05:48,760 --> 00:05:49,520 Koostamine. 133 00:05:49,520 --> 00:05:51,680 Nii et ma lihtsalt jooksin selle programmi lihtsalt. 134 00:05:51,680 --> 00:05:55,690 >> Ja selgub, saate seda teha koos palju süntaks meenutab C. 135 00:05:55,690 --> 00:06:03,400 Lubage mul minna tänase koodi mida ma panna minu vhost kataloog 136 00:06:03,400 --> 00:06:05,250 siin, sest tegelikud põhjused me tuleme tagasi. 137 00:06:05,250 --> 00:06:09,350 Ja ma lähen minema, oletame, tingimused 1. 138 00:06:09,350 --> 00:06:12,450 >> Ja näete, siin esimene ja eelkõige on terve hulk kommentaare. 139 00:06:12,450 --> 00:06:15,240 Aga see on tegelikult uuesti luua PHP 140 00:06:15,240 --> 00:06:18,960 programmi tegime nädal üks nn tingimused 1.c 141 00:06:18,960 --> 00:06:20,690 kui selleks elu on see programm 142 00:06:20,690 --> 00:06:22,950 on ilmselt küsida kasutaja täisarv 143 00:06:22,950 --> 00:06:25,270 ja seejärel teha mõned kohev analüüsi selle kohta, mille 144 00:06:25,270 --> 00:06:29,510 te ütlete, kas see on positiivne või negatiivne või võrdne nulliga. 145 00:06:29,510 --> 00:06:34,220 Ja ma toon selle üles ainult sellepärast, ehk välja arvatud üks väike detail, 146 00:06:34,220 --> 00:06:37,150 see on eristamatu nii kaugel C. 147 00:06:37,150 --> 00:06:39,930 >> Mis on üks omadus siin, et äkki hüppab 148 00:06:39,930 --> 00:06:41,410 sind nagu veidi teistsugune? 149 00:06:41,410 --> 00:06:42,160 Võib-olla kaks asja. 150 00:06:42,160 --> 00:06:42,660 Jah? 151 00:06:42,660 --> 00:06:44,070 >> Õpilane: Dollar märk n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. Humala: Jah. 153 00:06:44,944 --> 00:06:46,210 Nii et dollari märk n on kohal. 154 00:06:46,210 --> 00:06:48,120 Ja dollari märgid, nagu me näeme, ei kavatse 155 00:06:48,120 --> 00:06:51,460 olema fix algusesse mis tahes muutuja PHP. 156 00:06:51,460 --> 00:06:54,250 See on nii hea ja bad-- hea et see on omamoodi selge, mis on 157 00:06:54,250 --> 00:06:56,797 muutuja, halb, et see on veel üks asi, mida kirjutad. 158 00:06:56,797 --> 00:06:58,630 Ja seal on üks teine asi, mida me ei ole päris 159 00:06:58,630 --> 00:07:00,876 näinud, vähemalt selle õigekirja. yeah? 160 00:07:00,876 --> 00:07:01,630 >> Õpilane: Dialoog, Readline. 161 00:07:01,630 --> 00:07:02,671 >> DAVID J. Humala: Dialoog, Readline. 162 00:07:02,671 --> 00:07:06,550 Readline me ei näe iseenesest sisse C, kuigi on olemas midagi 163 00:07:06,550 --> 00:07:09,530 sarnased, kuid me oleme kasutatakse getString, ja see on tema vaste. 164 00:07:09,530 --> 00:07:12,950 Nii et kui ma lähen sinna kataloog, mis juhtub olema, 165 00:07:12,950 --> 00:07:18,030 kui ma seletan natuke minu vhost Kataloog ja mu allikas kataloog, 166 00:07:18,030 --> 00:07:22,730 ja ma minna ja teha dot kaldkriips conditions-- whoops-- dot kaldkriips 167 00:07:22,730 --> 00:07:26,710 tingimused 1, näete jälle Samal issue-- loata keelatud. 168 00:07:26,710 --> 00:07:33,610 >> Nii et lubage mul suumida ja teha chmod pluss x tingimustel, dot kaldkriipsuga tingimustes. 169 00:07:33,610 --> 00:07:35,222 Sooviksin täisarv, siis 50. 170 00:07:35,222 --> 00:07:36,930 Ja me võiks mängida seda mäng kogu päeva pikkune. 171 00:07:36,930 --> 00:07:39,140 See saab käituda täpselt nagu ta tegi nädalas ühe. 172 00:07:39,140 --> 00:07:42,860 >> OK, siis ei erine, välja arvatud mitte ainult, et väike natuke süntaks, 173 00:07:42,860 --> 00:07:45,490 aga tipus, ma jälle oli see rida, mis 174 00:07:45,490 --> 00:07:49,760 võimaldas mul luua midagi, mis näeb välja nagu C programmi nimega hello, 175 00:07:49,760 --> 00:07:51,150 kutsunud tingimused 1. 176 00:07:51,150 --> 00:07:54,520 Aga see ei ole 0 tema ja need, Ma täidesaatva otse. 177 00:07:54,520 --> 00:07:57,620 See on selle asemel töötab see tõlk, kelle nimi 178 00:07:57,620 --> 00:07:59,440 juhtub olema identne keeles. 179 00:07:59,440 --> 00:08:04,970 Programm on kutsutud PHP, ja minu kood allpool joont üks on läinud seda. 180 00:08:04,970 --> 00:08:07,740 >> Me saame seda teha veel üsna lihtne Näiteks meenutab midagi 181 00:08:07,740 --> 00:08:09,240 tegime nädalat tagasi. 182 00:08:09,240 --> 00:08:12,020 Jällegi, see on omamoodi suvalise tüki koodi 183 00:08:12,020 --> 00:08:14,000 et ilmselt ei mis siis, kui sa jooksed ta? 184 00:08:14,000 --> 00:08:15,625 Mis see trükkimineku, arvatavasti? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Nii et esialgu on line 16, see on ütlen x on nüüd 2, ilmselt. 187 00:08:28,250 --> 00:08:30,920 % D on samad $ i printf. 188 00:08:30,920 --> 00:08:33,460 Nõnda siis on cubing, dot, dot, dot, vastavalt 17. 189 00:08:33,460 --> 00:08:36,299 Ja siis ühel joonel 18 ilmub helistada funktsioon Cubed. 190 00:08:36,299 --> 00:08:37,600 Ja kus on Cubed määratleda? 191 00:08:37,600 --> 00:08:40,319 >> Noh, tundub, vastavalt 25, nii et see pole veel kõik, mis erinevad. 192 00:08:40,319 --> 00:08:42,610 Mul on mõned kommentaarid eespool , kuid enamasti, 193 00:08:42,610 --> 00:08:45,370 see on üsna lihtne teisaldamise või ümberehitamiseks 194 00:08:45,370 --> 00:08:48,470 alates C programmi PHP versioon. 195 00:08:48,470 --> 00:08:52,670 Aga nüüd on paar erinevusi, et äkki peaks välja hüppama. 196 00:08:52,670 --> 00:08:56,100 Mida muud on erinev, kuidas te võiksid kirjutada selle sama programmi C? 197 00:08:56,100 --> 00:08:57,900 >> Õpilane: [kuuldamatu]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. Humala: Ei ei prototüüp kuni top. 199 00:09:00,070 --> 00:09:03,210 Nii PHP-- ja ausalt öeldes, Palju kaasaegseid languages-- 200 00:09:03,210 --> 00:09:06,920 on palju targemaks ja rohkem abivalmis kui C koostajad, et sa 201 00:09:06,920 --> 00:09:09,740 panna funktsioon siin, võite panna funktsioon siin, 202 00:09:09,740 --> 00:09:12,740 ja tõlk läheb teha teile kasuks lugemine 203 00:09:12,740 --> 00:09:16,010 kogu faili enne kui ta otsustab et mõni funktsioon ei ole olemas. 204 00:09:16,010 --> 00:09:17,970 Nii kena paranemist aastat hiljem. 205 00:09:17,970 --> 00:09:22,126 Aga seal on ka midagi muidu erinev või puudub siin. 206 00:09:22,126 --> 00:09:22,626 Jah? 207 00:09:22,626 --> 00:09:25,084 >> Õpilane: [kuuldamatu]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. Humala: Me ei pea tunnistada tüüpi muutujad, 209 00:09:27,750 --> 00:09:31,780 nii et me näeme peagi, et on olemas eri liiki PHP, 210 00:09:31,780 --> 00:09:34,970 aga sa ei pea nende määramist, mis samuti on nii häid kui halbu. 211 00:09:34,970 --> 00:09:36,623 Ja seal on üks asi puudu. 212 00:09:36,623 --> 00:09:37,430 >> Õpilane: Ei ole raamatukogudes. 213 00:09:37,430 --> 00:09:38,630 >> DAVID J. Humala: Ei ole raamatukogudes. 214 00:09:38,630 --> 00:09:39,350 OK, nii et see on kena. 215 00:09:39,350 --> 00:09:40,540 Me saame palju rohkem karbist. 216 00:09:40,540 --> 00:09:43,373 Nii et seal on tegelikult palju rohkem asju, kui ma arvasin olid erinevad. 217 00:09:43,373 --> 00:09:44,350 Kuidas, kuidas tagasi saada? 218 00:09:44,350 --> 00:09:46,032 Mis see on? 219 00:09:46,032 --> 00:09:46,740 Ütle seda veelkord? 220 00:09:46,740 --> 00:09:47,960 >> Õpilane: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. Humala: No suunanäitajaks. 222 00:09:49,270 --> 00:09:51,280 OK, vähemalt selles näites, ei. 223 00:09:51,280 --> 00:09:52,070 See on õiglane. 224 00:09:52,070 --> 00:09:55,090 Nii et ei ole viiteid PHP tegelikult üldiselt. 225 00:09:55,090 --> 00:09:58,730 On midagi, mida nimetatakse viited kuid me ei veedavad liiga palju aega seal. 226 00:09:58,730 --> 00:09:59,520 Ja mis veel? 227 00:09:59,520 --> 00:10:00,185 >> Õpilane: Main. 228 00:10:00,185 --> 00:10:01,060 DAVID J. Humala: Main. 229 00:10:01,060 --> 00:10:02,768 Minu jaoks oli see pisiasi Ma mõtlesin. 230 00:10:02,768 --> 00:10:04,660 Pange tähele, seal ei ole peamine koht. 231 00:10:04,660 --> 00:10:06,525 Sa lihtsalt hakake kirjutama koodi. 232 00:10:06,525 --> 00:10:08,400 Ja see on tegelikult saab olema kasulik 233 00:10:08,400 --> 00:10:10,560 kui me üleminek hetkeks tegelikult kasutades 234 00:10:10,560 --> 00:10:13,980 sama keele veebipõhine programmeerimine, mis meil 235 00:10:13,980 --> 00:10:16,580 ei taha olla vaid üks sisenemispunkti. 236 00:10:16,580 --> 00:10:19,980 Me tahta on hunnik URL hunnik erinevaid faile 237 00:10:19,980 --> 00:10:22,930 kõik võtmine kasutaja sisend ja toodangut. 238 00:10:22,930 --> 00:10:27,130 >> Aga siin on väga ehmatavam Näiteks, et ma lubasin eelmine kord, 239 00:10:27,130 --> 00:10:30,130 nimelt selles kaustas siin, õigekirjavead. 240 00:10:30,130 --> 00:10:33,680 Nii et see fail speller, mida me ei kuluta liiga palju aega, on 241 00:10:33,680 --> 00:10:37,870 sisuliselt porting-- P-O-R-T. See on lihtsalt sõna antud, kui, ütleme, 242 00:10:37,870 --> 00:10:40,800 teil teisendada ühest keelest teise käsitsi tavaliselt. 243 00:10:40,800 --> 00:10:45,680 >> See on teisaldamise PC versioon speller alates pset 5. 244 00:10:45,680 --> 00:10:48,856 Ja ma põhiliselt püüdnud teisendada see rida-realt nii palju kui suudan. 245 00:10:48,856 --> 00:10:51,730 Nii et kui teile meeldib selline asi, see tegelikult on väärt mingil hetkel 246 00:10:51,730 --> 00:10:54,229 tõmmates neid mõlemaid üles külg pool ja nähes, mida on sama 247 00:10:54,229 --> 00:10:55,230 ja mis on teistest erinev. 248 00:10:55,230 --> 00:10:57,510 Aga nad on üsna darn sarnased. 249 00:10:57,510 --> 00:11:00,110 Kui te mäletate, milline speller isegi tundus, 250 00:11:00,110 --> 00:11:02,110 isegi kui te ei peame muutma seda faili 251 00:11:02,110 --> 00:11:04,860 see on päris sarnased struktuurilt vaid paari 252 00:11:04,860 --> 00:11:06,200 muutuste siin ja seal. 253 00:11:06,200 --> 00:11:10,140 >> Nii et see on ainult öelda, et see on päris lihtne teisendada speller 254 00:11:10,140 --> 00:11:12,000 C PHP. 255 00:11:12,000 --> 00:11:15,390 Aga sõnastik, seal midagi veelgi selgem. 256 00:11:15,390 --> 00:11:19,270 Lubage mul minna ja luua minu dictionary.php faili. 257 00:11:19,270 --> 00:11:24,010 Nii et veidi teistsugune, kuna me nimetame seda .php asemel .c. 258 00:11:24,010 --> 00:11:26,980 Sest see on PHP fail, ma do-- veidi annoyingly-- on 259 00:11:26,980 --> 00:11:30,132 alustada faili php tag niimoodi. 260 00:11:30,132 --> 00:11:32,340 Ja ma lähen edasi minna ja määratleda mõned funktsioonid. 261 00:11:32,340 --> 00:11:35,770 Funktsioon nimega vaadata, mis on kavatseme ühesõnaga nagu enne. 262 00:11:35,770 --> 00:11:37,520 Kuid see argument on läheb on dollari 263 00:11:37,520 --> 00:11:39,840 kirjutada, sest me jällegi kasutades PHP. 264 00:11:39,840 --> 00:11:42,350 Teine funktsioon dictionary.c oli koormus 265 00:11:42,350 --> 00:11:47,120 ja ta võttis nime sõnastikku nii et ma saan selle funktsiooni valmis minema. 266 00:11:47,120 --> 00:11:50,920 >> Veel üks dictionary.c oli mis? 267 00:11:50,920 --> 00:11:54,580 Suurus oli üks nicest ones kell Vähemalt siis, kui te hoida teatud muutuja ümber. 268 00:11:54,580 --> 00:11:57,830 nii suuruse lihtsalt on tagasi muutuv. 269 00:11:57,830 --> 00:11:59,090 Ja siis oli maha laadida. 270 00:11:59,090 --> 00:12:02,830 >> Nii oli neid neli funktsioonid probleem seatud 5 271 00:12:02,830 --> 00:12:06,770 et teil on vaja rakendada koos mõned andmed konstruktsioon või konstruktsioonid. 272 00:12:06,770 --> 00:12:10,170 Ma lubasin, et PHP, saame kuulutada 273 00:12:10,170 --> 00:12:14,490 hash tabelit, näiteks kõik see kergemini. 274 00:12:14,490 --> 00:12:17,377 Tegelikult, kui ma tahan, hash tabelis Ma lihtsalt lähen niimoodi 275 00:12:17,377 --> 00:12:18,460 ja seal on minu hash tabelis. 276 00:12:18,460 --> 00:12:21,555 Ja see on märkus, ehmatavam, et jätsime maha viimane kord. 277 00:12:21,555 --> 00:12:23,930 Ja tead mis, kui ma tahtsin Muutuva suuruse, noh, 278 00:12:23,930 --> 00:12:25,867 see pole veel kõik erine C, 279 00:12:25,867 --> 00:12:27,450 aga ma lähen edasi minna ja seda teha. 280 00:12:27,450 --> 00:12:28,630 Ja teate andmed ei ole tüüp. 281 00:12:28,630 --> 00:12:31,180 Ja ma lähen hiljem tagasi ja tegelikult lisada mõned kommentaarid siin. 282 00:12:31,180 --> 00:12:32,480 Aga koormus? 283 00:12:32,480 --> 00:12:35,780 >> Kui dollari märk sõnastik on nimi minu faili 284 00:12:35,780 --> 00:12:39,600 ja ma tegelikult tahan last sõnad selles tabelis nüüd, 285 00:12:39,600 --> 00:12:42,360 Ma ei saa tegelikult teha midagi üsna lihtne. 286 00:12:42,360 --> 00:12:44,880 One-- ja see on minorly annoying-- PHP, 287 00:12:44,880 --> 00:12:47,710 siis pead määrama sees funktsiooni, kui teil 288 00:12:47,710 --> 00:12:51,060 soovite juurdepääsu teatud globaalse muutuja, mis on määratletud väljaspool. 289 00:12:51,060 --> 00:12:53,530 >> Aga see pole eriti huvitav kohe. 290 00:12:53,530 --> 00:12:57,920 Veelgi enam huvitav on see iga ehitada mainisin viimast korda. 291 00:12:57,920 --> 00:13:01,880 Ja selgub, et PHP on funktsioon nimega faili, mille eesmärk elus 292 00:13:01,880 --> 00:13:05,550 on avada fail ja lugeda kõik selle ridade massiivi 293 00:13:05,550 --> 00:13:06,840 ja anda need tagasi. 294 00:13:06,840 --> 00:13:12,170 >> Kumb on öelda, mida ma teha saan sõnastikku et nüüd tõhusalt, kui ma kutsun faili 295 00:13:12,170 --> 00:13:15,472 see saab anda mulle tagasi massiiv sõnadest failist. 296 00:13:15,472 --> 00:13:16,430 See pole veel kõik, mis hea. 297 00:13:16,430 --> 00:13:20,130 See on ikka veel joont sõnade midagi lineaarne. 298 00:13:20,130 --> 00:13:23,880 Aga ma ei saa minna ja kinnitada, üle iga sõna, kasutades 299 00:13:23,880 --> 00:13:25,710 et süntaks nägime korraks viimast korda. 300 00:13:25,710 --> 00:13:27,940 Ja te näete seda rohkem tulemas pset. 301 00:13:27,940 --> 00:13:32,070 >> Aga nüüd on mul loop iterating üle iga sõna sõnastikus. 302 00:13:32,070 --> 00:13:36,100 Ja iga iteratsiooni, mäletate ma olen helistades praegune sõna "sõna". 303 00:13:36,100 --> 00:13:39,790 Ja kõik see aega võtab, et pane sõna sõnastikku on 304 00:13:39,790 --> 00:13:43,530 saab olema sõna vist "õige". 305 00:13:43,530 --> 00:13:44,740 See on minu sisestada funktsiooni. 306 00:13:44,740 --> 00:13:46,661 See on minu koormus funktsioon minu sõnastikku. 307 00:13:46,661 --> 00:13:49,410 Nüüd on natuke petta, sest sa tead, mida, seal on tegelikult 308 00:13:49,410 --> 00:13:52,920 längkriipsu n aasta lõpus sõnad et ma peaks ilmselt vabaneda, 309 00:13:52,920 --> 00:13:56,380 aga see pole probleem, sest PHP on funktsioon nimega karbonaad, mis sõna otseses mõttes 310 00:13:56,380 --> 00:13:58,480 karbonaadi välja üks märk päris lõpus. 311 00:13:58,480 --> 00:13:59,400 Seega pole probleemi. 312 00:13:59,400 --> 00:14:02,199 Me oleme läinud edasi ja tegelikult lühendada, et just see. 313 00:14:02,199 --> 00:14:05,240 Ja nüüd ma peaks ilmselt jälgida suurus, nii et olgem vähemalt teha see-- 314 00:14:05,240 --> 00:14:05,835 suurus ++. 315 00:14:05,835 --> 00:14:07,339 Mida ma teha saan, et kui varem. 316 00:14:07,339 --> 00:14:10,380 Ja siis see on ilmselt läheb töötab just fine, et on tagasi tõsi. 317 00:14:10,380 --> 00:14:10,930 Valmis. 318 00:14:10,930 --> 00:14:11,797 Pset 5. 319 00:14:11,797 --> 00:14:13,545 >> [NAER] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. Humala: OK. 321 00:14:14,420 --> 00:14:16,628 Me teeme seda uuesti järgmise pset ka. 322 00:14:16,628 --> 00:14:18,730 Nii kuidas suurus? 323 00:14:18,730 --> 00:14:22,080 Noh, see üks loodetavasti on umbes kui te ootaks viimast korda, 324 00:14:22,080 --> 00:14:24,460 kuigi ma pean tegema see loll ülemaailmne asi. 325 00:14:24,460 --> 00:14:26,610 See on lihtsalt artefakt alates Keele disain. 326 00:14:26,610 --> 00:14:28,450 >> Aga kontroll on veidi põnevamaks. 327 00:14:28,450 --> 00:14:31,420 Nii et kui ma möödunud aastal dollari kirjutama sõna, ma esimest korda 328 00:14:31,420 --> 00:14:34,060 tahad olla juurdepääs et globaalse muutuja tabel. 329 00:14:34,060 --> 00:14:36,700 Ja nüüd kui ma tahan vaadata, kas sõna on olemas, 330 00:14:36,700 --> 00:14:44,350 Ma võin lihtsalt öelda, kas see on tõsi, et järgmine on määratud tabelis, 331 00:14:44,350 --> 00:14:49,957 siis minna ja tagastamine tõsi; muud, tagastab false. 332 00:14:49,957 --> 00:14:51,180 Valmis. 333 00:14:51,180 --> 00:14:52,440 Teine pool pset 5. 334 00:14:52,440 --> 00:14:54,540 >> Olgu, nii et jälle, ma olen lõigates mõned nurgad. 335 00:14:54,540 --> 00:14:56,831 In õigluse, ma peaks ilmselt veeta paar sekundit veel 336 00:14:56,831 --> 00:14:58,300 selle rakendamist. 337 00:14:58,300 --> 00:15:01,860 Ja ma ilmselt ei tohiks pilgata kõik tunni paned pset nii palju. 338 00:15:01,860 --> 00:15:04,045 Nii strtolower on funktsioon. 339 00:15:04,045 --> 00:15:06,670 Midagi sarnast eksistentsialistliku C, vähemalt tähtedega 340 00:15:06,670 --> 00:15:08,560 aga PHP on terve string versioon. 341 00:15:08,560 --> 00:15:11,226 >> See läheb sundida kõik väiketähtedeks, mis mõned teist 342 00:15:11,226 --> 00:15:14,944 oleks võinud teha õgvenda mida sa olid panna oma sõnastikku. 343 00:15:14,944 --> 00:15:16,360 Ja nüüd saab seda teha C ka. 344 00:15:16,360 --> 00:15:17,780 See on midagi pistmist PHP. 345 00:15:17,780 --> 00:15:20,260 >> Kuid iga kord, kui on Loogiline seisukorras, 346 00:15:20,260 --> 00:15:22,680 nagu midagi real 10 olemas, mis on ainult 347 00:15:22,680 --> 00:15:27,145 läheb hinnata tõeseks või vale, ja teie kui muidu selgelt 348 00:15:27,145 --> 00:15:33,620 on tagasi õige või vale, suutsin lihtsalt tõesti teha seda seksikam 349 00:15:33,620 --> 00:15:38,360 ja lihtsalt teha midagi sellist. 350 00:15:38,360 --> 00:15:40,500 Nii et seal on minu kontrolli funktsioon. 351 00:15:40,500 --> 00:15:42,560 Parem, kui Boolean tagastab tõene või väär, 352 00:15:42,560 --> 00:15:44,630 olgem lihtsalt tagasi seda kohe. 353 00:15:44,630 --> 00:15:47,340 >> Ja seal on mõned muud tweaks Ma võiksin teha siin ja seal. 354 00:15:47,340 --> 00:15:51,380 Load-- unload, muide, et on tehtud. 355 00:15:51,380 --> 00:15:52,850 Pole midagi teha seal. 356 00:15:52,850 --> 00:15:55,840 Kuna kõik mälu PHP ja paljudes teistes keeltes 357 00:15:55,840 --> 00:15:57,570 juhitakse tegelikult teile. 358 00:15:57,570 --> 00:16:00,330 Nii arvestades C, sest olete õppinud valulikult, 359 00:16:00,330 --> 00:16:04,700 midagi malloc või calloc või RealLOC, pead sa vaba ise. 360 00:16:04,700 --> 00:16:08,770 Kõike, mida fopen, pead kirjutamisel, nii et ressursid on lõpuks vabanenud 361 00:16:08,770 --> 00:16:11,690 ja vahendeid, nagu Valgrind ei märgata ja ei saa kurta, 362 00:16:11,690 --> 00:16:13,570 mis on hea sõita nendega. 363 00:16:13,570 --> 00:16:16,190 >> Aga kindlasti ei tohi mõned saagi, eks? 364 00:16:16,190 --> 00:16:19,400 Vastasel juhul me sellist raiskamist terve hunnik nädalat. 365 00:16:19,400 --> 00:16:23,270 Nii et seal on kõik mitmel põhjusel miks me omamoodi seda trajektoori, 366 00:16:23,270 --> 00:16:24,440 kuid on kompromiss. 367 00:16:24,440 --> 00:16:25,820 Õigus, see on olnud temaatilised. 368 00:16:25,820 --> 00:16:29,690 >> Mis võiks kompromiss siin liigub, C PHP? 369 00:16:29,690 --> 00:16:33,250 Tundub nagu kõik võita seni arvatud natuke inetu siin või seal. 370 00:16:33,250 --> 00:16:34,040 Jah. 371 00:16:34,040 --> 00:16:34,700 Mis see on? 372 00:16:34,700 --> 00:16:36,064 >> Õpilane: [kuuldamatu] mälu. 373 00:16:36,064 --> 00:16:36,980 DAVID J. Humala: Speed. 374 00:16:36,980 --> 00:16:37,479 OK. 375 00:16:37,479 --> 00:16:40,720 Noh, minu kiirus oli päris kiire. 376 00:16:40,720 --> 00:16:42,020 Õigus? 377 00:16:42,020 --> 00:16:44,320 Kuid kiirus programmi täitmiseks? 378 00:16:44,320 --> 00:16:45,580 OK, nii et see on õiglane punkt. 379 00:16:45,580 --> 00:16:50,930 >> Nii et kui see juhtub, ma ette cued üles nii minu proovida lahendus, üks 380 00:16:50,930 --> 00:16:53,510 Mul oli suurel pardal oli proovida põhinev lahendus, 381 00:16:53,510 --> 00:16:55,510 ja mul on, et selle kataloogi siin. 382 00:16:55,510 --> 00:16:58,510 Nii et ma ühel hetkel, ma ei saa minna ja käivitada seda King James Bible, 383 00:16:58,510 --> 00:16:59,657 Enterin. 384 00:16:59,657 --> 00:17:01,990 Ja see on loodetavasti õige rakendamise lõpus, 385 00:17:01,990 --> 00:17:05,109 annab mulle aega kokku 0,38 sekundit, mis 386 00:17:05,109 --> 00:17:07,270 üks mõnevõrra meelevaldne näide. 387 00:17:07,270 --> 00:17:09,270 >> Ja kui ma nüüd minema selle teise terminali aknas 388 00:17:09,270 --> 00:17:14,569 siin, kus ma esimest korda avatud gedit, las mul läheb tänane code-- mis jällegi 389 00:17:14,569 --> 00:17:19,650 on selle kataloogi siin-- ja lubage mul minna ja joosta speller. 390 00:17:19,650 --> 00:17:23,470 Nii lihtsalt peab olema selge, see on PHP versiooni. 391 00:17:23,470 --> 00:17:25,170 Ma lihtsalt näitab peale selle siin. 392 00:17:25,170 --> 00:17:32,020 >> Nii et kui ma teen speller on tilde CS50 Pset 5 tekstide King James, siseneda. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 See on ikka kiirem kui kirjalikult see C, kuid kogu aeg 395 00:17:43,050 --> 00:17:47,650 on teade, 0,93, samas minu C-põhine rakendamine oli 0,38. 396 00:17:47,650 --> 00:17:49,110 Nii et see on mitte-triviaalne erinevus. 397 00:17:49,110 --> 00:17:51,100 >> Ja see on ainult üks fail. 398 00:17:51,100 --> 00:17:53,480 Kui sa olid kulgema kaks programmid võrreldes suur pardal 399 00:17:53,480 --> 00:17:56,510 ja on terve hunnik sisendeid testitud, see oleks kindlasti tõusta. 400 00:17:56,510 --> 00:18:00,310 Ja kui meil oli isegi suurem andmekogumid ka see oleks küündivad enam. 401 00:18:00,310 --> 00:18:04,820 Nii et jah, makstes mingi hind kiirus on tõepoolest nii. 402 00:18:04,820 --> 00:18:05,470 Mida veel? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Jah? 405 00:18:08,860 --> 00:18:10,340 >> Õpilane: summa RAM kasutamine. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. Humala: summa RAM kasutamine. 407 00:18:11,756 --> 00:18:15,380 Nii et ma ei anna ühe sekundi arvasin kirjutamisel see PHP 408 00:18:15,380 --> 00:18:17,300 versiooni, kui palju mälu olin kasutades. 409 00:18:17,300 --> 00:18:22,080 Ma täiesti edasi lükata, et PHP ise ja kes kirjutas, et programmi. 410 00:18:22,080 --> 00:18:24,500 Ja mis võiks olla OK, aga kui ma tegelikult tõesti 411 00:18:24,500 --> 00:18:28,420 hoolivad pigistada nii palju tulemuslikkuse mu programmi või mu kodulehel 412 00:18:28,420 --> 00:18:31,150 või välja iganes tööriist Ma hoone, võibolla 413 00:18:31,150 --> 00:18:33,310 PHP, tõepoolest, ei ole õige keel. 414 00:18:33,310 --> 00:18:36,330 >> Ja tegelikult, see on põhjus, miks Näiteks paljud web servers-- 415 00:18:36,330 --> 00:18:38,980 tegelik programmid teenida kuni web content-- 416 00:18:38,980 --> 00:18:41,810 ei ole kirjutatud PHP või Python või Ruby. 417 00:18:41,810 --> 00:18:44,630 Need on kirjutatud, nagu saate nüüd teha pset 6 418 00:18:44,630 --> 00:18:48,120 C nii, et saate pigistada iga natuke jõudlust lahti 419 00:18:48,120 --> 00:18:50,780 ja tõesti teostada peeneteralise üle, mis on 420 00:18:50,780 --> 00:18:52,980 läheb all kapuuts ja mitte lihtsalt võtta see 421 00:18:52,980 --> 00:18:54,890 enesestmõistetavaks mõned suuremad tasandi andmete struktuuri. 422 00:18:54,890 --> 00:18:58,071 >> Mõtle ju Kes PHP ellu 423 00:18:58,071 --> 00:19:00,070 et mõiste hash table-- see on tegelikult rohkem 424 00:19:00,070 --> 00:19:04,260 korralikult nimega assotsiatiivne array-- kas ta on aimu, millist 425 00:19:04,260 --> 00:19:07,090 sisendite te ei kavatse olla laskmine struktuur? 426 00:19:07,090 --> 00:19:08,260 Nii et ilmselt ei ole, eks? 427 00:19:08,260 --> 00:19:10,340 See on üldine näitaja on arenduskeskkond, mis on 428 00:19:10,340 --> 00:19:13,430 tingimusel, et igaüks, kes tahab seda kasutada, ja seda kindlasti see 429 00:19:13,430 --> 00:19:17,680 ei saa optimeeritud lõppkokkuvõttes just seda, mida sa tahad teha. 430 00:19:17,680 --> 00:19:21,180 >> Nii kaubandusega offs-- arengu ajal võiks erinevad, jõudlus võib erineda, 431 00:19:21,180 --> 00:19:23,120 keerukus või mälukasutust erineda. 432 00:19:23,120 --> 00:19:24,820 Ja mis siis leiad üha enam on see, et seal on 433 00:19:24,820 --> 00:19:26,570 saab olema erinev vahendid kaubandust. 434 00:19:26,570 --> 00:19:31,160 Ja tegelikult jaoks super enamus inimeste lõplik projekte selles klassis, 435 00:19:31,160 --> 00:19:34,360 uskuge või mitte, C ei kavatse olema õiges keeles kasutada. 436 00:19:34,360 --> 00:19:37,880 >> Ja tõepoolest, üks takeaways lõpuks iga klassi niimoodi 437 00:19:37,880 --> 00:19:40,510 on sulle mõelda, noh, mida peaksite peatähelepanu 438 00:19:40,510 --> 00:19:42,710 riiulil, kui soovite lahendada mõned probleemid. 439 00:19:42,710 --> 00:19:46,720 Ja tõepoolest, me ületada selle silla isegi rohkem kui me vaatame rohkem keeli 440 00:19:46,720 --> 00:19:47,920 isegi üle täna. 441 00:19:47,920 --> 00:19:50,530 >> Nii et olgem üleminek nüüd võib-olla rohkem kursis kontekstis 442 00:19:50,530 --> 00:19:52,480 kasutamise nagu PHP. 443 00:19:52,480 --> 00:19:56,720 See on mõnevõrra levinud kasutada, käsurealt kirjalikult skripte 444 00:19:56,720 --> 00:19:59,050 nagu mina tegin, aga see on palju, palju rohkem levinud. 445 00:19:59,050 --> 00:20:02,350 Ja kavatseti kasutada faili kujul, mis tavaliselt lõpeb 446 00:20:02,350 --> 00:20:05,060 aastal .php-- kuid see on ei prerequisite-- 447 00:20:05,060 --> 00:20:07,990 et ise luua veebi sisu. 448 00:20:07,990 --> 00:20:11,310 >> Nii et lubage mul minna ja avada mõne näited I ette valmistada. 449 00:20:11,310 --> 00:20:15,100 Ja need on tegelikult omamoodi tõsi jutte, et üks esimesi asju, 450 00:20:15,100 --> 00:20:18,200 Ma kunagi tegin mina pärast lõpetamist CS50 ja võib-olla, ma arvan, 451 00:20:18,200 --> 00:20:21,350 CS51 aastat tagasi on minu toakaaslane ja ma aitasid 452 00:20:21,350 --> 00:20:24,320 joosta uustulnuk firmasisese spordiprogramm, mis ajal, 453 00:20:24,320 --> 00:20:28,610 oli uustulnuk registreerimise erinevat sport, täites paberile, 454 00:20:28,610 --> 00:20:31,800 nagu seda kutsuti, jalutamine üle õue Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 ja kukutades ta mõnes Proctor uks tilk. 456 00:20:34,030 --> 00:20:37,210 Ja siis ta läheks läbi neid ja siis tegelikult saatke meile käsitsi 457 00:20:37,210 --> 00:20:39,140 et meil on registreeritud mõne spordiala. 458 00:20:39,140 --> 00:20:41,166 >> Nii selgelt, võimaluse arenguruumi. 459 00:20:41,166 --> 00:20:44,040 Nendel päevadel, siis võiks pöörduda ainult Google Forms, kuid juba järgmisel päeval, 460 00:20:44,040 --> 00:20:46,914 pidime tegelikult jõuda for-- see ei olnud isegi nii kaua ago-- jõuda 461 00:20:46,914 --> 00:20:49,410 jaoks programmeerimine keel, mis ei olnud PHP. 462 00:20:49,410 --> 00:20:51,200 Tol ajal oli see midagi, mida nimetatakse Perl, 463 00:20:51,200 --> 00:20:52,890 mis on läinud moes alates. 464 00:20:52,890 --> 00:20:54,160 Aga idee on sama. 465 00:20:54,160 --> 00:20:58,940 >> Ja ma põhiliselt istusid proovida sadamasse läheb Perl versioonid PHP, 466 00:20:58,940 --> 00:21:03,710 kuid täielikult loobumist, ei anna ei mõelnud esteetika veel. 467 00:21:03,710 --> 00:21:04,960 Nii et siin on veebilehele. 468 00:21:04,960 --> 00:21:05,670 See on fail. 469 00:21:05,670 --> 00:21:09,470 Kui ma suumida, tema ilmselt nimetatakse froshim0.php 470 00:21:09,470 --> 00:21:12,060 lihtsalt sellepärast, et see on meie esimene Näiteks selles seerias. 471 00:21:12,060 --> 00:21:15,970 Ja teate, mis see on, mida tundub olema väga inetu HTML kujul 472 00:21:15,970 --> 00:21:18,680 kuid vorm on huvitav sest see võimaldab 473 00:21:18,680 --> 00:21:21,910 mulle anda kasutaja sisend brauseris. 474 00:21:21,910 --> 00:21:27,730 >> Nüüd viimane kord, kui meil oli vorm, mis Kellega me esitada meie päringuparameeter, 475 00:21:27,730 --> 00:21:30,450 järjekorda parameeter nagu seda kutsuti? 476 00:21:30,450 --> 00:21:31,330 Nii et Google, eks? 477 00:21:31,330 --> 00:21:34,090 Me oleme täiesti punted ideel mittemidagitegemise et sisend. 478 00:21:34,090 --> 00:21:36,160 >> Aga täna alustame toodangut. 479 00:21:36,160 --> 00:21:39,420 Ja käitumist ma näha siin esialgu on üsna triviaalne. 480 00:21:39,420 --> 00:21:42,980 David, ma vaatan maha sugu siin öelda Matthews siin. 481 00:21:42,980 --> 00:21:43,800 Ma ei taha olla kapten. 482 00:21:43,800 --> 00:21:45,410 Ma lähen klõpsake Registreeru. 483 00:21:45,410 --> 00:21:50,720 Ja teate, et URL on muutunud registreerida-0.php, 484 00:21:50,720 --> 00:21:52,310 ja siis on see kole tekst siin. 485 00:21:52,310 --> 00:21:54,460 Andsin ei mõelnud vormistuse see. 486 00:21:54,460 --> 00:21:59,900 >> Aga mis on huvitav, on see, et kolm väärtused olid ilmselt sooritanud. 487 00:21:59,900 --> 00:22:02,960 See on PHP omamoodi samaväärne printf-- 488 00:22:02,960 --> 00:22:06,330 eks näis, mida see tegelikult nimetatakse aastal bit-- et lihtsalt trükib välja 489 00:22:06,330 --> 00:22:08,300 mida läks see. 490 00:22:08,300 --> 00:22:11,414 Nii et see näitab, et sellisel kujul oli vähemalt kolm väljad see, 491 00:22:11,414 --> 00:22:12,580 ja nägid mind ka need. 492 00:22:12,580 --> 00:22:15,739 Üks oli minu nimi, üks oli sugu, üks oli ühiselamu. 493 00:22:15,739 --> 00:22:18,780 Ja kapten isegi ei saanud saadeti server, sest ma ei kontrolli seda. 494 00:22:18,780 --> 00:22:22,150 >> Nii et see tähendab ilmselt, kui saadate asju veebis 495 00:22:22,150 --> 00:22:26,830 mitte ainult ei URL mõnikord change-- mõnikord see ei ole. 496 00:22:26,830 --> 00:22:30,330 Tegelikult faili nime muuta, aga mis puudub URL 497 00:22:30,330 --> 00:22:32,861 et me ei vaata viimast korda koos Google. 498 00:22:32,861 --> 00:22:33,360 Jah? 499 00:22:33,360 --> 00:22:34,380 >> Õpilane: No päringustringiga 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. Humala: Ei ole stringi. 501 00:22:35,220 --> 00:22:37,270 Ei ole mingit küsimärki midagi. 502 00:22:37,270 --> 00:22:40,050 Ei ole mingit küsimärki q võrdub kassid, kui eelmisel korral. 503 00:22:40,050 --> 00:22:42,170 Ja seal on kindlasti mitte küsimärk nimi võrdub 504 00:22:42,170 --> 00:22:46,310 David või ühiselamus võrdub Matthews seda siis, kui on, et kõik läheb? 505 00:22:46,310 --> 00:22:51,290 >> Noh, lubage mul minna tagasi gedit siin ja avada esimest neist faile 506 00:22:51,290 --> 00:22:57,020 minu vhost, kohalik host, avaliku Kataloog siin ja minema froshim0. 507 00:22:57,020 --> 00:23:02,060 Nii selgub, et peaaegu kõik see lehekülg on lihtsalt HTML. 508 00:23:02,060 --> 00:23:05,410 Ja see võib olla harjumatu teile, kuid varsti enam, et pset 6 509 00:23:05,410 --> 00:23:07,370 ja pset 7 ja pset 8. 510 00:23:07,370 --> 00:23:09,160 Kuid see on alles HTML leht. 511 00:23:09,160 --> 00:23:12,400 >> Ja huvitav värk Tundub, et siin. 512 00:23:12,400 --> 00:23:16,290 Vormi tag mille tegevus atribuut väärtus on registrisse 0. 513 00:23:16,290 --> 00:23:18,890 Sellepärast, kui ma esitada Selleks läheb see, et faili. 514 00:23:18,890 --> 00:23:20,620 Aga meetod on erinev today-- post. 515 00:23:20,620 --> 00:23:23,120 Nii selgub seal vähemalt kaks meetodit veebis kasutada 516 00:23:23,120 --> 00:23:24,911 et saata teavet alates brauseri server. 517 00:23:24,911 --> 00:23:25,980 Saa asetab selle URL. 518 00:23:25,980 --> 00:23:27,950 Post paneb see ka mujal. 519 00:23:27,950 --> 00:23:30,570 Ja millal ja miks võiks sa tegelikult tahavad veebilehel 520 00:23:30,570 --> 00:23:34,110 kasutada postitus siis selle asemel, kohta saada, just intuitiivselt? 521 00:23:34,110 --> 00:23:37,080 Iga veebileht. 522 00:23:37,080 --> 00:23:42,010 Milliseid andmeid tuleks edastada ainult järeldamise nüüd posti teel erinevalt 523 00:23:42,010 --> 00:23:45,184 saada, kui oleme näinud Kahe erinevused? 524 00:23:45,184 --> 00:23:46,350 Õpilane: [kuuldamatu] turvaline. 525 00:23:46,350 --> 00:23:47,790 DAVID J. Humala: Kui soovite midagi peab olema tagatud. 526 00:23:47,790 --> 00:23:50,360 Nii võite tippida parooli arvesse veebilehel, krediitkaardi 527 00:23:50,360 --> 00:23:53,030 arvesse veebilehel oleks millist neist suboptimaalsest 528 00:23:53,030 --> 00:23:56,220 kui brauser panna, et hinna sees URL. 529 00:23:56,220 --> 00:23:57,680 Miks? 530 00:23:57,680 --> 00:24:00,059 Sa näed seda, mis ei ole Tundub, et nii suur asi, 531 00:24:00,059 --> 00:24:03,350 kuid koefitsiendid on teil üsna sageli kõndida arvutist eemal või kasutada arvuti 532 00:24:03,350 --> 00:24:05,310 laborid, ja nii keegi teine ​​või isegi toakaaslane 533 00:24:05,310 --> 00:24:08,220 võivad kergesti liikuda üles ja vaata et isiklikku teavet. 534 00:24:08,220 --> 00:24:10,220 Kui saadate e-posti veebi kaudu, siis ilmselt 535 00:24:10,220 --> 00:24:12,350 ei taha, et andmed lõpp üles URL samuti. 536 00:24:12,350 --> 00:24:15,266 Ja nii seal on kõik mitmel põhjusel miks me võiksite panna siia. 537 00:24:15,266 --> 00:24:18,610 Ja photos-- õige, ma ei saa isegi üsna kujutan ette, kuidas sa võtaks graafika, 538 00:24:18,610 --> 00:24:21,480 nagu JPEG, ja pane see URL. 539 00:24:21,480 --> 00:24:22,330 Sa võid seda teha. 540 00:24:22,330 --> 00:24:25,840 On viise, mis kodeerib seda, kuid see on lihtsalt ei ole lihtne niimoodi. 541 00:24:25,840 --> 00:24:29,030 >> Nii et registreerige end 0 on tegelikult väga underwhelming. 542 00:24:29,030 --> 00:24:31,610 Kõik see räägib sõna otseses mõttes on see. 543 00:24:31,610 --> 00:24:35,910 See prindib sees mõned HTML sildid järgmine. 544 00:24:35,910 --> 00:24:38,640 Mul PHP tag siin pesitses sees pre tag. 545 00:24:38,640 --> 00:24:42,300 "Enne" tähendab lihtsalt vormindatud teksti, mono reavahega, nagu kirjutusmasinal. 546 00:24:42,300 --> 00:24:44,836 >> Printr on print rekursiivne funktsioon. 547 00:24:44,836 --> 00:24:46,710 Ja siis on see Huvitav asi siin. 548 00:24:46,710 --> 00:24:48,835 Ja me tuleme tagasi selle sest seal on teised, 549 00:24:48,835 --> 00:24:51,140 kuid dollari märk alakriips post näib olevat 550 00:24:51,140 --> 00:24:56,110 muutuja PHP, kus midagi saadate brauseri server 551 00:24:56,110 --> 00:24:58,040 saab ladustada teile. 552 00:24:58,040 --> 00:25:00,930 Ja me näeme, kuidas on see teave enne pikk. 553 00:25:00,930 --> 00:25:04,000 >> Aga kõigepealt, lähme tagasi veidi teistsugune näide. 554 00:25:04,000 --> 00:25:09,050 Läinud register-- või Pigem froshims1.php, 555 00:25:09,050 --> 00:25:10,470 mis näeb välja veidi erinev. 556 00:25:10,470 --> 00:25:12,670 Võtsin natuke rohkem pingutusi vormingu, 557 00:25:12,670 --> 00:25:14,370 kuigi see on ikka päris kole. 558 00:25:14,370 --> 00:25:16,990 Aga ma lähen edasi minna ja kirjuta "David" nüüd. 559 00:25:16,990 --> 00:25:17,850 Mees. 560 00:25:17,850 --> 00:25:19,360 Me vaadata "kapten" seekord. 561 00:25:19,360 --> 00:25:20,660 Me teeme Matthews. 562 00:25:20,660 --> 00:25:22,430 Ja registreerida. 563 00:25:22,430 --> 00:25:24,110 >> Ja seekord ta ütleb, hm, tegelikult mitte. 564 00:25:24,110 --> 00:25:26,180 Olgu, siis millised on registreerige 1? 565 00:25:26,180 --> 00:25:30,509 Lubage mul minna avatud register 1 and-- hm. 566 00:25:30,509 --> 00:25:32,300 Olgu, nii et see on Huvitav, ja see 567 00:25:32,300 --> 00:25:34,880 on hüppelauaks nüüd poole rohkem huvitavaid programme. 568 00:25:34,880 --> 00:25:38,970 >> Märka peal see fail PHP tag samuti mõned kommentaarid. 569 00:25:38,970 --> 00:25:42,590 Ja need, nüüd, tähelepanu kõrvale nii et vaatame lihtsalt lahti saada neid märkusi 570 00:25:42,590 --> 00:25:47,070 nagu nad on C. Ja Väidan Selle patakas kood kommentaar 571 00:25:47,070 --> 00:25:49,280 et see kood on valideerimiseks esitamise. 572 00:25:49,280 --> 00:25:51,690 >> Noh, selgub, et muutujaid nagu dollari märk 573 00:25:51,690 --> 00:25:53,739 rõhutavad post on nimetatakse super globals. 574 00:25:53,739 --> 00:25:55,530 Nad on nagu need eriline globaalsed muutujad 575 00:25:55,530 --> 00:25:58,840 mis on just isotroopne praegu kättesaadavaks oma programmi. 576 00:25:58,840 --> 00:26:03,870 Ja saate nurksulg märke et indeks neid ei kasuta numbrid 577 00:26:03,870 --> 00:26:07,460 nagu 0, 1, 2, 3, kuid tegelikud sõnad. 578 00:26:07,460 --> 00:26:12,100 >> Nii et sa ei mõtle dollari märk rõhutavad postituse omamoodi hash tabelit 579 00:26:12,100 --> 00:26:15,920 et sa võiksid läbida võti, otsing sõna-nurksulgudes, 580 00:26:15,920 --> 00:26:19,370 ja see läheb teile tagasi Väärtus, mille kasutaja tegelikult osutatakse. 581 00:26:19,370 --> 00:26:21,210 PHP on funktsioon nimetatakse tühi, et lihtsalt 582 00:26:21,210 --> 00:26:23,720 ütleb jah või ei, see muutuja on tühi või mitte. 583 00:26:23,720 --> 00:26:27,250 Meil on neid topelt baarid, mis tähendab lihtsalt, või, nagu C. 584 00:26:27,250 --> 00:26:31,740 >> Nii et tegelikult on see rida 4 on lihtsalt öeldes, kui kasutaja ei andnud nimi 585 00:26:31,740 --> 00:26:36,540 või ei anna sugu või ei anda ühiselamus, edasi minna ja suunata teda 586 00:26:36,540 --> 00:26:38,184 või tema kaudu seda joont siin. 587 00:26:38,184 --> 00:26:40,600 Nii et see on veidi segasena, aga see lihtsalt tähendab sõna-sõnalt 588 00:26:40,600 --> 00:26:43,330 minge tagasi selle asukoha, nii et see punts kasutaja 589 00:26:43,330 --> 00:26:45,420 tagasi sinna, kus ta tuli. 590 00:26:45,420 --> 00:26:47,880 Aga see on natuke maitsetu et ma kõva kodeeritud see. 591 00:26:47,880 --> 00:26:52,150 >> Aga mis siis, kui see, kui tingimus ei hinnata, on tõsi? 592 00:26:52,150 --> 00:26:55,790 Mis siis, kui kasutaja ei anna mulle oma oma nime ja ühiselamus ja sugu? 593 00:26:55,790 --> 00:26:58,540 See, kui tingimus ei ole läheb hinnata, tõsi, 594 00:26:58,540 --> 00:27:00,650 nii et ma ei tabanud väljumise vastavalt 7. 595 00:27:00,650 --> 00:27:01,680 Mis siis juhtub? 596 00:27:01,680 --> 00:27:03,880 Ja see on see, mis huvitav PHP. 597 00:27:03,880 --> 00:27:07,470 >> Te saate tilk ja sealt PHP režiim, nii rääkida. 598 00:27:07,470 --> 00:27:10,985 Kui sa tahad koodi käivitada, saate avada ja sulgeda PHP tag 599 00:27:10,985 --> 00:27:13,010 ja pane kood seal, nagu ma olen teinud siin. 600 00:27:13,010 --> 00:27:16,810 Niipea, kui sulgete PHP tag, server 601 00:27:16,810 --> 00:27:19,407 lihtsalt läheb sülitama mida iganes sa panna sinna. 602 00:27:19,407 --> 00:27:21,740 Ja tõepoolest, see oli osa algne kujundus PHP, 603 00:27:21,740 --> 00:27:25,280 parem halb, oli see segunemisega kood ja juurdehindlus 604 00:27:25,280 --> 00:27:25,920 keeles. 605 00:27:25,920 --> 00:27:28,670 Ja me näeme, et see on väga kiiresti devolves segadus. 606 00:27:28,670 --> 00:27:31,280 Ja nii me teeme parem kui Selle lõpuks, vaid lihtsalt 607 00:27:31,280 --> 00:27:35,620 teate, millise kergusega ma olen tegelikult võimelised täitma teatud loogika. 608 00:27:35,620 --> 00:27:37,440 >> Aga ikkagi natuke underwhelming. 609 00:27:37,440 --> 00:27:41,210 Olgem avada versioon kaks Frosh IEd, mis 610 00:27:41,210 --> 00:27:44,270 ilmselt esitab register2.php. 611 00:27:44,270 --> 00:27:47,600 Nii et see fail on tegelikult läheb vaatama peaaegu sama. 612 00:27:47,600 --> 00:27:50,780 Ma lähen minema Frosh raudteeinfrastruktuuri-2. 613 00:27:50,780 --> 00:27:53,050 Aga Frosh IEd 2 Vaatame, mis juhtub. 614 00:27:53,050 --> 00:27:58,110 >> David, klõpsake raadionuppu, kui seda nimetatakse; Matthews, ei ole kapten. 615 00:27:58,110 --> 00:27:59,230 Registreeru. 616 00:27:59,230 --> 00:28:00,130 Teie olete registreeritud. 617 00:28:00,130 --> 00:28:00,700 Tegelikult mitte. 618 00:28:00,700 --> 00:28:02,574 Oh oota, me lihtsalt ei et näiteks ei ole me? 619 00:28:02,574 --> 00:28:04,520 Olgu, seista. 620 00:28:04,520 --> 00:28:06,602 Me teeme kolm. 621 00:28:06,602 --> 00:28:08,560 Ilmselgelt midagi on umbes juhtuda Gmail. 622 00:28:08,560 --> 00:28:09,600 Me saame seal. 623 00:28:09,600 --> 00:28:11,900 >> Nii Frosh IEd 3 näeb välja selline. 624 00:28:11,900 --> 00:28:13,050 Ei erine. 625 00:28:13,050 --> 00:28:19,850 Aga kui ma David, mees, Matthews ja Registreerimiseks see kolmas ja viimane versioon 626 00:28:19,850 --> 00:28:22,230 väited, lihtsalt sa registreeritakse tõesti. 627 00:28:22,230 --> 00:28:23,560 See on omamoodi ebaoluline. 628 00:28:23,560 --> 00:28:25,600 Aga ma väita seda Kolmas ja viimane versioon 629 00:28:25,600 --> 00:28:30,610 Olen nüüd taasloodi täpselt, mida mu toakaaslane ja ma ehitatud Frosh IEd 630 00:28:30,610 --> 00:28:31,731 Programmi aastat tagasi. 631 00:28:31,731 --> 00:28:32,480 Ja see oli lihtne. 632 00:28:32,480 --> 00:28:34,330 Puudus andmebaasi ei Exceli tabelit. 633 00:28:34,330 --> 00:28:36,450 Kuid mis veel tähtsam, ei olnud enam paber 634 00:28:36,450 --> 00:28:42,520 sest see, mida me tegime selle programmiga oli tegelikult saatke Proctor, kes 635 00:28:42,520 --> 00:28:44,530 sai varem need asjad kaudu vorme. 636 00:28:44,530 --> 00:28:48,890 >> Ja ilmselt oleme programmeeritud seda nii et kui keegi registreerib, 637 00:28:48,890 --> 00:28:52,470 John Harvard kontole kirju proctor-- või ise sel juhul 638 00:28:52,470 --> 00:28:55,960 John Harvard-- järgmise text-- "See inimene lihtsalt registreeritud." 639 00:28:55,960 --> 00:29:00,560 Nimi on David, kapten on tühi; sugu mees; ja ühiselamus, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Mis seal juhtus? 641 00:29:01,560 --> 00:29:05,360 Noh, faili alla siit ilmselt register3.php. 642 00:29:05,360 --> 00:29:09,080 Ja kui ma avan selle, näete nii võimu kood niimoodi 643 00:29:09,080 --> 00:29:12,380 ja ka ausalt öeldes ebakindlust süsteemi nagu email. 644 00:29:12,380 --> 00:29:16,290 Olen just tõhusalt teeskles olla John Harvard järgmisel viisil. 645 00:29:16,290 --> 00:29:20,920 >> Mul on avatud php tag kuni top, mis lihtsalt ütleb siin on mõned PHP koodi. 646 00:29:20,920 --> 00:29:23,155 Alla siia, muutub seal on raamatukogude PHP. 647 00:29:23,155 --> 00:29:26,410 Sa lihtsalt ei pea hulka header failid nii palju. 648 00:29:26,410 --> 00:29:28,900 Sa saad rohkem köögivalamu, nii rääkida. 649 00:29:28,900 --> 00:29:31,820 >> Aga seekord 4. reas, mina tahan erilist raamatukogu kutsus 650 00:29:31,820 --> 00:29:36,087 PHP kohal, mis on midagi, mida saab installida tasuta paljudes süsteemides. 651 00:29:36,087 --> 00:29:37,920 Siin ma kinnitamise esitamist ainult 652 00:29:37,920 --> 00:29:40,540 kontrollides ei kasutajale anda minu nimi, sugu ja Dorm. 653 00:29:40,540 --> 00:29:44,130 Ja kui on, siis laske käia ja algväärtustan saatja. 654 00:29:44,130 --> 00:29:47,020 >> Sa ei mõtle seda kui rida koodi, mis lihtsalt jaotab. 655 00:29:47,020 --> 00:29:48,950 See on nagu malloc, kuid see on natuke seksikam 656 00:29:48,950 --> 00:29:51,790 aastal, et räägitakse mitte ainult malloc ja mõned üldised number. 657 00:29:51,790 --> 00:29:55,030 Sa ütled mulle üks neist, anna mulle uus üks neist. 658 00:29:55,030 --> 00:29:57,950 >> Ja kui olete programmeeritud Java või C ++ või teistes keeltes, 659 00:29:57,950 --> 00:29:59,130 Te olete näinud seda. 660 00:29:59,130 --> 00:30:01,840 Aga puudu see, kui harjumatu, see rida 661 00:30:01,840 --> 00:30:05,410 lastavate dollari märk mail eriline struct nimetatakse 662 00:30:05,410 --> 00:30:08,731 objekt, mis on sisseehitatud Kirjuta funktsionaalsust. 663 00:30:08,731 --> 00:30:10,355 Ja tegelikult, teate jms süntaks. 664 00:30:10,355 --> 00:30:11,900 >> See ei ole pointer, per se. 665 00:30:11,900 --> 00:30:13,990 PHP lihtsalt kasutab sama süntaksit. 666 00:30:13,990 --> 00:30:17,660 See rida ütleb kasutamine SMTP-- Simple Mail Transfer 667 00:30:17,660 --> 00:30:20,900 Protokolli, mis on vaid protokoll, mida kasutatakse saata. 668 00:30:20,900 --> 00:30:24,240 See on täpsustades kasutamine Harvardi SMTP server, mida 669 00:30:24,240 --> 00:30:25,830 on kusagil siin ülikoolilinnak. 670 00:30:25,830 --> 00:30:28,480 >> See ütleb, mida TCP port number rääkida, 671 00:30:28,480 --> 00:30:31,650 ja ma arvasin, et läbi googling või paludes abi ootab. 672 00:30:31,650 --> 00:30:34,640 Ja siis kuna Harvard kasutab mõningaid süsteemi turvalisuse mail server-- 673 00:30:34,640 --> 00:30:37,060 vähemalt krüptida liiklus ja sinu vahel see, 674 00:30:37,060 --> 00:30:41,380 kuigi igaüks võib saata kuni it-- Ma lähen sisse lülitada TLS protokolli 675 00:30:41,380 --> 00:30:42,710 hoida seda turvaliselt. 676 00:30:42,710 --> 00:30:44,730 >> Aga see on koht, kus asjad natuke hirmutav. 677 00:30:44,730 --> 00:30:47,970 Ma ei saa lihtsalt suvaliselt öelda, et olen jharvard, 678 00:30:47,970 --> 00:30:51,930 ja ma ei saa lihtsalt suvaliselt kirjuta ennast siin. 679 00:30:51,930 --> 00:30:55,650 Ja siis ma saan täpsustada objekti seda joont siin. 680 00:30:55,650 --> 00:30:58,460 >> Ja see lihtsalt tundub kole, aga see on lihtsalt kamp ahel. 681 00:30:58,460 --> 00:31:04,480 Selgub, PHP on super kasulik sümbol, nagu mõnes keeles, dot operaator, 682 00:31:04,480 --> 00:31:07,340 mis lihtsalt sõna otseses mõttes konkateneerib string pärast string pärast string, 683 00:31:07,340 --> 00:31:09,810 ja sa ei pea malloc või joonis välja kogu stringi pikkusena. 684 00:31:09,810 --> 00:31:10,820 Sa lihtsalt teha. 685 00:31:10,820 --> 00:31:15,220 Ja tõepoolest, sest ma concatenating kõik need asjad koos nende punktidega, 686 00:31:15,220 --> 00:31:18,330 Sellepärast email I saatis tundus nagu ta seda tegi. 687 00:31:18,330 --> 00:31:20,610 >> Ja siis lõpuks siin, saadan postiga. 688 00:31:20,610 --> 00:31:22,580 Nii et kui see on vale, Ma lihtsalt suren, 689 00:31:22,580 --> 00:31:25,680 mis on funktsioon, mis lihtsalt pildid ekraanil mõned veateate. 690 00:31:25,680 --> 00:31:29,170 Aga see on tegelikult helistades Kirjuta funktsioon. 691 00:31:29,170 --> 00:31:31,780 Vastasel juhul, kui kõik see ei õnnestu, suunab see mind siia tagasi. 692 00:31:31,780 --> 00:31:34,050 >> Ja miks ma näen, et Ma registreeritud tõesti? 693 00:31:34,050 --> 00:31:36,110 Noh, see juhtus siin. 694 00:31:36,110 --> 00:31:38,170 Nii et ma toon selle üles paar põhjust. 695 00:31:38,170 --> 00:31:41,542 >> Üks on see, kuidas täpselt, kui te ehitada mõned kodulehel lõplik projekt 696 00:31:41,542 --> 00:31:44,000 või reaalses maailmas, see on kuidas sa saata e-posti meeldetuletusi 697 00:31:44,000 --> 00:31:45,924 oma klientide või oma tellijatele. 698 00:31:45,924 --> 00:31:47,590 See, kuidas sa saadad parooli meeldetuletus. 699 00:31:47,590 --> 00:31:50,760 See, kuidas sa saadad inimesed sõnumeid et neil on uus Facebook 700 00:31:50,760 --> 00:31:52,990 sõnum pooleli või midagi sellist. 701 00:31:52,990 --> 00:31:55,010 >> Aga see ka räägib Asjaolu, et see võiks 702 00:31:55,010 --> 00:31:58,160 on olnud väga hästi Davin või keegi teine. 703 00:31:58,160 --> 00:32:00,567 Ja ma ütlen seda liiki naeratus, sest ma olen 704 00:32:00,567 --> 00:32:03,400 päris kindel, mis toimub läbi mitu oma mõtetes sel hetkel. 705 00:32:03,400 --> 00:32:11,910 Aga see on üks neid teha, kui ma sõnade, mitte minu tegude liiki asju, 706 00:32:11,910 --> 00:32:14,480 sest see on triviaalne rajada kirju niimoodi. 707 00:32:14,480 --> 00:32:16,480 Aga kui olete näinud või lugeda Crimson, 708 00:32:16,480 --> 00:32:18,271 Hilise see on ka päris triviaalne inimestele 709 00:32:18,271 --> 00:32:20,050 jälitada teatud päritolu. 710 00:32:20,050 --> 00:32:23,790 Ja küsi mõnda aega, võib-olla kell CS50 lunch, kuidas ma esimest korda 711 00:32:23,790 --> 00:32:27,080 tutvunud väga lähedalt peaaegu ed pardal aastaid 712 00:32:27,080 --> 00:32:30,890 tagasi, kui ma avastasin kuidas internet toimib. 713 00:32:30,890 --> 00:32:36,940 Seega igal case-- veidi pärast ed juhatus tegi. 714 00:32:36,940 --> 00:32:42,300 >> Seega igal juhul on terve hunnik super globals, 715 00:32:42,300 --> 00:32:45,960 nagu nad siin kutsutakse, millest üks me saw-- dollari märk alakriips post. 716 00:32:45,960 --> 00:32:49,530 Seal on vastukaaluks nn get, mis on koht, kus asju URL 717 00:32:49,530 --> 00:32:50,690 jõuab läheb. 718 00:32:50,690 --> 00:32:54,051 Ja seal on terve hulk teisi, too-- istungil ja server ja küpsist. 719 00:32:54,051 --> 00:32:55,800 Me tuleme tagasi cookie mõnel muul ajal 720 00:32:55,800 --> 00:33:01,340 kuid istung on selline lahe sest õige now-- kuni now-- 721 00:33:01,340 --> 00:33:06,350 kõik, mida me oleme teinud koos veebibrauser on omamoodi kodakondsuseta, nii rääkida. 722 00:33:06,350 --> 00:33:10,060 Ma ei klõpsa ümber, juurdepääs faile serveris, midagi 723 00:33:10,060 --> 00:33:13,500 juhtub ekraanil, kuid siis ühendus sulgub. 724 00:33:13,500 --> 00:33:17,450 Internet Explorer või Firefox ikoon peatub ketramine 725 00:33:17,450 --> 00:33:20,340 ja sa lihtsalt näha, mida et veebileht sisaldab. 726 00:33:20,340 --> 00:33:23,530 >> Nii HTTP on kodakondsuseta, et kui ta teeb seoses 727 00:33:23,530 --> 00:33:25,050 saab mõned andmed, see on kõik. 728 00:33:25,050 --> 00:33:29,940 Enam ei ole ühendus, erinevalt Skype, Erinevalt FaceTime erinevalt Gchati, mis 729 00:33:29,940 --> 00:33:32,180 hoiab konstantset ühendus serveriga. 730 00:33:32,180 --> 00:33:34,650 Veebis on põhimõtteliselt lahti, kuigi me 731 00:33:34,650 --> 00:33:36,630 vaata enne pikka kuidas saame matkimine 732 00:33:36,630 --> 00:33:39,300 nagu Facebook chat ja Gchati, pidavate illusion-- 733 00:33:39,300 --> 00:33:41,680 või tõesti säilitada pidev ühendus, mis kasutab 734 00:33:41,680 --> 00:33:43,270 rohkem kaasaegset tehnoloogiat. 735 00:33:43,270 --> 00:33:49,000 >> Aga kui ma lähen, ütleme, counter.php, see on veel üks lihtne näide, 736 00:33:49,000 --> 00:33:52,700 kui me näeme, et praegu mõtleb Käisin kohapeal null korda. 737 00:33:52,700 --> 00:33:56,790 Aga kui ma lihtsalt laadige leht uuesti, see kuidagi teab olin siin enne. 738 00:33:56,790 --> 00:33:58,840 Kui ma uuesti jälle, teab, et ma olin siin enne. 739 00:33:58,840 --> 00:34:01,100 Ja uuesti ja uuesti ja uuesti ja uuesti. 740 00:34:01,100 --> 00:34:03,610 >> Nii et seal on mõned pluss-plussing toimub, kuid teade 741 00:34:03,610 --> 00:34:07,090 väike asi keerleb kunagi nii lühiajaliselt kuni top ja siis katkestab, 742 00:34:07,090 --> 00:34:11,179 nii see ei ole nagu mul on pidev Seoses minu aparaat. 743 00:34:11,179 --> 00:34:16,929 Noh, kui ma minema counter.php, teate, kui lihtne see on. 744 00:34:16,929 --> 00:34:19,080 Ma esimest korda helistada see eriline funktsioon, mis me varsti 745 00:34:19,080 --> 00:34:21,513 alustavad iseenesestmõistetavaks kutsunud istungi algust. 746 00:34:21,513 --> 00:34:22,179 Alusta istungil. 747 00:34:22,179 --> 00:34:25,095 >> Ja istungil nüüdsest on lihtsalt saab olema ämber, nagu kaubanduskeskused 748 00:34:25,095 --> 00:34:28,120 CART, kus saab panna väärtused ja sellist usaldada programmeerijana 749 00:34:28,120 --> 00:34:31,590 et nad ei kavatse olla siin, kui et kasutaja on back-- teine 750 00:34:31,590 --> 00:34:35,670 hiljem, tund aega hiljem, isegi aasta hiljem nii kaua, kui ta ei ole selge, 751 00:34:35,670 --> 00:34:37,602 nende küpsiste kui me lõpuks näha. 752 00:34:37,602 --> 00:34:39,310 Ja nüüd ma lihtsalt pean kui tingimus siin. 753 00:34:39,310 --> 00:34:44,679 Nii et kui järgmine võti, nimetatakse counter, on seatud sees 754 00:34:44,679 --> 00:34:49,210 Selle super global-- see hash tabel, kui te will-- kutsutud istungil 755 00:34:49,210 --> 00:34:53,350 siis edasi minna ja haarata väärtus session-- mõelda 756 00:34:53,350 --> 00:34:55,250 Selle ostupaigana cart-- ja hoidke seda 757 00:34:55,250 --> 00:34:57,680 ajutisel muutuja nimega counter. 758 00:34:57,680 --> 00:35:02,240 >> Vastasel juhul, kui selle väärtus counter oli ei seatud nn ostukorv, 759 00:35:02,240 --> 00:35:04,430 lihtsalt initsialiseerida see 0. 760 00:35:04,430 --> 00:35:09,830 Lõpuks siin, mine ja pane tagasi arvesse ostukärud või istungile 761 00:35:09,830 --> 00:35:13,000 loenduri väärtus 1. 762 00:35:13,000 --> 00:35:16,730 Nii selgub, et see erikonteinerile siin-- 763 00:35:16,730 --> 00:35:20,355 mis on jällegi üks neist on seotud massiivid, massiiv, et saate indeks 764 00:35:20,355 --> 00:35:25,010 sõnadesse asemel numbers-- ei kao ka pärast kasutaja läheb ära. 765 00:35:25,010 --> 00:35:26,510 Jällegi, ma lähen tagasi lehele. 766 00:35:26,510 --> 00:35:28,400 See oli minut või nii. 767 00:35:28,400 --> 00:35:31,300 Aga see mäletab, et ma olen siin olnud 19 korda enne. 768 00:35:31,300 --> 00:35:32,740 See on minu 20. külastada. 769 00:35:32,740 --> 00:35:36,560 >> Ja nii see läheb võti rakendades mis tahes veebisaidile, mis mäletab 770 00:35:36,560 --> 00:35:40,640 et sa oled sisse loginud, et paned midagi sõnasõnaline oma ostukorvi 771 00:35:40,640 --> 00:35:43,902 osta või et teil on sõnumite arvu pooleli. 772 00:35:43,902 --> 00:35:45,610 Anytime soovite mäletan saamiseks 773 00:35:45,610 --> 00:35:48,130 näeme, et PHP, nagu mitmeid teisi keeli, 774 00:35:48,130 --> 00:35:53,640 annab meile illusioon riik kuigi, nagu te näete, on pset 6 775 00:35:53,640 --> 00:35:57,642 kui sa üritad HTTP päringuid alates kliendi server, see on kõik. 776 00:35:57,642 --> 00:35:59,850 Kui sa saad tagasi, et vastus, seal on midagi enamat 777 00:35:59,850 --> 00:36:01,790 tulevad tagasi server vaikimisi. 778 00:36:01,790 --> 00:36:03,820 Aga me näeme, kuidas töö ümber, et. 779 00:36:03,820 --> 00:36:07,430 >> Noh nüüd, proovime puhastage see üles natuke. 780 00:36:07,430 --> 00:36:09,470 Me oleme näinud vähe erinevaid näiteid seal. 781 00:36:09,470 --> 00:36:12,250 Oh, ja kui panna, et Neile, kes teavad või võõras, 782 00:36:12,250 --> 00:36:14,230 põhjusel, et Frosh IEd Näiteks läks 783 00:36:14,230 --> 00:36:18,060 otsin tõesti inetu slightly-- hästi, 784 00:36:18,060 --> 00:36:23,160 veel ugly-- veidi vähem kole küll endiselt kole 785 00:36:23,160 --> 00:36:25,230 on, sest kui me vaatame lähtekoodi siin 786 00:36:25,230 --> 00:36:28,240 tuleb välja, et mul on see ülaservas faili. 787 00:36:28,240 --> 00:36:32,570 >> Selgub, et alglaadimise on üks paljudest vabalt saadaval raamatukogudes seal 788 00:36:32,570 --> 00:36:37,140 et on olemas mitte programmeerimiskeele alati, kuid CSS või JavaScript 789 00:36:37,140 --> 00:36:39,190 või HTML või mitmeid keeli. 790 00:36:39,190 --> 00:36:42,160 >> Ja need inimesed siin-- algselt tuli välja 791 00:36:42,160 --> 00:36:44,730 kohta Twitter-- lihtsalt terve hulk stiile. 792 00:36:44,730 --> 00:36:47,360 See on tohutu faili siin, et keegi kirjutas, 793 00:36:47,360 --> 00:36:51,020 või kellegi kirjutas aja jooksul, et määrab värvi ja vormingu 794 00:36:51,020 --> 00:36:53,740 ja tühi-tähi, nii et ma ei saa liiki laenu oma süntaks 795 00:36:53,740 --> 00:36:56,157 ja ei pea mõtlema, kuidas näha välja mu vorm. 796 00:36:56,157 --> 00:36:57,990 See on ka minified nii et arvuti saab 797 00:36:57,990 --> 00:37:00,560 seda mõista, kuid mitte tingimata inimene. 798 00:37:00,560 --> 00:37:03,050 Nii et see on just see, miks stiliseerimine on muutunud. 799 00:37:03,050 --> 00:37:05,450 >> Kuid olgem nüüd paremini teha poolest disaini, 800 00:37:05,450 --> 00:37:07,490 sest kui me jääme maha see tee liiga pikk, 801 00:37:07,490 --> 00:37:11,290 meie koodi läheb saada räpane ja segasem. 802 00:37:11,290 --> 00:37:13,040 Nii et olgem keskenduda neid näiteid siin. 803 00:37:13,040 --> 00:37:15,090 Viimane täna. 804 00:37:15,090 --> 00:37:18,720 >> Nii et siin on super lihtne versioon 1.0 CS50 veebisaidil. 805 00:37:18,720 --> 00:37:21,250 See on vaid lingid loengute ja õppekava, 806 00:37:21,250 --> 00:37:25,490 ja see on, kasutades mis järjestamata loend tag-- UL silt, et me kasutasime viimast korda. 807 00:37:25,490 --> 00:37:28,800 Ja kui tegelikult, kui ma avada View Page Source, 808 00:37:28,800 --> 00:37:31,710 näete, et see on tõesti, tõesti lihtne HTML. 809 00:37:31,710 --> 00:37:35,460 Ja tõepoolest, kuigi see on PHP fail all kapuuts, 810 00:37:35,460 --> 00:37:38,620 see on ikka lihtsalt sülitada ainult HTML nüüd. 811 00:37:38,620 --> 00:37:41,312 >> Nii et kui ma vajutan Loengud, me näeme seda juhtuda. 812 00:37:41,312 --> 00:37:43,020 Ja kui ma vajutan nädal null, me näeme seda. 813 00:37:43,020 --> 00:37:44,920 Ja kui ma vajutan Kolmapäev, me näeme seda. 814 00:37:44,920 --> 00:37:47,900 Ja see ilmselt oli PDF slaidide sellest päevast. 815 00:37:47,900 --> 00:37:52,020 Kõik, mida ma olen teinud, on seos ankrusildi selle URL siia. 816 00:37:52,020 --> 00:37:55,400 >> Nii et see on ainult öelda, et see on päris lihtne versioon CS50 veebisaidil. 817 00:37:55,400 --> 00:37:56,790 Vaatame, kuidas see ellu viia. 818 00:37:56,790 --> 00:38:01,240 Kui ma minema mvc0 kataloogi me näeme mõned failid. 819 00:38:01,240 --> 00:38:03,250 Üks on README, nii et kui Osa sellest on liiga kiire, 820 00:38:03,250 --> 00:38:05,166 võid lihtsalt tuhnima rahulikumas hiljem. 821 00:38:05,166 --> 00:38:07,930 Ja teate, siin on index.php failiga. 822 00:38:07,930 --> 00:38:09,960 Selgub, et kui sa ise, inimese, 823 00:38:09,960 --> 00:38:14,460 ei määra lõplikku nime URL veebiserver tavaliselt 824 00:38:14,460 --> 00:38:17,010 järeldab mõned vaikenimetus teile. 825 00:38:17,010 --> 00:38:20,060 Indeks dot midagi Üldiselt on vaikimisi. 826 00:38:20,060 --> 00:38:23,010 >> Nii et miks hetk tagasi kui käisin selle URL siin 827 00:38:23,010 --> 00:38:26,750 Võimalik et faili nime ei faili laiendamine, ei ole perioodi URL. 828 00:38:26,750 --> 00:38:29,710 See lihtsalt teadsin, kuidagi võluväel otsima index.php. 829 00:38:29,710 --> 00:38:30,870 See on lihtsalt konventsioon. 830 00:38:30,870 --> 00:38:32,360 Võiks nimetada midagi. 831 00:38:32,360 --> 00:38:35,110 >> Nii et kui ma nüüd minema index.php, näete 832 00:38:35,110 --> 00:38:37,100 et indeed-- olgem vabaneda kommentaare 833 00:38:37,100 --> 00:38:39,500 siin, sest seal on tõesti midagi huvitav it-- 834 00:38:39,500 --> 00:38:41,579 see on lihtsalt kõva kodeeritud HTML. 835 00:38:41,579 --> 00:38:43,370 Nii et järjepidev, aga minu väide 836 00:38:43,370 --> 00:38:45,230 et võite segada HTML ja PHP. 837 00:38:45,230 --> 00:38:48,060 Ei ole mingit tegelikku programmeerimise loogika siin. 838 00:38:48,060 --> 00:38:51,030 >> Ja ülejäänud failid on päris palju lihtsalt ebahuvitav. 839 00:38:51,030 --> 00:38:56,240 See on lihtsalt kodeeritud nädal üks siin nädal üks m ja nädalas üks w, 840 00:38:56,240 --> 00:38:57,510 esmaspäeval ja kolmapäeval. 841 00:38:57,510 --> 00:39:01,890 Ja siis, kui ma avada nädal null, teate see on peaaegu identsed. 842 00:39:01,890 --> 00:39:03,320 >> Ja see on omamoodi võti Buffee. 843 00:39:03,320 --> 00:39:06,180 Pange tähele, kuidas üleliigne see on. 844 00:39:06,180 --> 00:39:10,710 Neid faile vaevalt muuta, ja veel ma tõmbas üks neist copy / paste töökohti 845 00:39:10,710 --> 00:39:13,420 kus võtsin ühe file-- arvatavasti nädalal zero-- kopeerinud 846 00:39:13,420 --> 00:39:16,320 kui nädal üks tuli ümber, ja väänatud mõned väärtused. 847 00:39:16,320 --> 00:39:18,590 Me peaksime tõenäoliselt võimalik teha paremini kui see. 848 00:39:18,590 --> 00:39:21,800 >> Nii et lähme tagasi üles MVC ja mine versiooni üks. 849 00:39:21,800 --> 00:39:24,810 Ja teate, et mul on mõned failid, sest mida 850 00:39:24,810 --> 00:39:29,870 oli tavaline, et kõik need failid lihtsalt Praegu ago-- kui ma lähen tagasi versioon 0, 851 00:39:29,870 --> 00:39:32,600 lähme tagasi indeksi ja lihtsalt postulate-- 852 00:39:32,600 --> 00:39:36,090 kui ma vabaneda comments-- milline osa see leht 853 00:39:36,090 --> 00:39:40,072 on arvatavasti iga üks minu faile? 854 00:39:40,072 --> 00:39:40,780 Lihtsalt kutsume seda välja. 855 00:39:40,780 --> 00:39:44,620 Millised liinid on dubleeritud arvatavasti üle kõik need lehed? 856 00:39:44,620 --> 00:39:45,120 Jah? 857 00:39:45,120 --> 00:39:46,110 >> Õpilane: [kuuldamatu]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. Humala: 1 kuni 9. 859 00:39:47,660 --> 00:39:48,720 Jah, absoluutselt. 860 00:39:48,720 --> 00:39:52,080 1 kuni 9, välja arvatud ehk 8 muudab natuke sest CS50 861 00:39:52,080 --> 00:39:54,650 saab loenguid või nädal null või midagi. 862 00:39:54,650 --> 00:39:55,970 Kuid peaaegu identsed. 863 00:39:55,970 --> 00:39:58,657 Nii et kõik see värk on lihtsalt liiki kopeerida ja kleepida. 864 00:39:58,657 --> 00:40:00,490 Ja seal on paar Teistel liinidel ma ei mõtle 865 00:40:00,490 --> 00:40:05,000 kohta, mis on ilmselt identne üle kõik failid. 866 00:40:05,000 --> 00:40:06,315 >> Õpilane: 12 ja 13. 867 00:40:06,315 --> 00:40:07,190 DAVID J. Humala: Jah. 868 00:40:07,190 --> 00:40:11,220 Muidugi, 12, 13 ja 14 ilmselt, lihtsalt sellepärast, et huvitav värk 869 00:40:11,220 --> 00:40:15,460 toimub liinidel 11 ja 10, nii tundub. 870 00:40:15,460 --> 00:40:18,350 Nii et vaatame, versioon 1, mis püüab parandada seda. 871 00:40:18,350 --> 00:40:24,020 Versioonis 1 nimetatud MVC example-- jagame selgitada, mida MVC vahenditega moment-- 872 00:40:24,020 --> 00:40:27,420 kui ma minema indeks, seda liiki tundub veidi segane praegu. 873 00:40:27,420 --> 00:40:28,880 See ei ole päris nii lihtne kui varem. 874 00:40:28,880 --> 00:40:30,906 >> Aga kui hakkate lugege seda tähelepanelikult, see on 875 00:40:30,906 --> 00:40:32,530 üsna otsekohene, mida ta teeb. 876 00:40:32,530 --> 00:40:34,397 Ilmselt liinile 1 ja rida 8 asendanud 877 00:40:34,397 --> 00:40:37,230 kõik asju sa lihtsalt identified-- kuigi lihtsalt hea meede, 878 00:40:37,230 --> 00:40:41,900 Jätsin ULS seal igaks juhuks mõned päeva jooksul ei ole nimekiri asjadest. 879 00:40:41,900 --> 00:40:47,860 Ja seda nõuavad on selline nagu nael lisada C. koopiad ja pastad 880 00:40:47,860 --> 00:40:50,470 sisu efektiivselt siin sellesse faili. 881 00:40:50,470 --> 00:40:53,650 >> Nii header.php, kui võiks järeldada tema nimi, 882 00:40:53,650 --> 00:40:55,330 läheb päises lehel. 883 00:40:55,330 --> 00:40:57,110 See on omamoodi orvuks siin. 884 00:40:57,110 --> 00:41:01,820 See on ainult ülevalt, vaid enam ei ole mingit sisu allpool. 885 00:41:01,820 --> 00:41:05,070 >> Ja kui ma vaatan jalus vahepeal mis oli muu faili mentioned-- 886 00:41:05,070 --> 00:41:08,830 see on isegi vähem huvitav, kuid jällegi, see on tavaline, et kõike. 887 00:41:08,830 --> 00:41:10,250 Nii et see on jalus. 888 00:41:10,250 --> 00:41:11,300 See on päises. 889 00:41:11,300 --> 00:41:13,950 See on fail, mis on muutes, nii et miks mitte 890 00:41:13,950 --> 00:41:18,140 proovige faktori välja ühitatud Nende kaks rida siin? 891 00:41:18,140 --> 00:41:20,090 >> Kuid me ei puhasta seda kuni veidi kaugemale. 892 00:41:20,090 --> 00:41:23,260 Ma lähen edasi minna ja avada versioon kaks, kus 893 00:41:23,260 --> 00:41:27,106 me näeme, et seal on uus fail, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Eks me näe, mis see on praegu. 895 00:41:28,610 --> 00:41:30,930 Lähme indeks, kuna sisenemispunkti nagu enne. 896 00:41:30,930 --> 00:41:35,230 >> Ja nüüd teate ma nõudes helpers.php, ei või jaluse. 897 00:41:35,230 --> 00:41:41,720 Aga abilised on selline nagu helpers.c ja helpers.h alates pset 2 898 00:41:41,720 --> 00:41:46,150 või pset 3 ammu, kui sa tegelikult ei otsi ja leia selle pset, 899 00:41:46,150 --> 00:41:50,950 ja siis tuli kõik oma kood sorteerimine ja otsides eraldi failis. 900 00:41:50,950 --> 00:41:52,510 See, mis siin toimub. 901 00:41:52,510 --> 00:41:54,390 >> Ja nüüd joon 3 tundub veidi erinev. 902 00:41:54,390 --> 00:41:55,920 Ja see on vaid üks rida. 903 00:41:55,920 --> 00:41:57,950 Et muuta see veelgi selge, ma võiks lihtsalt 904 00:41:57,950 --> 00:42:01,820 ei see on stiililiselt kooskõlas kõik muu oleme teinud. 905 00:42:01,820 --> 00:42:04,130 Aga see ei ole tegelikult muutes funktsionaalsust. 906 00:42:04,130 --> 00:42:05,880 See on lihtsalt üks rida tõeline koodi. 907 00:42:05,880 --> 00:42:09,010 >> Ilmselt seal on funktsioon kuskil nimetatakse muuda päis, 908 00:42:09,010 --> 00:42:11,420 ja see on koht, kus asjad saada päris võimas. 909 00:42:11,420 --> 00:42:17,040 Pange tähele, et sees tema sulgudes on see, mida teised tükk süntaks? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 See on ilmselt natuke raske öelda, kuid teate there's-- Ma panen mõned valge 912 00:42:23,350 --> 00:42:24,300 ruum. 913 00:42:24,300 --> 00:42:25,530 Seal on nurksulgudes. 914 00:42:25,530 --> 00:42:29,700 >> Ja nurksulgudes nägime natuke tagasi kontekstis assotsiatiivne massiivid 915 00:42:29,700 --> 00:42:31,580 mis on jällegi, nagu räsitabeli. 916 00:42:31,580 --> 00:42:36,230 Ja kui te nüüd arvate, et C, järjekord failina funktsiooni 917 00:42:36,230 --> 00:42:37,570 peab alati olema sama. 918 00:42:37,570 --> 00:42:41,146 Te peate meeles pidama, mida tellida on-- x, y, z või z, y, x-ist 919 00:42:41,146 --> 00:42:44,020 ja sa pead alati andma neile samas järjekorras või vaadata neid 920 00:42:44,020 --> 00:42:45,100 kui olete unustanud. 921 00:42:45,100 --> 00:42:51,140 >> Aga see tundub olevat nutikas viis läbimise suvaline põhiväärtus 922 00:42:51,140 --> 00:42:55,840 paari, mille pealkiri on nimi argumendile, antud juhul 923 00:42:55,840 --> 00:42:58,334 ja CS50 on oma väärtus. 924 00:42:58,334 --> 00:43:00,250 Ja asjaolu, et mul on need nurksulud 925 00:43:00,250 --> 00:43:02,560 siin tähendab, et suutsin Samuti liigu midagi 926 00:43:02,560 --> 00:43:07,550 nagu nädalas on 1 või 0, 2 või 3. 927 00:43:07,550 --> 00:43:10,550 Nii et me oleme parameetritega Selle funktsiooni sellisel viisil 928 00:43:10,550 --> 00:43:15,180 et see võib võtta mitu sisendit, kuid nüüd on see lihtsalt üks. 929 00:43:15,180 --> 00:43:20,060 >> Kui ma nüüd minema helpers.php, teate, mida ta teeb. 930 00:43:20,060 --> 00:43:22,030 See on natuke Uute funktsioonide, 931 00:43:22,030 --> 00:43:24,190 aga praegu lihtsalt võtta usu, et see on 932 00:43:24,190 --> 00:43:26,570 süntaks, kellega määratleda funktsiooni PHP. 933 00:43:26,570 --> 00:43:27,840 Sa sõna otseses mõttes öelda funktsiooni. 934 00:43:27,840 --> 00:43:30,090 Sa ei täpsustata tagasi kirjuta, ja see on kooskõlas 935 00:43:30,090 --> 00:43:33,880 koos muutuva eelnevalt detailselt kui sa tõesti ei tugevalt kirjutad. 936 00:43:33,880 --> 00:43:35,650 >> See lihtsalt täpsustab et vaikimisi see 937 00:43:35,650 --> 00:43:37,460 võtab assotsiatiivne massiivi argumendina. 938 00:43:37,460 --> 00:43:38,210 Ja tead mis? 939 00:43:38,210 --> 00:43:41,450 Kui kasutaja ei liigu üks aastal, eeldame vaikimisi väärtus. 940 00:43:41,450 --> 00:43:44,680 >> See on omadus, et C ei ole meile, mis on kena, sest nüüd 941 00:43:44,680 --> 00:43:46,430 andmed, isegi kui ei anna see midagi, 942 00:43:46,430 --> 00:43:49,300 läheb massiivi vaid tühja. 943 00:43:49,300 --> 00:43:51,860 Ja kui kõrvale, ekstrakt lihtsalt teeb midagi funky 944 00:43:51,860 --> 00:43:56,380 kus ta võtab kõik võtmed sellest assotsiatiivne massiiv, kõik asjad 945 00:43:56,380 --> 00:43:59,950 sa võiksid panna nurksulgudesse ja loob muutujad läbi neist 946 00:43:59,950 --> 00:44:06,270 nii et saame lõpuks on juurdepääs neile footet.php ja header.php. 947 00:44:06,270 --> 00:44:08,950 See on pisut abstraktne, seega lubage mul rõhutada seda. 948 00:44:08,950 --> 00:44:12,990 >> In index.php, teate, et ma olen möödaminnes põhiväärtus paari pealkiri 949 00:44:12,990 --> 00:44:14,850 mille väärtus on CS50. 950 00:44:14,850 --> 00:44:18,660 Kui ma nüüd vaadata helpers.php, märgata, et RenderHeader 951 00:44:18,660 --> 00:44:23,870 on kaevandavate et andmed, mida ma möödaminnes aastal, ja siis nõuavad header.php. 952 00:44:23,870 --> 00:44:27,970 Mida ma olen teinud, on omamoodi vaese mehe rakendamise nüüd on järgmine. 953 00:44:27,970 --> 00:44:31,720 >> Kui ma avada header.php, teate, et ma olen enam raske 954 00:44:31,720 --> 00:44:34,890 kodeeritud sõna CS50 selles päisefailist. 955 00:44:34,890 --> 00:44:39,310 Ma panin selle küll atrociously nimega funktsiooni, HTML eriline tähemärki, 956 00:44:39,310 --> 00:44:40,170 sinna. 957 00:44:40,170 --> 00:44:41,640 Aga teate, mis ma olen teinud. 958 00:44:41,640 --> 00:44:44,240 Mul on avatud HTML. 959 00:44:44,240 --> 00:44:47,420 Siis on avatud pea ja avatud pealkiri. 960 00:44:47,420 --> 00:44:52,380 >> Ja siis seestpoolt pealkiri avatud ja lähedal sildid, mul on natuke PHP koodi. 961 00:44:52,380 --> 00:44:56,670 Ja see on tore, kuid süntaks, mis tähendab lihtsalt kaja välja. 962 00:44:56,670 --> 00:44:59,840 Ta sõna otseses mõttes tähendab see-- Kaja following-- 963 00:44:59,840 --> 00:45:01,910 kuid see on seksikam kirjutada. 964 00:45:01,910 --> 00:45:05,000 Echo välja pealkiri mis on olnud möödunud aastal. 965 00:45:05,000 --> 00:45:07,560 >> Aga mis sa arvad HTML erilist char on kõike, 966 00:45:07,560 --> 00:45:10,590 eriti kui teil on mõned enne HTML kogemus? 967 00:45:10,590 --> 00:45:14,050 Mis tegelased võiksid olla ohtlik läbida lehele 968 00:45:14,050 --> 00:45:17,980 kuhu dünaamiliselt tekitama veebilehe koodi nagu see on? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Lubage mul minna seda faili versioon kaks, ja vaata, kui ma ei saa esile kutsuda seda. 971 00:45:24,650 --> 00:45:26,210 >> Version kaks on see. 972 00:45:26,210 --> 00:45:28,510 Ja teate kõik on hea, toimib hästi. 973 00:45:28,510 --> 00:45:35,280 Aga arvan, et ma minema index.php ja Ma täpsustada, et pealkiri minu leheküljel 974 00:45:35,280 --> 00:45:36,630 ei CS50. 975 00:45:36,630 --> 00:45:44,930 See on avatud sulg script alert hello world lähedal ülakoma, 976 00:45:44,930 --> 00:45:49,740 Lõpusulg, semikoolon, avatud klambri kaldkriipsuga skripti. 977 00:45:49,740 --> 00:45:51,897 >> Script, kui jagame lõpuks näha, on tag 978 00:45:51,897 --> 00:45:54,480 et saate kasutada teise programmeerimiskeelt nimega 979 00:45:54,480 --> 00:45:56,330 JavaScript sees veebilehele. 980 00:45:56,330 --> 00:45:57,960 Ja nüüd teate loogika siin. 981 00:45:57,960 --> 00:45:59,840 Siin on võti nimega pealkiri. 982 00:45:59,840 --> 00:46:02,690 Siin on see hull pikk väärtus praegu. 983 00:46:02,690 --> 00:46:07,840 >> Aga kui ma lähen abilised lehel- või pigem päises lehel 984 00:46:07,840 --> 00:46:11,310 Ma kutsun seda funktsiooni selle pealkirja esimene. 985 00:46:11,310 --> 00:46:15,250 Nii et kui ma nüüd uuesti see leht, ma näha seda, mis tundub naeruväärne, 986 00:46:15,250 --> 00:46:16,110 kuid see on ohutu. 987 00:46:16,110 --> 00:46:17,310 See lihtsalt tundub rumal. 988 00:46:17,310 --> 00:46:20,320 >> Aga oletame asemel Olin unustanud selle. 989 00:46:20,320 --> 00:46:24,660 Ja Mark mu sõnu, nullist erinev number sa ei unusta seda teha 990 00:46:24,660 --> 00:46:27,790 ja saad mõned töökas õpilane või sõber tulemas 991 00:46:27,790 --> 00:46:31,540 Teile CS50 õiglane või anonüümselt öösel poking ümber oma veebilehel 992 00:46:31,540 --> 00:46:35,300 ja põhiliselt süstivate koodi unbeknownst sa saidile 993 00:46:35,300 --> 00:46:35,800 kuidagi. 994 00:46:35,800 --> 00:46:39,000 >> Sest kui ma lihtsalt sülitada välja pealkiri siin ja pealkiri 995 00:46:39,000 --> 00:46:44,330 there-- hästi, kui pealkiri sõna-sõnalt näeb välja selline ja PHP 996 00:46:44,330 --> 00:46:47,660 keele, mis võib sülitada välja teistes keeltes teksti, 997 00:46:47,660 --> 00:46:50,650 see on sõna otseses mõttes läheb asendada see silt, 998 00:46:50,650 --> 00:46:53,010 muidugi, mida panin mujal. 999 00:46:53,010 --> 00:46:57,640 >> Nii et kui ma nüüd minema siit ja uuesti pärast tühistades need ohutusmehhanismidest, 1000 00:46:57,640 --> 00:46:59,982 nüüd on mul hello world siin. 1001 00:46:59,982 --> 00:47:02,690 Nüüd, pole kõik nii suur tegelema, aga sa võiksid teha midagi 1002 00:47:02,690 --> 00:47:05,119 veidi pahatahtlik siin, nagu seal 1003 00:47:05,119 --> 00:47:08,410 muu tags-- nagu me näeme, kui me kulutame rohkem aega JavaScript-- nagu asukoht 1004 00:47:08,410 --> 00:47:14,910 dot href saab, tsiteerida, lõppeb, HTTP business.com, kuid vastupidine 1005 00:47:14,910 --> 00:47:15,950 alates teisel päeval. 1006 00:47:15,950 --> 00:47:20,120 Ja nüüd saab indutseerida web leht tegelikult minna kohe 1007 00:47:20,120 --> 00:47:21,190 Selle veebilehe siin. 1008 00:47:21,190 --> 00:47:23,000 >> Ja tegelikult, ma ei taha isegi minna business.com 1009 00:47:23,000 --> 00:47:24,749 sest ma ei taha teada, mis see on. 1010 00:47:24,749 --> 00:47:28,710 Aga ka see käivitab koodi süstida sellel lehel. 1011 00:47:28,710 --> 00:47:32,680 Nii et see on ainult öelda, et kuigi me kasutusele super varakult mõned 1012 00:47:32,680 --> 00:47:36,800 Nende keerukamate struktuuride, see on kõik poole lõpuks hoolitsedes 1013 00:47:36,800 --> 00:47:39,320 et kood ei ole kasutatavad. 1014 00:47:39,320 --> 00:47:40,960 >> Nüüd kolmas versioon siit. 1015 00:47:40,960 --> 00:47:42,470 Läheb veidi Kasvataja. 1016 00:47:42,470 --> 00:47:44,875 Ma ei ole tõesti like-- anal pool mind 1017 00:47:44,875 --> 00:47:47,750 imestasin veidi pahane Asjaolu, et mul oli funktsioon nimega 1018 00:47:47,750 --> 00:47:51,940 RenderHeader ja RenderFooter mis olid peaaegu identsed. 1019 00:47:51,940 --> 00:47:55,400 Nii et see tekkis mulle, miks ei Ma parameterize neid funktsioone 1020 00:47:55,400 --> 00:47:59,180 arvesse vaid üks nn muuda, on see võtta teine ​​argument 1021 00:47:59,180 --> 00:48:04,420 nagu nimi malli lõpliku et render-- kas päis või jalus? 1022 00:48:04,420 --> 00:48:07,160 Ja siis soovi, kui ma tahan läbida mõned põhiväärtus paari 1023 00:48:07,160 --> 00:48:10,580 nagu mina tiitli eest header kuid mitte jalus, 1024 00:48:10,580 --> 00:48:11,800 Ma võiksin seda teha. 1025 00:48:11,800 --> 00:48:16,510 >> Ja nii nüüd kui ma minema helpers.php, see natuke keerulisemaks. 1026 00:48:16,510 --> 00:48:19,670 Ja ma laine mu käed üksikasju, kuid see on vaid üks funktsioon. 1027 00:48:19,670 --> 00:48:21,890 Nii et see samm parema disainiga. 1028 00:48:21,890 --> 00:48:23,360 >> Me ei saa võtta see üks samm edasi. 1029 00:48:23,360 --> 00:48:28,890 Kui ma minema minu neljas versioon sellest, märkate nüüd 1030 00:48:28,890 --> 00:48:31,320 et ma teen midagi veelgi liiki segasena. 1031 00:48:31,320 --> 00:48:33,230 Ja ma tean, et see on palju neelavad korraga 1032 00:48:33,230 --> 00:48:35,080 aga me lihtsalt selline puhastamise asju. 1033 00:48:35,080 --> 00:48:38,550 Nüüd ma panen minu kaastöölisi faili kausta nimega 1034 00:48:38,550 --> 00:48:41,190 includes-- lihtsalt suvaline nimi, kus ma tahan panna asjad 1035 00:48:41,190 --> 00:48:44,300 et ma tahan include-- ja seejärel ülejäänud seda sama. 1036 00:48:44,300 --> 00:48:47,140 >> Aga kui ma vaatan nüüd gedit, teate, et ma olen saanud lahti 1037 00:48:47,140 --> 00:48:51,940 kõigi nende teiste faile ja ma olen liikus neid näiteks võtta siin. 1038 00:48:51,940 --> 00:48:55,110 Ja siis malle, Mul on see siin. 1039 00:48:55,110 --> 00:48:59,292 Ja nii see kõik on nüüd poole samm kasutada palju parem disain muster. 1040 00:48:59,292 --> 00:49:01,000 Ja me oleme väga kiiresti läheb minema 1041 00:49:01,000 --> 00:49:03,870 PHP vaikimisi funktsionaalsust, mis alustasime siin, 1042 00:49:03,870 --> 00:49:07,655 kus sa lihtsalt segada PHP, ja HTML ja CSS, 1043 00:49:07,655 --> 00:49:09,780 ja sa lihtsalt sülitada ja sa minna oma teed. 1044 00:49:09,780 --> 00:49:11,404 Ta ei kavatse olla väga hooldatav. 1045 00:49:11,404 --> 00:49:14,481 Just nagu C, alustasime Mitme faili ja mitmeid funktsioone 1046 00:49:14,481 --> 00:49:15,730 ja faktooring asju, mis välja. 1047 00:49:15,730 --> 00:49:16,688 Me teeme sama siin. 1048 00:49:16,688 --> 00:49:19,970 Ja tõepoolest, in viies ja viimane versioon siit, ma tegin üks teine ​​asi. 1049 00:49:19,970 --> 00:49:23,710 Võite isegi dot dot, mis jälle on lihtsalt ülemkataloogi. 1050 00:49:23,710 --> 00:49:28,260 Et olla veelgi turvateadlikus, sest kui ma vaatan kuulamine 1051 00:49:28,260 --> 00:49:32,450 siin viies ja viimane versioon, teade et mul on üks kataloog siin kutsus 1052 00:49:32,450 --> 00:49:35,180 avaliku ja seejärel samal tasemel, kui nii võib öelda, 1053 00:49:35,180 --> 00:49:38,490 Mul on ja mallid ja siis see tekstifaili readme. 1054 00:49:38,490 --> 00:49:41,130 >> Ja põhjus, miks ma olen struktureeritud see meeldib see-- ja nii palju web 1055 00:49:41,130 --> 00:49:44,330 võõrustajad, eriti need 5 $ kuu ones või $ 10 kuu ones, 1056 00:49:44,330 --> 00:49:47,170 kui olete kunagi olnud üks nendest services-- mida nii paljud neist 1057 00:49:47,170 --> 00:49:50,690 on nad lihtsalt ootavad teid pane kõiki Teie failid ühte kataloogi 1058 00:49:50,690 --> 00:49:53,640 nagu me tegime juba koos see kõige esimene näide. 1059 00:49:53,640 --> 00:49:56,740 >> Aga niipea, kui hakkate hoone rohkem keerukamaid saite, mis lihtsalt salvestada 1060 00:49:56,740 --> 00:50:00,480 andmed hoolid ja failid hoolivad, tegelikult korraldamine asjad 1061 00:50:00,480 --> 00:50:05,060 õigesti ja rohkem turvalisust teadvuse meeles saab 1062 00:50:05,060 --> 00:50:07,927 hakkame kaitsma vastu kõik sõbrad 1063 00:50:07,927 --> 00:50:10,135 et sul on kas või väljaspool seda klassi, kes 1064 00:50:10,135 --> 00:50:12,510 niipea kui hakata programme ise veebis 1065 00:50:12,510 --> 00:50:15,140 lähed alustada korjamine teid ja neid. 1066 00:50:15,140 --> 00:50:17,420 >> Ja nii me vaatame lõpuks on see disain. 1067 00:50:17,420 --> 00:50:20,010 See on lihtsalt pilt mis kujutab järgmine. 1068 00:50:20,010 --> 00:50:22,897 Me läheme panna kõik meie programmeerimise loogikat ühe või enam faili, 1069 00:50:22,897 --> 00:50:25,230 ja me läheme lihtsalt alustada kutsudes neid kontrollereid. 1070 00:50:25,230 --> 00:50:28,022 See, kui ajud Meie veebilehed tegelikult on. 1071 00:50:28,022 --> 00:50:29,730 Siis me ei kavatse on vaated ja seisukohad 1072 00:50:29,730 --> 00:50:32,480 on sama lihtne kui lihtsalt eraldi files-- kutsus malle, tihti. 1073 00:50:32,480 --> 00:50:34,410 Nad lihtsalt on esteetika minu leheküljel 1074 00:50:34,410 --> 00:50:37,020 mida ma tahan lehekülje otsima like-- värvid ja paigutus 1075 00:50:37,020 --> 00:50:38,870 ja seisukohtade kõik muutujad. 1076 00:50:38,870 --> 00:50:41,120 >> Ja siis veel huvitav et me lõpuks saada 1077 00:50:41,120 --> 00:50:45,420 on mudel, mis saab olema lihtsalt sõna me laksu muude tehnoloogiate 1078 00:50:45,420 --> 00:50:47,771 et meil tuua pilt, nagu tegelik andmebaasid 1079 00:50:47,771 --> 00:50:49,520 nii et kui sa tahad info salvestamiseks, 1080 00:50:49,520 --> 00:50:52,140 sa ei saa lihtsalt saata e-posti Teie Proctor või ise, 1081 00:50:52,140 --> 00:50:57,350 sa tegelikult seda säilitada andmebaasis kasutades teises keeles tuntud kui SQL. 1082 00:50:57,350 --> 00:51:00,450 Ja nii me jätan täna siin ja korja see kolmapäeval 1083 00:51:00,450 --> 00:51:02,990 ja tutvustada andmebaaside siis. 1084 00:51:02,990 --> 00:51:06,940 >> [Muusika mängimine] 1085 00:51:06,940 --> 00:54:24,555