1 00:00:00,000 --> 00:00:04,410 >> [Muziek] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> SPEAKER 1: Dit is CS50 en Dit is het einde van week zeven. 4 00:00:15,770 --> 00:00:20,240 Vandaag de dag is misschien wel waar we echt leer je talen. 5 00:00:20,240 --> 00:00:24,100 Introduceerden we in de afgelopen paar weken HTML en CSS, die geen van beide 6 00:00:24,100 --> 00:00:25,240 zijn programmeertalen. 7 00:00:25,240 --> 00:00:28,600 En inderdaad, ook al hebben we niet kijken naar bijna alle labels 8 00:00:28,600 --> 00:00:33,410 die HTML wordt geleverd met en bijna alle van de eigenschappen die CSS wordt geleverd met, 9 00:00:33,410 --> 00:00:35,007 dat is een soort van het voor HTML en CSS. 10 00:00:35,007 --> 00:00:36,840 We zullen gewoon in het algemeen beginnen de veronderstelling dat je 11 00:00:36,840 --> 00:00:39,545 inzicht in de algemene ideeën tags en attributen, 12 00:00:39,545 --> 00:00:41,850 en pagina's worden verzonden van klant tot server. 13 00:00:41,850 --> 00:00:45,280 >> Want vandaag gaan we kijken naar een andere programmeertaal, PHP. 14 00:00:45,280 --> 00:00:47,110 We gaan dit super snel te doen. 15 00:00:47,110 --> 00:00:50,910 We zijn niet van plan om je te leren PHP per se, net zoals we hebben niet de ambitie om je te leren 16 00:00:50,910 --> 00:00:52,670 C, per se, maar programmeren. 17 00:00:52,670 --> 00:00:55,088 Inderdaad, een van de goals voor deze cursus 18 00:00:55,088 --> 00:00:57,820 is niet om je te leren C, of HTML of CSS of PHP, 19 00:00:57,820 --> 00:01:00,370 of elk aantal andere buzz woorden of acroniemen, 20 00:01:00,370 --> 00:01:03,097 maar de computer science en hoe fundamenteel programmeren. 21 00:01:03,097 --> 00:01:05,930 En inderdaad, vandaag beginnen we te nemen die training wielen van alle 22 00:01:05,930 --> 00:01:10,600 verder door het vliegen door een taal genaamd PHP als volgt. 23 00:01:10,600 --> 00:01:13,640 >> Hier is wat deze taal eruit ziet. 24 00:01:13,640 --> 00:01:17,790 Het blijkt dat er geen behoefte een belangrijke functie in een programma geschreven 25 00:01:17,790 --> 00:01:19,470 in een taal genaamd PHP. 26 00:01:19,470 --> 00:01:22,585 Zodat al klinkt een beetje eenvoudiger dan C, waarmee we vertrouwd zijn. 27 00:01:22,585 --> 00:01:25,370 Het blijkt dat als je wil een variabele declareren, 28 00:01:25,370 --> 00:01:29,470 je doet het bijna identiek aan C. Maar Er is duidelijk een verschil is hier 29 00:01:29,470 --> 00:01:31,850 toen ik verklaar een string, of misschien twee verschillen. 30 00:01:31,850 --> 00:01:32,725 Wat ziet er anders uit? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> Publiek: De dollarteken. 33 00:01:37,160 --> 00:01:39,951 >> SPEAKER 1: Ja, er is dollar ondertekenen, die we nog nooit eerder hebben gezien. 34 00:01:39,951 --> 00:01:41,451 En wat ontbreekt? 35 00:01:41,451 --> 00:01:41,950 Ja? 36 00:01:41,950 --> 00:01:42,820 >> PUBLIEK: [onverstaanbaar] 37 00:01:42,820 --> 00:01:44,403 >> SPEAKER 1: Ja, er is geen data type. 38 00:01:44,403 --> 00:01:48,410 Het blijkt dus dat PHP is wat we bel een losjes getypeerde taal, waarbij 39 00:01:48,410 --> 00:01:49,959 C is sterk getypt. 40 00:01:49,959 --> 00:01:52,500 Losjes getypt betekent gewoon dat zijn er verschillende soorten gegevens, 41 00:01:52,500 --> 00:01:54,470 er zijn strings en integers en praalwagens. 42 00:01:54,470 --> 00:01:56,330 Maar de computer cijfers die uit. 43 00:01:56,330 --> 00:01:58,664 U het menselijk programmeur hoeft het niet te achterhalen. 44 00:01:58,664 --> 00:02:00,580 Dus alles wat je hoeft te doen te verklaren een variabele 45 00:02:00,580 --> 00:02:03,220 dollarteken, de naam van uw variabele en vervolgens bijvoorbeeld 46 00:02:03,220 --> 00:02:04,760 citaat unquote, hello wereld. 47 00:02:04,760 --> 00:02:07,662 >> Nou, dit is wat een toestand eruit ziet in PHP. 48 00:02:07,662 --> 00:02:08,328 Eventuele verschillen? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Nee. 51 00:02:11,150 --> 00:02:12,540 Zo blijkt hier identiek. 52 00:02:12,540 --> 00:02:14,665 En je zou minder hebben takken of meer takken, 53 00:02:14,665 --> 00:02:16,557 maar de syntax bochten precies hetzelfde. 54 00:02:16,557 --> 00:02:18,390 Boolean expressies kan samen worden besteld. 55 00:02:18,390 --> 00:02:20,400 Boolean expressies kunnen samen worden ANDed. 56 00:02:20,400 --> 00:02:21,430 Je hebt nog steeds schakelaars. 57 00:02:21,430 --> 00:02:23,790 Zelfs als je niet hebt gebruikt Hiervan deze bestaan ​​in C 58 00:02:23,790 --> 00:02:26,020 en ze zijn functioneel equivalent in PHP. 59 00:02:26,020 --> 00:02:28,260 >> En in feite, in PHP zijn ze een beetje meer krachtig. 60 00:02:28,260 --> 00:02:32,540 In C, kunt u alleen vergelijken bepaalde data types zoals integers en tekens, 61 00:02:32,540 --> 00:02:36,320 terwijl in PHP kan je eigenlijk vergelijken volledige uitvliegen strings zonder 62 00:02:36,320 --> 00:02:38,460 zorgen te maken over pointers en dergelijke. 63 00:02:38,460 --> 00:02:39,430 Dus hier is een lus. 64 00:02:39,430 --> 00:02:41,270 Dit is slechts pseudocode code, als je wil. 65 00:02:41,270 --> 00:02:43,400 Maar het is structureel identiek aan C. 66 00:02:43,400 --> 00:02:47,520 >> Hier is een tijdje lus pseudocode therefore-- identiek C. 67 00:02:47,520 --> 00:02:49,390 Hier is een doe terwijl loop-- identiek. 68 00:02:49,390 --> 00:02:51,390 En dus er is een soort van Dit patroon hier, waarbij 69 00:02:51,390 --> 00:02:54,400 er zijn een paar andere syntactische features we inderdaad gaan zien. 70 00:02:54,400 --> 00:02:57,340 In feite, hier is een aardige manier in PHP, waarbij, 71 00:02:57,340 --> 00:02:59,350 als u wilt herhalen over een array, en je 72 00:02:59,350 --> 00:03:02,309 wil niet te springen door de mentale en syntactische hoepels van het hebben 73 00:03:02,309 --> 00:03:05,178 int i gelijk is aan 0, i minder dan n, ik plus plus-- die 74 00:03:05,178 --> 00:03:07,040 is gewoon een hoop vervelende syntax. 75 00:03:07,040 --> 00:03:10,654 U kunt een beetje meer zeggen fluïdumverbinding per nummers 76 00:03:10,654 --> 00:03:13,320 onder nummer, indien in casu dollarteken nummers, ik ga ervan uit, 77 00:03:13,320 --> 00:03:15,400 is als een array met de naam nummers. 78 00:03:15,400 --> 00:03:18,810 En dan ben ik ervan uitgaande dat nummer, enkelvoud, gaat een variabele. 79 00:03:18,810 --> 00:03:22,940 >> En wat PHP zal doen voor mij als ik herhalen Over deze lus op elke iteratie 80 00:03:22,940 --> 00:03:28,450 het gaat werken de variabele nummer zijn de i-element in aantallen, meervoud. 81 00:03:28,450 --> 00:03:30,060 Zodat het net behandelt dat allemaal voor mij. 82 00:03:30,060 --> 00:03:32,750 Geen vierkante haakjes, geen dollarteken, geen puntkomma's. 83 00:03:32,750 --> 00:03:34,117 Het is gewoon een beetje eenvoudiger. 84 00:03:34,117 --> 00:03:35,950 Nou, als je wilt dat een array, het blijkt dat je 85 00:03:35,950 --> 00:03:38,908 kan iets redelijk vergelijkbaar te doen C. De syntax is een beetje anders. 86 00:03:38,908 --> 00:03:41,000 Maar hier is een serie genaamd dollar ondertekend nummers. 87 00:03:41,000 --> 00:03:44,261 En ik gebruik, in PHP, vierkant beugels, zo blijkt. 88 00:03:44,261 --> 00:03:47,260 En we gaan om deze weer te zien in JavaScript-- nog een andere taal. 89 00:03:47,260 --> 00:03:49,968 Ik gebruik gewoon vierkant haakjesnotering een door komma's gescheiden lijst 90 00:03:49,968 --> 00:03:51,530 gehele getallen, in dit geval. 91 00:03:51,530 --> 00:03:53,010 Maar dat geeft me een array. 92 00:03:53,010 --> 00:03:56,270 >> Maar nog krachtiger in PHP, we hebben ook wat over het algemeen 93 00:03:56,270 --> 00:03:57,640 zogenaamde associatieve arrays. 94 00:03:57,640 --> 00:03:59,540 En veel talen zijn deze ook. 95 00:03:59,540 --> 00:04:03,810 Het ding over C arrays is dat de indexen 96 00:04:03,810 --> 00:04:06,940 voor een array, het ding dat je Gebruik vierkante haken via welke 97 00:04:06,940 --> 00:04:08,600 u toegang tot onderdelen, moeten wat zijn? 98 00:04:08,600 --> 00:04:10,620 >> PUBLIEK: [onverstaanbaar] 99 00:04:10,620 --> 00:04:14,220 >> SPEAKER 1: Ze moeten getallen of integers, in het bijzonder van nul up. 100 00:04:14,220 --> 00:04:17,140 Nou, in PHP, en het blijkt uit, in andere talen, 101 00:04:17,140 --> 00:04:20,820 kunt u beginnen te hebben indexen die niet numeriek zijn. 102 00:04:20,820 --> 00:04:23,880 Maar ze zijn eigenlijk woorden of uitdrukkingen, zodat in plaats van 103 00:04:23,880 --> 00:04:27,070 probeer te onthouden waar iets is, of opgeslagen in een variabele i, 104 00:04:27,070 --> 00:04:31,720 kunt u daadwerkelijk gebruik maken van een woord en zeggen: dat-- u kunt een woord als dit te zeggen. 105 00:04:31,720 --> 00:04:34,730 >> Dus dollarteken citaat is de de naam van een variabele hier. 106 00:04:34,730 --> 00:04:39,360 Dit is enigszins funky syntaxis dat is associëren twee belangrijke waarde 107 00:04:39,360 --> 00:04:41,250 paren voor deze variabele. 108 00:04:41,250 --> 00:04:45,490 Specifiek, dit geeft me een matrix die een lengte 2. 109 00:04:45,490 --> 00:04:47,660 Maar de indexen niet 0 en 1. 110 00:04:47,660 --> 00:04:51,250 De indexen zijn citaat unquote symbool en citeer unquote prijs. 111 00:04:51,250 --> 00:04:55,990 En de waarden van de indexen, respectievelijk, is FB voor Facebook 112 00:04:55,990 --> 00:05:00,360 en $ 79,53, toen ik voor het laatst gecontroleerd een prijs voor. 113 00:05:00,360 --> 00:05:01,210 >> Wat betekent dat? 114 00:05:01,210 --> 00:05:04,136 Nou, het betekent dat in plaats van het schrijven van code 115 00:05:04,136 --> 00:05:09,612 als dit, waar ik gebruikt om iets te doen zoals dollar sign-- of liever, in C 116 00:05:09,612 --> 00:05:11,070 Ik zou niet eens een dollarteken. 117 00:05:11,070 --> 00:05:13,490 Ik zou iets doen zoals offertes en vervolgens 118 00:05:13,490 --> 00:05:18,410 Ik zou beugel ik op een gegeven om te doen willekeurig numeriek geïndexeerde waarde. 119 00:05:18,410 --> 00:05:21,430 Vanaf vandaag in PHP, als je wil op een waarde te krijgen, 120 00:05:21,430 --> 00:05:24,742 hebben we een soort van meer semantische expressiviteit. 121 00:05:24,742 --> 00:05:27,450 Gewoon een mooie manier om te zeggen wat we kunnen enkel dingen noemen wat ze zijn. 122 00:05:27,450 --> 00:05:29,800 >> En als je wilt krijgen op iets symbool, 123 00:05:29,800 --> 00:05:32,180 nu je letterlijk doen citeren unquote symbool 124 00:05:32,180 --> 00:05:34,910 vierkante haken in plaats van slechts getal. 125 00:05:34,910 --> 00:05:36,450 Dus het is een leuke gemak. 126 00:05:36,450 --> 00:05:38,140 En dat is een soort van het voor nu. 127 00:05:38,140 --> 00:05:40,240 Er is trossen andere functies in PHP. 128 00:05:40,240 --> 00:05:43,180 En inderdaad, PHP wordt geleverd met de spreekwoordelijke aanrecht. 129 00:05:43,180 --> 00:05:48,640 Tientallen, honderden functies te komen met PHP-- zo veel meer dan kwam met C. 130 00:05:48,640 --> 00:05:51,360 >> En dat is niet de bedoeling om overweldigen maar helpen 131 00:05:51,360 --> 00:05:53,900 besef je dat we geen meer hebben om code te schrijven 132 00:05:53,900 --> 00:05:55,590 dat is een soort van hier beneden conceptueel. 133 00:05:55,590 --> 00:05:58,465 Nu kunnen we gewoon beginnen te profiteren van veel meer geavanceerde functies 134 00:05:58,465 --> 00:05:59,920 dat talen zoals PHP hebben. 135 00:05:59,920 --> 00:06:02,630 Zodat we niet zorgen te maken over bewegende dingen rond in het geheugen. 136 00:06:02,630 --> 00:06:05,338 We hebben geen zorgen te maken over malloc en al deze lagere niveau, 137 00:06:05,338 --> 00:06:09,390 krachtige details die u worstelen met, zo niet worstelen met, pset5, 138 00:06:09,390 --> 00:06:13,380 maar je kunt beginnen met het snel voor lief nemen. 139 00:06:13,380 --> 00:06:17,770 >> In feite, laten we schrijven een super eenvoudig programma in PHP als volgt. 140 00:06:17,770 --> 00:06:21,550 Ik ga naar het hoofd gaan in CS50 IDE hier, en wat ik ga doen 141 00:06:21,550 --> 00:06:29,370 is het creëren van een nieuw bestand, dat heel eenvoudig gaat hallo dot PHP genoemd te worden. 142 00:06:29,370 --> 00:06:31,860 Dus in plaats van punt c, het gaan heten dot PHP. 143 00:06:31,860 --> 00:06:34,260 En dan in dit bestand, Ik kan begint te typen. 144 00:06:34,260 --> 00:06:36,960 Maar het blijkt dat de een ding dat ik moet weten 145 00:06:36,960 --> 00:06:41,470 is dat een PHP-bestand in het algemeen, moet te beginnen met een aantal speciale syntax. 146 00:06:41,470 --> 00:06:44,570 Vergelijkbaar in de geest naar HTML, maar nogmaals, PHP is een programmeertaal, niet 147 00:06:44,570 --> 00:06:45,590 een opmaaktaal. 148 00:06:45,590 --> 00:06:48,700 >> Dus elk bestand, en het is een soort domme zoek ik zal toegeven. 149 00:06:48,700 --> 00:06:50,480 Open beugel vraagteken, PHP. 150 00:06:50,480 --> 00:06:53,060 En dat is gewoon de manier om te zeggen de taal van, 151 00:06:53,060 --> 00:06:58,400 hey, computer komt hier een code geschreven in een taal genaamd PHP. 152 00:06:58,400 --> 00:07:01,900 En dan aan het einde van het bestand, je soort soort van het tegenovergestelde. 153 00:07:01,900 --> 00:07:04,860 U hoeft niet opnieuw gewoon schrijven PHP, je do vraagteken, hoekijzer. 154 00:07:04,860 --> 00:07:08,500 En dan alles wat je binnen zetten Deze twee markeringen, zogezegd, 155 00:07:08,500 --> 00:07:11,490 zal zijn, of zou moeten zijn, PHP-code. 156 00:07:11,490 --> 00:07:13,180 >> Dus laten we iets super eenvoudig te doen. 157 00:07:13,180 --> 00:07:19,370 Ik ga om te gaan en doen afdrukken def, hello wereld, backslash n, te redden. 158 00:07:19,370 --> 00:07:27,310 En nu naar mijn prompt, ga ik doen, maken hello-- nee, ik ga doen, 159 00:07:27,310 --> 00:07:28,726 dot slash hallo. 160 00:07:28,726 --> 00:07:31,250 Nee, dot slash, hm. 161 00:07:31,250 --> 00:07:32,990 Dus er is iets anders. 162 00:07:32,990 --> 00:07:36,920 Inderdaad is dit een belangrijk verschil tussen PHP en talen zoals C. C 163 00:07:36,920 --> 00:07:38,730 een zogenaamde gecompileerde taal. 164 00:07:38,730 --> 00:07:40,929 Wat betekende voor C worden opgesteld? 165 00:07:40,929 --> 00:07:41,970 Wat was de implicatie? 166 00:07:41,970 --> 00:07:42,898 Ja. 167 00:07:42,898 --> 00:07:45,220 >> Publiek: schreef het in machine code dus het kan worden uitgevoerd door de computer. 168 00:07:45,220 --> 00:07:46,011 >> SPEAKER 1: Precies. 169 00:07:46,011 --> 00:07:49,075 We moeten eerst omzetten in zogenaamde machine code, nullen en enen, 170 00:07:49,075 --> 00:07:51,950 voordat het daadwerkelijk uitvoerbaar zal zijn en begrepen door de computer. 171 00:07:51,950 --> 00:07:52,840 Door Intel inside. 172 00:07:52,840 --> 00:07:54,530 Door de CPU binnenkant van de computer. 173 00:07:54,530 --> 00:07:58,170 PHP, daarentegen, is wat heet een geïnterpreteerde taal, die 174 00:07:58,170 --> 00:08:02,230 betekent dat je niet compileren in nullen en enen, machine code, 175 00:08:02,230 --> 00:08:04,360 u in plaats daarvan laat het als broncode. 176 00:08:04,360 --> 00:08:08,130 En je in plaats daarvan doorgeven als input een programma, een interpretator 177 00:08:08,130 --> 00:08:11,960 dat iemand anders geschreven jaar geleden dat het begrijpt 178 00:08:11,960 --> 00:08:14,310 lijn per lijn, karakter voor karakter. 179 00:08:14,310 --> 00:08:16,120 Met andere woorden, mensen daar schreef 180 00:08:16,120 --> 00:08:19,670 een programma dat eruit zal zien bij je code lijn per lijn, 181 00:08:19,670 --> 00:08:21,680 en erachter te komen wat de computer moet doen, 182 00:08:21,680 --> 00:08:25,960 zonder converteren direct naar nullen en enen. 183 00:08:25,960 --> 00:08:28,370 >> Dus als het ziet een lus, deze zogenaamde interpreter 184 00:08:28,370 --> 00:08:30,630 gaat worden als, al goed, zou ik iets te doen opnieuw en opnieuw en opnieuw. 185 00:08:30,630 --> 00:08:31,150 Wat moet ik doen? 186 00:08:31,150 --> 00:08:32,159 Laat me kijken naar de volgende regel. 187 00:08:32,159 --> 00:08:33,367 Laat me kijken naar de volgende regel. 188 00:08:33,367 --> 00:08:35,350 En het is echt interpreteert lijn per lijn. 189 00:08:35,350 --> 00:08:37,220 Dus om het uit te voeren, heb ik geen gebruik van maak. 190 00:08:37,220 --> 00:08:39,409 Ik weet niet dot slash gebruikt in dit geval. 191 00:08:39,409 --> 00:08:43,530 Ik in plaats daarvan doen PHP, die is de naam van een programma, alias 192 00:08:43,530 --> 00:08:46,562 Een tolk, dat is vooraf geïnstalleerd in CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 en nu moet ik een pas command line argument, dat 194 00:08:48,770 --> 00:08:52,290 is simpelweg de naam van de bestand dat ik wil interpreteren. 195 00:08:52,290 --> 00:08:54,740 Of meer terloops, dat ik wil uitvoeren. 196 00:08:54,740 --> 00:08:57,000 En als ik druk op enter, daar hebben we het. 197 00:08:57,000 --> 00:08:57,825 Hallo Wereld. 198 00:08:57,825 --> 00:08:59,950 Nu blijkt dat ik gebruikte druk def doelbewust 199 00:08:59,950 --> 00:09:01,600 om ons te overbruggen van C naar PHP. 200 00:09:01,600 --> 00:09:05,150 De meeste PHP-programmeurs, zoals u zult zien, niet eens de moeite met afdruk def. 201 00:09:05,150 --> 00:09:08,290 Zij maken gebruik van slechts een functie genaamd print, die C niet hebben. 202 00:09:08,290 --> 00:09:11,390 En dus als ik eigenlijk herhaald dat nu, het gedraagt ​​functioneel hetzelfde. 203 00:09:11,390 --> 00:09:13,730 Ik kan geen gebruik maken van het percentage s en i procent enzovoort, 204 00:09:13,730 --> 00:09:16,250 maar er zijn andere manieren in PHP om dat te doen. 205 00:09:16,250 --> 00:09:18,100 Maar dit is alleen zeggen dat syntactisch, 206 00:09:18,100 --> 00:09:21,850 anders dan sommige rare dingen top, en wat rare personages neer 207 00:09:21,850 --> 00:09:25,960 onder de begrippen nu uit programmering in deze andere talen 208 00:09:25,960 --> 00:09:27,860 zullen precies hetzelfde. 209 00:09:27,860 --> 00:09:30,120 >> In feite, laten we een ander voorbeeld. 210 00:09:30,120 --> 00:09:32,520 Dus ik ga om verder te gaan en sluit het bestand. 211 00:09:32,520 --> 00:09:37,740 Laat me nog een te maken dat Ik voorwaarden 1 dot PHP noemen. 212 00:09:37,740 --> 00:09:40,770 Dus geen nul, want wat ik deed was keek ik weer een paar weken geleden, 213 00:09:40,770 --> 00:09:43,490 we een bestand genaamd gehad voorwaarden 1 punt C. En wat 214 00:09:43,490 --> 00:09:47,590 Ik wist werd het omgezet in mijn hoofd en hier op papier, 215 00:09:47,590 --> 00:09:51,290 en binnenkort op de cursus website, regel voor regel in PHP. 216 00:09:51,290 --> 00:09:55,520 >> Dus in de C-versie, hebben we iets zoals touwtje s krijgt krijgen string. 217 00:09:55,520 --> 00:09:58,200 Dus het is een beetje anders om dat te doen in PHP. 218 00:09:58,200 --> 00:10:01,390 In plaats daarvan, ik ben gewoon gaan te doen, of liever gezegd, ik 219 00:10:01,390 --> 00:10:05,870 zou hebben gedaan int n krijgt krijgen int, in het eerdere voorbeeld. 220 00:10:05,870 --> 00:10:12,600 Dus in plaats van dat ik ga n doen wordt gelezen lijn, zou ik graag een integer, 221 00:10:12,600 --> 00:10:13,670 alsjeblieft. 222 00:10:13,670 --> 00:10:15,110 Dus dit is gewoon mijn prompt. 223 00:10:15,110 --> 00:10:17,260 En zo blijkt, en Ik zou dit alleen weten 224 00:10:17,260 --> 00:10:20,480 uit gelezen of gezien de functie vóór, lees lijnen van de functie in PHP 225 00:10:20,480 --> 00:10:23,810 neemt een argument is dat een prompt het menselijke en het doel in het leven 226 00:10:23,810 --> 00:10:26,220 is om een ​​regel tekst te lezen dat hij of zij vormen in. 227 00:10:26,220 --> 00:10:29,160 En dan slaat dat Tekst in de variabele n. 228 00:10:29,160 --> 00:10:32,200 >> En nu wil ik misschien iets doen zoals ik deed weken geleden, op dezelfde week 229 00:10:32,200 --> 00:10:33,290 één van de klas. 230 00:10:33,290 --> 00:10:36,600 Als n groter is dan nul is, dan ga ik 231 00:10:36,600 --> 00:10:42,930 dat syntax we net zagen lenen, afdrukken def, je pakte een positief getal, 232 00:10:42,930 --> 00:10:44,360 backslash n. 233 00:10:44,360 --> 00:10:49,990 Anders als n gelijk is aan nul is, ben ik gaan om verder te gaan en te zeggen, print def, 234 00:10:49,990 --> 00:10:54,090 je geplukt nul backslash n. 235 00:10:54,090 --> 00:10:56,830 Anders het geval zou natuurlijk, print def, 236 00:10:56,830 --> 00:10:58,620 u een negatief getal geplukt. 237 00:10:58,620 --> 00:11:00,970 >> En we kunnen zeker implementeren de logica van dit ding 238 00:11:00,970 --> 00:11:03,390 in een bos van verschillende manieren, maar het punt hier 239 00:11:03,390 --> 00:11:07,210 is dat syntactisch, nauwelijks iets is nieuw. 240 00:11:07,210 --> 00:11:09,830 Het is gewoon de dollarteken en een nieuwe functie en lees lijn. 241 00:11:09,830 --> 00:11:12,090 Maar fundamenteel, wat is er nieuw nu is dat ik het interpreteren dit. 242 00:11:12,090 --> 00:11:13,910 Ik ben het passeren als input een ander programma. 243 00:11:13,910 --> 00:11:16,620 Dus als ik wil dit, uitvoeren als Ik maakte geen fouten te maken, 244 00:11:16,620 --> 00:11:20,140 Ik ga PHP draaien, van voorwaarden 1 dot PHP, Enter, 245 00:11:20,140 --> 00:11:23,440 Ik ga om te typen in het nummer 50, en laten we aannemen voor nu werkt het. 246 00:11:23,440 --> 00:11:25,940 Omdat de logica is het dezelfde dingen als een week. 247 00:11:25,940 --> 00:11:28,020 >> Oké, dus dat is mooi underwhelming, toch? 248 00:11:28,020 --> 00:11:30,240 We kunnen dit doen in een aantal talen. 249 00:11:30,240 --> 00:11:33,200 Laten we iets doen manier krachtiger. 250 00:11:33,200 --> 00:11:35,610 Laten we eindigen probleem stellen vijf. 251 00:11:35,610 --> 00:11:37,370 Dus ik ga om verder te gaan en doen dit. 252 00:11:37,370 --> 00:11:42,920 Ik ga naar een bestand te maken riep woordenboek dot PHP, 253 00:11:42,920 --> 00:11:45,424 en zoals je misschien geneigd zijn klauteren omlaag veel notities, 254 00:11:45,424 --> 00:11:47,340 De Notes zullen alleen helpen u als jij mag 255 00:11:47,340 --> 00:11:48,923 voor de uitvoering van de problemen van de vijf in PHP. 256 00:11:48,923 --> 00:11:52,706 Maar we zullen zien hoe snel we nu kan dat hetzelfde probleem set uit te voeren. 257 00:11:52,706 --> 00:11:56,830 >> Dus in woordenboek dot PHP, ga ik aannemen dat er al 258 00:11:56,830 --> 00:11:58,514 een bestand in de wereld genaamd speller. 259 00:11:58,514 --> 00:12:01,430 En inderdaad, ik heb dit van tevoren, en we zullen niet lopen door deze lijn 260 00:12:01,430 --> 00:12:03,596 door de lijn, maar als je nieuwsgierig later en echt willen 261 00:12:03,596 --> 00:12:06,250 om je geest te wikkelen rond de verschillen tussen c en PHP, 262 00:12:06,250 --> 00:12:09,030 letterlijk vergelijken dit bestand, speller, vanaf vandaag de broncode 263 00:12:09,030 --> 00:12:11,190 dat we later zullen plaatsen vandaag, tegen p set 264 00:12:11,190 --> 00:12:15,309 vijf speller dot c dat wij u, en het is bijna dezelfde regel voor regel. 265 00:12:15,309 --> 00:12:16,600 Er is wat meer dollartekens. 266 00:12:16,600 --> 00:12:18,330 Een paar functies een beetje anders. 267 00:12:18,330 --> 00:12:20,038 Maar het is een leuke manier van de soort te zien hoe 268 00:12:20,038 --> 00:12:22,740 je de ene taal naar de andere te vertalen. 269 00:12:22,740 --> 00:12:24,812 En het is bijna identiek lijn voor lijn. 270 00:12:24,812 --> 00:12:27,770 Maar ik ga ervan uit dat dat bestaat, en wat ik ga doen hier 271 00:12:27,770 --> 00:12:31,310 is proberen op te blazen je Mind van herimplementeren 272 00:12:31,310 --> 00:12:36,210 het geheel van het probleem van de vijf wijze sneller dan je tot nu toe doen. 273 00:12:36,210 --> 00:12:39,330 Dus bijvoorbeeld, ik ga eerst verklaren een globale variabele genaamd grootte, 274 00:12:39,330 --> 00:12:40,444 en stel deze gelijk aan nul. 275 00:12:40,444 --> 00:12:41,610 Nu dat is niet veel besparingen. 276 00:12:41,610 --> 00:12:44,170 Odds je geïmplementeerd grootte vrijwel hetzelfde, 277 00:12:44,170 --> 00:12:48,440 of hint hint, zal vanavond of morgen, alleen met behulp van een globale variabele genaamd 278 00:12:48,440 --> 00:12:49,900 grootte en instellen van het gelijk zijn aan nul. 279 00:12:49,900 --> 00:12:52,660 Dat is niet een bijzonder verbazingwekkende spoiler. 280 00:12:52,660 --> 00:12:57,180 >> Ja, wat waren je datastructuren van keuze, die van u die hebben gedoken 281 00:12:57,180 --> 00:13:02,170 en lees de spec, wat datastructuren hebben de meeste van jullie hebben gebruikt? 282 00:13:02,170 --> 00:13:06,840 Een hash tabel of proberen, misschien sommige varianten daarvan. 283 00:13:06,840 --> 00:13:10,490 Zodat de uitvoering van een hash-tabel op zijn minst, is een soort van een heleboel regels code, 284 00:13:10,490 --> 00:13:10,990 toch? 285 00:13:10,990 --> 00:13:13,700 En niet allemaal kunnen zijn functioneel op dit punt in de week, 286 00:13:13,700 --> 00:13:14,366 maar dat is prima. 287 00:13:14,366 --> 00:13:19,300 Omdat in PHP, als ik wil een hash-tabel, gedaan. 288 00:13:19,300 --> 00:13:20,260 Rechts? 289 00:13:20,260 --> 00:13:22,610 Zodat variabele die ik heb slechts verklaard is uiteraard 290 00:13:22,610 --> 00:13:26,180 riep dollarteken tafel, per invoering daarvoor. 291 00:13:26,180 --> 00:13:28,902 >> Maar ik wil gewoon bij het einde van de dag, een array. 292 00:13:28,902 --> 00:13:31,610 Maar niet numeriek geïndexeerd array, want dat is net als twee weken 293 00:13:31,610 --> 00:13:33,440 spul, toen we spraken over arrays. 294 00:13:33,440 --> 00:13:34,850 Ik wil een hash tabel. 295 00:13:34,850 --> 00:13:38,070 Maar een hash-tabel is echt slechts een concrete manier om te zeggen, 296 00:13:38,070 --> 00:13:40,190 U wilt een associatieve array. 297 00:13:40,190 --> 00:13:43,270 U wilt in staat zijn om associëren toetsen met waarden. 298 00:13:43,270 --> 00:13:44,200 Toetsen met waarden. 299 00:13:44,200 --> 00:13:45,640 Wat is een woordenboek, echt? 300 00:13:45,640 --> 00:13:47,080 Nou, het is een hele sleutelbos. 301 00:13:47,080 --> 00:13:50,320 Woorden zoals appel, peer, en banaan, en al deze woorden Engels 302 00:13:50,320 --> 00:13:51,490 dat wij overhandigen u. 303 00:13:51,490 --> 00:13:54,820 >> En de waarden die je effectief bent invoegen in uw woordenboek 304 00:13:54,820 --> 00:13:57,790 zijn ofwel waar, of het ontbreken, vals. 305 00:13:57,790 --> 00:14:00,540 Met andere woorden je invoegt een hele hoop van de belangrijkste waarde paren, 306 00:14:00,540 --> 00:14:03,720 appel, waar, peer, waar, banaan, waar. 307 00:14:03,720 --> 00:14:07,446 Zodat wanneer je op te halen of te kijken up die gegevens in uw hash table 308 00:14:07,446 --> 00:14:10,070 met uw check-functie, je bent ofwel om terug een antwoord, 309 00:14:10,070 --> 00:14:13,260 ja, ik vond het in mijn complex hash tafel, of nee, het is er niet, 310 00:14:13,260 --> 00:14:14,540 dus je return false. 311 00:14:14,540 --> 00:14:19,440 >> Dus om dat te doen, alles wat ik nodig heb is de gegevens structuur zoals ik eerder voorgesteld. 312 00:14:19,440 --> 00:14:22,050 Ik moet in staat zijn woorden associëren 313 00:14:22,050 --> 00:14:25,570 achtige, citaat unquote, symbool, met een waarde zoals, ware. 314 00:14:25,570 --> 00:14:27,090 Dus daar is mijn hash tafel. 315 00:14:27,090 --> 00:14:28,180 Laten we daadwerkelijk gebruiken. 316 00:14:28,180 --> 00:14:30,310 Dus er is een paar functies Ik moet implementeren. 317 00:14:30,310 --> 00:14:33,300 Ik ga om te gaan en te bijten off een functie genaamd grootte. 318 00:14:33,300 --> 00:14:34,390 Het neemt geen argumenten. 319 00:14:34,390 --> 00:14:36,660 Ik heb geen moeite met het woord, leegte, in PHP. 320 00:14:36,660 --> 00:14:38,770 Ik ga gewoon naar terug te keren grootte. 321 00:14:38,770 --> 00:14:41,287 >> En als een terzijde, PHP heeft Dit minorly vervelend detail, 322 00:14:41,287 --> 00:14:44,620 waar als er iets globaal, moet je vertel de functie die u gebruikt 323 00:14:44,620 --> 00:14:46,220 het, hey, dit is een globale variabele. 324 00:14:46,220 --> 00:14:49,330 Dus, kleine domheid, maar u moet het toch doen. 325 00:14:49,330 --> 00:14:50,920 >> Dus hoe zit het met de belasting? 326 00:14:50,920 --> 00:14:52,990 Ik ga uit te voeren een functie genaamd load 327 00:14:52,990 --> 00:14:56,790 dat neemt in de naam van een woordenboek, net als in het probleem van de vijf. 328 00:14:56,790 --> 00:14:59,554 En voordat ik verder, opmerken dat ik niet 329 00:14:59,554 --> 00:15:00,970 is het typen helemaal dezelfde dingen. 330 00:15:00,970 --> 00:15:06,060 Wat is duidelijk verschillend in PHP over hoe je een functie versus C verklaren? 331 00:15:06,060 --> 00:15:06,616 Ja. 332 00:15:06,616 --> 00:15:07,490 PUBLIEK: [onverstaanbaar] 333 00:15:07,490 --> 00:15:08,573 SPEAKER 1: Geen terugkeer type. 334 00:15:08,573 --> 00:15:12,350 En inderdaad, dat is het geval, PHP voor zover het is losjes getypt, 335 00:15:12,350 --> 00:15:14,190 is ook een beetje slordig in die zin. 336 00:15:14,190 --> 00:15:17,680 Je niet opgeven als de programmeur Wat deze functie geeft. 337 00:15:17,680 --> 00:15:20,490 Je zou hebben om daadwerkelijk te kijken naar de code om dat uit. 338 00:15:20,490 --> 00:15:22,670 Of lees de commentaren of de documentatie. 339 00:15:22,670 --> 00:15:24,870 Dus plussen en minnen van dit soort beslissingen. 340 00:15:24,870 --> 00:15:26,750 Maar ik moet zeggen het sleutelwoord, de functie. 341 00:15:26,750 --> 00:15:28,360 En wanneer we leren JavaScript in een paar weken 342 00:15:28,360 --> 00:15:31,026 we gaan om hetzelfde te zien weer, maar het is hetzelfde idee. 343 00:15:31,026 --> 00:15:34,220 De naam van de functie, haar betoog of argumenten of het ontbreken daarvan, en nu 344 00:15:34,220 --> 00:15:35,630 Hier is de implementatie. 345 00:15:35,630 --> 00:15:38,860 >> Dus ik ga sommige bochten gewoon knippen te zijn dramatisch voor slechts een moment. 346 00:15:38,860 --> 00:15:40,485 Maar ik ga om te gaan en te zeggen dit. 347 00:15:40,485 --> 00:15:44,890 Dit is hoe ik kan laden Een bestand in een array. 348 00:15:44,890 --> 00:15:47,580 Er is een functie in PHP genaamd bestand. 349 00:15:47,580 --> 00:15:49,300 Je geef het de naam van een bestand. 350 00:15:49,300 --> 00:15:53,950 Het overhandigt je terug een array, binnen waarvan elke regel van het bestand. 351 00:15:53,950 --> 00:15:56,480 Nul, één, op maximaal n minus 1 lijnen. 352 00:15:56,480 --> 00:15:57,210 Dat is het, toch? 353 00:15:57,210 --> 00:15:57,990 Er is geen f lezen. 354 00:15:57,990 --> 00:15:58,826 Er is geen f get s. 355 00:15:58,826 --> 00:15:59,700 Er is geen procent s. 356 00:15:59,700 --> 00:16:00,420 Er is geen hoofdpijn. 357 00:16:00,420 --> 00:16:01,220 Er is geen feof. 358 00:16:01,220 --> 00:16:03,950 Al dat gedoe met die je hebt worstelen misschien, 359 00:16:03,950 --> 00:16:06,550 met p set vier en vijf, gaat weg. 360 00:16:06,550 --> 00:16:09,450 >> Dus ik lees net die lijnen in het bestand, en dan weet je wat? 361 00:16:09,450 --> 00:16:15,510 Als ik wil herhalen over die woorden, Ik kan doen, voor elke lijnen lijn. 362 00:16:15,510 --> 00:16:19,992 Vergeet niet dat dit soort van een slimme manier om itereren over een array, index 363 00:16:19,992 --> 00:16:25,090 per index, en elke iteratie calling de huidige regel, dollarteken lijn. 364 00:16:25,090 --> 00:16:31,560 En hier ga ik om te gaan en zeggen tafel, beugel, lijn, krijgt waar. 365 00:16:31,560 --> 00:16:35,880 >> Met andere woorden, dit is hoe I invoegen in mijn hash tafel in PHP. 366 00:16:35,880 --> 00:16:38,740 Ik zeg dollarteken tafel, die mijn associatieve array die was 367 00:16:38,740 --> 00:16:40,690 lege per de regel code boven. 368 00:16:40,690 --> 00:16:42,790 Vervolgens heb ik index erin niet met een getal, 369 00:16:42,790 --> 00:16:45,300 maar letterlijk met de trefwoord dat ik zorg over. 370 00:16:45,300 --> 00:16:47,730 Misschien is het appel of peer of banaan of wat dan ook, 371 00:16:47,730 --> 00:16:51,645 maar specifiek ik indexeren erin Zoals ik al eerder voorgesteld. 372 00:16:51,645 --> 00:16:53,770 Ik neem de naam van mijn associatieve array, en dan heb ik 373 00:16:53,770 --> 00:16:56,450 citaat unquote gebruiken in de vierkante haken met een koord, 374 00:16:56,450 --> 00:16:58,490 in plaats van een getal. 375 00:16:58,490 --> 00:17:00,250 >> En dat is het. 376 00:17:00,250 --> 00:17:01,720 De belasting functie wordt gedaan. 377 00:17:01,720 --> 00:17:05,119 Zodra dat lus herhaalt, heb ik alles in de hash tabel. 378 00:17:05,119 --> 00:17:07,810 Nu kleine disclaimer, is er een paar dingen die ik moet oplossen. 379 00:17:07,810 --> 00:17:10,030 En de versie die ik online plaatsen zullen de nuances, 380 00:17:10,030 --> 00:17:12,670 maar het is meestal gewoon gaan voor sommigen foutcontrole en enkele kleine tweaks. 381 00:17:12,670 --> 00:17:14,044 Maar dat is inderdaad de kern van het. 382 00:17:14,044 --> 00:17:16,750 Als ik wil nu te implementeren de functie genaamd 383 00:17:16,750 --> 00:17:19,869 kijk, dat een verwacht woord als argument, 384 00:17:19,869 --> 00:17:22,099 hoe zou ik over dat doen? 385 00:17:22,099 --> 00:17:30,020 Nou, ik ga gewoon naar zeggen, als binnenkant van mijn tafel, op de locatie woord, 386 00:17:30,020 --> 00:17:30,652 indien wordt vastgesteld. 387 00:17:30,652 --> 00:17:32,360 Dus als er is-- eigenlijk, weet je wat? 388 00:17:32,360 --> 00:17:34,830 Ik ga het doen een beetje pseudocode. 389 00:17:34,830 --> 00:17:36,020 Maar het idee is hetzelfde. 390 00:17:36,020 --> 00:17:41,640 Als dat waar is gelijk, return true. 391 00:17:41,640 --> 00:17:43,890 Prima. 392 00:17:43,890 --> 00:17:46,851 Else-- je soort van kan zien waar Dit is going-- aan return false. 393 00:17:46,851 --> 00:17:47,350 Gedaan. 394 00:17:47,350 --> 00:17:49,640 Controle wordt gedaan. 395 00:17:49,640 --> 00:17:50,940 >> Erg mooi, toch? 396 00:17:50,940 --> 00:17:52,560 En dus wat is dit echt steeds bij? 397 00:17:52,560 --> 00:17:53,680 En dit ook, sneed ik sommige bochten. 398 00:17:53,680 --> 00:17:56,020 Kijk naar de online versie voor alle van de lichte nuances. 399 00:17:56,020 --> 00:17:57,103 Maar dat is de kern van het. 400 00:17:57,103 --> 00:17:59,080 Index in uw associatieve array, alias 401 00:17:59,080 --> 00:18:02,910 Hash tabel, zien of er een waarde daar, als het is ingesteld op true, en zo ja, 402 00:18:02,910 --> 00:18:03,930 return true. 403 00:18:03,930 --> 00:18:05,819 Dus we hebben teruggebracht alle complexiteit. 404 00:18:05,819 --> 00:18:07,110 Dus soort geest waait, toch? 405 00:18:07,110 --> 00:18:09,680 Ik zal niet de moeite af te maken met lossen, want in fact-- oh, weet je wat? 406 00:18:09,680 --> 00:18:11,620 Ja, laten we eindigen met lossen. 407 00:18:11,620 --> 00:18:18,940 >> Lossen in een hash-tabel zou kunnen kijken achtige functie lossen, terug te keren. 408 00:18:18,940 --> 00:18:19,930 OK dus dat is ontladen. 409 00:18:19,930 --> 00:18:21,350 Omdat er niets om te lossen, toch? 410 00:18:21,350 --> 00:18:22,170 Er is geen malloc. 411 00:18:22,170 --> 00:18:24,280 Ik heb niet expliciet vragen aan de besturingssysteem voor alles. 412 00:18:24,280 --> 00:18:25,571 Ik ben net begonnen met behulp van variabelen. 413 00:18:25,571 --> 00:18:30,510 En dus ook dit is een manifestatie van kenmerken van hoger niveau talen. 414 00:18:30,510 --> 00:18:32,940 Nogmaals, de meeste van deze term we hebben hier te maken naar beneden 415 00:18:32,940 --> 00:18:34,280 met C. Super laag niveau. 416 00:18:34,280 --> 00:18:35,980 U kunt het geheugen van de computer te zien. 417 00:18:35,980 --> 00:18:38,440 Je kunt alles wat je aanraakt wil in het RAM van uw computer, 418 00:18:38,440 --> 00:18:39,440 in voor-en tegenspoed. 419 00:18:39,440 --> 00:18:41,760 >> Hier, we gaan op te geven die macht. 420 00:18:41,760 --> 00:18:44,730 Maar mijn god, kijk eens hoe veel minder code die ik schreef. 421 00:18:44,730 --> 00:18:47,660 In feite als ik niet praten en praten over mijn typen, 422 00:18:47,660 --> 00:18:50,190 zouden hebben gedaan dit voorbeeld vijf minuten geleden. 423 00:18:50,190 --> 00:18:52,150 Dus wat is de prijs die wordt betaald? 424 00:18:52,150 --> 00:18:54,100 Nou laten we eens een kijkje nemen. 425 00:18:54,100 --> 00:18:55,340 Laten we kijken. 426 00:18:55,340 --> 00:18:59,340 Ik ga om te gaan en uit te voeren CS50. 427 00:18:59,340 --> 00:19:02,160 Laat me eerst in voorbeelden van vandaag waar 428 00:19:02,160 --> 00:19:03,970 Ik heb de teksten directory als voorheen. 429 00:19:03,970 --> 00:19:08,520 Ik ga naar de oplossing lopen dat het komt met een probleem van de vijf zogenaamde 430 00:19:08,520 --> 00:19:11,190 speller, die in rekening CS50's. 431 00:19:11,190 --> 00:19:14,040 >> En ik ga om het uit te voeren op iets groot als de King James Bijbel, 432 00:19:14,040 --> 00:19:16,547 gewoon zo dat we echt zet de medewerkers oplossingen op de proef. 433 00:19:16,547 --> 00:19:19,130 Nu soms het internet is een beetje langzamer, een beetje sneller, 434 00:19:19,130 --> 00:19:20,338 kan een tijdje duren om te scrollen. 435 00:19:20,338 --> 00:19:23,730 Maar het duurde een totaal van 0,56 seconden om spellingcontrole de King James 436 00:19:23,730 --> 00:19:25,150 Bijbel met het personeel oplossing. 437 00:19:25,150 --> 00:19:25,620 Dus vrij goed. 438 00:19:25,620 --> 00:19:27,786 Jouwe zou veel trager, en dat is helemaal prima. 439 00:19:27,786 --> 00:19:30,090 Maar het is juist hier. 440 00:19:30,090 --> 00:19:32,440 Dus dat is het personeel oplossing. 441 00:19:32,440 --> 00:19:34,785 Als ik naar binnen en het schoonmaken van de PHP-versie. 442 00:19:34,785 --> 00:19:36,990 En ik ga een beetje te doen zoals baksel toont ding. 443 00:19:36,990 --> 00:19:39,720 We gaan de code die ik schreef nemen eerder, dus het is volkomen juist. 444 00:19:39,720 --> 00:19:42,678 Omdat de code die ik schreef is niet van plan volkomen juist te zijn, juist nu. 445 00:19:42,678 --> 00:19:47,310 Maar als ik de PHP-versie, wat moet ik op te geven vandaag? 446 00:19:47,310 --> 00:19:49,980 Kostte me vijf minuten implementeren p vijf, ik beweer. 447 00:19:49,980 --> 00:19:51,770 Welke prijs heb ik betaald? 448 00:19:51,770 --> 00:19:52,270 Ja. 449 00:19:52,270 --> 00:19:52,937 >> Publiek: Snelheid. 450 00:19:52,937 --> 00:19:53,645 SPEAKER 1: Speed. 451 00:19:53,645 --> 00:19:54,380 Wat bedoel je? 452 00:19:54,380 --> 00:19:55,230 >> Publiek: Het zal langer duren. 453 00:19:55,230 --> 00:19:55,660 >> SPEAKER 1: Oké. 454 00:19:55,660 --> 00:19:56,160 Laten we kijken. 455 00:19:56,160 --> 00:19:59,590 Het zal langer duren, niet te schrijven, maar om het te draaien. 456 00:19:59,590 --> 00:20:00,090 Ja. 457 00:20:00,090 --> 00:20:00,960 Dus laten we proberen dit. 458 00:20:00,960 --> 00:20:05,720 Dus hier ga ik om verder te gaan en te doen PHP van de speller, en omdat het bestand 459 00:20:05,720 --> 00:20:06,360 genaamd speller. 460 00:20:06,360 --> 00:20:07,580 Dus ik ben niet het uitvoeren van de woordenboek, recall, 461 00:20:07,580 --> 00:20:09,204 Ik gebruik het programma genaamd speller. 462 00:20:09,204 --> 00:20:12,450 Ik ga nu in dezelfde bestand, King James de vijfde. 463 00:20:12,450 --> 00:20:14,377 Het vliegen door. 464 00:20:14,377 --> 00:20:17,210 Dit kon gewoon internet snelheid, dus niet te veel in de tekst. 465 00:20:17,210 --> 00:20:21,680 Maar het voelt langer zeker. 466 00:20:21,680 --> 00:20:23,280 1.26 seconden. 467 00:20:23,280 --> 00:20:25,150 >> Nu is dat nog steeds vrij verdomd snel, toch? 468 00:20:25,150 --> 00:20:28,140 En de enige reden dat voelde als meer zoals drie of vier of vijf 469 00:20:28,140 --> 00:20:30,515 seconden, dat is gewoon omdat internet was traag. 470 00:20:30,515 --> 00:20:33,980 De computer tijd was 1,26 seconden, versus ik denk 0,56. 471 00:20:33,980 --> 00:20:35,880 Dus meer dan twee keer zo langzaam. 472 00:20:35,880 --> 00:20:39,170 Nu is dat nog steeds pretty darn snel, maar het is een manifestatie 473 00:20:39,170 --> 00:20:40,860 van, inderdaad, dat de exacte prijs. 474 00:20:40,860 --> 00:20:43,460 >> Omdat we interpreteren in de code lijn per lijn, 475 00:20:43,460 --> 00:20:46,740 en dat programma PHP is het lezen van mijn code van boven naar beneden, van links naar rechts, 476 00:20:46,740 --> 00:20:47,940 het moet meer denken te doen. 477 00:20:47,940 --> 00:20:50,430 Het moet soort zetten het binnen zichzelf 478 00:20:50,430 --> 00:20:53,464 de overeenkomstige machine code op de vlieg, om zo te zeggen, 479 00:20:53,464 --> 00:20:55,380 hoewel de mechanismen zijn een beetje anders. 480 00:20:55,380 --> 00:20:59,430 In plaats van alleen het voeden Intel CPU de ruwe nullen en enen 481 00:20:59,430 --> 00:21:00,930 dat het begrijpt native. 482 00:21:00,930 --> 00:21:04,110 >> Dus absoluut, handen naar beneden, hebben we een prijs betaald. 483 00:21:04,110 --> 00:21:09,120 En code geschreven in een taal zoals PHP heeft de neiging langzamer te zijn. 484 00:21:09,120 --> 00:21:10,050 Maar mijn god. 485 00:21:10,050 --> 00:21:12,740 Dus als ik nu mijn spellingcontrole bestand, breng ik een extra 0,7 486 00:21:12,740 --> 00:21:17,280 of zo seconden versus 20 uur uit te voeren een snellere spellingcontrole, toch? 487 00:21:17,280 --> 00:21:18,397 Het is een soort van een afweging. 488 00:21:18,397 --> 00:21:20,980 En als je net begint p set van vijf, misschien niet 20 uur. 489 00:21:20,980 --> 00:21:22,188 Misschien veel minder dan dat. 490 00:21:22,188 --> 00:21:23,600 Maar het is een afweging, voor echt. 491 00:21:23,600 --> 00:21:27,820 En als je draait code op echt grote datasets, of zelfs op oudere hardware, 492 00:21:27,820 --> 00:21:32,650 dat soort verschillen kan zeker oplopen. 493 00:21:32,650 --> 00:21:34,880 >> Voor vragen tot nu toe? 494 00:21:34,880 --> 00:21:35,617 Ja. 495 00:21:35,617 --> 00:21:36,492 >> PUBLIEK: [onverstaanbaar] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 SPEAKER 1: Sorry, kan je zegt het eens te meer? 498 00:21:39,978 --> 00:21:40,853 PUBLIEK: [onverstaanbaar] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 SPEAKER 1: Je geeft up tijd. 501 00:21:44,700 --> 00:21:45,283 Nou, dus ja. 502 00:21:45,283 --> 00:21:47,322 U bespaart tijd door niet hebben om het te compileren, 503 00:21:47,322 --> 00:21:48,530 als dat is wat je vraagt. 504 00:21:48,530 --> 00:21:50,710 En inderdaad, in CS50, de meeste van de programma's, 505 00:21:50,710 --> 00:21:53,668 hoewel ze een tijdje kan duren om te schrijven, ze zijn relatief kort. 506 00:21:53,668 --> 00:21:56,860 Enkele tientallen, enkele honderden regels code, en zo samen te stellen dat ze vrij snel. 507 00:21:56,860 --> 00:21:58,470 Maar wanneer je begint het schrijven van grotere programma's, 508 00:21:58,470 --> 00:22:01,511 alsof je Microsoft bent of je bent Google en het schrijven van echt grote programma's 509 00:22:01,511 --> 00:22:05,360 in C of C ++, of soortgelijke gecompileerd talen, kunnen vele seconden duren, 510 00:22:05,360 --> 00:22:08,577 of zelfs minuten of langer compileren miljoenen regels code. 511 00:22:08,577 --> 00:22:10,660 En ook daar, dat verschil gaat om toe te voegen. 512 00:22:10,660 --> 00:22:12,840 >> En in feite, zodra we transitie vandaag, dezelfde dag 513 00:22:12,840 --> 00:22:15,910 vandaag, web programmering met behulp van PHP, je bent 514 00:22:15,910 --> 00:22:18,460 gaan om het te vinden net zo veel aangenamer om code te schrijven 515 00:22:18,460 --> 00:22:21,501 als je niet hoeft te doen die stomme stappen, zoals wijziging in uw terminal 516 00:22:21,501 --> 00:22:24,202 venster, het type make hello, re draaien, opnieuw het venster. 517 00:22:24,202 --> 00:22:25,910 Net zo veel domme mechanische stappen 518 00:22:25,910 --> 00:22:28,480 gewoon krijgen in de manier van doen het interessant, het plezier werk. 519 00:22:28,480 --> 00:22:31,450 En inderdaad gooien we die weg met PHP. 520 00:22:31,450 --> 00:22:34,960 En we kunnen communiceren daarmee sneller. 521 00:22:34,960 --> 00:22:35,495 Ja. 522 00:22:35,495 --> 00:22:36,370 PUBLIEK: [onverstaanbaar] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 SPEAKER 1: Zeker. 525 00:22:40,960 --> 00:22:42,876 Kan ik duidelijk maken wat het middelen worden uitgelegd? 526 00:22:42,876 --> 00:22:45,870 Wanneer u een taal te compileren zoals C, het gaat omlaag 527 00:22:45,870 --> 00:22:48,140 zoals we al zeiden de machine code, nullen en enen. 528 00:22:48,140 --> 00:22:51,860 En Intel besloot jaren geleden dat bepaalde patronen van enen en nullen 529 00:22:51,860 --> 00:22:56,220 Bovendien vertegenwoordigen of aftrekken, of afdrukken, of andere elementaire operaties. 530 00:22:56,220 --> 00:23:00,250 In de wereld van een geïnterpreteerde taal zoals PHP of JavaScript, of Python, 531 00:23:00,250 --> 00:23:03,120 of Ruby, of trossen anderen, in plaats van iemand 532 00:23:03,120 --> 00:23:05,120 heeft geschreven een interpreter-- in casu 533 00:23:05,120 --> 00:23:09,770 het is ook heet PHP, identiek aan de Naam van de language-- die in wezen 534 00:23:09,770 --> 00:23:13,840 heeft een grote lus in dat herhaalt over alle van de lijnen van de code 535 00:23:13,840 --> 00:23:18,170 dat ik voer het als input, zoals hello dot PHP of woordenboek dot PHP. 536 00:23:18,170 --> 00:23:21,760 >> En dan kun je denken aan hun grote lus als met veel condities. 537 00:23:21,760 --> 00:23:26,340 En daarop zeggen, als de mens is het sleutelwoord voor geschreven, 538 00:23:26,340 --> 00:23:28,470 beginnen met het doen van zijn of haar code opnieuw en opnieuw. 539 00:23:28,470 --> 00:23:31,360 Of als de mens heeft geschreven de lijn van de code, 540 00:23:31,360 --> 00:23:34,880 indien, maar voeren hun volgende regel voorwaardelijk. 541 00:23:34,880 --> 00:23:37,740 Dus het is echt zoals het interpreteren het in een menselijke betekenis, lijn 542 00:23:37,740 --> 00:23:39,660 door lijn, en die net kost tijd. 543 00:23:39,660 --> 00:23:41,340 Het duurt overhead. 544 00:23:41,340 --> 00:23:44,189 En dus dat is een prijs-- goede question-- we betalen. 545 00:23:44,189 --> 00:23:46,480 Dus laten we een andere demo dat is een beetje meer dramatisch. 546 00:23:46,480 --> 00:23:51,160 Er is, zou ik zeggen, een marge dit op een 90% kans van falende afschuwelijk, 547 00:23:51,160 --> 00:23:53,869 maar u zult versteld staan met 10% waarschijnlijkheid. 548 00:23:53,869 --> 00:23:55,660 Dus we elk jaar proberen om dit te doen, waarbij we 549 00:23:55,660 --> 00:23:59,061 probeer om een ​​programma dat doorloopt schrijven probleem set nul, waarvoor je hebt 550 00:23:59,061 --> 00:24:02,060 ingediend uw telefoonnummers en een Veel andere demografische gegevens, 551 00:24:02,060 --> 00:24:06,030 en we programmatisch stuur je een SMS-bericht. 552 00:24:06,030 --> 00:24:08,540 En dan iedereen telefoon begint te piepen of trillen, 553 00:24:08,540 --> 00:24:11,460 en het is gewoon geweldig, omdat goed, kijken naar wat computers kunnen doen. 554 00:24:11,460 --> 00:24:13,840 >> Dit werkt zelden correct schijnt, grotendeels 555 00:24:13,840 --> 00:24:16,800 omdat ik meestal krijgen de zwarte lijst door Gmail of een andere dienst 556 00:24:16,800 --> 00:24:19,630 voor het daadwerkelijk proberen om dit te doen op schaal. 557 00:24:19,630 --> 00:24:24,940 Maar grappige is ook, omdat we hoeft niet iedereen hier vandaag, 558 00:24:24,940 --> 00:24:27,690 fun feite de laatste keer dat we probeerde deze twee jaar geleden, 559 00:24:27,690 --> 00:24:30,870 Ik denk dat ik schreef een programma die zat in een lus iteratie 560 00:24:30,870 --> 00:24:34,040 over alle leerlingen in de klas, en elk van hen een tekstbericht, 561 00:24:34,040 --> 00:24:37,534 en het zei iets als, Waarom ben je niet in het college? 562 00:24:37,534 --> 00:24:39,170 Liefde, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Je hebt geen idee hoeveel verontschuldigend en een soort van pijnlijke emails 564 00:24:42,580 --> 00:24:46,970 Ik reactie van de ontvangen n minus 100 mensen die hier niet waren 565 00:24:46,970 --> 00:24:47,960 die dag. 566 00:24:47,960 --> 00:24:52,116 En nog grappiger, meer beschamend story-- je weet wel, laten we het daar. 567 00:24:52,116 --> 00:24:53,740 Het is al op video een paar jaar terug. 568 00:24:53,740 --> 00:24:56,810 Dus je zult me ​​snel zien schrijf een lus, waarbij 569 00:24:56,810 --> 00:25:00,640 het is heel gemakkelijk om een ​​bug in dat schrijven lus, zodanig dat de eerste 570 00:25:00,640 --> 00:25:02,800 door de lus, u stuur een SMS-bericht. 571 00:25:02,800 --> 00:25:06,190 >> De tweede keer door de lus I moet nog een SMS-bericht hebben gestuurd, 572 00:25:06,190 --> 00:25:08,250 en dan nog een tekst bericht, en nog een. 573 00:25:08,250 --> 00:25:11,490 Maar het blijkt dat als je een typefout maken bij het programmeren, je soms 574 00:25:11,490 --> 00:25:14,460 kunnen programma's die een te sturen schrijven SMS-bericht, dan twee sms-berichten, 575 00:25:14,460 --> 00:25:18,742 dan drie sms-berichten voor iedereen die een tekstbericht al heeft ontvangen. 576 00:25:18,742 --> 00:25:21,450 En zoals u weet, iets te doen, plus iets, plus iets, 577 00:25:21,450 --> 00:25:25,910 plus iets, is groot O van een heleboel tekstberichten, of n kwadraat, 578 00:25:25,910 --> 00:25:29,830 of $ 0,10 per sms-bericht, $ 20.000. 579 00:25:29,830 --> 00:25:33,700 >> Gelukkig raakte ik de Control-C voor die gebeurd, maar ik heb te danken ten minste één 580 00:25:33,700 --> 00:25:37,550 van voorgangers $ 20 voor het 200 aantal vreemde tekstberichten die, 581 00:25:37,550 --> 00:25:40,450 Niet alleen ging naar zijn telefoon, maar Ook het was als een oudere clamshell telefoon 582 00:25:40,450 --> 00:25:43,520 dus graag geduwd uit zijn geheugen elke andere persoonlijke tekst 583 00:25:43,520 --> 00:25:45,930 boodschap die hij had eigenlijk gekregen. 584 00:25:45,930 --> 00:25:49,250 Dus we hebben een doel vandaag, niet om dat te doen. 585 00:25:49,250 --> 00:25:50,620 Misschien schakelen vliegtuig-modus. 586 00:25:50,620 --> 00:25:51,120 Prima. 587 00:25:51,120 --> 00:25:56,590 Dus laten we gaan in een programma hier callled-- 588 00:25:56,590 --> 00:25:59,060 dat ik de tekst zal roepen dot PHP. 589 00:25:59,060 --> 00:26:01,074 En van tevoren, ik heb twee bestanden heb hier. 590 00:26:01,074 --> 00:26:06,030 Ik een bestand voor slechts personeel gemaakt, dat heeft al het personeel informatie, alle namen 591 00:26:06,030 --> 00:26:07,260 van de website van de cursus. 592 00:26:07,260 --> 00:26:09,756 En dan nu ik zojuist aantal nep nummers 555-1212. 593 00:26:09,756 --> 00:26:11,380 Dus deze zou eigenlijk niet overal naartoe te gaan. 594 00:26:11,380 --> 00:26:15,140 Maar let op de binnenkant van deze CSV-bestand, die hebben we gesproken over kort voordat 595 00:26:15,140 --> 00:26:16,540 in het kader van bestand IO. 596 00:26:16,540 --> 00:26:18,730 >> Wat is een CSV-bestand? 597 00:26:18,730 --> 00:26:19,970 Komma's gescheiden variabelen. 598 00:26:19,970 --> 00:26:24,400 En dit is net zoiets als een zeer lichtgewicht database als je wil. 599 00:26:24,400 --> 00:26:28,650 Er is een soort van een soort van vier kolommen in dit bestand, en er gekarteld, 600 00:26:28,650 --> 00:26:32,400 maar de komma in wezen kolommen in het bestand vertegenwoordigen. 601 00:26:32,400 --> 00:26:35,400 De eerste kolom is de TF of de naam van CA's. 602 00:26:35,400 --> 00:26:37,800 Tweede kolom is hun achternaam. 603 00:26:37,800 --> 00:26:39,820 Derde kolom is hun telefoonnummer. 604 00:26:39,820 --> 00:26:44,760 En vierde kolom blijkbaar is-- vierde kolom is blijkbaar wat? 605 00:26:44,760 --> 00:26:45,870 OK, dus het is hun carrier. 606 00:26:45,870 --> 00:26:47,180 Dus Verizon of Sprint, of wat niet. 607 00:26:47,180 --> 00:26:48,620 En als ik al eerder versprak, CSV. 608 00:26:48,620 --> 00:26:51,800 Komma's gescheiden waarden CSV hier. 609 00:26:51,800 --> 00:26:54,260 >> Dus wat kan ik doen met dit? 610 00:26:54,260 --> 00:26:56,940 Nou, dit is gewoon een grote tekstbestand en het is nogal lang, toch? 611 00:26:56,940 --> 00:26:58,690 Als dit gaat zijn soort vervelend. 612 00:26:58,690 --> 00:27:03,510 En het blijkt wel dat als ik wil een SMS-bericht naar, laten we sturen 613 00:27:03,510 --> 00:27:05,180 zegt Alex hier. 614 00:27:05,180 --> 00:27:09,690 Laat me gaan in mijn browser en verlaat de full screen mode 615 00:27:09,690 --> 00:27:11,660 gewoon zo kan ik heen en weer te schakelen. 616 00:27:11,660 --> 00:27:20,280 Het blijkt, laten we eens kijken, als ik ga in hier en inloggen op Gmail, oké. 617 00:27:20,280 --> 00:27:22,950 Kijk niet naar dit deel. 618 00:27:22,950 --> 00:27:23,880 Alleen krijg ik te zien. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 natuurlijk de livestream kan nog steeds zien wat ik doe. 621 00:27:28,800 --> 00:27:29,360 Prima. 622 00:27:29,360 --> 00:27:31,850 >> Dus hier is gewoon met Gmail Rekening John Harvard. 623 00:27:31,850 --> 00:27:34,000 Dus als ik wil een te sturen SMS-bericht naar Alex, 624 00:27:34,000 --> 00:27:35,530 Ik kan natuurlijk samenstellen van een bericht. 625 00:27:35,530 --> 00:27:38,410 En het blijkt, en ik heb getest met Alex voordat ik hier, 626 00:27:38,410 --> 00:27:42,260 dus je kunt een bepaald domein toevoegen naam om mensen telefoonnummers, 627 00:27:42,260 --> 00:27:45,850 want er bestaat in de wereld dingen geroepen SMS naar e-mail gateways. 628 00:27:45,850 --> 00:27:50,000 Dat is een mooie manier om alles te zeggen van ons die mobiele telefoons die 629 00:27:50,000 --> 00:27:53,200 hebben telefoonnummers, natuurlijk er waarschijnlijk voor uw provider, 630 00:27:53,200 --> 00:27:56,840 een bepaald achtervoegsel zoals bij Vtext.com voor Verizon tekstbericht 631 00:27:56,840 --> 00:28:00,320 dot com, die u kunt toevoegen aan uw eigen persoonlijk telefoonnummer en vervolgens 632 00:28:00,320 --> 00:28:03,540 u of vrienden, of je ouders kan tekst die u op dat adres. 633 00:28:03,540 --> 00:28:07,380 >> En Verizon heeft een server, een e-mail server, dat bij het ontvangen van deze e-mail, 634 00:28:07,380 --> 00:28:11,180 kijkt naar het numerieke gedeelte en dan gebruikt wat speciale magie industrie 635 00:28:11,180 --> 00:28:14,540 ze hebben om daadwerkelijk te sturen over de ether op uw specifieke cel 636 00:28:14,540 --> 00:28:15,040 telefoon. 637 00:28:15,040 --> 00:28:18,030 Nu is dit leuk omdat ik niet echt weet hoe je een SMS-bericht 638 00:28:18,030 --> 00:28:20,460 of code nog schrijven voor mijn mobiele telefoon, 639 00:28:20,460 --> 00:28:23,580 en je zou precies dat te doen voor een afstudeerproject, maar voor nu alle 640 00:28:23,580 --> 00:28:24,770 Ik heb mijn laptop hier. 641 00:28:24,770 --> 00:28:29,830 Dus ik wil herhalen over die CSV bestand, lijn, regel, regel, regel, 642 00:28:29,830 --> 00:28:35,160 grijpen elk van de telefoonnummers van het personeel, en hun vervoerder en programmatisch, 643 00:28:35,160 --> 00:28:39,770 samenvoegen, dat wil zeggen, sluit u de telefoon nummer met de juiste domeinnaam 644 00:28:39,770 --> 00:28:40,820 en stuur dan een e-mail. 645 00:28:40,820 --> 00:28:41,940 >> Dus dat is een veel trappen. 646 00:28:41,940 --> 00:28:45,530 En veel geluk om dat te doen in C. Het is een nachtmerrie van een situatie 647 00:28:45,530 --> 00:28:48,350 om een ​​bestand te openen, om het te lezen lijn per lijn door lijn, zoals u 648 00:28:48,350 --> 00:28:51,100 zien, of kan snel zien met Probleemverzameling vijf, zoniet 649 00:28:51,100 --> 00:28:53,560 probleem set vier, en dan dynamisch samenvoegen 650 00:28:53,560 --> 00:28:57,020 twee koorden elkaar, want in C, twee strings te nemen en ze te combineren, 651 00:28:57,020 --> 00:29:00,900 wat je doet minimaal moet waarschijnlijk doen? 652 00:29:00,900 --> 00:29:03,020 Je nodig hebt om meer geheugen te verklaren, toch? 653 00:29:03,020 --> 00:29:04,710 En vraag, malloc, kan ik meer geheugen? 654 00:29:04,710 --> 00:29:07,060 Dus ik kan de helft van deze zet Hier helft van dit hier. 655 00:29:07,060 --> 00:29:08,150 Het is gewoon zo veel stappen. 656 00:29:08,150 --> 00:29:10,310 En op dat moment je hebt verloren belangstelling voor de domme kleine demo 657 00:29:10,310 --> 00:29:11,851 waar je te maken ieders telefoon pieptoon. 658 00:29:11,851 --> 00:29:14,590 Laten we dit soort PHP stijl, waarbij we net 659 00:29:14,590 --> 00:29:16,210 beginnen met meer van dat aanrecht. 660 00:29:16,210 --> 00:29:18,050 >> En de ideeën zijn wezen hetzelfde, 661 00:29:18,050 --> 00:29:20,710 maar we hebben niet te maken veel over dat lagere niveau. 662 00:29:20,710 --> 00:29:22,950 Dus laten we zien hoe ik zou gaan over dit te doen. 663 00:29:22,950 --> 00:29:26,664 En gewoon zo dat ik niet herhaal fouten uit het verleden, 664 00:29:26,664 --> 00:29:28,330 Ik heb wat aantekeningen voor mezelf hier. 665 00:29:28,330 --> 00:29:31,070 En laten we eens kijken of ik ons ​​kan lopen door enkele van de fundamentele stappen, 666 00:29:31,070 --> 00:29:33,861 en dan omwille van de tijd van we zullen misschien gesneden sommige bochten op het einde. 667 00:29:33,861 --> 00:29:38,007 Ik ga om te gaan en te doen openen beugel PHP om dit bestand te starten. 668 00:29:38,007 --> 00:29:39,590 En ik ga om verder te gaan en dit te doen. 669 00:29:39,590 --> 00:29:41,490 File handvat, zoals u zult snel te zien, eigenlijk 670 00:29:41,490 --> 00:29:44,790 noemt een functie genaamd f geopend. 671 00:29:44,790 --> 00:29:46,280 En onthoud dit opent een bestand. 672 00:29:46,280 --> 00:29:48,800 En het citaat, unquote, r betekent wat, weer? 673 00:29:48,800 --> 00:29:49,800 Openen voor lezen. 674 00:29:49,800 --> 00:29:51,210 Nu in p set voor, u dit deed. 675 00:29:51,210 --> 00:29:54,500 En handvat kan van alles zijn, fu, bar, bas, een variabele naam. 676 00:29:54,500 --> 00:29:57,470 Maar over het algemeen een computer wetenschapper zou een open bestand noemen, 677 00:29:57,470 --> 00:30:00,962 waardoor u een file handle, houvast bij wijze van spreken. 678 00:30:00,962 --> 00:30:02,670 Ik ga gewoon doen sommige foutcontrole. 679 00:30:02,670 --> 00:30:07,260 Dus als het handvat is vals, net als in C, ga ik iets doen als: 680 00:30:07,260 --> 00:30:09,545 Kan bestand niet openen, backslash n. 681 00:30:09,545 --> 00:30:11,420 En dan ga ik gewoon om vooruit te gaan en af ​​te sluiten. 682 00:30:11,420 --> 00:30:14,340 En het blijkt, in PHP, Ik ben niet in een functie. 683 00:30:14,340 --> 00:30:16,160 Er is geen belangrijkste functie hier. 684 00:30:16,160 --> 00:30:17,450 Dus ik niet terug, per se. 685 00:30:17,450 --> 00:30:18,120 Ik verlaten. 686 00:30:18,120 --> 00:30:19,619 Die in wezen hetzelfde. 687 00:30:19,619 --> 00:30:22,510 En ik ben verlaten met één jaar waarschijnlijk. 688 00:30:22,510 --> 00:30:24,220 Eén betekent gewoon een fout van een soort. 689 00:30:24,220 --> 00:30:25,580 Het is niet nul, dus het is een fout. 690 00:30:25,580 --> 00:30:30,220 >> Oké, dus als ik ben hier beneden nu in mijn programma dat ik het bestand hebt geopend. 691 00:30:30,220 --> 00:30:34,250 Ik ga om te gaan en te verklaren een array genaamd adressen, 692 00:30:34,250 --> 00:30:38,610 en in C ik zou hebben om het te weten grootte van de matrix van tevoren, toch? 693 00:30:38,610 --> 00:30:41,910 Of ik nodig zou hebben om dit te verklaren is een pointer, en dan malloc. 694 00:30:41,910 --> 00:30:44,720 En dan elke keer als ik lees via een andere rij in het bestand, 695 00:30:44,720 --> 00:30:46,620 Ik ga nodig hebben om malloc meer geheugen, malloc meer geheugen. 696 00:30:46,620 --> 00:30:47,703 Dat is een pijn in de nek. 697 00:30:47,703 --> 00:30:50,950 En gelukkig, PHP en Ruby, en Python en JavaScript, zij 698 00:30:50,950 --> 00:30:53,880 zal uw arrays groeien automatisch voor u. 699 00:30:53,880 --> 00:30:54,830 Geen malloc. 700 00:30:54,830 --> 00:30:56,227 Geen memory management. 701 00:30:56,227 --> 00:30:57,560 De computer zorgt dat. 702 00:30:57,560 --> 00:31:00,330 Maar de prijs die je betaalt. 703 00:31:00,330 --> 00:31:01,350 Het is een beetje langzamer. 704 00:31:01,350 --> 00:31:03,190 En voor een programma als dit we gaan niet op te merken. 705 00:31:03,190 --> 00:31:04,720 We gaan 100 tekstberichten te verzenden. 706 00:31:04,720 --> 00:31:06,136 Bijvoorbeeld niet van plan om het te voelen. 707 00:31:06,136 --> 00:31:08,430 IT eigenlijk alleen begint te uit de taal van uw keuze 708 00:31:08,430 --> 00:31:11,490 wanneer uw gegevens of uw programma's krijgt echt, echt omvangrijke, 709 00:31:11,490 --> 00:31:14,120 zoals het geval zal meer zijn met onze web-based spul. 710 00:31:14,120 --> 00:31:15,450 >> Maar voor nu laten we streven naar vooruitgang. 711 00:31:15,450 --> 00:31:20,120 Hoewel het blijkt dat er een functie in C genaamd vh CSV. 712 00:31:20,120 --> 00:31:24,570 CSV bestand te krijgen, dat kost bestandsingang als argument, 713 00:31:24,570 --> 00:31:28,810 en het gaat dan, rij door rij voor rij, te lezen in een rij. 714 00:31:28,810 --> 00:31:30,964 Dus het is alleen leest een lijn tekst uit het bestand. 715 00:31:30,964 --> 00:31:34,130 Maar wat is leuk over deze functie het is niet alleen maar geef me een regel tekst. 716 00:31:34,130 --> 00:31:37,320 Het ziet er voor die komma's en analyseert de lijn. 717 00:31:37,320 --> 00:31:41,740 En om de lijn te ontleden middelen op te splitsen Op bepaalde waarden in deze context. 718 00:31:41,740 --> 00:31:45,510 >> Met andere woorden, dollarteken rij is een variabele die is 719 00:31:45,510 --> 00:31:47,010 gaat me een hoop indexen geven. 720 00:31:47,010 --> 00:31:49,635 Dit gaat het worden eerste kolom in mijn CSV. 721 00:31:49,635 --> 00:31:52,510 Dit gaat de seconde kolom, dit gaat om de derde te zijn, 722 00:31:52,510 --> 00:31:53,968 en dit gaat het vierde worden. 723 00:31:53,968 --> 00:31:57,440 Omdat recall, en Excel het niet werken de laatste keer dat we dit deden, 724 00:31:57,440 --> 00:32:03,350 maar als ik downloaden personeel dot CSV. 725 00:32:03,350 --> 00:32:04,940 Whoops, niet hernoemen. 726 00:32:04,940 --> 00:32:09,120 Als ik downloaden personeel dot CSV, en probeer te openen, 727 00:32:09,120 --> 00:32:12,510 Ik heb al registered-- oh ik niet bijgewerkt Excel sinds de laatste keer. 728 00:32:12,510 --> 00:32:15,880 Je zult zien dat het personeel dot CSV, ik heb vier kolommen. 729 00:32:15,880 --> 00:32:18,720 Dus toen ik las in de eerste rij voor Abby hier 730 00:32:18,720 --> 00:32:23,582 dollarteken rij 0 is Abby, dollarteken rij één is Lyons, 731 00:32:23,582 --> 00:32:27,740 dollarteken rij twee is haar nummer, en dan vervoerder haar telefoon. 732 00:32:27,740 --> 00:32:28,410 >> Dus dat is alles. 733 00:32:28,410 --> 00:32:30,740 En dat is mooi, want ik niet moet nu uitzoeken 734 00:32:30,740 --> 00:32:32,800 waar al die komma's eigenlijk zijn. 735 00:32:32,800 --> 00:32:35,300 Dus ik ga om verder te gaan en Dit doen, gezien het feit dat de definitie, 736 00:32:35,300 --> 00:32:38,960 Ik ga om te zeggen dat haar naam is in rij beugel nul, zoals beloofd. 737 00:32:38,960 --> 00:32:41,150 En ik ga grab-- en eigenlijk, weet je wat? 738 00:32:41,150 --> 00:32:42,780 Ik ben niet van plan te maken over haar naam, in dit geval. 739 00:32:42,780 --> 00:32:43,988 Ik ga het eenvoudiger te houden. 740 00:32:43,988 --> 00:32:48,610 Ik ga doen haar nummer is in rij beugel twee, denk ik. 741 00:32:48,610 --> 00:32:50,510 En haar carrier was, waar? 742 00:32:50,510 --> 00:32:53,405 Rij van drie, een over. 743 00:32:53,405 --> 00:32:54,280 Dus niets nieuws. 744 00:32:54,280 --> 00:32:56,770 Het is gewoon nul indexeren in een array. 745 00:32:56,770 --> 00:32:58,760 >> En nu ga ik het volgende doen. 746 00:32:58,760 --> 00:33:03,930 Indien de vervoerder is gelijk aan evenaart AT & T-- Ik ga gewoon naar een loop-- hebben 747 00:33:03,930 --> 00:33:06,790 Ik wil graag een email te creëren mailadres dat ziet er als volgt. 748 00:33:06,790 --> 00:33:12,320 Het gaat worden 617-555-1212 op, wat is het, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 is wat ik wil doen. 750 00:33:13,490 --> 00:33:15,260 Dus hoe kan ik dit doen? 751 00:33:15,260 --> 00:33:16,730 Ik ga naar het volgende doen. 752 00:33:16,730 --> 00:33:22,460 Haar adres zal haar nummer te zijn, en nu, laat me gaan en doen dit. 753 00:33:22,460 --> 00:33:23,760 Dit is een funky syntax. 754 00:33:23,760 --> 00:33:27,250 Ik kon het percentage s lukken, maar ik kan eigenlijk alleen maar doen. 755 00:33:27,250 --> 00:33:29,900 >> Dus dit is een PHP ding, maar laten we eens kijken wat ik doe. 756 00:33:29,900 --> 00:33:31,630 Dollars ondertekenen adres op links, maar een variabele. 757 00:33:31,630 --> 00:33:32,300 Geef me een variabele. 758 00:33:32,300 --> 00:33:33,390 Ik heb niet om het type te specificeren. 759 00:33:33,390 --> 00:33:34,570 PHP zal het uitzoeken. 760 00:33:34,570 --> 00:33:36,580 Aan de rechterkant, wat is het type data 761 00:33:36,580 --> 00:33:38,399 van dat hele ding op rechts? 762 00:33:38,399 --> 00:33:40,190 Ziet eruit als een string, omdat er dubbele 763 00:33:40,190 --> 00:33:42,280 citeert uiterst links en uiterst rechts. 764 00:33:42,280 --> 00:33:44,210 Nu is er een aantal funky nieuwe syntaxis hier. 765 00:33:44,210 --> 00:33:47,550 Er is de accolades, en de dollar teken nummer. 766 00:33:47,550 --> 00:33:52,860 Maar neem een ​​raden wat is dat syntaxis waarschijnlijk vertellen PHP te doen voor mij? 767 00:33:52,860 --> 00:33:53,360 Ja. 768 00:33:53,360 --> 00:33:54,630 Steek gewoon de waarde daar. 769 00:33:54,630 --> 00:33:55,530 Dus geen procent s. 770 00:33:55,530 --> 00:33:58,160 We kunnen printen f of s gebruiken afdruk f of iets dergelijks, 771 00:33:58,160 --> 00:34:00,070 maar PHP en een heleboel hoger niveau talen, 772 00:34:00,070 --> 00:34:03,070 zul je zien dat je kon hetzelfde doen functioneel, misschien 773 00:34:03,070 --> 00:34:04,019 zes verschillende manieren. 774 00:34:04,019 --> 00:34:06,310 En zo begint te worden een kwestie van design of stijl. 775 00:34:06,310 --> 00:34:09,902 Dus dit is gewoon een cryptische manier te kijken van te zeggen, geef me een e-mailadres, 776 00:34:09,902 --> 00:34:12,110 maar plug-in het nummer in Tussen deze accolades. 777 00:34:12,110 --> 00:34:15,440 En de accolades zal niet belanden in het eindadres. 778 00:34:15,440 --> 00:34:18,010 >> Nu kunnen we overslaan enkele van deze lijnen omwille van tijd is. 779 00:34:18,010 --> 00:34:21,210 Dus als een drager gelijk evenaart verHorizon-- whoops, 780 00:34:21,210 --> 00:34:24,989 Verizon-- Ik wil iets doen zeer vergelijkbaar, waarbij het adres wordt, 781 00:34:24,989 --> 00:34:27,569 citaat, unquote, nummer op text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 En dan kan ik het zelfde soort doen ding voor de rest van de dragers. 784 00:34:35,050 --> 00:34:37,090 Maar ik zal gewoon puntje, puntje, puntje doen voor nu. 785 00:34:37,090 --> 00:34:43,050 En laten we nu eens aannemen dat Ik wil array toe te voegen, te duwen. 786 00:34:43,050 --> 00:34:45,969 Ik wil toevoegen aan de array genoemd adressen. 787 00:34:45,969 --> 00:34:50,409 >> Dit adres, dit is hoe je iets toevoegen aan een array in PHP. 788 00:34:50,409 --> 00:34:51,610 U hoeft niet te malloc doen. 789 00:34:51,610 --> 00:34:53,068 Je hoeft niet aan de array te wijzigen. 790 00:34:53,068 --> 00:34:54,259 Je gewoon zeggen array, push. 791 00:34:54,259 --> 00:34:57,300 Wat wil je wat scala push-- wil je iets op te duwen? 792 00:34:57,300 --> 00:34:58,000 Adressen. 793 00:34:58,000 --> 00:34:59,550 Wat u wilt duwen op adressen? 794 00:34:59,550 --> 00:35:00,350 Adres. 795 00:35:00,350 --> 00:35:02,430 En in feite, als je echt slim te zijn, 796 00:35:02,430 --> 00:35:05,610 sommige syntactische suiker hiervoor, zogezegd, 797 00:35:05,610 --> 00:35:10,230 die net betekent dat hoe kan je dit doen in het mooier manier zou zijn om dit te doen. 798 00:35:10,230 --> 00:35:14,060 Dit heeft ook tot gevolg groeiende de adressen array grootte één, 799 00:35:14,060 --> 00:35:17,130 en toen plop dat aanvullende e-mailadres in. 800 00:35:17,130 --> 00:35:17,630 Ja. 801 00:35:17,630 --> 00:35:19,730 >> PUBLIEK: [onverstaanbaar] 802 00:35:19,730 --> 00:35:22,520 >> SPEAKER 1: Een typo op de anders if-- oh, vervoerder. 803 00:35:22,520 --> 00:35:23,070 Dat is goed. 804 00:35:23,070 --> 00:35:26,971 Het zal ook niet van mijn gebrek aan de uitvoering van een deel van dit programma 805 00:35:26,971 --> 00:35:27,470 later. 806 00:35:27,470 --> 00:35:28,810 Maar bedankt voor het vangen. 807 00:35:28,810 --> 00:35:30,671 Nog een bug. 808 00:35:30,671 --> 00:35:31,170 Dankjewel. 809 00:35:31,170 --> 00:35:33,746 We willen dat dit Vtext.com zijn. 810 00:35:33,746 --> 00:35:34,340 Ja. 811 00:35:34,340 --> 00:35:34,839 Prima. 812 00:35:34,839 --> 00:35:36,330 Dus waar komt dit laat ons? 813 00:35:36,330 --> 00:35:38,224 We hebben de code om het bestand te openen geschreven. 814 00:35:38,224 --> 00:35:40,390 We hebben een lus te herhalen over de rijen in het bestand. 815 00:35:40,390 --> 00:35:43,650 We hebben code die toevoegt aan mijn array, een voor een, de juiste 816 00:35:43,650 --> 00:35:44,790 geformatteerde e-mailadres. 817 00:35:44,790 --> 00:35:48,480 Dus al die echt blijft is voor het verzenden een e-mail naar elk van deze mensen. 818 00:35:48,480 --> 00:35:52,830 >> Dus ik heb vooruit gegaan en klaargemaakt mezelf als volgt. 819 00:35:52,830 --> 00:35:59,580 Wat ik ga hier is-- doen en laten ga je gang en ga naar een aantal daadwerkelijke code, 820 00:35:59,580 --> 00:36:00,620 die eruit ziet als dit. 821 00:36:00,620 --> 00:36:02,950 Dus hier is de pre-gebakken versie die ik eerder schreef. 822 00:36:02,950 --> 00:36:04,700 En merk ik klaar uitvoering Sprint. 823 00:36:04,700 --> 00:36:06,130 Ik ben klaar met de uitvoering van T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Ik ben klaar met de uitvoering van Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 En ik zal excuses op voorhand. 826 00:36:09,622 --> 00:36:12,080 Er is een aantal vervoerders die sommige studenten in de klas 827 00:36:12,080 --> 00:36:14,640 dat ik niet de moeite opsommen in de if conditie hier. 828 00:36:14,640 --> 00:36:16,015 Zo niet alle teksten gaat uit. 829 00:36:16,015 --> 00:36:17,556 Maar laten we eens kijken wat ik nog moet doen. 830 00:36:17,556 --> 00:36:19,660 Ik sluit het bestand, net zoals in p vier. 831 00:36:19,660 --> 00:36:20,835 >> En dit is de nieuwe syntaxis. 832 00:36:20,835 --> 00:36:22,710 En we zullen zien wat beetje van deze na verloop van tijd, 833 00:36:22,710 --> 00:36:24,450 vooral p zeven en acht. 834 00:36:24,450 --> 00:36:28,140 Maar dit is syntax voor het creëren een speciaal type structuur. 835 00:36:28,140 --> 00:36:31,490 Het blijkt er is een bibliotheek die komt met PHP, genaamd PHP mailer. 836 00:36:31,490 --> 00:36:33,840 Het doel in het leven is programmatisch e-mails versturen. 837 00:36:33,840 --> 00:36:36,840 Het is de code van iemand anders schreef dat maakt het makkelijker voor ons om e-mails te sturen, 838 00:36:36,840 --> 00:36:39,131 zodat we niet hoeven te houden heen en weer naar Gmail te gaan, 839 00:36:39,131 --> 00:36:41,151 en plakken in de mensen e-mailadressen. 840 00:36:41,151 --> 00:36:44,150 Er is een hele hoop van lijnen hier dat eerlijk gezegd, ik gewoon een soort van gekopieerde 841 00:36:44,150 --> 00:36:45,660 en geplakt uit de documentatie. 842 00:36:45,660 --> 00:36:47,409 En in feite, als je nieuwsgierig, ik alle links 843 00:36:47,409 --> 00:36:50,550 van de URL's van de documentatie in de code die we later posten. 844 00:36:50,550 --> 00:36:52,360 En merk op dat onder de dingen die ik doe 845 00:36:52,360 --> 00:36:55,710 is, ik zeg deze bibliotheek, Gebruik de server van Gmail, toch? 846 00:36:55,710 --> 00:36:59,360 SMTP spraken we kort over wanneer we waren aan de Yale over het feit dat eenvoudige mail 847 00:36:59,360 --> 00:37:00,110 transfer protocol. 848 00:37:00,110 --> 00:37:02,920 Het is het protocol dat servers gebruikt om e-mail, 849 00:37:02,920 --> 00:37:05,150 en that's-- Gmail heeft een van hen. 850 00:37:05,150 --> 00:37:07,290 Een poort, dit is de TCP-poort nummer. 851 00:37:07,290 --> 00:37:09,630 Het is prima als je nog niet eerder gezien 587. 852 00:37:09,630 --> 00:37:11,420 Weet alleen dat uit de documentatie. 853 00:37:11,420 --> 00:37:12,250 Hier is mijn gebruikersnaam. 854 00:37:12,250 --> 00:37:13,670 Ik ga naar de CF50 bot gebruiken. 855 00:37:13,670 --> 00:37:16,690 En in een moment, ik ben gewoon gaan Typ in het bot van de werkelijke wachtwoord. 856 00:37:16,690 --> 00:37:18,690 En dan naar beneden hier, let op wat blijft. 857 00:37:18,690 --> 00:37:22,840 >> Ik zet mijn adres uit worden omvergeworpen uur bij CS50.net. 858 00:37:22,840 --> 00:37:26,240 Ik denk dat ik er geen spijt van het verzenden van een tekstbericht naar 800 mensen die 859 00:37:26,240 --> 00:37:30,590 zegt, juffrouw u, liefde CS50 bot, misschien voor degenen die niet kon maken het vandaag nog. 860 00:37:30,590 --> 00:37:33,160 En vervolgens in de lijn 76, wat moet ik doen? 861 00:37:33,160 --> 00:37:39,010 Dit soort blikken zoals C. Dus voor i gelijk is aan 0, n equals-- nu telt is nieuw. 862 00:37:39,010 --> 00:37:42,077 Het blijkt dat als je wilt krijgen het aantal dingen in een array, 863 00:37:42,077 --> 00:37:43,660 je hoeft het niet te meer te herinneren. 864 00:37:43,660 --> 00:37:45,370 U kunt gewoon vragen een functie genaamd tellen, 865 00:37:45,370 --> 00:37:48,320 en het zal u vertellen hoeveel adressen in die array. 866 00:37:48,320 --> 00:37:53,210 >> En dan ga ik naar toe het adres van de e-mail. 867 00:37:53,210 --> 00:37:55,090 En ik weet dat dit uit met behulp van de documentatie. 868 00:37:55,090 --> 00:37:56,900 Er is een add-adres functie. 869 00:37:56,900 --> 00:37:58,980 En nu is er merken is een stuk van de syntaxis. 870 00:37:58,980 --> 00:38:01,470 We hebben dit eerder gezien in C. Soortgelijke in de geest. 871 00:38:01,470 --> 00:38:04,100 U kunt denken aan het dollarteken mail als een variabele, die het. 872 00:38:04,100 --> 00:38:08,100 Maar het is een structuur binnenin die niet alleen eigenschappen, 873 00:38:08,100 --> 00:38:09,400 variabelen als je wil. 874 00:38:09,400 --> 00:38:13,480 Maar het blijkt dat in PHP, die is een object georiënteerd programmeren 875 00:38:13,480 --> 00:38:16,520 taal, zoals Java als je nam APCS. 876 00:38:16,520 --> 00:38:21,420 >> Dollarteken mail, als je wilt to-- het heeft ook functies erin, 877 00:38:21,420 --> 00:38:22,380 of methoden. 878 00:38:22,380 --> 00:38:24,720 Dus dit wil zeggen dat speciale PHP mailer 879 00:38:24,720 --> 00:38:29,280 bibliotheek, als ik een variabele daarvan hebt, als ik wil een functie noemen 880 00:38:29,280 --> 00:38:31,559 komt met die bibliotheek, voor doeleinden van vandaag, 881 00:38:31,559 --> 00:38:33,100 gewoon weet dat je de pijl notatie gebruiken. 882 00:38:33,100 --> 00:38:34,150 Er is geen punt notatie. 883 00:38:34,150 --> 00:38:35,220 Het is gewoon de pijl. 884 00:38:35,220 --> 00:38:36,380 Maar dat is niet een pointer. 885 00:38:36,380 --> 00:38:38,680 Het is gewoon geleend van C's syntax. 886 00:38:38,680 --> 00:38:43,620 Dus bel toe adres binnenkant van object of variabele deze bibliotheek. 887 00:38:43,620 --> 00:38:44,440 >> Prima. 888 00:38:44,440 --> 00:38:45,570 Dit is de magische lijn. 889 00:38:45,570 --> 00:38:46,740 Dat is hoe ik een e-mail te sturen. 890 00:38:46,740 --> 00:38:50,040 Dat is het equivalent van de openstelling Gmail, het typen het uit, en slaan sturen. 891 00:38:50,040 --> 00:38:54,870 Maar het gaat om plaats stuur e-mail naar dit adres, met dit lichaam, 892 00:38:54,870 --> 00:38:57,120 van de CS50 bot. 893 00:38:57,120 --> 00:38:58,710 En nu de belangrijkste lijn. 894 00:38:58,710 --> 00:39:03,130 Deze lijn werd afwezig in zoals 2011 als ik denk dat ik voor het laatst geprobeerd dit. 895 00:39:03,130 --> 00:39:05,640 Die lijn is er, uiteraard, wist de adressen. 896 00:39:05,640 --> 00:39:07,920 Dus logisch, als ik weet het adres niet duidelijk 897 00:39:07,920 --> 00:39:11,740 Na elke iteratie de eerste e-mail of SMS-bericht gaat naar Alice, 898 00:39:11,740 --> 00:39:14,320 de tweede gaat naar Alice en Bob, de derde 899 00:39:14,320 --> 00:39:17,870 gaat naar Alice en Bob en Charlie, vandaar de zeer dure vergissing 900 00:39:17,870 --> 00:39:18,760 Ik dat jaar maakte. 901 00:39:18,760 --> 00:39:21,080 >> Dus laten we zien. 902 00:39:21,080 --> 00:39:24,200 Zijn er vragen voordat we sturen jullie allemaal een tekst 903 00:39:24,200 --> 00:39:28,210 bericht met 10 procent kans? 904 00:39:28,210 --> 00:39:28,940 Nog vragen? 905 00:39:28,940 --> 00:39:30,330 Prima. 906 00:39:30,330 --> 00:39:36,100 Laten me hier en verandering gaan het wachtwoord op wat zou moeten werken, 907 00:39:36,100 --> 00:39:37,780 zal waarschijnlijk krijgen de zwarte lijst van Gmail. 908 00:39:37,780 --> 00:39:39,821 Zodat ze misschien niet allemaal gaan out, omdat ze waarschijnlijk 909 00:39:39,821 --> 00:39:42,960 hou niet van het sturen van 800 e-mails in een lus in een keer. 910 00:39:42,960 --> 00:39:45,140 Want dat is niet in het bijzonder het menselijk gedrag. 911 00:39:45,140 --> 00:39:47,460 >> Oh, ik ga nog iets te veranderen. 912 00:39:47,460 --> 00:39:50,850 Op de top, ik ga sent-- veranderen het bestand naar studenten dot CSV. 913 00:39:50,850 --> 00:39:55,420 En ik zal niet deze te openen, maar dit is een identieke CSV-bestand niet 100 medewerkers, 914 00:39:55,420 --> 00:39:58,970 maar 800 studenten, net van Harvard, omdat Yale 915 00:39:58,970 --> 00:40:00,207 heeft oktober uitsparing deze week. 916 00:40:00,207 --> 00:40:03,290 En het lijkt alsof een soort van een eikel ding te doen om ze allemaal te tekst waarom 917 00:40:03,290 --> 00:40:04,750 ze zijn niet in de klas op vakantie. 918 00:40:04,750 --> 00:40:05,250 Dat is goed. 919 00:40:05,250 --> 00:40:08,310 Gewoon Harvard studenten Vandaag binnenkant van dat bestand. 920 00:40:08,310 --> 00:40:12,320 En laten we nu teruggaan mijn terminal venster. 921 00:40:12,320 --> 00:40:13,710 Ik ben een beetje nerveus. 922 00:40:13,710 --> 00:40:22,000 >> OK dus nu ga ik naar het te gaan directory, en PHP tekst dot PHP. 923 00:40:22,000 --> 00:40:24,950 Wat dacht je van een moedige vrijwilliger? 924 00:40:24,950 --> 00:40:26,690 Dus ik dit niet wilt op mij. 925 00:40:26,690 --> 00:40:28,410 Oké, kom op. 926 00:40:28,410 --> 00:40:29,162 Hoe heet je? 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 Prima. 931 00:40:34,120 --> 00:40:35,389 Laten we eens zien of dit werkt. 932 00:40:35,389 --> 00:40:38,430 Ik zet mijn eigen e-mailadres in file-- mijn eigen telefoonnummer in de file, 933 00:40:38,430 --> 00:40:40,110 zodat hopelijk zal ik een zo goed krijgen. 934 00:40:40,110 --> 00:40:40,819 Leuk je te ontmoeten. 935 00:40:40,819 --> 00:40:41,443 MAYA: Eveneens. 936 00:40:41,443 --> 00:40:44,510 SPEAKER 1: Dus alles wat je hoeft te doen is druk op enter tot 800 tekstberichten te sturen, 937 00:40:44,510 --> 00:40:45,466 als ik niet verpesten. 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 Kan een tijdje duren, statistisch gezien, tot we bij een e-mail address-- 942 00:40:58,430 --> 00:41:00,573 een SMS-bericht dat is in de kamer nu. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Laten we blijven hangen en te zien. 945 00:41:05,390 --> 00:41:06,940 >> PUBLIEK: [Whistling] 946 00:41:06,940 --> 00:41:08,270 >> SPEAKER 1: Oh, ja. 947 00:41:08,270 --> 00:41:09,230 >> PUBLIEK: Oh, gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> SPEAKER 1: Voor lussen zijn-- dit is niet traag omdat van PHP. 950 00:41:19,180 --> 00:41:21,810 Dit is traag omdat Gmail is ons smoren en niet 951 00:41:21,810 --> 00:41:25,170 laten ons meer te sturen dan zoals een e-mail per seconde. 952 00:41:25,170 --> 00:41:26,300 Iets? 953 00:41:26,300 --> 00:41:29,990 Dit was een moeilijk ding voor mij om te testen op huis met slechts mij en mijn ene telefoon, dus. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 Is dat hopelijk van het bot? 956 00:41:41,111 --> 00:41:41,610 Ja? 957 00:41:41,610 --> 00:41:42,110 Nee? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Zeg ja. 960 00:41:46,620 --> 00:41:47,479 Nee? 961 00:41:47,479 --> 00:41:49,374 Het is van een vriend? 962 00:41:49,374 --> 00:41:49,874 Onhandig. 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 Vrij zeker dat het wel werkt. 966 00:42:00,090 --> 00:42:00,910 Oh Oh. 967 00:42:00,910 --> 00:42:03,190 Ze black-- oh, wacht even. 968 00:42:03,190 --> 00:42:04,280 Oh, weet je wat? 969 00:42:04,280 --> 00:42:06,100 Een ogenblik alstublieft. 970 00:42:06,100 --> 00:42:07,802 Alleen Maya en ik-- Mia, was het? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 SPEAKER 1: Maya, gaan weet wat ik deed hier verkeerd. 973 00:42:12,110 --> 00:42:14,890 Oh, wacht even. 974 00:42:14,890 --> 00:42:23,320 Ik denk dat ik net stuurde 100 tekstberichten naar 555-1212. 975 00:42:23,320 --> 00:42:24,346 Stand-by. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Ik kan elk jaar niet winnen. 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 dat in post-productie. 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 Naar aanleiding van het adres. 985 00:42:40,390 --> 00:42:41,301 OK, stand-by. 986 00:42:41,301 --> 00:42:41,800 Sorry. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 Het is pijnlijk elk jaar. 989 00:42:47,080 --> 00:42:48,640 OK, het ene moment. 990 00:42:48,640 --> 00:42:50,530 Dit is goed. 991 00:42:50,530 --> 00:42:54,010 Ik ga in plaats om dit te doen. 992 00:42:54,010 --> 00:42:55,470 Print adres. 993 00:42:55,470 --> 00:42:56,030 OK, stand-by. 994 00:42:56,030 --> 00:43:01,340 Print adressen, steun ik. 995 00:43:01,340 --> 00:43:02,710 Ja, dat vind ik leuk. 996 00:43:02,710 --> 00:43:10,220 Dollar sign-- OK Ik zal uitleggen wat ik ben doen op een moment, nadat ik dit heb draaien. 997 00:43:10,220 --> 00:43:11,670 Elk jaar. 998 00:43:11,670 --> 00:43:13,125 Oké, hier gaan we. 999 00:43:13,125 --> 00:43:15,750 Ik heb gewoon-- en ik wil niet tot ieders telefoonnummer te tonen, 1000 00:43:15,750 --> 00:43:17,740 maar Maya kan bevestigen met een knipoog van het hoofd, 1001 00:43:17,740 --> 00:43:20,800 dat ze ziet iedereen telefoonnummer in de klasse 1002 00:43:20,800 --> 00:43:26,750 dat ik ga kopiëren in een programma genaamd Gmail. 1003 00:43:26,750 --> 00:43:30,860 En als in Gmail, wat willen we zeggen? 1004 00:43:30,860 --> 00:43:32,137 Ik mis je. 1005 00:43:32,137 --> 00:43:33,220 Liefde-- dat is niet van mij. 1006 00:43:33,220 --> 00:43:35,230 Ik heb nog niet eens geraakt nog sturen. 1007 00:43:35,230 --> 00:43:39,450 Dus laten we verder gaan en doen dit, als ik kan inzoomen. 1008 00:43:39,450 --> 00:43:40,300 OK. 1009 00:43:40,300 --> 00:43:42,480 Dus ik ben met behulp van een programma genaamd Gmail nu. 1010 00:43:42,480 --> 00:43:44,490 Indien Maya, je zou willen klik op de knop Verzenden, 1011 00:43:44,490 --> 00:43:46,970 we zullen simuleren wat dat code moeten doen. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Iets? 1014 00:43:55,254 --> 00:43:56,062 >> [PIEPTONEN] 1015 00:43:56,062 --> 00:43:56,870 >> Publiek: Yep. 1016 00:43:56,870 --> 00:43:58,030 >> SPEAKER 1: Ja? 1017 00:43:58,030 --> 00:43:59,210 Redding? 1018 00:43:59,210 --> 00:44:00,427 >> Publiek: Yep. 1019 00:44:00,427 --> 00:44:01,260 SPEAKER 1: Miss you. 1020 00:44:01,260 --> 00:44:02,718 En ik ga voor het verzenden van de rest. 1021 00:44:02,718 --> 00:44:06,060 Ik stuurde de helft, omdat ik niet denk dat Gmail zou laten die gaan door. 1022 00:44:06,060 --> 00:44:12,410 Dus vergeet niet, vandaag is de dag dat u geleerd dat ik Gmail kan gebruiken. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Dat was afschuwelijk. 1025 00:44:15,810 --> 00:44:17,140 Een groot applaus voor Maya. 1026 00:44:17,140 --> 00:44:18,980 Dankjewel. 1027 00:44:18,980 --> 00:44:21,280 Oké, dus. 1028 00:44:21,280 --> 00:44:22,210 wat 1029 00:44:22,210 --> 00:44:23,140 >> [PIEPTONEN] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> We kregen een paar piepjes, ja? 1032 00:44:26,580 --> 00:44:27,080 Prima. 1033 00:44:27,080 --> 00:44:30,590 Nu ga ik echt 700 ongelukkig e-mails terug van klasgenoten. 1034 00:44:30,590 --> 00:44:32,400 Dus tenminste we zullen zien als dat was het waard. 1035 00:44:32,400 --> 00:44:33,300 Dus wat er mis ging? 1036 00:44:33,300 --> 00:44:35,300 Ik zal uitzoeken wat ging verkeerde na het feit, 1037 00:44:35,300 --> 00:44:38,340 maar kijk maar eens hoe makkelijk het was om dat te doen in PHP. 1038 00:44:38,340 --> 00:44:44,598 Dus wat kunnen we eigenlijk nu doen we hebben dit expressiviteit van PHP. 1039 00:44:44,598 --> 00:44:45,970 Dat was-- dat was een verschrikkelijk. 1040 00:44:45,970 --> 00:44:46,480 Prima. 1041 00:44:46,480 --> 00:44:48,430 Dus dat was wat zou zijn gegaan. 1042 00:44:48,430 --> 00:44:52,770 Dit werd mij het testen van deze ochtend op mijn telefoon, de werkelijke screenshot van mijn telefoon. 1043 00:44:52,770 --> 00:44:56,180 >> Maar nu laten we eens kijken waarom we zijn eigenlijk introduceren 1044 00:44:56,180 --> 00:44:57,840 allemaal van dit spul in de eerste plaats. 1045 00:44:57,840 --> 00:45:01,625 Dus het doel is niet schrijf deze programma's die 1046 00:45:01,625 --> 00:45:03,250 zijn geschreven op de opdrachtregel, toch? 1047 00:45:03,250 --> 00:45:05,000 Dus schreef ik een eenvoudige hello programma, schreef ik 1048 00:45:05,000 --> 00:45:09,155 een klein programma dat voorwaardelijke doet, en gebruikte een leeslijn enzovoort. 1049 00:45:09,155 --> 00:45:11,530 En in theorie, ik schreef een programma dat uitgezonden 1050 00:45:11,530 --> 00:45:14,290 800 SMS-berichten, geven of te nemen 800. 1051 00:45:14,290 --> 00:45:16,830 En dat programma was alles nog draaien op de opdrachtregel. 1052 00:45:16,830 --> 00:45:18,538 En dat is natuurlijk niet het web, toch? 1053 00:45:18,538 --> 00:45:22,160 Het doel is nu om te beginnen met wat ik beweren is een gemakkelijker te gebruiken 1054 00:45:22,160 --> 00:45:24,720 taal, daresay een meer krachtige taal in termen 1055 00:45:24,720 --> 00:45:27,104 van de functies die daarbij horen, te beginnen 1056 00:45:27,104 --> 00:45:29,850 het schrijven van code die webpagina's genereert. 1057 00:45:29,850 --> 00:45:33,248 >> Dus de laatste keer en de laatste week, hebben we gesproken over HTTP en HTML. 1058 00:45:33,248 --> 00:45:36,350 En wat is leuk over HTML is dat het is gewoon pure tekst. 1059 00:45:36,350 --> 00:45:38,220 En de tekst is zeker iets dat je kunt 1060 00:45:38,220 --> 00:45:42,040 afdrukken door letterlijk het aanroepen van de afdruk f functie of de printfunctie. 1061 00:45:42,040 --> 00:45:46,160 En inderdaad, dat is wat PHP is nu gaat om ons te doen. 1062 00:45:46,160 --> 00:45:48,610 Dus onder de voorbeelden die we hebben de huidige broncode 1063 00:45:48,610 --> 00:45:51,610 naast enkele van de code dat ik daar een moment geleden, 1064 00:45:51,610 --> 00:45:55,440 We hebben programma's zoals dit bijvoorbeeld. 1065 00:45:55,440 --> 00:45:58,760 Froshims of Freshman Intramurale Sport, was eigenlijk 1066 00:45:58,760 --> 00:46:01,500 één van de eerste extracurriculars Ik raakte betrokken bij jaar geleden. 1067 00:46:01,500 --> 00:46:03,750 En mijn kamergenoot en ik, met sommige andere kinderen op de campus, 1068 00:46:03,750 --> 00:46:05,280 gebruikt om de froshims programma uit te voeren. 1069 00:46:05,280 --> 00:46:07,420 Ik krijg nu mijn tekstberichten. 1070 00:46:07,420 --> 00:46:14,030 >> Nu dus we, terug in de dag, dus dit was 1996 of zo, er was een internet, 1071 00:46:14,030 --> 00:46:17,395 maar er was geen process-- er was geen website voor froshims. 1072 00:46:17,395 --> 00:46:20,270 En dus als je wilde aanmelden voor voetbal of volleybal of wat dan ook, 1073 00:46:20,270 --> 00:46:22,240 je zou vullen dit ding riep een stuk papier, 1074 00:46:22,240 --> 00:46:25,060 en je zou lopen over Harvard werf, en je zou glijden 1075 00:46:25,060 --> 00:46:29,230 in de brievenbus van de surveillant, die was in Wigglesworth, een van de slaapzalen. 1076 00:46:29,230 --> 00:46:31,270 En dit was je geregistreerd. 1077 00:46:31,270 --> 00:46:33,570 En hij of zij zou dan componeren een e-mail aan u 1078 00:46:33,570 --> 00:46:36,514 handmatig, net als ik net deed hier met Maya, 1079 00:46:36,514 --> 00:46:38,930 en dan zou je worden bevestigd als zijnde geregistreerd. 1080 00:46:38,930 --> 00:46:40,840 >> Dus dit was zoals lage opknoping fruit, om zo te zeggen. 1081 00:46:40,840 --> 00:46:42,930 Het was een beetje dom dat waren we met behulp van papier voor dit. 1082 00:46:42,930 --> 00:46:45,024 Ik wilde dat we in staat zijn om gewoon te gaan op een website, 1083 00:46:45,024 --> 00:46:47,440 of hebben de eerstejaars gaan op een website, registreren voor sport, 1084 00:46:47,440 --> 00:46:50,398 en net te automatiseren veel van dit spul door de invoering van hun namen en e-mails 1085 00:46:50,398 --> 00:46:51,850 enzovoort in een database. 1086 00:46:51,850 --> 00:46:56,510 En inderdaad, de eerste versie van de website, met behulp van super lelijk HTML, 1087 00:46:56,510 --> 00:46:58,195 zou kunnen gekeken hebben iets als dit. 1088 00:46:58,195 --> 00:47:01,070 Het was eigenlijk, ironisch genoeg, meer gênant kijken dan dit terug 1089 00:47:01,070 --> 00:47:01,460 dan. 1090 00:47:01,460 --> 00:47:02,890 Maar ik gebruikte een programmeertaal. 1091 00:47:02,890 --> 00:47:06,060 Niet PHP, maar eerder genoemd Perl, dat een oudere taal, 1092 00:47:06,060 --> 00:47:07,251 maar zeer vergelijkbaar in de geest. 1093 00:47:07,251 --> 00:47:09,000 En ik gewoon helemaal geleerd om mezelf. 1094 00:47:09,000 --> 00:47:12,208 En het kostte me een tijdje om het te achterhalen, vragen veel vragen van vrienden. 1095 00:47:12,208 --> 00:47:14,080 Maar de ideeën zijn er waren precies hetzelfde. 1096 00:47:14,080 --> 00:47:18,050 Want wat PHP was echt ontworpen voor het is niet de opdrachtregel stuff 1097 00:47:18,050 --> 00:47:20,450 we net gespeeld met, maar voor web programmeren. 1098 00:47:20,450 --> 00:47:24,960 >> Het is echt vastgebonden in zijn functie ingesteld op het web, als volgt. 1099 00:47:24,960 --> 00:47:26,370 Dit is froshims. 1100 00:47:26,370 --> 00:47:28,720 En als ik wilde registreren in deze vorm, 1101 00:47:28,720 --> 00:47:30,930 dit is heel lelijk, zeker, maar laat me doorgaan 1102 00:47:30,930 --> 00:47:34,440 en een minder comfortabele student, en wat sport voor Matthews, 1103 00:47:34,440 --> 00:47:35,630 klik Register. 1104 00:47:35,630 --> 00:47:39,780 Wat ik wil kunnen doen is submit informatie van een formulier, 1105 00:47:39,780 --> 00:47:42,400 niet met de server van Google, zoals we hebben de vorige keer, volledig 1106 00:47:42,400 --> 00:47:47,100 bedriegen door hun backend, I wil mijn eigen backend code uit te voeren. 1107 00:47:47,100 --> 00:47:51,410 Wat betekent schrijven PHP code die leeft op een URL 1108 00:47:51,410 --> 00:47:54,180 die vorm gegevens kunnen worden ingediend. 1109 00:47:54,180 --> 00:47:57,510 >> En dan uw code, geschreven in PHP op een server, 1110 00:47:57,510 --> 00:47:59,400 kan dan reageren op die input van de gebruiker. 1111 00:47:59,400 --> 00:48:03,287 Net als zijn of haar naam, of comfort niveau, of studentenhuis, en dan is er iets mee doen. 1112 00:48:03,287 --> 00:48:05,120 In dit geval, ik heb net dom uitgeprint 1113 00:48:05,120 --> 00:48:06,750 tekst, wat niet zo mooi. 1114 00:48:06,750 --> 00:48:09,590 Maar je kon zeker stel je voor, als je weet HTML, 1115 00:48:09,590 --> 00:48:13,010 en je zult snel weten hoe te genereren HTML met print f, en afdrukken, 1116 00:48:13,010 --> 00:48:16,500 en vergelijkbare functies, kunt u zeker genereren een mooier webpagina die zegt: 1117 00:48:16,500 --> 00:48:17,929 hey David, bent u nu geregistreerd. 1118 00:48:17,929 --> 00:48:20,220 Je bent een minder comfortabel student van Matthews, toch? 1119 00:48:20,220 --> 00:48:23,880 >> U kunt gewoon gebruik maken van een hele hoop% ses, of de accolades en dollarteken 1120 00:48:23,880 --> 00:48:27,750 notatie gebruikte ik een moment geleden, om tekst die is gebruiksvriendelijker te genereren 1121 00:48:27,750 --> 00:48:28,567 dan dit. 1122 00:48:28,567 --> 00:48:30,150 Dus laten we een kijkje nemen op dit bestand. 1123 00:48:30,150 --> 00:48:34,666 Froshim zero dot PHP ziet er zo uit. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Toen ik herladen CS50 IDE, froshim nul ziet er zo uit. 1126 00:48:43,500 --> 00:48:45,700 Dit is froshim nul dot PHP. 1127 00:48:45,700 --> 00:48:47,730 En wat valt je dit bestand? 1128 00:48:47,730 --> 00:48:49,506 >> PUBLIEK: [onverstaanbaar] 1129 00:48:49,506 --> 00:48:50,922 SPEAKER 1: Sorry, een beetje harder? 1130 00:48:50,922 --> 00:48:53,250 PUBLIEK: [onverstaanbaar] Het is allemaal in HTML. 1131 00:48:53,250 --> 00:48:57,130 En in feite is, omdat wat interessant over PHP 1132 00:48:57,130 --> 00:48:58,880 is dat het is gemaakt worden, betere 1133 00:48:58,880 --> 00:49:02,110 of nog erger, vermengd met HTML-code. 1134 00:49:02,110 --> 00:49:05,850 En inderdaad, ook al bestand, froshim nul dot PHP, 1135 00:49:05,850 --> 00:49:11,470 heeft een PHP reactie op de top van het, het is allemaal gewoon HTML. 1136 00:49:11,470 --> 00:49:17,655 Maar daarentegen, als ik open te stellen, laten we zeg, registreren nul punt PHP, die 1137 00:49:17,655 --> 00:49:19,550 maar heeft een grote reactie op de top. 1138 00:49:19,550 --> 00:49:26,500 Dit ziet er ook bijna volledig zoals HTML, behalve voor wat? 1139 00:49:26,500 --> 00:49:29,350 Lijn, wat, 21 ziet er een beetje raar. 1140 00:49:29,350 --> 00:49:32,739 >> Maar let ik het invoeren van PHP mode met open beugel vraagteken PHP. 1141 00:49:32,739 --> 00:49:33,780 Dan heb ik nog wat spullen. 1142 00:49:33,780 --> 00:49:36,724 En vervolgens aan het einde van die lijn bijna Ik heb, vraagteken PHP. 1143 00:49:36,724 --> 00:49:38,390 En dit is wat ik bedoel met vermengde. 1144 00:49:38,390 --> 00:49:41,910 U kunt HTML schrijven dat je gewoon wil de server uit te spuwen. 1145 00:49:41,910 --> 00:49:45,090 Maar als je iets wilt doen dynamische halverwege de pagina, 1146 00:49:45,090 --> 00:49:47,699 zoals steek mijn naam of dorm of comfort niveau, 1147 00:49:47,699 --> 00:49:49,490 Ik kan een functie gebruiken zoals print r, dat is 1148 00:49:49,490 --> 00:49:52,492 afdrukken recursieve, wat betekent gewoon print deze variabele, formatteren 1149 00:49:52,492 --> 00:49:53,200 zoals u dat wilt. 1150 00:49:53,200 --> 00:49:55,880 Het is echt niet voor menselijke doeleinden, het is gewoon 1151 00:49:55,880 --> 00:49:58,290 voor het debuggen of diagnostische doeleinden. 1152 00:49:58,290 --> 00:49:59,460 Dus dat is hoe ik dat deed. 1153 00:49:59,460 --> 00:50:06,100 >> Als ik in plaats daarvan gaan froshims twee dot PHP, opmerken dat de werking van dit formulier 1154 00:50:06,100 --> 00:50:09,680 is niet geregistreerd nul dot PHP als de old-- de vorige eigenlijk was. 1155 00:50:09,680 --> 00:50:11,222 Maar het is ingeschreven twee dot PHP. 1156 00:50:11,222 --> 00:50:13,680 Dus laten we eens kijken hoe dit gedraagt ​​zich een beetje anders. 1157 00:50:13,680 --> 00:50:15,140 Als ik in versie twee. 1158 00:50:15,140 --> 00:50:20,430 Als hier, als ik me inschrijven als David, minder comfortabel, van dorm van Mathews, 1159 00:50:20,430 --> 00:50:21,480 registreren. 1160 00:50:21,480 --> 00:50:23,770 Dus deze keer zei, je zijn geregistreerd, niet echt. 1161 00:50:23,770 --> 00:50:25,370 Laten we eens kijken wat ik hier deed. 1162 00:50:25,370 --> 00:50:29,760 Als ik kijk naar register twee dot PHP, heeft dit nog meer PHP-code. 1163 00:50:29,760 --> 00:50:35,410 Het is een beetje schoner, maar het nog wraps een beetje lang op deze lijn. 1164 00:50:35,410 --> 00:50:36,260 Let hier. 1165 00:50:36,260 --> 00:50:40,300 Print ik mijn HTML-tag, mijn hoofd tag, mijn titel tag, het hoofd, het lichaam. 1166 00:50:40,300 --> 00:50:45,410 >> En dan begin ik te zeggen dingen zoals voeren PHP-modus. 1167 00:50:45,410 --> 00:50:48,540 En zodat tag open beugel PHP-- vraagteken PHP zegt: 1168 00:50:48,540 --> 00:50:53,460 hey, server, execute-- interpreteren de volgende dingen als PHP 1169 00:50:53,460 --> 00:50:55,030 totdat u het eind tag. 1170 00:50:55,030 --> 00:50:58,590 En hoewel je misschien niet weet welke andere PHP dan je tot nu toe hebt gezien, 1171 00:50:58,590 --> 00:51:01,290 u kunt soort lezen het vrij intuïtief. 1172 00:51:01,290 --> 00:51:10,670 Als de naam is leeg, of comfort leeg, of dorm is leeg, wat moet ik doen? 1173 00:51:10,670 --> 00:51:12,830 Wat zeg ik aan de gebruiker? 1174 00:51:12,830 --> 00:51:15,330 U moet uw naam, comfort, en slaapzalen, enzovoort. 1175 00:51:15,330 --> 00:51:17,750 Anders, zeg ik u bent geregistreerd, nou niet echt. 1176 00:51:17,750 --> 00:51:19,190 >> En ik zeg niet echt want er is geen database. 1177 00:51:19,190 --> 00:51:20,200 Ik heb niets met de gegevens doet. 1178 00:51:20,200 --> 00:51:22,408 Ik ben gewoon het weg te gooien voor demonstratiedoeleinden. 1179 00:51:22,408 --> 00:51:24,320 Nu ben soort beknibbeld op lijn 22. 1180 00:51:24,320 --> 00:51:26,400 Er is meer syntax daar, maar dollarteken 1181 00:51:26,400 --> 00:51:28,320 onderstrepen post is soort interessant. 1182 00:51:28,320 --> 00:51:30,300 En dit is wat er leuk is PHP. 1183 00:51:30,300 --> 00:51:35,610 In PHP, je hebt wat geroepen een paar super globale variabelen. 1184 00:51:35,610 --> 00:51:38,430 Ze zijn soort van nog meer belangrijker dan de globale variabelen. 1185 00:51:38,430 --> 00:51:41,370 En deze, alle geactiveerde als zodanig, kom met PHP. 1186 00:51:41,370 --> 00:51:44,550 Dus als je een server die een webserver geïnstalleerd, zoals Apache, 1187 00:51:44,550 --> 00:51:49,390 en je de taal te installeren ondersteuning voor PHP, ineens je 1188 00:51:49,390 --> 00:51:52,250 kan beginnen met deze super globale variabelen in uw code. 1189 00:51:52,250 --> 00:51:54,330 >> En wat is er leuk aan PHP is dat als je gewoon 1190 00:51:54,330 --> 00:51:57,540 schrijft een bestand dat eindigt in dot PHP, zet het op een webserver, 1191 00:51:57,540 --> 00:52:01,260 en dan moet je een formulier om het via die actie tag en een form tag, 1192 00:52:01,260 --> 00:52:05,110 die actie attribuut in de form tag, PHP en het web 1193 00:52:05,110 --> 00:52:09,360 helemaal uit hoe om te grijpen al die belangrijke waarde paren uit 1194 00:52:09,360 --> 00:52:11,633 van de URL zoals vraag mark q gelijk aan katten, 1195 00:52:11,633 --> 00:52:14,782 het zal uitzoeken hoe q en katten. 1196 00:52:14,782 --> 00:52:17,710 Als u een foto of een gebruikersnaam in te dienen, of een wachtwoord als Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP zal uitzoeken voor u wanneer alle data is. 1198 00:52:21,360 --> 00:52:23,821 En het zal gewoon hand u een associatieve array 1199 00:52:23,821 --> 00:52:27,560 riep dollarteken underscore post, of dollarteken underscore te krijgen, 1200 00:52:27,560 --> 00:52:30,590 afhankelijk van of u bent met get of post inzendingen. 1201 00:52:30,590 --> 00:52:32,950 En het zal u gewoon hand een super globale variabele, 1202 00:52:32,950 --> 00:52:37,254 zodat als je wilt op de naam te krijgen dat de gebruiker via dat web ingediend 1203 00:52:37,254 --> 00:52:41,894 formulier, je letterlijk alleen de naam te zeggen van de super globale variabele, citaat, 1204 00:52:41,894 --> 00:52:43,380 unquote, naam. 1205 00:52:43,380 --> 00:52:46,144 En citaat, unquote comfort, en citaat, unquote slaapzaal. 1206 00:52:46,144 --> 00:52:48,810 En we zullen in staat zijn om te doen Dit en nog veel meer met PHP. 1207 00:52:48,810 --> 00:52:50,540 En hoewel dit was een wervelwind blik op het, 1208 00:52:50,540 --> 00:52:51,980 we duiken in veel meer volgende week. 1209 00:52:51,980 --> 00:52:54,247 We zullen een database in te voeren zodat je eigenlijk bent 1210 00:52:54,247 --> 00:52:56,816 gaat starten met de implementatie uw eigen e-handel based-- 1211 00:52:56,816 --> 00:52:59,150 zoals website in slechts een week tijd. 1212 00:52:59,150 --> 00:53:02,750 Dus zien we je de volgende keer, en hoop dat je de tekstberichten. 1213 00:53:02,750 --> 00:53:05,450 Doei. 1214 00:53:05,450 --> 00:53:06,950 >> [Muziek] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [DEUR OPENING] 1217 00:53:12,950 --> 00:53:14,475 >> Luidspreker 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 SPEAKER 3: What's up? 1219 00:53:15,350 --> 00:53:17,750 Luidspreker 2: Wat doe je? 1220 00:53:17,750 --> 00:53:19,850 SPEAKER 3: Werken aan een probleem set. 1221 00:53:19,850 --> 00:53:21,050 Luidspreker 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 >> Wat zijn-- uh, wat doe jij hier? 1225 00:53:25,584 --> 00:53:26,750 SPEAKER 3: Gewoon opknoping uit. 1226 00:53:26,750 --> 00:53:28,134 Net terug van de sportschool. 1227 00:53:28,134 --> 00:53:30,050 Ik kon het niet helpen, maar opvalt als we high-fived, 1228 00:53:30,050 --> 00:53:32,450 dat u vrij ruw handen. 1229 00:53:32,450 --> 00:53:33,950 Ga je naar de sportschool? 1230 00:53:33,950 --> 00:53:35,150 >> Luidspreker 2: No. 1231 00:53:35,150 --> 00:53:36,650 Nee. 1232 00:53:36,650 --> 00:53:38,450 >> SPEAKER 3: Dude, je ziet er behoorlijk groot. 1233 00:53:38,450 --> 00:53:45,950 Dat is slecht, omdat iedereen weet 8-ball is de grote man op de campus. 1234 00:53:45,950 --> 00:53:48,050 High five. 1235 00:53:48,050 --> 00:53:49,550 >> Luidspreker 2: Uh, nee. 1236 00:53:49,550 --> 00:53:50,450 Nee, ik denk dat ik ben goed. 1237 00:53:50,450 --> 00:53:52,300 Ik denk dat ik ben goed. 1238 00:53:52,300 --> 00:53:54,097