1 00:00:00,000 --> 00:00:04,410 >> [Musik spiller] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> SPEAKER 1: Dette er CS50 og dette er slutningen af ​​uge syv. 4 00:00:15,770 --> 00:00:20,240 I dag er måske hvor vi virkelig lære dig sprog. 5 00:00:20,240 --> 00:00:24,100 Vi introducerede i de sidste par uger HTML og CSS, hvoraf ingen 6 00:00:24,100 --> 00:00:25,240 er programmeringssprog. 7 00:00:25,240 --> 00:00:28,600 Og ja, selvom vi ikke gjorde se næsten alle mærkerne 8 00:00:28,600 --> 00:00:33,410 at HTML leveres med og næsten alle af de egenskaber, som CSS kommer med, 9 00:00:33,410 --> 00:00:35,007 der er slags det til HTML og CSS. 10 00:00:35,007 --> 00:00:36,840 Vi vil bare generelt begynde forudsat at du 11 00:00:36,840 --> 00:00:39,545 forstå de generelle ideer af tags og attributter, 12 00:00:39,545 --> 00:00:41,850 og sider bliver sendt fra klient til server. 13 00:00:41,850 --> 00:00:45,280 >> Fordi vi i dag begynder at se på andet programmeringssprog, PHP. 14 00:00:45,280 --> 00:00:47,110 Vi kommer til at gøre det super hurtigt. 15 00:00:47,110 --> 00:00:50,910 Vi kommer ikke til at lære dig PHP i sig selv, meget gerne vi ikke stræber efter at lære dig 16 00:00:50,910 --> 00:00:52,670 C, per se, men snarere programmering. 17 00:00:52,670 --> 00:00:55,088 Og ja, en af ​​de mål for dette kursus 18 00:00:55,088 --> 00:00:57,820 er ikke at lære dig C, eller HTML eller CSS eller PHP, 19 00:00:57,820 --> 00:01:00,370 eller en række andre buzz ord eller akronymer, 20 00:01:00,370 --> 00:01:03,097 men derimod datalogi og hvordan man programmerer fundamentalt. 21 00:01:03,097 --> 00:01:05,930 Og ja, vi i dag begynder at tage disse uddannelse hjul fra alle 22 00:01:05,930 --> 00:01:10,600 yderligere ved at flyve gennem en sprog kaldes PHP, som følger. 23 00:01:10,600 --> 00:01:13,640 >> Her er hvad dette sprog ser ud. 24 00:01:13,640 --> 00:01:17,790 Det viser sig, at der ikke er behov for en hovedfunktion i et program skrevet 25 00:01:17,790 --> 00:01:19,470 på et sprog kaldet PHP. 26 00:01:19,470 --> 00:01:22,585 Så det allerede lyder lidt enklere end C, som vi kender. 27 00:01:22,585 --> 00:01:25,370 Det viser sig, at hvis man ønsker at erklære en variabel, 28 00:01:25,370 --> 00:01:29,470 du gør det næsten identisk med C. Men Der er helt klart en forskel her 29 00:01:29,470 --> 00:01:31,850 når jeg erklærer en streng, eller måske to forskelle. 30 00:01:31,850 --> 00:01:32,725 Hvad ser anderledes ud? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> PUBLIKUM: Dollaren tegn. 33 00:01:37,160 --> 00:01:39,951 >> SPEAKER 1: Ja, der er dollar underskrive, som vi aldrig har set før. 34 00:01:39,951 --> 00:01:41,451 Og hvad der mangler? 35 00:01:41,451 --> 00:01:41,950 Ja? 36 00:01:41,950 --> 00:01:42,820 >> PUBLIKUM: [uhørligt] 37 00:01:42,820 --> 00:01:44,403 >> SPEAKER 1: Ja, der er ingen datatype. 38 00:01:44,403 --> 00:01:48,410 Så det viser sig, at PHP er, hvad vi kalder en løst skrevet sprog, hvor 39 00:01:48,410 --> 00:01:49,959 C er stærkt skrevet. 40 00:01:49,959 --> 00:01:52,500 Løst indtastet betyder blot, at der findes forskellige typer af data, 41 00:01:52,500 --> 00:01:54,470 Der er strenge, og ints, og flåd. 42 00:01:54,470 --> 00:01:56,330 Men computer tallene ud af det. 43 00:01:56,330 --> 00:01:58,664 Du mennesket programmør behøver ikke at regne det ud. 44 00:01:58,664 --> 00:02:00,580 Så alt hvad du skal gøre at erklære en variabel er 45 00:02:00,580 --> 00:02:03,220 dollartegn, navnet på din variabel, og derefter, for eksempel, 46 00:02:03,220 --> 00:02:04,760 citat Citat slut, hej verden. 47 00:02:04,760 --> 00:02:07,662 >> Nå det er hvad en tilstand ser ud i PHP. 48 00:02:07,662 --> 00:02:08,328 Eventuelle forskelle? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Nej. 51 00:02:11,150 --> 00:02:12,540 Så det viser sig disse er identiske. 52 00:02:12,540 --> 00:02:14,665 Og du har måske færre filialer eller flere grene, 53 00:02:14,665 --> 00:02:16,557 men de syntaks sving ud nøjagtig det samme. 54 00:02:16,557 --> 00:02:18,390 Booleske udtryk kan bestilles sammen. 55 00:02:18,390 --> 00:02:20,400 Booleske udtryk kan anded sammen. 56 00:02:20,400 --> 00:02:21,430 Du har stadig kontakter. 57 00:02:21,430 --> 00:02:23,790 Selv hvis du ikke har brugt disse, har disse findes i C 58 00:02:23,790 --> 00:02:26,020 og de er funktionelt tilsvarende i PHP. 59 00:02:26,020 --> 00:02:28,260 >> Og i virkeligheden, i PHP de er lidt mere kraftfuld. 60 00:02:28,260 --> 00:02:32,540 I C, kan du kun sammenligne sikker datatyper som ints og chars, 61 00:02:32,540 --> 00:02:36,320 mens der i PHP kan du faktisk sammenligne fuld fledge strenge uden at have 62 00:02:36,320 --> 00:02:38,460 at bekymre sig om pointere og lignende. 63 00:02:38,460 --> 00:02:39,430 Så her er en for-løkke. 64 00:02:39,430 --> 00:02:41,270 Dette er blot pseudokode kode, hvis du vil. 65 00:02:41,270 --> 00:02:43,400 Men det er strukturelt identisk med C. 66 00:02:43,400 --> 00:02:47,520 >> Her er en while-løkke, pseudokode therefore-- identisk med C. 67 00:02:47,520 --> 00:02:49,390 Her er en gør samtidig loop-- identiske. 68 00:02:49,390 --> 00:02:51,390 Og så der er slags dette mønster her hvorved 69 00:02:51,390 --> 00:02:54,400 der er et par andre syntaktisk funktioner vi faktisk kommer til at se. 70 00:02:54,400 --> 00:02:57,340 I virkeligheden her er der en dejlig måde i PHP hvorved 71 00:02:57,340 --> 00:02:59,350 hvis du ønsker at gentage i et array, og du 72 00:02:59,350 --> 00:03:02,309 ønsker ikke at springe gennem mentale og syntaktiske hoops for at have 73 00:03:02,309 --> 00:03:05,178 int jeg lig 0, jeg mindre end n, jeg plus plus-- som 74 00:03:05,178 --> 00:03:07,040 er bare en masse irriterende syntaks. 75 00:03:07,040 --> 00:03:10,654 Du kan sige lidt mere fluidmæssigt for hver numre 76 00:03:10,654 --> 00:03:13,320 som nummer, hvor i dette tilfælde dollartegn numre, jeg antager, 77 00:03:13,320 --> 00:03:15,400 er som et array kaldet numre. 78 00:03:15,400 --> 00:03:18,810 Og så er jeg går nummer, ental, vil være en variabel. 79 00:03:18,810 --> 00:03:22,940 >> Og hvad PHP vil gøre for mig som jeg gentage i denne løkke er på hver iteration, 80 00:03:22,940 --> 00:03:28,450 det vil opdatere den variable nummer til være den i'te element i tal, plural. 81 00:03:28,450 --> 00:03:30,060 Så det bare håndterer alt dette for mig. 82 00:03:30,060 --> 00:03:32,750 Ingen kantede parenteser, ingen dollar tegn, ingen semikolon. 83 00:03:32,750 --> 00:03:34,117 Det er bare lidt enklere. 84 00:03:34,117 --> 00:03:35,950 Tja, hvis du ønsker en array, viser det sig, du 85 00:03:35,950 --> 00:03:38,908 kan gøre noget temmelig ligner C. Syntaksen er lidt anderledes. 86 00:03:38,908 --> 00:03:41,000 Men her er et array kaldet dollar underskrevet numre. 87 00:03:41,000 --> 00:03:44,261 Og jeg bruger, i PHP, firkantet parenteser, viser det sig. 88 00:03:44,261 --> 00:03:47,260 Og vi kommer til at se disse igen i JavaScript-- endnu et sprog. 89 00:03:47,260 --> 00:03:49,968 Jeg bare bruge firkantede beslag notation at have en kommasepareret liste 90 00:03:49,968 --> 00:03:51,530 af hele tal, i dette tilfælde. 91 00:03:51,530 --> 00:03:53,010 Men det giver mig et array. 92 00:03:53,010 --> 00:03:56,270 >> Men endnu mere kraftfuld i PHP, vi har også, hvad er generelt 93 00:03:56,270 --> 00:03:57,640 kaldes associative arrays. 94 00:03:57,640 --> 00:03:59,540 Og en masse sprog har disse samt. 95 00:03:59,540 --> 00:04:03,810 De ting om C arrays er, at indekserne 96 00:04:03,810 --> 00:04:06,940 til et array, den ting, som du brug i kantede parenteser via hvilke 97 00:04:06,940 --> 00:04:08,600 du få adgang til elementer, skal være hvad? 98 00:04:08,600 --> 00:04:10,620 >> PUBLIKUM: [uhørligt] 99 00:04:10,620 --> 00:04:14,220 >> SPEAKER 1: De skal være tal eller heltal, specifikt fra nul på op. 100 00:04:14,220 --> 00:04:17,140 Tja, i PHP, og, viser det sig ud på andre sprog, 101 00:04:17,140 --> 00:04:20,820 du kan begynde at have indekser, der ikke er numerisk. 102 00:04:20,820 --> 00:04:23,880 Men de er faktisk ord eller sætninger, således at i stedet for 103 00:04:23,880 --> 00:04:27,070 forsøge at huske, hvor noget er, eller gemmes i en variabel i, 104 00:04:27,070 --> 00:04:31,720 du kan faktisk bruge et ord og sige at-- du kan sige et ord som dette. 105 00:04:31,720 --> 00:04:34,730 >> Så dollartegn citat er den navnet på en variabel her. 106 00:04:34,730 --> 00:04:39,360 Dette er noget funky syntaks det er at knytte to centrale værdi 107 00:04:39,360 --> 00:04:41,250 par for denne variabel. 108 00:04:41,250 --> 00:04:45,490 Konkret er dette giver mig en matrix, der er af længde 2. 109 00:04:45,490 --> 00:04:47,660 Men indekser er ikke 0 og 1. 110 00:04:47,660 --> 00:04:51,250 Indeksene er quote citat slut symbol og citerer citat slut pris. 111 00:04:51,250 --> 00:04:55,990 Og værdierne af disse indekser, henholdsvis er FB for Facebook 112 00:04:55,990 --> 00:05:00,360 og $ 79,53, da jeg sidst kontrolleres en pris for dette. 113 00:05:00,360 --> 00:05:01,210 >> Hvad betyder det? 114 00:05:01,210 --> 00:05:04,136 Tja, det betyder, at i stedet for at skrive kode 115 00:05:04,136 --> 00:05:09,612 som dette, hvor jeg plejede at gøre noget ligesom dollar sign-- eller rettere, i C 116 00:05:09,612 --> 00:05:11,070 Jeg ville ikke engang have et dollartegn. 117 00:05:11,070 --> 00:05:13,490 Jeg ville gøre noget ligesom citater og derefter 118 00:05:13,490 --> 00:05:18,410 Jeg ville gøre beslag jeg at få på nogle vilkårligt numerisk indekseret værdi. 119 00:05:18,410 --> 00:05:21,430 Fra i dag i PHP, hvis du ønsker at komme på en vis værdi, 120 00:05:21,430 --> 00:05:24,742 vi slags har mere semantisk udtryksfuldhed. 121 00:05:24,742 --> 00:05:27,450 Bare en fancy måde at sige, vi kan bare kalde tingene, hvad de er. 122 00:05:27,450 --> 00:05:29,800 >> Og hvis du ønsker at få på noget symbol, 123 00:05:29,800 --> 00:05:32,180 nu du bogstaveligt talt gøre citere citat slut symbol 124 00:05:32,180 --> 00:05:34,910 i skarp parentes i stedet for en simpel nummer. 125 00:05:34,910 --> 00:05:36,450 Så det er en nice bekvemmelighed. 126 00:05:36,450 --> 00:05:38,140 Og det er slags det for nu. 127 00:05:38,140 --> 00:05:40,240 Der er klaser af andre funktioner i PHP. 128 00:05:40,240 --> 00:05:43,180 Og ja, PHP kommer med den legendariske køkkenvask. 129 00:05:43,180 --> 00:05:48,640 Snesevis, hundredvis af funktioner kommer med PHP-- så mange flere end kom med C. 130 00:05:48,640 --> 00:05:51,360 >> Og det er ikke beregnet til at overvælde men snarere hjælpe 131 00:05:51,360 --> 00:05:53,900 du indser, at vi ikke længere behøver at skrive kode 132 00:05:53,900 --> 00:05:55,590 det er slags hernede konceptuelt. 133 00:05:55,590 --> 00:05:58,465 Nu kan vi bare begynde at drage fordel af langt mere avancerede funktioner 134 00:05:58,465 --> 00:05:59,920 at sprog som PHP har. 135 00:05:59,920 --> 00:06:02,630 Så vi behøver ikke at bekymre dig om flytte tingene rundt i hukommelsen. 136 00:06:02,630 --> 00:06:05,338 Vi behøver ikke at bekymre sig om malloc og alle disse lavere niveau, 137 00:06:05,338 --> 00:06:09,390 kraftfulde detaljer, som du vil kæmpe med, hvis ikke kæmpe med, pset5, 138 00:06:09,390 --> 00:06:13,380 men du kan begynde at snart tager for givet. 139 00:06:13,380 --> 00:06:17,770 >> Faktisk, lad os skrive en super simpelt program i PHP, som følger. 140 00:06:17,770 --> 00:06:21,550 Jeg har tænkt mig at gå hovedet ind CS50 IDE her, og hvad jeg har tænkt mig at gøre 141 00:06:21,550 --> 00:06:29,370 er at oprette en ny fil, der meget enkelt vil blive kaldt hej dot PHP. 142 00:06:29,370 --> 00:06:31,860 Så i stedet for dot c, er det kommer til at hedde prik PHP. 143 00:06:31,860 --> 00:06:34,260 Og så i denne fil, Jeg kan begynde at skrive. 144 00:06:34,260 --> 00:06:36,960 Men det viser sig, at én ting, jeg er nødt til at vide, 145 00:06:36,960 --> 00:06:41,470 er, at enhver PHP-fil generelt behov at starte med nogle særlige syntaks. 146 00:06:41,470 --> 00:06:44,570 Samme ånd til HTML, men igen, PHP er et programmeringssprog, ikke 147 00:06:44,570 --> 00:06:45,590 et kodesprog. 148 00:06:45,590 --> 00:06:48,700 >> Så hver fil, og det er slags af dumme leder jeg vil indrømme. 149 00:06:48,700 --> 00:06:50,480 Open beslag, spørgsmålstegn, PHP. 150 00:06:50,480 --> 00:06:53,060 Og det er netop den sprogs måde at sige, 151 00:06:53,060 --> 00:06:58,400 hey, computer her kommer noget kode skrevet i et sprog, der kaldes PHP. 152 00:06:58,400 --> 00:07:01,900 Og så til allersidst af din fil, du gør slags slags det modsatte. 153 00:07:01,900 --> 00:07:04,860 Du behøver ikke skrive PHP igen, skal du bare gør spørgsmålstegn, vinkel beslag. 154 00:07:04,860 --> 00:07:08,500 Og derefter noget du lægger inde af disse to tags, så at sige, 155 00:07:08,500 --> 00:07:11,490 vil være, eller bør være, PHP-kode. 156 00:07:11,490 --> 00:07:13,180 >> Så lad os gøre noget super enkel. 157 00:07:13,180 --> 00:07:19,370 Jeg har tænkt mig at gå videre og gøre print def, hej verden, backslash n, gemme. 158 00:07:19,370 --> 00:07:27,310 Og nu på min prompt, vil jeg gør, gør hello-- nej, jeg har tænkt mig at gøre, 159 00:07:27,310 --> 00:07:28,726 dot skråstreg hej. 160 00:07:28,726 --> 00:07:31,250 Nej, dot skråstreg, hm. 161 00:07:31,250 --> 00:07:32,990 Så noget er anderledes. 162 00:07:32,990 --> 00:07:36,920 Og ja, det er en afgørende forskel mellem PHP og sprog som C. C 163 00:07:36,920 --> 00:07:38,730 var en såkaldt kompileret sprog. 164 00:07:38,730 --> 00:07:40,929 Hvad betød det for C, der skal udarbejdes? 165 00:07:40,929 --> 00:07:41,970 Hvad var konsekvenserne? 166 00:07:41,970 --> 00:07:42,898 Ja. 167 00:07:42,898 --> 00:07:45,220 >> PUBLIKUM: Skrev det til maskinkode så det kunne køres af computeren. 168 00:07:45,220 --> 00:07:46,011 >> SPEAKER 1: Præcis. 169 00:07:46,011 --> 00:07:49,075 Vi er nødt til først konvertere det til såkaldte maskine kode, nuller og ettaller, 170 00:07:49,075 --> 00:07:51,950 før det rent faktisk vil være eksekverbare og forstås af computeren. 171 00:07:51,950 --> 00:07:52,840 Af Intel indeni. 172 00:07:52,840 --> 00:07:54,530 Af CPU indersiden af ​​computeren. 173 00:07:54,530 --> 00:07:58,170 PHP, derimod, er det, der hedder et fortolket sprog, som 174 00:07:58,170 --> 00:08:02,230 betyder, at du ikke kompilere det ind nuller og ettaller, maskinkode, 175 00:08:02,230 --> 00:08:04,360 du i stedet lade det være som kildekode. 176 00:08:04,360 --> 00:08:08,130 Og du i stedet give det som input til et program, en tolk 177 00:08:08,130 --> 00:08:11,960 at en anden skrev år siden, der forstår det 178 00:08:11,960 --> 00:08:14,310 linje for linje, tegn for tegn. 179 00:08:14,310 --> 00:08:16,120 Så med andre ord, mennesker derude skrev 180 00:08:16,120 --> 00:08:19,670 et program, der vil se på din kode linje for linje, 181 00:08:19,670 --> 00:08:21,680 og regne ud, hvad computeren skal gøre, 182 00:08:21,680 --> 00:08:25,960 uden at konvertere direkte til nuller og ettaller. 183 00:08:25,960 --> 00:08:28,370 >> Så hvis det ser en for-løkke, denne såkaldte fortolker 184 00:08:28,370 --> 00:08:30,630 kommer til at være ligesom, okay, jeg skulle gøre noget igen og igen og igen. 185 00:08:30,630 --> 00:08:31,150 Hvad burde jeg gøre? 186 00:08:31,150 --> 00:08:32,159 Lad mig se på den næste linje. 187 00:08:32,159 --> 00:08:33,367 Lad mig se på den næste linje. 188 00:08:33,367 --> 00:08:35,350 Og det virkelig fortolker det linje for linje. 189 00:08:35,350 --> 00:08:37,220 Så for at udføre det, jeg ikke bruge make. 190 00:08:37,220 --> 00:08:39,409 Jeg bruger ikke dot skråstreg i dette tilfælde. 191 00:08:39,409 --> 00:08:43,530 I stedet gør PHP, som er navnet på et program, alias 192 00:08:43,530 --> 00:08:46,562 En tolk, der er præ-installeret i CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 og nu har jeg brug for at passere en kommandolinje argument, som 194 00:08:48,770 --> 00:08:52,290 er ganske enkelt navnet på den fil, at jeg ønsker at fortolke. 195 00:08:52,290 --> 00:08:54,740 Eller mere henkastet, at jeg vil køre. 196 00:08:54,740 --> 00:08:57,000 Og hvis jeg ramte Enter, der har vi det. 197 00:08:57,000 --> 00:08:57,825 Hej Verden. 198 00:08:57,825 --> 00:08:59,950 Nu viser det sig, at jeg Brugte print def bevidst 199 00:08:59,950 --> 00:09:01,600 at bygge bro os fra C til PHP. 200 00:09:01,600 --> 00:09:05,150 De fleste PHP programmører, som du vil se, ikke engang gider at bruge print def. 201 00:09:05,150 --> 00:09:08,290 De bare bruge en funktion kaldet print, som C ikke havde. 202 00:09:08,290 --> 00:09:11,390 Og så hvis jeg køres igen det nu, det faktisk opfører funktionelt det samme. 203 00:09:11,390 --> 00:09:13,730 Jeg kan ikke bruge procent s og procent i og så videre, 204 00:09:13,730 --> 00:09:16,250 men der er andre måder i PHP at gøre det på. 205 00:09:16,250 --> 00:09:18,100 Men dette er kun til sige, at syntaktisk, 206 00:09:18,100 --> 00:09:21,850 andre end nogle underlige ting op toppen, og nogle underlige tegn ned 207 00:09:21,850 --> 00:09:25,960 i bunden, begreberne nu af programmering i dette andet sprog 208 00:09:25,960 --> 00:09:27,860 kommer til at være præcis den samme. 209 00:09:27,860 --> 00:09:30,120 >> Faktisk lad os gøre et andet eksempel. 210 00:09:30,120 --> 00:09:32,520 Så jeg har tænkt mig at gå videre og luk denne fil. 211 00:09:32,520 --> 00:09:37,740 Lad mig lave en anden, der Jeg ringer vilkår 1 prik PHP. 212 00:09:37,740 --> 00:09:40,770 Så ingen nul, fordi det, jeg gjorde var jeg kiggede tilbage et par uger siden, 213 00:09:40,770 --> 00:09:43,490 vi havde en fil kaldet vilkår 1 prik C. Og hvad 214 00:09:43,490 --> 00:09:47,590 Jeg blev konverteret det i min hoved, og her på papiret, 215 00:09:47,590 --> 00:09:51,290 og snart på kursets hjemmeside, linje for linje i PHP. 216 00:09:51,290 --> 00:09:55,520 >> Så i C-version, vi gjorde noget Ligesom strengen s får få strengen. 217 00:09:55,520 --> 00:09:58,200 Så det er lidt anderledes at gøre det i PHP. 218 00:09:58,200 --> 00:10:01,390 I stedet, jeg bare at gøre, eller rettere, jeg 219 00:10:01,390 --> 00:10:05,870 kunne have gjort int n får få int, i dette eksempel tidligere. 220 00:10:05,870 --> 00:10:12,600 Så i stedet for det, vil jeg gøre n bliver læst linje, vil jeg gerne et heltal, 221 00:10:12,600 --> 00:10:13,670 be om. 222 00:10:13,670 --> 00:10:15,110 Så dette er bare min prompt. 223 00:10:15,110 --> 00:10:17,260 Og så viser det sig, og Jeg vil kun vide dette 224 00:10:17,260 --> 00:10:20,480 fra at have læst eller set den funktion før, læse linjer af funktion i PHP 225 00:10:20,480 --> 00:10:23,810 tager et argument, der er en prompt for mennesket, og dens formål i livet 226 00:10:23,810 --> 00:10:26,220 er at læse en tekstlinie at han eller hun typer i. 227 00:10:26,220 --> 00:10:29,160 Og så er det gemmer der tekst i den variable n. 228 00:10:29,160 --> 00:10:32,200 >> Og nu jeg måske ønsker at gøre noget ligesom jeg gjorde uger siden, på samme uge 229 00:10:32,200 --> 00:10:33,290 en af ​​klassen. 230 00:10:33,290 --> 00:10:36,600 Hvis n er større end nul, så jeg har tænkt mig 231 00:10:36,600 --> 00:10:42,930 at låne, at syntaks vi lige set, print def, du valgte et positivt tal, 232 00:10:42,930 --> 00:10:44,360 backslash n. 233 00:10:44,360 --> 00:10:49,990 Andet, hvis n er lig med nul, er jeg kommer til at gå videre og sige, udskrive def, 234 00:10:49,990 --> 00:10:54,090 du valgte nul backslash n. 235 00:10:54,090 --> 00:10:56,830 Else, sagen her bør naturligvis være, udskrive def, 236 00:10:56,830 --> 00:10:58,620 du valgte et negativt tal. 237 00:10:58,620 --> 00:11:00,970 >> Og vi kan helt sikkert gennemføre logikken i denne ting 238 00:11:00,970 --> 00:11:03,390 i en masse forskellige måder, men pointen her 239 00:11:03,390 --> 00:11:07,210 er, at syntaktisk, næppe noget er nyt. 240 00:11:07,210 --> 00:11:09,830 Det er bare dollar tegn og en ny funktion og læse linje. 241 00:11:09,830 --> 00:11:12,090 Men fundamentalt, hvad der er nyt nu er jeg fortolke dette. 242 00:11:12,090 --> 00:11:13,910 Jeg passerer det som input til et andet program. 243 00:11:13,910 --> 00:11:16,620 Så hvis jeg ønsker at køre dette, hvis Jeg har ikke nogen fejl, 244 00:11:16,620 --> 00:11:20,140 Jeg har tænkt mig at køre PHP, af vilkår 1 dot PHP, Enter, 245 00:11:20,140 --> 00:11:23,440 Jeg har tænkt mig at skrive i antallet 50, og lad os antage, for nu det fungerer. 246 00:11:23,440 --> 00:11:25,940 Fordi logikken er samme ting som uge et. 247 00:11:25,940 --> 00:11:28,020 >> Okay, så det er temmelig underwhelming, ikke? 248 00:11:28,020 --> 00:11:30,240 Vi kunne gøre dette i en hvilken som helst antal sprog. 249 00:11:30,240 --> 00:11:33,200 Lad os gøre noget måde mere kraftfuld. 250 00:11:33,200 --> 00:11:35,610 Lad os færdig problem sæt fem. 251 00:11:35,610 --> 00:11:37,370 Så jeg har tænkt mig at gå videre og gøre dette. 252 00:11:37,370 --> 00:11:42,920 Jeg har tænkt mig at oprette en fil kaldes ordbog dot PHP, 253 00:11:42,920 --> 00:11:45,424 og med en hældning, som du kan være at klatre ned masser af noter, 254 00:11:45,424 --> 00:11:47,340 noterne vil kun hjælpe dig, hvis du er tilladt 255 00:11:47,340 --> 00:11:48,923 at gennemføre problemer sætte fem i PHP. 256 00:11:48,923 --> 00:11:52,706 Men vi vil se, hvor hurtigt vi nu kan gennemføre denne samme problem sæt. 257 00:11:52,706 --> 00:11:56,830 >> Så i ordbogen dot PHP, vil jeg at antage, at der allerede er 258 00:11:56,830 --> 00:11:58,514 en fil i verden kaldet stave. 259 00:11:58,514 --> 00:12:01,430 Og ja, jeg gjorde det i forvejen, og vi vil ikke gå gennem denne linje 260 00:12:01,430 --> 00:12:03,596 for linje, men hvis du er nysgerrig senere og virkelig ønsker 261 00:12:03,596 --> 00:12:06,250 til wrap dit sind omkring forskelle mellem C og PHP, 262 00:12:06,250 --> 00:12:09,030 bogstaveligt sammenligne denne fil, Speller fra dagens kildekode 263 00:12:09,030 --> 00:12:11,190 at vi vil sende senere dag, mod p sæt 264 00:12:11,190 --> 00:12:15,309 fem speller dot c, at vi giver dig, og det er næsten den samme linje for linje. 265 00:12:15,309 --> 00:12:16,600 Der er nogle flere dollartegn. 266 00:12:16,600 --> 00:12:18,330 Et par funktioner er lidt anderledes. 267 00:12:18,330 --> 00:12:20,038 Men det er en dejlig måde af slags se, hvordan 268 00:12:20,038 --> 00:12:22,740 du oversætte et sprog til et andet. 269 00:12:22,740 --> 00:12:24,812 Og det er næsten identisk linje for linje. 270 00:12:24,812 --> 00:12:27,770 Men jeg har tænkt mig at antage, at der eksisterer, og hvad jeg har tænkt mig at gøre her 271 00:12:27,770 --> 00:12:31,310 er at forsøge at blæse dit imod ved reimplementing 272 00:12:31,310 --> 00:12:36,210 helhed af problemet sæt fem måde hurtigere end du har gjort hidtil. 273 00:12:36,210 --> 00:12:39,330 Så for eksempel, vil jeg først erklære en global variabel kaldet størrelse, 274 00:12:39,330 --> 00:12:40,444 og sæt den lig med nul. 275 00:12:40,444 --> 00:12:41,610 Nu det er ikke meget besparelser. 276 00:12:41,610 --> 00:12:44,170 Odds er du implementeret størrelse stort set den samme, 277 00:12:44,170 --> 00:12:48,440 eller hint hint, vil i aften eller i morgen, blot ved hjælp af en global variabel kaldet 278 00:12:48,440 --> 00:12:49,900 størrelse og sætte den lig med nul. 279 00:12:49,900 --> 00:12:52,660 Det er ikke en særlig fantastiske spoiler. 280 00:12:52,660 --> 00:12:57,180 >> Så hvad var dine data strukturer valg, de af jer, der har dykket i 281 00:12:57,180 --> 00:13:02,170 og læs spec, hvad datastrukturer har de fleste af jer har brugt? 282 00:13:02,170 --> 00:13:06,840 En hash tabel eller prøv, måske nogle varianter deraf. 283 00:13:06,840 --> 00:13:10,490 Så gennemføre en hash tabel mindst, er lidt af en masse linjer kode, 284 00:13:10,490 --> 00:13:10,990 højre? 285 00:13:10,990 --> 00:13:13,700 Og ikke alle af dem kan være funktionelt på dette tidspunkt på ugen, 286 00:13:13,700 --> 00:13:14,366 men det er fint. 287 00:13:14,366 --> 00:13:19,300 Fordi i PHP, hvis jeg ønsker en hash tabel, gjort. 288 00:13:19,300 --> 00:13:20,260 Højre? 289 00:13:20,260 --> 00:13:22,610 Så variabel, jeg har netop erklæret er naturligvis 290 00:13:22,610 --> 00:13:26,180 kaldet dollar tegn bord, pr indførelsen før. 291 00:13:26,180 --> 00:13:28,902 >> Men jeg virkelig bare vil have, på I slutningen af ​​dagen, et array. 292 00:13:28,902 --> 00:13:31,610 Men ikke en numerisk indekseret array, fordi det er ligesom uge to 293 00:13:31,610 --> 00:13:33,440 kram, da vi talte om arrays. 294 00:13:33,440 --> 00:13:34,850 Jeg vil have en hash tabel. 295 00:13:34,850 --> 00:13:38,070 Men en hash tabel er virkelig bare en konkret måde at sige, 296 00:13:38,070 --> 00:13:40,190 du ønsker en associativt array. 297 00:13:40,190 --> 00:13:43,270 Du vil være i stand til at associerede nøgler med værdier. 298 00:13:43,270 --> 00:13:44,200 Nøgler med værdier. 299 00:13:44,200 --> 00:13:45,640 Hvad er en ordbog, virkelig? 300 00:13:45,640 --> 00:13:47,080 Jamen det er en hel masse af nøgler. 301 00:13:47,080 --> 00:13:50,320 Ord som æble, pære, og banan, og alle disse engelske ord 302 00:13:50,320 --> 00:13:51,490 at vi hånd du. 303 00:13:51,490 --> 00:13:54,820 >> Og de værdier, som du er effektivt indsættelse i din ordbog 304 00:13:54,820 --> 00:13:57,790 er enten sand eller manglende, falske. 305 00:13:57,790 --> 00:14:00,540 Med andre ord, du indsætter en hel masse vigtige værdi par, 306 00:14:00,540 --> 00:14:03,720 æble, sand, pære, sandt, banan, sandt. 307 00:14:03,720 --> 00:14:07,446 Så når du hente eller se op, at data i dit hash tabel 308 00:14:07,446 --> 00:14:10,070 med din check-funktion, er du enten at komme tilbage et svar, 309 00:14:10,070 --> 00:14:13,260 ja, jeg fandt det i min komplekse hash tabel, eller nej, det er ikke der, 310 00:14:13,260 --> 00:14:14,540 så du vender tilbage falsk. 311 00:14:14,540 --> 00:14:19,440 >> Så for at gøre det, jeg har brug for er de data, struktur som jeg foreslog før. 312 00:14:19,440 --> 00:14:22,050 Jeg har bare brug for at være i stand at knytte ord 313 00:14:22,050 --> 00:14:25,570 lignende, citat Citat slut, symbol, med en værdi lignende, sandt. 314 00:14:25,570 --> 00:14:27,090 Så der er min hash tabellen. 315 00:14:27,090 --> 00:14:28,180 Lad os rent faktisk bruger det. 316 00:14:28,180 --> 00:14:30,310 Så der er et par funktioner Jeg har brug for at gennemføre. 317 00:14:30,310 --> 00:14:33,300 Jeg har tænkt mig at gå videre og bide fra en funktion kaldet størrelse. 318 00:14:33,300 --> 00:14:34,390 Det tager ingen argumenter. 319 00:14:34,390 --> 00:14:36,660 Jeg behøver ikke at bekymre ordet, ugyldig, i PHP. 320 00:14:36,660 --> 00:14:38,770 Jeg vil blot vende tilbage størrelse. 321 00:14:38,770 --> 00:14:41,287 >> Og som en sidebemærkning, PHP har dette minorly irriterende detaljer, 322 00:14:41,287 --> 00:14:44,620 hvor, hvis noget er global, er du nødt til at fortælle den funktion, hvor du bruger 323 00:14:44,620 --> 00:14:46,220 det, hey, det er en global variabel. 324 00:14:46,220 --> 00:14:49,330 Så mindre dumhed, men du nødt til at gøre det alligevel. 325 00:14:49,330 --> 00:14:50,920 >> Så hvad med belastning? 326 00:14:50,920 --> 00:14:52,990 Jeg har tænkt mig at gennemføre en funktion kaldet belastning 327 00:14:52,990 --> 00:14:56,790 der tager i navnet på en ordbog, ligesom i problemet sæt fem. 328 00:14:56,790 --> 00:14:59,554 Og før jeg går videre, bemærke, at jeg ikke har 329 00:14:59,554 --> 00:15:00,970 været at skrive helt de samme ting. 330 00:15:00,970 --> 00:15:06,060 Hvad er naturligvis anderledes i PHP om hvordan du erklærer en funktion versus C? 331 00:15:06,060 --> 00:15:06,616 Ja. 332 00:15:06,616 --> 00:15:07,490 PUBLIKUM: [uhørligt] 333 00:15:07,490 --> 00:15:08,573 SPEAKER 1: Ingen retur type. 334 00:15:08,573 --> 00:15:12,350 Og ja, det er tilfældet, PHP for så vidt det er løst skrevet, 335 00:15:12,350 --> 00:15:14,190 er også lidt sjusket i den forstand. 336 00:15:14,190 --> 00:15:17,680 Du behøver ikke angive som programmøren hvad denne funktion returnerer. 337 00:15:17,680 --> 00:15:20,490 Du ville have til rent faktisk at se på koden for at finde ud af. 338 00:15:20,490 --> 00:15:22,670 Eller læse kommentarer eller dokumentationen. 339 00:15:22,670 --> 00:15:24,870 Så plusser og minusser af disse former for beslutninger. 340 00:15:24,870 --> 00:15:26,750 Men jeg behøver at sige nøgleordet, funktion. 341 00:15:26,750 --> 00:15:28,360 Og når vi lærer JavaScript i et par uger 342 00:15:28,360 --> 00:15:31,026 vi kommer til at se de samme ting igen, men det er den samme idé. 343 00:15:31,026 --> 00:15:34,220 Navnet på den funktion, dens argumentation eller argumenter eller mangel på samme, og nu 344 00:15:34,220 --> 00:15:35,630 her er implementeringen. 345 00:15:35,630 --> 00:15:38,860 >> Så jeg har tænkt mig at skære nogle hjørner bare at være dramatisk for blot et øjeblik. 346 00:15:38,860 --> 00:15:40,485 Men jeg har tænkt mig at gå videre og sige dette. 347 00:15:40,485 --> 00:15:44,890 Dette er, hvordan jeg kan indlæse en fil i et array. 348 00:15:44,890 --> 00:15:47,580 Der er en funktion i PHP kaldet fil. 349 00:15:47,580 --> 00:15:49,300 Du aflevere det navnet på en fil. 350 00:15:49,300 --> 00:15:53,950 Det hænder du tilbage et array, indvendig af hvilket er hver linje fra filen. 351 00:15:53,950 --> 00:15:56,480 Fra nul, en, på op til n minus 1 linjer. 352 00:15:56,480 --> 00:15:57,210 Det er det, ikke? 353 00:15:57,210 --> 00:15:57,990 Der er ingen f læse. 354 00:15:57,990 --> 00:15:58,826 Der er ingen f get s. 355 00:15:58,826 --> 00:15:59,700 Der er ingen procent s. 356 00:15:59,700 --> 00:16:00,420 Der er ingen hovedpine. 357 00:16:00,420 --> 00:16:01,220 Der er ingen feof. 358 00:16:01,220 --> 00:16:03,950 Alt dette ting med, som du har kæmpet måske 359 00:16:03,950 --> 00:16:06,550 med p sæt fire og fem, går væk. 360 00:16:06,550 --> 00:16:09,450 >> Så jeg har lige læst disse linjer i filen, og så ved du hvad? 361 00:16:09,450 --> 00:16:15,510 Hvis jeg ønsker at gentage over disse ord, Jeg kan gøre, for hver linjer som linje. 362 00:16:15,510 --> 00:16:19,992 Husk, at dette var sådan en klog måde iteration over en matrix, indeks 363 00:16:19,992 --> 00:16:25,090 ved indeks, og på hver iteration kald den aktuelle linje, dollartegn linje. 364 00:16:25,090 --> 00:16:31,560 Og lige her jeg har tænkt mig at gå og siger bord, beslag, line, bliver sandt. 365 00:16:31,560 --> 00:16:35,880 >> Med andre ord, det er sådan jeg indsætte i min hash tabellen i PHP. 366 00:16:35,880 --> 00:16:38,740 Jeg siger dollartegn tabel, som er min associative array, der var 367 00:16:38,740 --> 00:16:40,690 tomme pr linje kode op over. 368 00:16:40,690 --> 00:16:42,790 Jeg derefter indekset i det ikke ved hjælp af en række, 369 00:16:42,790 --> 00:16:45,300 men bogstaveligt hjælp af søgeord, som jeg holder af. 370 00:16:45,300 --> 00:16:47,730 Måske er det æble eller pære eller banan eller hvad, 371 00:16:47,730 --> 00:16:51,645 men specifikt jeg indeksering ind i det ligesom jeg foreslog tidligere. 372 00:16:51,645 --> 00:16:53,770 Jeg tager navnet på min associative array, og så er jeg 373 00:16:53,770 --> 00:16:56,450 bruge quote citat slut i kantede parenteser med en snor, 374 00:16:56,450 --> 00:16:58,490 i stedet for en faktiske antal. 375 00:16:58,490 --> 00:17:00,250 >> Og så det er det. 376 00:17:00,250 --> 00:17:01,720 Belastningen funktionen er færdig. 377 00:17:01,720 --> 00:17:05,119 Når denne løkke gentager, har jeg lagt alt i hash tabellen. 378 00:17:05,119 --> 00:17:07,810 Nu lille ansvarsfraskrivelse, der er en par ting, jeg behøver at løse. 379 00:17:07,810 --> 00:17:10,030 Og den version jeg vil bogføre online vil have alle nuancerne, 380 00:17:10,030 --> 00:17:12,670 men det er for det meste bare at være nogle fejlkontrol og nogle mindre tweaks. 381 00:17:12,670 --> 00:17:14,044 Men det er faktisk kernen i det. 382 00:17:14,044 --> 00:17:16,750 Hvis jeg nu ønsker at gennemføre funktionen kaldes 383 00:17:16,750 --> 00:17:19,869 check, der forventer en ord som sit argument, 384 00:17:19,869 --> 00:17:22,099 hvordan kan jeg gå om at gøre det? 385 00:17:22,099 --> 00:17:30,020 Nå, jeg bare vil sige, hvis indersiden af ​​min tabel, ved placering ord, 386 00:17:30,020 --> 00:17:30,652 hvis indstilles. 387 00:17:30,652 --> 00:17:32,360 Så hvis der is-- faktisk, ved du hvad? 388 00:17:32,360 --> 00:17:34,830 Jeg har tænkt mig at gøre det i lidt af pseudokode. 389 00:17:34,830 --> 00:17:36,020 Men ideen er den samme. 390 00:17:36,020 --> 00:17:41,640 Hvis der er lig med sand, returnere sandt. 391 00:17:41,640 --> 00:17:43,890 Okay. 392 00:17:43,890 --> 00:17:46,851 Else-- du kan slags se, hvor dette going-- at returnere false. 393 00:17:46,851 --> 00:17:47,350 Færdig. 394 00:17:47,350 --> 00:17:49,640 Check er gjort. 395 00:17:49,640 --> 00:17:50,940 >> Pretty nice, right? 396 00:17:50,940 --> 00:17:52,560 Og så hvad er det egentlig at komme på? 397 00:17:52,560 --> 00:17:53,680 Og også dette, jeg skære nogle hjørner. 398 00:17:53,680 --> 00:17:56,020 Kig på den version online for alle de små nuancer. 399 00:17:56,020 --> 00:17:57,103 Men det er kernen i det. 400 00:17:57,103 --> 00:17:59,080 Indeks ind i din associative array, alias 401 00:17:59,080 --> 00:18:02,910 Hash tabel, se om der er en værdi der, hvis det er sat til true, og hvis ja, 402 00:18:02,910 --> 00:18:03,930 returnere sandt. 403 00:18:03,930 --> 00:18:05,819 Så vi har skåret ned alle kompleksitet. 404 00:18:05,819 --> 00:18:07,110 Så slags sind blæser, ikke? 405 00:18:07,110 --> 00:18:09,680 Jeg vil ikke gider efterbehandling det med unload, fordi i fact-- åh, ved du hvad? 406 00:18:09,680 --> 00:18:11,620 Ja, lad os slutte det med losse. 407 00:18:11,620 --> 00:18:18,940 >> Losse i en hash tabel kan se Ligesom funktion losse, vende tilbage. 408 00:18:18,940 --> 00:18:19,930 OK, så det er losse. 409 00:18:19,930 --> 00:18:21,350 Fordi der ikke er noget at losse, ikke? 410 00:18:21,350 --> 00:18:22,170 Der er ingen malloc. 411 00:18:22,170 --> 00:18:24,280 Jeg har ikke udtrykkeligt spørge styresystem til noget. 412 00:18:24,280 --> 00:18:25,571 Jeg er lige begyndt at bruge variabler. 413 00:18:25,571 --> 00:18:30,510 Og så dette er også en manifestation af funktioner i højere sprog niveau. 414 00:18:30,510 --> 00:18:32,940 Så igen, det meste af denne valgperiode vi har været der beskæftiger sig hernede 415 00:18:32,940 --> 00:18:34,280 med C. Super lavt niveau. 416 00:18:34,280 --> 00:18:35,980 Du kan se computerens hukommelse. 417 00:18:35,980 --> 00:18:38,440 Du kan trykke på noget, du ønsker i computerens RAM, 418 00:18:38,440 --> 00:18:39,440 for bedre eller værre. 419 00:18:39,440 --> 00:18:41,760 >> Heroppe, vi kommer til at opgive denne magt. 420 00:18:41,760 --> 00:18:44,730 Men min Gud, se hvordan meget mindre kode jeg skrev. 421 00:18:44,730 --> 00:18:47,660 I virkeligheden, hvis jeg ikke talte og tale over min skrive, 422 00:18:47,660 --> 00:18:50,190 vi ville have været gjort med dette eksempel for fem minutter siden. 423 00:18:50,190 --> 00:18:52,150 Så hvad er den pris bliver betalt? 424 00:18:52,150 --> 00:18:54,100 Jamen så lad os tage et kig. 425 00:18:54,100 --> 00:18:55,340 Lad os tage et kig. 426 00:18:55,340 --> 00:18:59,340 Jeg har tænkt mig at gå videre og køre CS50. 427 00:18:59,340 --> 00:19:02,160 Lad mig først gå ind nutidens eksempler, hvor 428 00:19:02,160 --> 00:19:03,970 Jeg har den tekster mappe som før. 429 00:19:03,970 --> 00:19:08,520 Jeg har tænkt mig at køre den løsning, det kommer med problemet sæt fem kaldet 430 00:19:08,520 --> 00:19:11,190 Speller, som er i CS50 konto. 431 00:19:11,190 --> 00:19:14,040 >> Og jeg har tænkt mig at køre det på noget store ligesom King James Bible, 432 00:19:14,040 --> 00:19:16,547 bare så vi virkelig sætte personalets løsninger på prøve. 433 00:19:16,547 --> 00:19:19,130 Nu nogle gange internettet er en lidt langsommere, lidt hurtigere, 434 00:19:19,130 --> 00:19:20,338 kan tage et stykke tid at rulle. 435 00:19:20,338 --> 00:19:23,730 Men det tog i alt .56 sekunder at stave tjekke King James 436 00:19:23,730 --> 00:19:25,150 Bibel hjælp af personalet opløsning. 437 00:19:25,150 --> 00:19:25,620 Så temmelig godt. 438 00:19:25,620 --> 00:19:27,786 Med venlig kan være meget langsommere, og det er helt fint. 439 00:19:27,786 --> 00:19:30,090 Men det er korrekt her. 440 00:19:30,090 --> 00:19:32,440 Så det er de ansatte løsning. 441 00:19:32,440 --> 00:19:34,785 Hvis jeg går ind og rydde op i PHP-version. 442 00:19:34,785 --> 00:19:36,990 Og jeg har tænkt mig at gøre lidt ligesom bagning show ting. 443 00:19:36,990 --> 00:19:39,720 Vi kommer til at tage den kode jeg skrev tidligere, så det er helt korrekt. 444 00:19:39,720 --> 00:19:42,678 Fordi koden jeg skrev ikke vil at være helt korrekt lige nu. 445 00:19:42,678 --> 00:19:47,310 Men hvis jeg kører PHP-version, hvad skal jeg give dig i dag? 446 00:19:47,310 --> 00:19:49,980 Tog mig fem minutter til at gennemføre p sæt fem, hævder jeg. 447 00:19:49,980 --> 00:19:51,770 Hvilken pris har jeg betalt? 448 00:19:51,770 --> 00:19:52,270 Ja. 449 00:19:52,270 --> 00:19:52,937 >> PUBLIKUM: Hastighed. 450 00:19:52,937 --> 00:19:53,645 SPEAKER 1: Hastighed. 451 00:19:53,645 --> 00:19:54,380 Hvad mener du? 452 00:19:54,380 --> 00:19:55,230 >> PUBLIKUM: Det kommer til at tage længere tid. 453 00:19:55,230 --> 00:19:55,660 >> SPEAKER 1: Okay. 454 00:19:55,660 --> 00:19:56,160 Lad os se. 455 00:19:56,160 --> 00:19:59,590 Det kommer til at tage længere tid, ikke at skrive, men at køre den. 456 00:19:59,590 --> 00:20:00,090 Ja. 457 00:20:00,090 --> 00:20:00,960 Så lad os prøve dette. 458 00:20:00,960 --> 00:20:05,720 Så her jeg har tænkt mig at gå videre og gøre PHP for speller, og fordi filens 459 00:20:05,720 --> 00:20:06,360 kaldet stave. 460 00:20:06,360 --> 00:20:07,580 Så jeg ikke kører ordbog, tilbagekaldelse, 461 00:20:07,580 --> 00:20:09,204 Jeg kører det program kaldet stave. 462 00:20:09,204 --> 00:20:12,450 Jeg har tænkt mig at passere i den samme fil, Kong James den femte. 463 00:20:12,450 --> 00:20:14,377 Det flyvende forbi. 464 00:20:14,377 --> 00:20:17,210 Det kunne bare være internet hastighed, så du skal ikke læse for meget ind i det. 465 00:20:17,210 --> 00:20:21,680 Men det føles længere sikker. 466 00:20:21,680 --> 00:20:23,280 1.26 sekunder. 467 00:20:23,280 --> 00:20:25,150 >> Se, det er stadig temmelig sgu hurtigt, ikke? 468 00:20:25,150 --> 00:20:28,140 Og den eneste grund til, at følte mere som tre eller fire, eller fem 469 00:20:28,140 --> 00:20:30,515 sekunder, det er bare fordi Internettet var at være langsom. 470 00:20:30,515 --> 00:20:33,980 Computeren tid brugt var 1,26 sekunder, versus jeg tror 0,56. 471 00:20:33,980 --> 00:20:35,880 Så mere end dobbelt så langsom. 472 00:20:35,880 --> 00:20:39,170 Nu, er stadig temmelig darn hurtigt, men det er en manifestation 473 00:20:39,170 --> 00:20:40,860 af, ja, det nøjagtige pris. 474 00:20:40,860 --> 00:20:43,460 >> Fordi vi fortolker i koden linje for linje, 475 00:20:43,460 --> 00:20:46,740 og at programmet PHP læser min kode top til bund, venstre til højre, 476 00:20:46,740 --> 00:20:47,940 det har at gøre mere tænkning. 477 00:20:47,940 --> 00:20:50,430 Det har at slags konvertere det inde i sig selv 478 00:20:50,430 --> 00:20:53,464 til den tilsvarende maskine kode på flue, så at sige, 479 00:20:53,464 --> 00:20:55,380 selv om mekanikken er en smule anderledes. 480 00:20:55,380 --> 00:20:59,430 I stedet for blot at tilføre til Intel CPU de rå nuller og ettaller 481 00:20:59,430 --> 00:21:00,930 at den forstår indbygget. 482 00:21:00,930 --> 00:21:04,110 >> Så absolut, hænder ned, vi har betalt en pris. 483 00:21:04,110 --> 00:21:09,120 Og kode skrevet i et sprog som PHP tendens til at være langsommere. 484 00:21:09,120 --> 00:21:10,050 Men min gud. 485 00:21:10,050 --> 00:21:12,740 Så nu når jeg stave tjekke min fil, jeg tilbringe en ekstra 0,7 486 00:21:12,740 --> 00:21:17,280 sekunder eller deromkring vs 20 timer at gennemføre en hurtigere stavekontrol, ikke? 487 00:21:17,280 --> 00:21:18,397 Det er lidt en afvejning. 488 00:21:18,397 --> 00:21:20,980 Og hvis du lige er startet p indstille fem, måske ikke være 20 timer. 489 00:21:20,980 --> 00:21:22,188 Kan være langt færre end det. 490 00:21:22,188 --> 00:21:23,600 Men det er en afvejning, for alvor. 491 00:21:23,600 --> 00:21:27,820 Og hvis du kører kode på virkelig store datasæt, eller på endnu ældre hardware, 492 00:21:27,820 --> 00:21:32,650 den slags forskelle kan helt sikkert tilføje op. 493 00:21:32,650 --> 00:21:34,880 >> Eventuelle spørgsmål hidtil? 494 00:21:34,880 --> 00:21:35,617 Ja. 495 00:21:35,617 --> 00:21:36,492 >> PUBLIKUM: [uhørligt] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 SPEAKER 1: Beklager, kan du siger det en gang mere? 498 00:21:39,978 --> 00:21:40,853 PUBLIKUM: [uhørligt] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 SPEAKER 1: Du giver op tid. 501 00:21:44,700 --> 00:21:45,283 Nå, så ja. 502 00:21:45,283 --> 00:21:47,322 Du sparer tid ved ikke at skulle kompilere det, 503 00:21:47,322 --> 00:21:48,530 hvis det er det du spørger. 504 00:21:48,530 --> 00:21:50,710 Og ja, i CS50, de fleste af de programmer, 505 00:21:50,710 --> 00:21:53,668 selv om de kan tage et stykke at skrive, de er relativt kort. 506 00:21:53,668 --> 00:21:56,860 Kun få dusin, få hundrede linjer kode, og så de kompilere temmelig hurtigt. 507 00:21:56,860 --> 00:21:58,470 Men når du starter skrive større programmer, 508 00:21:58,470 --> 00:22:01,511 ligesom hvis du er Microsoft eller du er Google og skriver virkelig store programmer 509 00:22:01,511 --> 00:22:05,360 i C eller C ++, eller på lignende måde kompileret sprog, kunne tage mange sekunder, 510 00:22:05,360 --> 00:22:08,577 eller endda minutter eller længere at kompilere millioner af linjer kode. 511 00:22:08,577 --> 00:22:10,660 Og der også, at Forskellen vil tilføje op. 512 00:22:10,660 --> 00:22:12,840 >> Og i virkeligheden, når vi overgang i dag, samme dag 513 00:22:12,840 --> 00:22:15,910 i dag, til webprogrammering ved hjælp af PHP, er du 514 00:22:15,910 --> 00:22:18,460 vil finde det lige så meget mere behageligt at skrive kode 515 00:22:18,460 --> 00:22:21,501 når du ikke behøver at gøre disse dumme trin som ændring af din terminal 516 00:22:21,501 --> 00:22:24,202 vindue, type make hej, re køre den, genindlæse vinduet. 517 00:22:24,202 --> 00:22:25,910 Bare så mange dumme mekaniske trin, 518 00:22:25,910 --> 00:22:28,480 bare komme i vejen for at gøre det interessante, det sjove arbejde. 519 00:22:28,480 --> 00:22:31,450 Og faktisk vi smider det væk med PHP. 520 00:22:31,450 --> 00:22:34,960 Og vi kan interagere med den hurtigere. 521 00:22:34,960 --> 00:22:35,495 Ja. 522 00:22:35,495 --> 00:22:36,370 PUBLIKUM: [uhørligt] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 SPEAKER 1: Sure. 525 00:22:40,960 --> 00:22:42,876 Kan jeg præcisere, hvad det midler skal fortolkes? 526 00:22:42,876 --> 00:22:45,870 Når du kompilerer et sprog som C, det går ned 527 00:22:45,870 --> 00:22:48,140 som vi sagde til maskine kode, nuller og ettaller. 528 00:22:48,140 --> 00:22:51,860 Og Intel besluttede år siden, at visse mønstre af nuller og ettaller 529 00:22:51,860 --> 00:22:56,220 repræsenterer addition eller subtraktion, eller udskrive eller andre basale operationer. 530 00:22:56,220 --> 00:23:00,250 I verden af ​​et fortolket sprog som PHP eller JavaScript, eller Python, 531 00:23:00,250 --> 00:23:03,120 eller Ruby eller klaser af andre, i stedet en 532 00:23:03,120 --> 00:23:05,120 har skrevet en interpreter-- i denne sag, 533 00:23:05,120 --> 00:23:09,770 det er også kaldet PHP, identisk med den navn på language-- der hovedsagelig 534 00:23:09,770 --> 00:23:13,840 har en stor sløjfe i den, som gentager over alle de linjer i koden 535 00:23:13,840 --> 00:23:18,170 at jeg fodrer det som input, ligesom goddag dot PHP, eller ordbog prik PHP. 536 00:23:18,170 --> 00:23:21,760 >> Og så kan du tænke på deres store loop som havende en masse betingelser. 537 00:23:21,760 --> 00:23:26,340 Og disse betingelser sige, hvis menneske har skrevet nøgleordet for, 538 00:23:26,340 --> 00:23:28,470 begynde at gøre hans eller hendes kode igen og igen. 539 00:23:28,470 --> 00:23:31,360 Eller hvis menneske har skrevet linje kode, 540 00:23:31,360 --> 00:23:34,880 hvis kun udføre deres næste linje betinget. 541 00:23:34,880 --> 00:23:37,740 Så det er virkelig ligesom tolkning det i en human forstand, linie 542 00:23:37,740 --> 00:23:39,660 for linje, og at netop tager tid. 543 00:23:39,660 --> 00:23:41,340 Det tager overhead. 544 00:23:41,340 --> 00:23:44,189 Og så det er en price-- god question-- vi betaler. 545 00:23:44,189 --> 00:23:46,480 Så lad os gøre en anden demo der er lidt mere dramatisk. 546 00:23:46,480 --> 00:23:51,160 Der er, vil jeg sige, en ballpark dette på sandsynlighed 90% for ikke grueligt, 547 00:23:51,160 --> 00:23:53,869 men du vil blive overrasket med 10% sandsynlighed. 548 00:23:53,869 --> 00:23:55,660 Så hvert år forsøger vi at gøre dette, hvorved vi 549 00:23:55,660 --> 00:23:59,061 forsøger at skrive et program der går gennem Problemet sæt nul, som du har 550 00:23:59,061 --> 00:24:02,060 indsendt dine telefonnumre og en masse andre demografiske informationer, 551 00:24:02,060 --> 00:24:06,030 og vi programmatisk sende dig en sms. 552 00:24:06,030 --> 00:24:08,540 Og så alles telefon begynder at bippe eller vibrere, 553 00:24:08,540 --> 00:24:11,460 og det er bare fantastisk, fordi godt, se på, hvad computere kan gøre. 554 00:24:11,460 --> 00:24:13,840 >> Dette virker sjældent korrekt det forekommer, for en stor del 555 00:24:13,840 --> 00:24:16,800 fordi jeg typisk få sortlistet af Gmail eller en anden tjeneste 556 00:24:16,800 --> 00:24:19,630 for rent faktisk at forsøge at gøre dette på skalaen. 557 00:24:19,630 --> 00:24:24,940 Men sjove ting er også, da vi har ikke alle her i dag, 558 00:24:24,940 --> 00:24:27,690 sjov kendsgerning sidste gang vi prøvet dette for to år siden, 559 00:24:27,690 --> 00:24:30,870 Jeg tror, ​​jeg skrev et program som sad i en løkke iteration 560 00:24:30,870 --> 00:24:34,040 over alle elever i klassen, og hver af dem en sms, 561 00:24:34,040 --> 00:24:37,534 og det sagde noget lignende, hvorfor er du ikke i forelæsning? 562 00:24:37,534 --> 00:24:39,170 Kærlighed, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Du har ingen idé om, hvor mange undskyldende og sortering af smertefulde emails 564 00:24:42,580 --> 00:24:46,970 Jeg har modtaget svar fra n minus 100 personer, som ikke var her 565 00:24:46,970 --> 00:24:47,960 den dag. 566 00:24:47,960 --> 00:24:52,116 Og endnu sjovere, mere beskæmmende story-- du ved, lad os sætte det derude. 567 00:24:52,116 --> 00:24:53,740 Det er allerede på video for et par år tilbage. 568 00:24:53,740 --> 00:24:56,810 Så du vil snart se mig skrive en for-løkke, hvor 569 00:24:56,810 --> 00:25:00,640 det er meget nemt at skrive en fejl i den for-løkke, således at den første gang 570 00:25:00,640 --> 00:25:02,800 gennem løkken, du sende en SMS-besked. 571 00:25:02,800 --> 00:25:06,190 >> Anden gang gennem løkken I burde have sendt endnu en SMS-besked, 572 00:25:06,190 --> 00:25:08,250 og derefter en mere tekst besked, og en mere. 573 00:25:08,250 --> 00:25:11,490 Men det viser sig, hvis du laver en tastefejl ved programmering, man nogle gange 574 00:25:11,490 --> 00:25:14,460 kan skrive programmer, der sender en sms, så to SMS-beskeder, 575 00:25:14,460 --> 00:25:18,742 derefter tre sms'er til alle hvem der allerede har modtaget en tekstmeddelelse. 576 00:25:18,742 --> 00:25:21,450 Og som du ved, at gøre noget, plus noget, plus noget, 577 00:25:21,450 --> 00:25:25,910 plus noget, er stort O af et parti af SMS-beskeder, eller n kvadreret, 578 00:25:25,910 --> 00:25:29,830 eller $ 0,10 en sms, $ 20.000. 579 00:25:29,830 --> 00:25:33,700 >> Heldigvis jeg ramte Ctrl-C, før det skete, men jeg skylder mindst én 580 00:25:33,700 --> 00:25:37,550 af dine forgængere $ 20 for 200 nogle ulige tekstbeskeder,, 581 00:25:37,550 --> 00:25:40,450 ikke kun gik til sin telefon, men det var også ligesom en ældre flip telefon 582 00:25:40,450 --> 00:25:43,520 så det vil skubbet ud af sin hukommelse hver anden personlig tekst 583 00:25:43,520 --> 00:25:45,930 budskab, han havde faktisk fået. 584 00:25:45,930 --> 00:25:49,250 Så vi har ét mål i dag, ikke at gøre det. 585 00:25:49,250 --> 00:25:50,620 Måske aktivere flytilstand. 586 00:25:50,620 --> 00:25:51,120 Okay. 587 00:25:51,120 --> 00:25:56,590 Så lad os gå ind i en program her callled-- 588 00:25:56,590 --> 00:25:59,060 at jeg vil kalde tekst dot PHP. 589 00:25:59,060 --> 00:26:01,074 Og i forvejen, har jeg fået to filer her. 590 00:26:01,074 --> 00:26:06,030 Jeg lavede en fil til bare personale, er der fik alle ansatte info, alle navne 591 00:26:06,030 --> 00:26:07,260 fra kurset hjemmeside. 592 00:26:07,260 --> 00:26:09,756 Og så for nu jeg bare sætte nogle falske numre 555-1212. 593 00:26:09,756 --> 00:26:11,380 Så disse ikke ville faktisk gå nogen steder. 594 00:26:11,380 --> 00:26:15,140 Men mærke indersiden af ​​denne CSV-fil, som vi talte om kort før 595 00:26:15,140 --> 00:26:16,540 i forbindelse med filen IO. 596 00:26:16,540 --> 00:26:18,730 >> Hvad er en CSV-fil? 597 00:26:18,730 --> 00:26:19,970 Komma adskilte variabler. 598 00:26:19,970 --> 00:26:24,400 Og det er lidt ligesom en meget letvægts database, hvis du vil. 599 00:26:24,400 --> 00:26:28,650 Der er slags slags fire kolonner i denne fil, og der takkede, 600 00:26:28,650 --> 00:26:32,400 men de kommaer væsentlige repræsentere kolonner i filen. 601 00:26:32,400 --> 00:26:35,400 Den første kolonne er TF eller CA navn. 602 00:26:35,400 --> 00:26:37,800 Anden kolonne er deres efternavn. 603 00:26:37,800 --> 00:26:39,820 Tredje kolonne er deres telefonnummer. 604 00:26:39,820 --> 00:26:44,760 Og fjerde kolonne tilsyneladende is-- fjerde kolonne er hvad tilsyneladende? 605 00:26:44,760 --> 00:26:45,870 OK, så det er deres luftfartsselskab. 606 00:26:45,870 --> 00:26:47,180 Så Verizon eller Sprint, eller hvad ikke. 607 00:26:47,180 --> 00:26:48,620 Og hvis jeg misspoke tidligere, CSV. 608 00:26:48,620 --> 00:26:51,800 Kommaseparerede værdier er CSV her. 609 00:26:51,800 --> 00:26:54,260 >> Så hvad kan jeg gøre med dette? 610 00:26:54,260 --> 00:26:56,940 Jamen det er bare en stor tekstfil, og det er lidt længe, ​​ikke? 611 00:26:56,940 --> 00:26:58,690 Ligesom dette vil være slags irriterende. 612 00:26:58,690 --> 00:27:03,510 Og det viser sig, selv om, at hvis jeg vil sende en tekstmeddelelse til, lad os 613 00:27:03,510 --> 00:27:05,180 siger Alex her. 614 00:27:05,180 --> 00:27:09,690 Lad mig gå ind i min browser og gå ud af fuld skærm 615 00:27:09,690 --> 00:27:11,660 bare så jeg kan skifte frem og tilbage. 616 00:27:11,660 --> 00:27:20,280 Det viser sig, lad os se, hvis jeg går i her, og log ind på Gmail, okay. 617 00:27:20,280 --> 00:27:22,950 Må ikke se på denne del. 618 00:27:22,950 --> 00:27:23,880 Bare jeg får at se. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 selvfølgelig Livestream kan stadig se, hvad jeg laver. 621 00:27:28,800 --> 00:27:29,360 Okay. 622 00:27:29,360 --> 00:27:31,850 >> Så her er bare Gmail med John Harvard konto. 623 00:27:31,850 --> 00:27:34,000 Så hvis jeg vil sende en tekstbesked til Alex, 624 00:27:34,000 --> 00:27:35,530 Jeg kan selvfølgelig skrive en meddelelse. 625 00:27:35,530 --> 00:27:38,410 Og det viser sig, og jeg har testet det med Alex før her, 626 00:27:38,410 --> 00:27:42,260 så du kan tilføje en vis domæne navn til folks telefonnumre, 627 00:27:42,260 --> 00:27:45,850 fordi der eksisterer i verden ting kaldet sms til e-mail gateways. 628 00:27:45,850 --> 00:27:50,000 Hvilket er en fancy måde at sige alle af os, der har mobiltelefoner, 629 00:27:50,000 --> 00:27:53,200 har telefonnumre, selvfølgelig, der formentlig er for din luftfartsselskab, 630 00:27:53,200 --> 00:27:56,840 en vis suffiks ligesom Vtext.com for Verizon tekstbesked 631 00:27:56,840 --> 00:28:00,320 dot com, som du kan føje til din egen personlige telefonnummer, og derefter 632 00:28:00,320 --> 00:28:03,540 du eller venner, eller dine forældre kan tekst dig på det pågældende adresse. 633 00:28:03,540 --> 00:28:07,380 >> Og Verizon har en server, en e-mail server, der ved modtagelse af denne e-mail, 634 00:28:07,380 --> 00:28:11,180 ser på det numeriske del og derefter bruger uanset særlige industri magi 635 00:28:11,180 --> 00:28:14,540 de har faktisk sende det over æteren til din bestemt celle 636 00:28:14,540 --> 00:28:15,040 telefon. 637 00:28:15,040 --> 00:28:18,030 Nu er dette er rart, fordi jeg ikke virkelig vide, hvordan du sender en tekstmeddelelse 638 00:28:18,030 --> 00:28:20,460 eller til at skrive kode endnu til min mobiltelefon, 639 00:28:20,460 --> 00:28:23,580 og du kan gøre præcis det for et afsluttende projekt, men for nu alle 640 00:28:23,580 --> 00:28:24,770 Jeg har, er min bærbare her. 641 00:28:24,770 --> 00:28:29,830 Så jeg vil gerne gentage over, at CSV fil, line, linje, linje, linje, 642 00:28:29,830 --> 00:28:35,160 grab hver af medarbejdernes telefonnumre, og deres luftfartsselskab og programmeringsmæssigt, 643 00:28:35,160 --> 00:28:39,770 sammenkæde, dvs. slutte telefonen nummer med passende domænenavn 644 00:28:39,770 --> 00:28:40,820 og derefter sende en e-mail. 645 00:28:40,820 --> 00:28:41,940 >> Så det er en masse trin. 646 00:28:41,940 --> 00:28:45,530 Og held og lykke at gøre det i C. Det er et mareridt af en situation 647 00:28:45,530 --> 00:28:48,350 at åbne en fil, for at læse den line, for linje, linje, som du 648 00:28:48,350 --> 00:28:51,100 ser, eller kan snart se med problemet sæt fem, hvis ikke 649 00:28:51,100 --> 00:28:53,560 Problemet sæt fire, og derefter til dynamisk sammenkæde 650 00:28:53,560 --> 00:28:57,020 to strenge sammen, for i C, at tage to strenge og kombinere dem, 651 00:28:57,020 --> 00:29:00,900 hvad gør du minimalt nødt til at gøre mest sandsynligt? 652 00:29:00,900 --> 00:29:03,020 Du er nødt til at erklære mere hukommelse, right? 653 00:29:03,020 --> 00:29:04,710 Og spørg, malloc, kan jeg have mere hukommelse? 654 00:29:04,710 --> 00:29:07,060 Så jeg kan sætte halvdelen af ​​denne her, halvdelen af ​​det her. 655 00:29:07,060 --> 00:29:08,150 Det er bare så mange trin. 656 00:29:08,150 --> 00:29:10,310 Og ved det punkt, du har mistet interesse i den dumme lille demo 657 00:29:10,310 --> 00:29:11,851 hvor du gør alles telefon bip. 658 00:29:11,851 --> 00:29:14,590 Lad os gøre denne form for PHP stil, hvor vi bare 659 00:29:14,590 --> 00:29:16,210 begynde at bruge mere af det køkkenvask. 660 00:29:16,210 --> 00:29:18,050 >> Og ideer er grundlæggende de samme, 661 00:29:18,050 --> 00:29:20,710 men vi behøver ikke at bekymre dig for meget om det lavere niveau. 662 00:29:20,710 --> 00:29:22,950 Så lad os se, hvordan jeg kunne gå om at gøre dette. 663 00:29:22,950 --> 00:29:26,664 Og bare så jeg ikke gentage tidligere fejltagelser, 664 00:29:26,664 --> 00:29:28,330 Jeg har skrevet nogle noter for mig selv her. 665 00:29:28,330 --> 00:29:31,070 Og lad os se om jeg kan gå os gennem nogle af de fundamentale trin, 666 00:29:31,070 --> 00:29:33,861 og derefter i gang skyld vi får måske skære nogle hjørner i sidste ende. 667 00:29:33,861 --> 00:29:38,007 Jeg har tænkt mig at gå videre og gøre åben beslag PHP til at starte denne fil. 668 00:29:38,007 --> 00:29:39,590 Og jeg har tænkt mig at gå videre og gøre dette. 669 00:29:39,590 --> 00:29:41,490 Fil håndtag, som du vil snart se, faktisk 670 00:29:41,490 --> 00:29:44,790 kalder en funktion kaldet f åben. 671 00:29:44,790 --> 00:29:46,280 Og husk dette åbner en fil. 672 00:29:46,280 --> 00:29:48,800 Og citatet, citat slut, R betyder hvad, igen? 673 00:29:48,800 --> 00:29:49,800 Bare åbne den for læsning. 674 00:29:49,800 --> 00:29:51,210 Nu i p sæt til, du gjorde det. 675 00:29:51,210 --> 00:29:54,500 Og håndtag kunne være noget, fu, bar, bas, enhver variabelnavn. 676 00:29:54,500 --> 00:29:57,470 Men generelt en computer videnskabsmand ville kalde en åben fil, 677 00:29:57,470 --> 00:30:00,962 giver dig en fil håndtag, noget at holde på så at sige. 678 00:30:00,962 --> 00:30:02,670 Jeg skal bare gøre nogle fejlkontrol. 679 00:30:02,670 --> 00:30:07,260 Så hvis håndtaget er falsk, ligesom i C, vil jeg gøre noget lignende, 680 00:30:07,260 --> 00:30:09,545 kunne ikke åbne filen, backslash n. 681 00:30:09,545 --> 00:30:11,420 Og så jeg bare at gå videre og afslutte. 682 00:30:11,420 --> 00:30:14,340 Og det viser sig, i PHP, Jeg er ikke inde i en funktion. 683 00:30:14,340 --> 00:30:16,160 Der er ingen vigtigste funktion her. 684 00:30:16,160 --> 00:30:17,450 Så jeg ikke vender tilbage, per se. 685 00:30:17,450 --> 00:30:18,120 Jeg afslutte. 686 00:30:18,120 --> 00:30:19,619 Som i det væsentlige det samme. 687 00:30:19,619 --> 00:30:22,510 Og jeg afslutter med en y sandsynligvis. 688 00:30:22,510 --> 00:30:24,220 Én betyder bare en fejl af en slags. 689 00:30:24,220 --> 00:30:25,580 Det er ikke-nul, så det er en fejl. 690 00:30:25,580 --> 00:30:30,220 >> Okay, så hvis jeg er hernede nu i mit program, jeg har åbnet filen. 691 00:30:30,220 --> 00:30:34,250 Jeg har tænkt mig at gå videre og erklære et array kaldet adresser, 692 00:30:34,250 --> 00:30:38,610 og i C ville jeg nødt til at kende størrelsen af ​​array i forvejen, right? 693 00:30:38,610 --> 00:30:41,910 Eller jeg skulle erklære dette er en pointer, og derefter bruge malloc. 694 00:30:41,910 --> 00:30:44,720 Og så hver gang jeg læser gennem en anden række i filen, 695 00:30:44,720 --> 00:30:46,620 Jeg har tænkt mig at brug for at malloc mere hukommelse, malloc mere hukommelse. 696 00:30:46,620 --> 00:30:47,703 Det er en smerte i nakken. 697 00:30:47,703 --> 00:30:50,950 Og heldigvis, PHP og Ruby, og Python, og JavaScript, de 698 00:30:50,950 --> 00:30:53,880 vil vokse dine arrays for dig automatisk. 699 00:30:53,880 --> 00:30:54,830 Ikke mere malloc. 700 00:30:54,830 --> 00:30:56,227 Ikke mere hukommelse ledelse. 701 00:30:56,227 --> 00:30:57,560 Computeren tager sig af det. 702 00:30:57,560 --> 00:31:00,330 Men den pris, du betaler. 703 00:31:00,330 --> 00:31:01,350 Det er lidt langsommere. 704 00:31:01,350 --> 00:31:03,190 Og for et program som dette Vi kommer ikke til at lægge mærke til. 705 00:31:03,190 --> 00:31:04,720 Vi kommer til at sende 100 SMS-beskeder. 706 00:31:04,720 --> 00:31:06,136 For eksempel ikke kommer til at føle det. 707 00:31:06,136 --> 00:31:08,430 Det er virkelig kun begynder at ligegyldigt dit sprog valg 708 00:31:08,430 --> 00:31:11,490 når dine data eller dine programmer få virkelig, virkelig anselig, 709 00:31:11,490 --> 00:31:14,120 som det vil være tilfældet mere med vores webbaserede stuff. 710 00:31:14,120 --> 00:31:15,450 >> Men for nu lad os gå videre. 711 00:31:15,450 --> 00:31:20,120 Selv om det viser sig, at der er en funktion i C kaldes f få CSV. 712 00:31:20,120 --> 00:31:24,570 Fil få CSV, der tager en fil håndtag som sit argument, 713 00:31:24,570 --> 00:31:28,810 og det fortsætter derefter, række, som række ved række, at læse i en række. 714 00:31:28,810 --> 00:31:30,964 Så det læser blot en linje af tekst fra filen. 715 00:31:30,964 --> 00:31:34,130 Men hvad er rart om denne funktion, det ikke bare give mig en tekstlinje. 716 00:31:34,130 --> 00:31:37,320 Det ser for disse kommaer, og parser linjen. 717 00:31:37,320 --> 00:31:41,740 Og at parse linjen betyder at opdele det på visse værdier i denne sammenhæng. 718 00:31:41,740 --> 00:31:45,510 >> Med andre ord, dollartegn række er en variabel, der er 719 00:31:45,510 --> 00:31:47,010 kommer til at give mig en masse indekser. 720 00:31:47,010 --> 00:31:49,635 Dette vil være det første kolonne i min CSV. 721 00:31:49,635 --> 00:31:52,510 Dette vil være den anden kolonne, dette vil være den tredje, 722 00:31:52,510 --> 00:31:53,968 og dette vil være den fjerde. 723 00:31:53,968 --> 00:31:57,440 Fordi tilbagekaldelse, og Excel det ikke samarbejder sidste gang vi gjorde dette, 724 00:31:57,440 --> 00:32:03,350 men hvis jeg downloader personale dot CSV. 725 00:32:03,350 --> 00:32:04,940 Hovsa, ikke omdøbe. 726 00:32:04,940 --> 00:32:09,120 Hvis jeg downloader personale dot CSV, og prøv at åbne den, 727 00:32:09,120 --> 00:32:12,510 Jeg har allerede registered-- åh jeg ikke opdatere Excel siden sidste gang. 728 00:32:12,510 --> 00:32:15,880 Du vil se, at i personale dot CSV, jeg har fire kolonner. 729 00:32:15,880 --> 00:32:18,720 Så da jeg læste i første række til Abby her, 730 00:32:18,720 --> 00:32:23,582 dollartegn række 0 er Abby, dollar tegn rækken man er Lyons, 731 00:32:23,582 --> 00:32:27,740 dollartegn række to er hendes nummer, og derefter hendes telefonens luftfartsselskab. 732 00:32:27,740 --> 00:32:28,410 >> Så det er alt. 733 00:32:28,410 --> 00:32:30,740 Og det er rart, fordi jeg behøver ikke at nu finde ud 734 00:32:30,740 --> 00:32:32,800 hvor alle disse kommaer rent faktisk er. 735 00:32:32,800 --> 00:32:35,300 Så jeg har tænkt mig at gå videre og gøre dette, eftersom definition, 736 00:32:35,300 --> 00:32:38,960 Jeg har tænkt mig at sige, at hendes navn er i række beslag nul, som lovet. 737 00:32:38,960 --> 00:32:41,150 Og jeg har tænkt mig at grab-- og faktisk, ved du hvad? 738 00:32:41,150 --> 00:32:42,780 Jeg har ikke tænkt mig at bekymre sig om hendes navn, i dette tilfælde. 739 00:32:42,780 --> 00:32:43,988 Jeg har tænkt mig at holde det enklere. 740 00:32:43,988 --> 00:32:48,610 Jeg har tænkt mig at gøre hendes nummer er i række beslag to, tror jeg. 741 00:32:48,610 --> 00:32:50,510 Og hendes luftfartsselskab var i hvor? 742 00:32:50,510 --> 00:32:53,405 Række tre, den ene over. 743 00:32:53,405 --> 00:32:54,280 Så intet nyt der. 744 00:32:54,280 --> 00:32:56,770 Det er bare nul indeksering i et array. 745 00:32:56,770 --> 00:32:58,760 >> Og nu, jeg har tænkt mig at gøre følgende. 746 00:32:58,760 --> 00:33:03,930 Hvis luftfartsselskabet lig lig AT & T-- Jeg skal bare have en loop-- 747 00:33:03,930 --> 00:33:06,790 Jeg ønsker at skabe en e-mail adresse, der ser sådan ud. 748 00:33:06,790 --> 00:33:12,320 Det kommer til at være 617-555-1212 på, hvad er det, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 er, hvad jeg ønsker at gøre. 750 00:33:13,490 --> 00:33:15,260 Så hvordan gør jeg det? 751 00:33:15,260 --> 00:33:16,730 Jeg har tænkt mig at gøre følgende. 752 00:33:16,730 --> 00:33:22,460 Hendes adresse bliver hendes nummer, og nu, lad mig gå videre og gøre dette. 753 00:33:22,460 --> 00:33:23,760 Dette er nogle funky syntaks. 754 00:33:23,760 --> 00:33:27,250 Jeg kunne gøre procenten s trick, men jeg kan faktisk bare gøre dette. 755 00:33:27,250 --> 00:33:29,900 >> Så dette er en PHP ting, men lad os overveje, hvad jeg laver. 756 00:33:29,900 --> 00:33:31,630 Dollars underskriver adresse på til venstre, bare en variabel. 757 00:33:31,630 --> 00:33:32,300 Giv mig en variabel. 758 00:33:32,300 --> 00:33:33,390 Jeg behøver ikke at angive typen. 759 00:33:33,390 --> 00:33:34,570 PHP vil finde ud af det. 760 00:33:34,570 --> 00:33:36,580 På højre side, hvad er datatype 761 00:33:36,580 --> 00:33:38,399 af denne hele på højre side? 762 00:33:38,399 --> 00:33:40,190 Ligner en streng, fordi der er dobbelt 763 00:33:40,190 --> 00:33:42,280 citerer længst til venstre og længst til højre. 764 00:33:42,280 --> 00:33:44,210 Nu er der nogle funky nyt syntaks her. 765 00:33:44,210 --> 00:33:47,550 Der er de krøllede parenteser, og dollar tegn nummer. 766 00:33:47,550 --> 00:33:52,860 Men tage en gætte, hvad er, at syntaks sandsynligvis fortæller PHP til at gøre for mig? 767 00:33:52,860 --> 00:33:53,360 Ja. 768 00:33:53,360 --> 00:33:54,630 Bare indsæt værdien der. 769 00:33:54,630 --> 00:33:55,530 Så ingen procent s. 770 00:33:55,530 --> 00:33:58,160 Vi kunne bruge print f eller s print f eller noget lignende, 771 00:33:58,160 --> 00:34:00,070 men PHP og en masse højere sprog niveau, 772 00:34:00,070 --> 00:34:03,070 du kommer til at se, at du kunne gøre det samme funktionelt, måske 773 00:34:03,070 --> 00:34:04,019 seks forskellige måder. 774 00:34:04,019 --> 00:34:06,310 Og så begynder det at blive et spørgsmål om design eller stil. 775 00:34:06,310 --> 00:34:09,902 Så dette er bare en kryptisk leder vej at sige, giv mig en e-mail-adresse, 776 00:34:09,902 --> 00:34:12,110 men plug-in nummeret i mellem disse krøllede parenteser. 777 00:34:12,110 --> 00:34:15,440 Og de krøllede parenteser vil ikke ender i den endelige adresse. 778 00:34:15,440 --> 00:34:18,010 >> Nu kan vi springe over nogle af disse linjer til tiden skyld. 779 00:34:18,010 --> 00:34:21,210 Så hvis et luftfartsselskab er lig lig verHorizon-- hovsa, 780 00:34:21,210 --> 00:34:24,989 Verizon-- jeg ønsker at gøre noget meget ens, når adressen bliver, 781 00:34:24,989 --> 00:34:27,569 tilbud, citat slut, nummer på text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 Og så kan jeg gøre det samme slags ting for resten af ​​bærerne. 784 00:34:35,050 --> 00:34:37,090 Men jeg vil bare gøre dot, dot, dot for nu. 785 00:34:37,090 --> 00:34:43,050 Og lad os nu antage, at Jeg ønsker at tilføje array, skubbe. 786 00:34:43,050 --> 00:34:45,969 Jeg ønsker at tilføje til den matrix, kaldet adresser. 787 00:34:45,969 --> 00:34:50,409 >> Denne adresse, det er hvordan du tilføje noget til et array i PHP. 788 00:34:50,409 --> 00:34:51,610 Du behøver ikke at gøre malloc. 789 00:34:51,610 --> 00:34:53,068 Du behøver ikke at ændre størrelsen på array. 790 00:34:53,068 --> 00:34:54,259 Du skal bare sige array, push. 791 00:34:54,259 --> 00:34:57,300 Hvad ønsker du at push-- hvad matrix ønsker du at skubbe noget ind? 792 00:34:57,300 --> 00:34:58,000 Adresser. 793 00:34:58,000 --> 00:34:59,550 Hvad du ønsker at skubbe på adresser? 794 00:34:59,550 --> 00:35:00,350 Adresse. 795 00:35:00,350 --> 00:35:02,430 Og i virkeligheden, hvis du virkelig ønsker at være klog, 796 00:35:02,430 --> 00:35:05,610 nogle syntaktiske sukker for dette, så at sige, 797 00:35:05,610 --> 00:35:10,230 hvilket betyder bare, hvordan kan du gøre dette i den pænere måde, ville være at gøre dette. 798 00:35:10,230 --> 00:35:14,060 Også dette har den virkning at vokse den adresser array ved størrelse én, 799 00:35:14,060 --> 00:35:17,130 og derefter plop at yderligere e-mail-adresse ind i det. 800 00:35:17,130 --> 00:35:17,630 Ja. 801 00:35:17,630 --> 00:35:19,730 >> PUBLIKUM: [uhørligt] 802 00:35:19,730 --> 00:35:22,520 >> SPEAKER 1: En tastefejl på ellers if-- åh, luftfartsselskab. 803 00:35:22,520 --> 00:35:23,070 Det er ok. 804 00:35:23,070 --> 00:35:26,971 Det vil heller ikke lide min manglende gennemføre en del af dette program 805 00:35:26,971 --> 00:35:27,470 senere. 806 00:35:27,470 --> 00:35:28,810 Men tak for at fange. 807 00:35:28,810 --> 00:35:30,671 Endnu bug. 808 00:35:30,671 --> 00:35:31,170 Tak. 809 00:35:31,170 --> 00:35:33,746 Vi ønsker, at dette at være Vtext.com. 810 00:35:33,746 --> 00:35:34,340 Ja. 811 00:35:34,340 --> 00:35:34,839 Okay. 812 00:35:34,839 --> 00:35:36,330 Så hvor efterlader det os? 813 00:35:36,330 --> 00:35:38,224 Vi har skrevet koden til at åbne filen. 814 00:35:38,224 --> 00:35:40,390 Vi har en løkke for at skifte over rækkerne i filen. 815 00:35:40,390 --> 00:35:43,650 Vi har kode, der tilføjer til min array, en ad gangen, i korrekt 816 00:35:43,650 --> 00:35:44,790 formateret e-mail-adresse. 817 00:35:44,790 --> 00:35:48,480 Så alt, hvad der virkelig mangler, er at sende en e-mail til hver af disse mennesker. 818 00:35:48,480 --> 00:35:52,830 >> Så jeg har gået videre og borgerrettighedsprogram mig selv som følger. 819 00:35:52,830 --> 00:35:59,580 Hvad jeg har tænkt mig at gøre her is-- og lad os gå videre og springe til nogle konkrete kode, 820 00:35:59,580 --> 00:36:00,620 som ser sådan ud. 821 00:36:00,620 --> 00:36:02,950 Så her er det forbagte version, jeg skrev tidligere. 822 00:36:02,950 --> 00:36:04,700 Og mærke jeg færdig gennemførelse af Sprint. 823 00:36:04,700 --> 00:36:06,130 Jeg færdig med at gennemføre T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Jeg blev færdig gennemføre Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 Og jeg vil undskylde på forhånd. 826 00:36:09,622 --> 00:36:12,080 Der er et par luftfartsselskaber, nogle elever i klassen har 827 00:36:12,080 --> 00:36:14,640 at jeg ikke gider at opremse i hvis betingelse her. 828 00:36:14,640 --> 00:36:16,015 Så ikke alle tekster vil gå ud. 829 00:36:16,015 --> 00:36:17,556 Men lad os se, hvad jeg ellers skal gøre. 830 00:36:17,556 --> 00:36:19,660 Jeg lukker filen, bare ligesom i p sæt fire. 831 00:36:19,660 --> 00:36:20,835 >> Og dette er nyt syntaks. 832 00:36:20,835 --> 00:36:22,710 Og vi vil se lidt bit af denne over tid, 833 00:36:22,710 --> 00:36:24,450 især med p sæt syv og otte. 834 00:36:24,450 --> 00:36:28,140 Men det er syntaks for at skabe en særlig form for struktur. 835 00:36:28,140 --> 00:36:31,490 Det viser sig, at der er et bibliotek, der kommer med PHP, kaldet PHP mailer. 836 00:36:31,490 --> 00:36:33,840 Dens formål i livet er at programmatisk sende e-mails. 837 00:36:33,840 --> 00:36:36,840 Det er kode en anden skrev, at gør det lettere for os at sende e-mails, 838 00:36:36,840 --> 00:36:39,131 så vi ikke behøver at holde gå frem og tilbage til Gmail, 839 00:36:39,131 --> 00:36:41,151 og indsætte i folks e-mailadresser. 840 00:36:41,151 --> 00:36:44,150 Der er en hel masse af linjer her der ærligt, jeg bare slags kopieret 841 00:36:44,150 --> 00:36:45,660 og indsættes fra dokumentationen. 842 00:36:45,660 --> 00:36:47,409 Og i virkeligheden, hvis du er nysgerrig, jeg forlod alle 843 00:36:47,409 --> 00:36:50,550 af webadresser på dokumentationen i koden, som vi vil sende senere. 844 00:36:50,550 --> 00:36:52,360 Og læg mærke til, at der blandt de ting, jeg gør 845 00:36:52,360 --> 00:36:55,710 er, jeg siger dette bibliotek, bruge Gmails server, ikke? 846 00:36:55,710 --> 00:36:59,360 SMTP talte vi kort om, når vi var på Yale om at være enkel post 847 00:36:59,360 --> 00:37:00,110 transfer protocol. 848 00:37:00,110 --> 00:37:02,920 Det er den protokol, servere, der bruges til at sende e-mail, 849 00:37:02,920 --> 00:37:05,150 og that's-- Gmail har en af ​​dem. 850 00:37:05,150 --> 00:37:07,290 En port, er TCP portnummer. 851 00:37:07,290 --> 00:37:09,630 Det er fint, hvis du ikke har set 587 før. 852 00:37:09,630 --> 00:37:11,420 Bare vide, at fra dokumentationen. 853 00:37:11,420 --> 00:37:12,250 Her er mit brugernavn. 854 00:37:12,250 --> 00:37:13,670 Jeg har tænkt mig at bruge CF50 bot. 855 00:37:13,670 --> 00:37:16,690 Og i et øjeblik, jeg bare gå til skrive i bot faktiske adgangskode. 856 00:37:16,690 --> 00:37:18,690 Og derefter ned her, mærke hvad der er tilbage. 857 00:37:18,690 --> 00:37:22,840 >> Jeg satte min fra adressen skal bot på CS50.net. 858 00:37:22,840 --> 00:37:26,240 Jeg tror, ​​jeg vil ikke fortryde at sende en tekstbesked til 800 personer, der 859 00:37:26,240 --> 00:37:30,590 siger, savner dig, elsker CS50 bot, måske for dem, der ikke kunne gøre det i dag. 860 00:37:30,590 --> 00:37:33,160 Og derefter i linje 76, hvad skal jeg gøre? 861 00:37:33,160 --> 00:37:39,010 Denne form for ligner C. Så for jeg lig 0, n equals-- nu tæller er nyt. 862 00:37:39,010 --> 00:37:42,077 Det viser sig, at hvis du ønsker at få antallet af ting i et array, 863 00:37:42,077 --> 00:37:43,660 du behøver ikke at huske det længere. 864 00:37:43,660 --> 00:37:45,370 Du kan bare bede en funktion kaldet optælling, 865 00:37:45,370 --> 00:37:48,320 og det vil fortælle dig, hvor mange adresser er i den opstilling. 866 00:37:48,320 --> 00:37:53,210 >> Og så jeg har tænkt mig at tilføje adressen til e-mail. 867 00:37:53,210 --> 00:37:55,090 Og jeg ved dette fra Brug af dokumentationen. 868 00:37:55,090 --> 00:37:56,900 Der er en add-adresse funktion. 869 00:37:56,900 --> 00:37:58,980 Og nu mærke til der er et stykke af syntaks. 870 00:37:58,980 --> 00:38:01,470 Vi har set det før i C. Lignende i ånden. 871 00:38:01,470 --> 00:38:04,100 Du kan tænke på dollartegn mail som en variabel, som det er. 872 00:38:04,100 --> 00:38:08,100 Men det er en struct indersiden af der er ikke kun egenskaber, 873 00:38:08,100 --> 00:38:09,400 variabler hvis du vil. 874 00:38:09,400 --> 00:38:13,480 Men det viser sig, at i PHP, hvor er en objektorienteret programmering 875 00:38:13,480 --> 00:38:16,520 sprog, ligesom Java hvis du tog APCS. 876 00:38:16,520 --> 00:38:21,420 >> Dollar tegn mail, hvis du ønsker at-- det har også funktioner inde i det, 877 00:38:21,420 --> 00:38:22,380 eller metoder. 878 00:38:22,380 --> 00:38:24,720 Så det vil sige, at særlige PHP mailer 879 00:38:24,720 --> 00:38:29,280 bibliotek, hvis jeg har en variabel deraf hvis jeg ønsker at kalde en funktion, 880 00:38:29,280 --> 00:38:31,559 kommer med det bibliotek, for nutidens formål, 881 00:38:31,559 --> 00:38:33,100 bare vide, du bruger pilen notation. 882 00:38:33,100 --> 00:38:34,150 Der er ingen dot notation. 883 00:38:34,150 --> 00:38:35,220 Det er bare pilen. 884 00:38:35,220 --> 00:38:36,380 Men det er ikke en pointer. 885 00:38:36,380 --> 00:38:38,680 Det er bare lånt fra C syntaks. 886 00:38:38,680 --> 00:38:43,620 Så ring tilføje adresse indersiden af denne bibliotekets objekt eller variabel. 887 00:38:43,620 --> 00:38:44,440 >> Okay. 888 00:38:44,440 --> 00:38:45,570 Det er den magiske linje. 889 00:38:45,570 --> 00:38:46,740 Det er sådan jeg sender en e-mail. 890 00:38:46,740 --> 00:38:50,040 Det er hvad der svarer til åbningen Gmail, skrive det ud, og rammer sende. 891 00:38:50,040 --> 00:38:54,870 Men det kommer til at i stedet sende en e-mail til denne adresse, med dette organ, 892 00:38:54,870 --> 00:38:57,120 fra CS50 bot. 893 00:38:57,120 --> 00:38:58,710 Og nu nøglen linje. 894 00:38:58,710 --> 00:39:03,130 Denne linje blev fraværende i ligesom 2011 når jeg tænker jeg sidst forsøgte dette. 895 00:39:03,130 --> 00:39:05,640 Denne linje er der naturligvis rydder adresserne. 896 00:39:05,640 --> 00:39:07,920 Så logisk, hvis jeg ikke rydde adresse 897 00:39:07,920 --> 00:39:11,740 efter hver iteration, den første e-mail eller sms går til Alice, 898 00:39:11,740 --> 00:39:14,320 den anden går til Alice og Bob, den tredje 899 00:39:14,320 --> 00:39:17,870 går til Alice og Bob og Charlie, dermed meget dyre fejl 900 00:39:17,870 --> 00:39:18,760 Jeg gjorde det år. 901 00:39:18,760 --> 00:39:21,080 >> Så lad os se. 902 00:39:21,080 --> 00:39:24,200 Er der nogen spørgsmål før vi sender jer alle en tekst 903 00:39:24,200 --> 00:39:28,210 besked med 10 procent sandsynlighed? 904 00:39:28,210 --> 00:39:28,940 Nogen spørgsmål? 905 00:39:28,940 --> 00:39:30,330 Okay. 906 00:39:30,330 --> 00:39:36,100 Lad os mig gå herind og forandring kodeordet til, hvad der skal arbejde, 907 00:39:36,100 --> 00:39:37,780 vil sandsynligvis blive blacklistet af Gmail. 908 00:39:37,780 --> 00:39:39,821 Så de måske ikke alle gå ud, idet de sandsynligvis 909 00:39:39,821 --> 00:39:42,960 kan ikke lide os at sende 800 emails i en for-løkke på én gang. 910 00:39:42,960 --> 00:39:45,140 Da det ikke er især menneskelig adfærd. 911 00:39:45,140 --> 00:39:47,460 >> Åh, jeg har tænkt mig at ændre en anden ting. 912 00:39:47,460 --> 00:39:50,850 Op i toppen, vil jeg sent-- ændre filen til studerende dot CSV. 913 00:39:50,850 --> 00:39:55,420 Og jeg vil ikke åbne det, men dette er en identisk CSV-fil med ikke 100 medarbejdere, 914 00:39:55,420 --> 00:39:58,970 men 800 studerende, bare fra Harvard, fordi Yale 915 00:39:58,970 --> 00:40:00,207 har oktober fordybning i denne uge. 916 00:40:00,207 --> 00:40:03,290 Og det ser ud som slags en jerk ting at gøre til tekst dem alle, hvorfor 917 00:40:03,290 --> 00:40:04,750 de er ikke i klassen på ferie. 918 00:40:04,750 --> 00:40:05,250 Det er ok. 919 00:40:05,250 --> 00:40:08,310 Just Harvard studerende i dag inde i den pågældende fil. 920 00:40:08,310 --> 00:40:12,320 Og lad os nu gå tilbage til min terminalvindue. 921 00:40:12,320 --> 00:40:13,710 Jeg er lidt nervøs. 922 00:40:13,710 --> 00:40:22,000 >> OK, så nu vil jeg gå ind i mappe, og PHP tekst dot PHP. 923 00:40:22,000 --> 00:40:24,950 Hvordan omkring en modig volontør? 924 00:40:24,950 --> 00:40:26,690 Så jeg vil ikke have det på mig. 925 00:40:26,690 --> 00:40:28,410 OK, kom op. 926 00:40:28,410 --> 00:40:29,162 Hvad er dit navn? 927 00:40:29,162 --> 00:40:29,662 MAYA: Maya. 928 00:40:29,662 --> 00:40:30,328 SPEAKER 1: Maya. 929 00:40:30,328 --> 00:40:31,610 Kom op, Maya. 930 00:40:31,610 --> 00:40:34,120 Okay. 931 00:40:34,120 --> 00:40:35,389 Lad os se, om det virker. 932 00:40:35,389 --> 00:40:38,430 Jeg sætter min egen e-mail-adresse i file-- mit eget telefonnummer i filen, 933 00:40:38,430 --> 00:40:40,110 så forhåbentlig jeg får en så godt. 934 00:40:40,110 --> 00:40:40,819 Dejligt at møde dig. 935 00:40:40,819 --> 00:40:41,443 MAYA: Ligeledes. 936 00:40:41,443 --> 00:40:44,510 SPEAKER 1: Så alt du skal gøre er hit Enter for at sende 800 SMS-beskeder, 937 00:40:44,510 --> 00:40:45,466 hvis jeg ikke skrue op. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Nice. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Kunne tage et stykke tid, statistisk, indtil vi kommer til en e-mail address-- 942 00:40:58,430 --> 00:41:00,573 en tekstbesked, der er i rummet lige nu. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Lad os dvæle og se. 945 00:41:05,390 --> 00:41:06,940 >> PUBLIKUM: [HVISLER] 946 00:41:06,940 --> 00:41:08,270 >> SPEAKER 1: Åh, ja. 947 00:41:08,270 --> 00:41:09,230 >> PUBLIKUM: Åh, Gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> SPEAKER 1: For løkker are-- dette ikke langsomt på grund af PHP. 950 00:41:19,180 --> 00:41:21,810 Dette er langsom, fordi Gmail er kvæle os og ikke 951 00:41:21,810 --> 00:41:25,170 lade os sende mere end som en e-mail per sekund. 952 00:41:25,170 --> 00:41:26,300 Noget? 953 00:41:26,300 --> 00:41:29,990 Det var en hård ting for mig at teste på hjem med bare mig og min én telefon, så. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 Er det forhåbentlig fra bot? 956 00:41:41,111 --> 00:41:41,610 Ja? 957 00:41:41,610 --> 00:41:42,110 Nej? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Sige ja. 960 00:41:46,620 --> 00:41:47,479 Nej? 961 00:41:47,479 --> 00:41:49,374 Det er fra en ven? 962 00:41:49,374 --> 00:41:49,874 Akavet. 963 00:41:49,874 --> 00:41:50,374 OK. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Temmelig sikker på det fungerer dog. 966 00:42:00,090 --> 00:42:00,910 Uh oh. 967 00:42:00,910 --> 00:42:03,190 De black-- åh, vent et øjeblik. 968 00:42:03,190 --> 00:42:04,280 Åh, ved du hvad? 969 00:42:04,280 --> 00:42:06,100 Et øjeblik. 970 00:42:06,100 --> 00:42:07,802 Kun Maya og jeg-- Mia, var det? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 SPEAKER 1: Maya, kommer til at ved, hvad jeg gjorde galt her. 973 00:42:12,110 --> 00:42:14,890 Åh, vent et øjeblik. 974 00:42:14,890 --> 00:42:23,320 Jeg tror, ​​jeg har lige sendt 100 tekstbeskeder til 555-1212. 975 00:42:23,320 --> 00:42:24,346 Stå ved. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Jeg kan ikke vinde noget år. 978 00:42:29,270 --> 00:42:30,180 OK. 979 00:42:30,180 --> 00:42:30,680 Maya? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 Fix det i post produktion. 982 00:42:36,219 --> 00:42:36,718 Dammit! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 Efter fra adressen. 985 00:42:40,390 --> 00:42:41,301 OK, stå ved. 986 00:42:41,301 --> 00:42:41,800 Undskyld. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 Det er smertefuldt hvert år. 989 00:42:47,080 --> 00:42:48,640 OK, det ene øjeblik. 990 00:42:48,640 --> 00:42:50,530 Det er godt. 991 00:42:50,530 --> 00:42:54,010 Jeg stedet kommer til at gøre dette. 992 00:42:54,010 --> 00:42:55,470 Udskriv adresse. 993 00:42:55,470 --> 00:42:56,030 OK, stå ved. 994 00:42:56,030 --> 00:43:01,340 Print adresser, beslag I. 995 00:43:01,340 --> 00:43:02,710 Ja, jeg kan lide det. 996 00:43:02,710 --> 00:43:10,220 Dollar sign-- OK jeg vil forklare, hvad jeg er gør i et øjeblik, efter at jeg har kørt dette. 997 00:43:10,220 --> 00:43:11,670 Hvert år. 998 00:43:11,670 --> 00:43:13,125 OK, her går vi. 999 00:43:13,125 --> 00:43:15,750 Jeg har bare--, og jeg ønsker ikke at vise alles telefonnummer, 1000 00:43:15,750 --> 00:43:17,740 men Maya kan bekræfte med et nik af hovedet, 1001 00:43:17,740 --> 00:43:20,800 at hun ser alles telefonnummer i klassen 1002 00:43:20,800 --> 00:43:26,750 at jeg har tænkt mig at kopiere ind et program kaldet Gmail. 1003 00:43:26,750 --> 00:43:30,860 Og hvis i Gmail, hvad gør vi ønsker at sige? 1004 00:43:30,860 --> 00:43:32,137 Jeg savner dig. 1005 00:43:32,137 --> 00:43:33,220 Love-- det er ikke fra mig. 1006 00:43:33,220 --> 00:43:35,230 Jeg har ikke engang ramt sende endnu. 1007 00:43:35,230 --> 00:43:39,450 Så lad os gå videre og gøre dette, hvis jeg kan zoome ind. 1008 00:43:39,450 --> 00:43:40,300 OK. 1009 00:43:40,300 --> 00:43:42,480 Så jeg bruger et program kaldet Gmail nu. 1010 00:43:42,480 --> 00:43:44,490 Hvis Maya, du gerne vil klik på knappen Send, 1011 00:43:44,490 --> 00:43:46,970 Vi vil simulere, hvad det kode burde have gjort. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Noget? 1014 00:43:55,254 --> 00:43:56,062 >> [BIP] 1015 00:43:56,062 --> 00:43:56,870 >> PUBLIKUM: Yep. 1016 00:43:56,870 --> 00:43:58,030 >> SPEAKER 1: Ja? 1017 00:43:58,030 --> 00:43:59,210 Frelse? 1018 00:43:59,210 --> 00:44:00,427 >> PUBLIKUM: Yep. 1019 00:44:00,427 --> 00:44:01,260 SPEAKER 1: Savner dig. 1020 00:44:01,260 --> 00:44:02,718 Og jeg har tænkt mig at sende resten. 1021 00:44:02,718 --> 00:44:06,060 Jeg sendte halvdelen, fordi jeg ikke tror Gmail ville lade dem gå igennem. 1022 00:44:06,060 --> 00:44:12,410 Så bare husk, i dag er den dag, at du har lært, at jeg kan bruge Gmail. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Det var gruopvækkende. 1025 00:44:15,810 --> 00:44:17,140 En stor applaus til Maya. 1026 00:44:17,140 --> 00:44:18,980 Tak. 1027 00:44:18,980 --> 00:44:21,280 Okay, så. 1028 00:44:21,280 --> 00:44:22,210 hvad 1029 00:44:22,210 --> 00:44:23,140 >> [BIP] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Vi fik et par bip, ja? 1032 00:44:26,580 --> 00:44:27,080 Okay. 1033 00:44:27,080 --> 00:44:30,590 Nu vil jeg få 700 virkelig ulykkelige e-mails tilbage fra klassekammerater. 1034 00:44:30,590 --> 00:44:32,400 Så i det mindste, vi vil se hvis det var det værd. 1035 00:44:32,400 --> 00:44:33,300 Så hvad der gik galt? 1036 00:44:33,300 --> 00:44:35,300 Jeg vil finde ud af, hvad der gik forkert efter den kendsgerning, 1037 00:44:35,300 --> 00:44:38,340 men bare se, hvor nemt det var at gøre det i PHP. 1038 00:44:38,340 --> 00:44:44,598 Så hvad kan vi rent faktisk gør nu, at vi har denne udtryksfuldhed af PHP. 1039 00:44:44,598 --> 00:44:45,970 Det was--, der var forfærdelig. 1040 00:44:45,970 --> 00:44:46,480 Okay. 1041 00:44:46,480 --> 00:44:48,430 Så det var hvad der skulle have gået ud. 1042 00:44:48,430 --> 00:44:52,770 Dette blev mig teste i morges på min telefon, faktisk screenshot af min telefon. 1043 00:44:52,770 --> 00:44:56,180 >> Men lad os nu overveje, hvorfor vi faktisk indføre 1044 00:44:56,180 --> 00:44:57,840 alle disse ting i første omgang. 1045 00:44:57,840 --> 00:45:01,625 Så målet er ikke at skrive disse programmer, 1046 00:45:01,625 --> 00:45:03,250 skrives på kommandolinjen, ikke? 1047 00:45:03,250 --> 00:45:05,000 Så jeg skrev en simpel hej program, jeg skrev 1048 00:45:05,000 --> 00:45:09,155 et lille program, der gør betingede, og brugte en læselinie og så videre. 1049 00:45:09,155 --> 00:45:11,530 Og i teorien, jeg lige skrev et program, der sendes ud 1050 00:45:11,530 --> 00:45:14,290 800 SMS-beskeder, give eller tage 800. 1051 00:45:14,290 --> 00:45:16,830 Og at programmet var alle stadig køre på kommandolinjen. 1052 00:45:16,830 --> 00:45:18,538 Og det er naturligvis ikke på nettet, ikke? 1053 00:45:18,538 --> 00:45:22,160 Målet er nu at begynde at bruge hvad jeg hævder er en nemmere at bruge 1054 00:45:22,160 --> 00:45:24,720 sprog, kanske en mere kraftfulde sprog i form 1055 00:45:24,720 --> 00:45:27,104 af de funktioner, kommer med det, til at starte 1056 00:45:27,104 --> 00:45:29,850 skrive kode, der genererer websider. 1057 00:45:29,850 --> 00:45:33,248 >> Så sidste gang, og i sidste uge, vi talte om HTTP og HTML. 1058 00:45:33,248 --> 00:45:36,350 Og hvad er rart om HTML er, at det er bare ren tekst. 1059 00:45:36,350 --> 00:45:38,220 Og teksten er helt sikkert noget, som du kan 1060 00:45:38,220 --> 00:45:42,040 udskrive ved bogstaveligt at kalde print f-funktionen, eller print-funktionen. 1061 00:45:42,040 --> 00:45:46,160 Og ja, det er hvad PHP er vil nu tillade os at gøre. 1062 00:45:46,160 --> 00:45:48,610 Så blandt de eksempler, vi har i dagens kildekode, 1063 00:45:48,610 --> 00:45:51,610 Ud over nogle af koden at jeg sætter op der for et øjeblik siden, 1064 00:45:51,610 --> 00:45:55,440 Vi har programmer som dette f.eks. 1065 00:45:55,440 --> 00:45:58,760 Froshims eller Russer Intramural Sport, var faktisk 1066 00:45:58,760 --> 00:46:01,500 en af ​​de første extracurriculars Jeg blev involveret med år siden. 1067 00:46:01,500 --> 00:46:03,750 Og min værelseskammerat og jeg, med nogle andre børn på campus, 1068 00:46:03,750 --> 00:46:05,280 bruges til at køre froshims programmet. 1069 00:46:05,280 --> 00:46:07,420 Jeg får mine tekstbeskeder nu. 1070 00:46:07,420 --> 00:46:14,030 >> Nu så vi, tilbage i dag, så dette var 1996 eller deromkring, der var en internet, 1071 00:46:14,030 --> 00:46:17,395 men der var ingen process-- der var ingen hjemmeside for froshims. 1072 00:46:17,395 --> 00:46:20,270 Og så hvis du ønskede at tilmelde dig fodbold eller volleyball eller hvad, 1073 00:46:20,270 --> 00:46:22,240 du ville udfylde denne ting kaldes et stykke papir, 1074 00:46:22,240 --> 00:46:25,060 og du ville gå på tværs Harvard gård, og du ville skubbe det 1075 00:46:25,060 --> 00:46:29,230 ind i brevsprækken af ​​proctor, der var i Wigglesworth, en af ​​sovesale. 1076 00:46:29,230 --> 00:46:31,270 Og dette var du registreret. 1077 00:46:31,270 --> 00:46:33,570 Og han eller hun ville derefter komponere en e-mail til dig 1078 00:46:33,570 --> 00:46:36,514 manuelt, ligesom jeg lige gjorde her med Maya, 1079 00:46:36,514 --> 00:46:38,930 og så ville du blive bekræftet at have været registreret. 1080 00:46:38,930 --> 00:46:40,840 >> Så det var ligesom lav hængende frugt, så at sige. 1081 00:46:40,840 --> 00:46:42,930 Det var slags dum, at vi brugte papir til dette. 1082 00:46:42,930 --> 00:46:45,024 Jeg ville have os til at kunne bare gå på en hjemmeside, 1083 00:46:45,024 --> 00:46:47,440 eller har de freshmen gå på en hjemmeside, registrere til sport, 1084 00:46:47,440 --> 00:46:50,398 og bare automatisere en masse af det her ved at sætte deres navne og e-mails 1085 00:46:50,398 --> 00:46:51,850 og så videre i en database. 1086 00:46:51,850 --> 00:46:56,510 Og faktisk den allerførste udgave af hjemmesiden, ved hjælp af super grimme HTML, 1087 00:46:56,510 --> 00:46:58,195 måske har set noget som dette. 1088 00:46:58,195 --> 00:47:01,070 Det var faktisk ironisk nok mere pinligt ud end dette tilbage 1089 00:47:01,070 --> 00:47:01,460 derefter. 1090 00:47:01,460 --> 00:47:02,890 Men jeg brugte et programmeringssprog. 1091 00:47:02,890 --> 00:47:06,060 Ikke PHP, men snarere kaldes Perl, som er en ældre sprog, 1092 00:47:06,060 --> 00:47:07,251 men meget ens i ånd. 1093 00:47:07,251 --> 00:47:09,000 Og jeg bare helt lærte det til mig selv. 1094 00:47:09,000 --> 00:47:12,208 Og det tog mig et stykke tid at finde ud af, stille masser af spørgsmål af venner. 1095 00:47:12,208 --> 00:47:14,080 Men ideerne der var nøjagtigt det samme. 1096 00:47:14,080 --> 00:47:18,050 For hvad PHP var virkelig designet for er ikke kommandolinjen stuff 1097 00:47:18,050 --> 00:47:20,450 vi bare legede med, men for webprogrammering. 1098 00:47:20,450 --> 00:47:24,960 >> Det er virkelig bundet i sin funktion indstillet til nettet, som følger. 1099 00:47:24,960 --> 00:47:26,370 Dette er froshims. 1100 00:47:26,370 --> 00:47:28,720 Og hvis jeg ønskede at registrere i denne form, 1101 00:47:28,720 --> 00:47:30,930 dette er helt grimme, sikkert, men lad mig gå videre 1102 00:47:30,930 --> 00:47:34,440 og være en mindre behagelig elev, og hvad sport for Matthews, 1103 00:47:34,440 --> 00:47:35,630 klik Register. 1104 00:47:35,630 --> 00:47:39,780 Hvad jeg ønsker at være i stand til at gøre, er indsende oplysninger fra en formular, 1105 00:47:39,780 --> 00:47:42,400 ikke til Googles server ligesom vi gjorde sidste gang, helt 1106 00:47:42,400 --> 00:47:47,100 snyd ved hjælp af deres backend, jeg ønsker at gennemføre min egen backend kode. 1107 00:47:47,100 --> 00:47:51,410 Hvilket betyder skrive PHP kode, som bor på en URL 1108 00:47:51,410 --> 00:47:54,180 at formulardata kan forelægges. 1109 00:47:54,180 --> 00:47:57,510 >> Og så din kode, skrevet i PHP på en server, 1110 00:47:57,510 --> 00:47:59,400 kan så reagere på denne brugerinput. 1111 00:47:59,400 --> 00:48:03,287 Ligesom hans eller hendes navn, eller komfort niveau, eller kollegieværelse, og derefter gøre noget med det. 1112 00:48:03,287 --> 00:48:05,120 I dette tilfælde, jeg lige dumt printet det ud 1113 00:48:05,120 --> 00:48:06,750 som tekst, hvilket ikke er alt, smuk. 1114 00:48:06,750 --> 00:48:09,590 Men du kunne sikkert forestille sig, hvis du kender HTML, 1115 00:48:09,590 --> 00:48:13,010 og du vil snart vide, hvordan til at generere HTML med print f, og print, 1116 00:48:13,010 --> 00:48:16,500 og lignende funktioner, kan du helt sikkert generere en kønnere webside, der siger, 1117 00:48:16,500 --> 00:48:17,929 hey David, du er nu registreret. 1118 00:48:17,929 --> 00:48:20,220 Du er en mindre behagelig studerende fra Matthews, ikke? 1119 00:48:20,220 --> 00:48:23,880 >> Du kan bare bruge en hel masse% ses, eller de krøllede parenteser og dollartegn 1120 00:48:23,880 --> 00:48:27,750 notation jeg brugte for et øjeblik siden, at generere tekst, der er mere brugervenlig 1121 00:48:27,750 --> 00:48:28,567 end dette. 1122 00:48:28,567 --> 00:48:30,150 Så lad os tage et kig på denne ene fil. 1123 00:48:30,150 --> 00:48:34,666 Froshim nul prik PHP ser sådan ud. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Når jeg genindlæse CS50 IDE, froshim nul ser sådan ud. 1126 00:48:43,500 --> 00:48:45,700 Dette er froshim nul dot PHP. 1127 00:48:45,700 --> 00:48:47,730 Og hvad vil du bemærke om denne fil? 1128 00:48:47,730 --> 00:48:49,506 >> PUBLIKUM: [uhørligt] 1129 00:48:49,506 --> 00:48:50,922 SPEAKER 1: Beklager, lidt højere? 1130 00:48:50,922 --> 00:48:53,250 PUBLIKUM: [uhørligt] Det er alt i HTML. 1131 00:48:53,250 --> 00:48:57,130 Og faktisk er det, fordi hvad der er interessant om PHP 1132 00:48:57,130 --> 00:48:58,880 er, at det er designet at være, for bedre 1133 00:48:58,880 --> 00:49:02,110 eller værre, blandet med HTML-kode. 1134 00:49:02,110 --> 00:49:05,850 Og i virkeligheden, selv om dette fil, froshim nul prik PHP, 1135 00:49:05,850 --> 00:49:11,470 har en PHP kommentar i toppen af det, det hele er bare HTML. 1136 00:49:11,470 --> 00:49:17,655 Men derimod hvis jeg åbner op, lad os siger, registrere nul prik PHP, som 1137 00:49:17,655 --> 00:49:19,550 blot har en stor kommentar på toppen. 1138 00:49:19,550 --> 00:49:26,500 Det ser alt for næsten udelukkende som HTML, med undtagelse af hvad? 1139 00:49:26,500 --> 00:49:29,350 Line, hvad, 21 ser lidt underligt. 1140 00:49:29,350 --> 00:49:32,739 >> Men opdager jeg ind PHP mode med åben beslag spørgsmålstegn PHP. 1141 00:49:32,739 --> 00:49:33,780 Så jeg har fået nogle ting. 1142 00:49:33,780 --> 00:49:36,724 Og derefter ved udgangen af ​​denne linje næsten jeg har, spørgsmålstegn PHP. 1143 00:49:36,724 --> 00:49:38,390 Og det er det, jeg mener med blandet. 1144 00:49:38,390 --> 00:49:41,910 Du kan skrive HTML, som du lige ønsker, at serveren til at spytte ud. 1145 00:49:41,910 --> 00:49:45,090 Men hvis du ønsker at gøre noget dynamisk stykke inde på siden, 1146 00:49:45,090 --> 00:49:47,699 ligesom indsætte mit navn eller dorm eller komfort niveau, 1147 00:49:47,699 --> 00:49:49,490 Jeg kan bruge en funktion Ligesom print r, som er 1148 00:49:49,490 --> 00:49:52,492 udskrive rekursive, hvilket betyder blot udskrive denne variabel, formatering det 1149 00:49:52,492 --> 00:49:53,200 Men du ønsker. 1150 00:49:53,200 --> 00:49:55,880 Det er virkelig ikke for menneskelige formål, det er bare 1151 00:49:55,880 --> 00:49:58,290 til fejlfinding eller diagnostiske formål. 1152 00:49:58,290 --> 00:49:59,460 Så det er hvordan jeg gjorde det. 1153 00:49:59,460 --> 00:50:06,100 >> Hvis jeg i stedet gå froshims to dot PHP, bemærke, at virkningen af ​​denne formular 1154 00:50:06,100 --> 00:50:09,680 er ikke registreret nul prik PHP som old-- den foregående faktisk var. 1155 00:50:09,680 --> 00:50:11,222 Men det er registreret to prik PHP. 1156 00:50:11,222 --> 00:50:13,680 Så lad os se på, hvordan denne ene opfører sig lidt anderledes. 1157 00:50:13,680 --> 00:50:15,140 Hvis jeg går ind udgave to. 1158 00:50:15,140 --> 00:50:20,430 Hvis her, hvis jeg registrere som David, mindre komfortable, fra kollegiet af Mathews, 1159 00:50:20,430 --> 00:50:21,480 registrere. 1160 00:50:21,480 --> 00:50:23,770 Så denne gang er det sagt, du er registreret, ikke rigtig. 1161 00:50:23,770 --> 00:50:25,370 Lad os se, hvad jeg gjorde her. 1162 00:50:25,370 --> 00:50:29,760 Hvis jeg ser på register to prik PHP, det har nogle mere PHP kode. 1163 00:50:29,760 --> 00:50:35,410 Det er lidt renere, selvom det stadig wraps lidt længe på denne linje. 1164 00:50:35,410 --> 00:50:36,260 Bemærk her. 1165 00:50:36,260 --> 00:50:40,300 Jeg udskrive mit HTML-tag, mit hoved tag, min titel-tag, hovedet, kroppen. 1166 00:50:40,300 --> 00:50:45,410 >> Og så vil jeg begynde at sige ting som du indtaste PHP tilstand. 1167 00:50:45,410 --> 00:50:48,540 Og så tag, åbne beslag PHP-- spørgsmålstegn PHP siger, 1168 00:50:48,540 --> 00:50:53,460 hey, server, execute-- fortolke følgende ting som PHP 1169 00:50:53,460 --> 00:50:55,030 indtil du ser slutningen tag. 1170 00:50:55,030 --> 00:50:58,590 Og selv om du måske ikke kender nogen andet PHP, end du har set hidtil, 1171 00:50:58,590 --> 00:51:01,290 du kan slags læse det temmelig intuitivt. 1172 00:51:01,290 --> 00:51:10,670 Hvis navnet er tom, eller komfort er tom, eller kollegieværelse er tom, hvad gør jeg? 1173 00:51:10,670 --> 00:51:12,830 Hvad skal jeg sige til brugeren? 1174 00:51:12,830 --> 00:51:15,330 Du skal angive dit navn, komfort og dorm, og så videre. 1175 00:51:15,330 --> 00:51:17,750 Else, jeg siger, du er registreret, godt ikke rigtig. 1176 00:51:17,750 --> 00:51:19,190 >> Og jeg siger ikke rigtig fordi der er ingen database. 1177 00:51:19,190 --> 00:51:20,200 Jeg gør ikke noget med dataene. 1178 00:51:20,200 --> 00:51:22,408 Jeg er bare at smide det væk til demonstration. 1179 00:51:22,408 --> 00:51:24,320 Nu jeg slags skimped overlinie 22. 1180 00:51:24,320 --> 00:51:26,400 Der er mere syntaks der, men dollartegn 1181 00:51:26,400 --> 00:51:28,320 understrege indlæg er slags interessant. 1182 00:51:28,320 --> 00:51:30,300 Og det er, hvad der er rart om PHP. 1183 00:51:30,300 --> 00:51:35,610 I PHP, har du det, der kaldes et par super globale variable. 1184 00:51:35,610 --> 00:51:38,430 De er en slags endnu mere vigtigere end globale variable. 1185 00:51:38,430 --> 00:51:41,370 Og disse, alle kapitaliserede som sådan, kommer med PHP. 1186 00:51:41,370 --> 00:51:44,550 Så hvis du har en server, der har en webserver installeret, som Apache, 1187 00:51:44,550 --> 00:51:49,390 og du installerer sprog støtte til PHP, pludselig du 1188 00:51:49,390 --> 00:51:52,250 kan begynde at bruge disse super globale variabler i din kode. 1189 00:51:52,250 --> 00:51:54,330 >> Og hvad er rart om PHP er, at hvis du bare 1190 00:51:54,330 --> 00:51:57,540 skrive en fil, der ender i dot PHP, sætte det på en webserver, 1191 00:51:57,540 --> 00:52:01,260 og så skal du indsende en formular til det via denne handling tag og en form-tag, 1192 00:52:01,260 --> 00:52:05,110 at indsatsen attribut i formular tag, PHP og web 1193 00:52:05,110 --> 00:52:09,360 helt tal ud af at få fat i alle disse centrale værdipar ud 1194 00:52:09,360 --> 00:52:11,633 af webadressen ligesom spørgsmålet mark q er lig med katte, 1195 00:52:11,633 --> 00:52:14,782 det vil finde ud af at q og katte. 1196 00:52:14,782 --> 00:52:17,710 Hvis du sender et foto eller et brugernavn, eller en adgangskode for at lide Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP vil finde ud af for dig hvor alle disse data er. 1198 00:52:21,360 --> 00:52:23,821 Og det vil bare hånd dig en associativt array 1199 00:52:23,821 --> 00:52:27,560 kaldet dollartegn understregning indlæg, eller dollartegn underscore får, 1200 00:52:27,560 --> 00:52:30,590 afhængigt af, om du er hjælp get eller post-indlæg. 1201 00:52:30,590 --> 00:52:32,950 Og det vil bare hånd du en super global variabel, 1202 00:52:32,950 --> 00:52:37,254 så hvis du ønsker at få på navnet at brugeren indsendes via at web 1203 00:52:37,254 --> 00:52:41,894 formular, du bogstaveligt talt bare sige navnet af den super globale variable, tilbud, 1204 00:52:41,894 --> 00:52:43,380 citat slut, navn. 1205 00:52:43,380 --> 00:52:46,144 Og tilbud, citat slut komfort, og tilbud, citat slut kollegieværelse. 1206 00:52:46,144 --> 00:52:48,810 Og vi vil være i stand til at gøre dette og meget mere med PHP. 1207 00:52:48,810 --> 00:52:50,540 Og selv om dette var en hvirvelvind blik på det, 1208 00:52:50,540 --> 00:52:51,980 vi vil dykke i meget mere i næste uge. 1209 00:52:51,980 --> 00:52:54,247 Vi vil indføre en database så du er faktisk 1210 00:52:54,247 --> 00:52:56,816 kommer til at begynde at gennemføre din egen e-handel based-- 1211 00:52:56,816 --> 00:52:59,150 ligesom hjemmeside på bare en uges tid. 1212 00:52:59,150 --> 00:53:02,750 Så vi vil se dig næste gang, og håber du fik de SMS-beskeder. 1213 00:53:02,750 --> 00:53:05,450 Farvel. 1214 00:53:05,450 --> 00:53:06,950 >> [Musik spiller] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [DØR ÅBNING] 1217 00:53:12,950 --> 00:53:14,475 >> SPEAKER 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 SPEAKER 3: Hvad sker der? 1219 00:53:15,350 --> 00:53:17,750 SPEAKER 2: Hvad laver du? 1220 00:53:17,750 --> 00:53:19,850 SPEAKER 3: Arbejde på et problem sæt. 1221 00:53:19,850 --> 00:53:21,050 SPEAKER 2: Nice. 1222 00:53:21,050 --> 00:53:22,550 High five. 1223 00:53:22,550 --> 00:53:23,150 >> [HIGH FIVE] 1224 00:53:23,150 --> 00:53:25,584 >> Hvad are-- uh, hvad laver du her? 1225 00:53:25,584 --> 00:53:26,750 SPEAKER 3: Bare hænge ud. 1226 00:53:26,750 --> 00:53:28,134 Lige kommet tilbage fra gymnastiksalen. 1227 00:53:28,134 --> 00:53:30,050 Jeg kunne ikke lade være mærke, når vi high-fived, 1228 00:53:30,050 --> 00:53:32,450 at du har temmelig ru hænder. 1229 00:53:32,450 --> 00:53:33,950 Har du gå til gymnastik? 1230 00:53:33,950 --> 00:53:35,150 >> SPEAKER 2: Nej. 1231 00:53:35,150 --> 00:53:36,650 Nej. 1232 00:53:36,650 --> 00:53:38,450 >> SPEAKER 3: Dude, du ser temmelig store. 1233 00:53:38,450 --> 00:53:45,950 Hvilket er dårligt, fordi alle ved, 8-ball er den store mand på campus. 1234 00:53:45,950 --> 00:53:48,050 High five. 1235 00:53:48,050 --> 00:53:49,550 >> SPEAKER 2: Øh, nej. 1236 00:53:49,550 --> 00:53:50,450 Nej, jeg tror jeg er god. 1237 00:53:50,450 --> 00:53:52,300 Jeg tror, ​​jeg er god. 1238 00:53:52,300 --> 00:53:54,097