1 00:00:00,000 --> 00:00:04,410 >> [MUSIC JOC] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> SPEAKER 1: Aceasta este CS50 și acesta este sfârșitul săptămânii șapte. 4 00:00:15,770 --> 00:00:20,240 Astăzi este, probabil, în cazul în care ne-am într-adevăr te invata limbi. 5 00:00:20,240 --> 00:00:24,100 Am introdus în ultimii doi săptămâni HTML si CSS, de care nici 6 00:00:24,100 --> 00:00:25,240 sunt limbaje de programare. 7 00:00:25,240 --> 00:00:28,600 Și într-adevăr, chiar dacă nu am uita-te la aproape toate etichetele 8 00:00:28,600 --> 00:00:33,410 care HTML vine cu și aproape toate proprietăților care CSS vine cu, 9 00:00:33,410 --> 00:00:35,007 asta e un fel de-l pentru HTML si CSS. 10 00:00:35,007 --> 00:00:36,840 Vom doar în general, începe presupunând că ați 11 00:00:36,840 --> 00:00:39,545 înțeleagă ideile generale de tag-uri, și atributele, 12 00:00:39,545 --> 00:00:41,850 și pagini trimise la client la server. 13 00:00:41,850 --> 00:00:45,280 >> Pentru că astăzi vom începe să se uite la un alt limbaj de programare, PHP. 14 00:00:45,280 --> 00:00:47,110 Vom face acest lucru foarte rapid. 15 00:00:47,110 --> 00:00:50,910 Nu vom să te învețe PHP în sine, la fel ca nu am aspira să te învețe 16 00:00:50,910 --> 00:00:52,670 C, în sine, ci mai degrabă de programare. 17 00:00:52,670 --> 00:00:55,088 Și într-adevăr, unul dintre cele mai obiective pentru acest curs 18 00:00:55,088 --> 00:00:57,820 nu este să te învețe C, sau HTML, CSS sau, sau PHP, 19 00:00:57,820 --> 00:01:00,370 sau orice număr de alte cuvinte buzz sau acronime, 20 00:01:00,370 --> 00:01:03,097 ci mai degrabă știința calculatorului și cum să program fundamental. 21 00:01:03,097 --> 00:01:05,930 Și într-adevăr, astăzi vom începe să ia aceste roți de formare pe tot 22 00:01:05,930 --> 00:01:10,600 mai mult de zbor, printr-o limbaj numit PHP, după cum urmează. 23 00:01:10,600 --> 00:01:13,640 >> Aici este ceea ce această limbă pare. 24 00:01:13,640 --> 00:01:17,790 Se pare că nu este nevoie de o funcție principală într-un program scris 25 00:01:17,790 --> 00:01:19,470 într-o limbă numit PHP. 26 00:01:19,470 --> 00:01:22,585 Astfel încât deja sună un pic mai simplu decât C, cu care suntem familiarizați. 27 00:01:22,585 --> 00:01:25,370 Se pare că, dacă doresc să declare o variabila, 28 00:01:25,370 --> 00:01:29,470 o faci aproape identic cu C. Dar nu e clar o diferență aici 29 00:01:29,470 --> 00:01:31,850 atunci când am declara un șir de caractere, sau, poate, două diferențe. 30 00:01:31,850 --> 00:01:32,725 Cum arată diferit? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> Audiența: Semnul dolar. 33 00:01:37,160 --> 00:01:39,951 >> SPEAKER 1: Da, există dolar semn, pe care noi nu am mai văzut înainte. 34 00:01:39,951 --> 00:01:41,451 Și ceea ce lipsește? 35 00:01:41,451 --> 00:01:41,950 Da? 36 00:01:41,950 --> 00:01:42,820 >> Audiența: [inaudibil] 37 00:01:42,820 --> 00:01:44,403 >> SPEAKER 1: Da, nu exista nici o tip de date. 38 00:01:44,403 --> 00:01:48,410 Deci, se dovedește că PHP este ceea ce apela un limbaj liber tipizat, în cazul în care 39 00:01:48,410 --> 00:01:49,959 C este puternic tastat. 40 00:01:49,959 --> 00:01:52,500 Liber tipizat înseamnă doar că există diferite tipuri de date, 41 00:01:52,500 --> 00:01:54,470 există siruri de caractere, și int, și plutește. 42 00:01:54,470 --> 00:01:56,330 Dar cifrele de calculator asta. 43 00:01:56,330 --> 00:01:58,664 Tu programator uman Nu trebuie să-l dau afară. 44 00:01:58,664 --> 00:02:00,580 Deci, tot ce trebuie să faci să declare o variabilă este 45 00:02:00,580 --> 00:02:03,220 semn dolar, numele dumneavoastră variabilă, și apoi, de exemplu, 46 00:02:03,220 --> 00:02:04,760 Citat încheiat citatul, salut lume. 47 00:02:04,760 --> 00:02:07,662 >> Ei bine, acest lucru este ceea ce o Stare arata ca in PHP. 48 00:02:07,662 --> 00:02:08,328 Orice diferențe? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Nu. 51 00:02:11,150 --> 00:02:12,540 Deci, se dovedește acestea sunt identice. 52 00:02:12,540 --> 00:02:14,665 Și s-ar putea avea mai puține sucursale sau filiale, mai mult 53 00:02:14,665 --> 00:02:16,557 dar se transformă de sintaxă exact la fel. 54 00:02:16,557 --> 00:02:18,390 Expresii booleene pot fi comandat împreună. 55 00:02:18,390 --> 00:02:20,400 Expresii booleene pot fi anded împreună. 56 00:02:20,400 --> 00:02:21,430 Încă mai ai switch-uri. 57 00:02:21,430 --> 00:02:23,790 Chiar dacă nu s-au folosit acestea, acestea nu există în C 58 00:02:23,790 --> 00:02:26,020 și sunt funcțional echivalent în PHP. 59 00:02:26,020 --> 00:02:28,260 >> Și, de fapt, în PHP sunt un pic mai puternic. 60 00:02:28,260 --> 00:02:32,540 În C, puteți compara doar anumite tipuri de date, cum ar fi int si caractere, 61 00:02:32,540 --> 00:02:36,320 în timp ce în PHP puteți compara de fapt siruri de caractere complet fledge fără a 62 00:02:36,320 --> 00:02:38,460 să vă faceți griji indicii și altele asemenea. 63 00:02:38,460 --> 00:02:39,430 Deci, aici e un pentru buclă. 64 00:02:39,430 --> 00:02:41,270 Acesta este doar pseudocod cod, dacă vreți. 65 00:02:41,270 --> 00:02:43,400 Dar structural este identic cu C. 66 00:02:43,400 --> 00:02:47,520 >> Iată un timp buclă, pseudocod therefore-- identic cu C. 67 00:02:47,520 --> 00:02:49,390 Iată o face în timp ce loop-- identice. 68 00:02:49,390 --> 00:02:51,390 Și deci nu este un fel de acest model aici prin 69 00:02:51,390 --> 00:02:54,400 există o altă sintactic câteva Caracteristici vom într-adevăr o să vadă. 70 00:02:54,400 --> 00:02:57,340 De fapt, aici este un frumos mod în PHP care, 71 00:02:57,340 --> 00:02:59,350 dacă doriți să repeta pe o matrice, și tu 72 00:02:59,350 --> 00:03:02,309 Nu vreau să sari prin cercuri mentale și sintactice de a avea 73 00:03:02,309 --> 00:03:05,178 int i este egal cu 0, i mai puțin decât n, i se adaugă plus-- care 74 00:03:05,178 --> 00:03:07,040 este doar o mulțime de sintaxă enervant. 75 00:03:07,040 --> 00:03:10,654 Vă pot spune un pic mai mult fluid pentru fiecare numere 76 00:03:10,654 --> 00:03:13,320 ca număr, în cazul în care în acest caz Numerele semn dolar, eu sunt presupunând că, 77 00:03:13,320 --> 00:03:15,400 este ca o matrice de numere numit. 78 00:03:15,400 --> 00:03:18,810 Și apoi eu sunt presupunând că numărul, singular, va fi o variabilă. 79 00:03:18,810 --> 00:03:22,940 >> Și ce PHP va face pentru mine ca am repeta peste această buclă este, în fiecare iterație, 80 00:03:22,940 --> 00:03:28,450 că va actualiza numărul variabil fi elementul-lea în număr, plural. 81 00:03:28,450 --> 00:03:30,060 Deci, doar se ocupă de toate de asta pentru mine. 82 00:03:30,060 --> 00:03:32,750 Nu sunt paranteze drepte, nu semn dolar, nu punct și virgulă. 83 00:03:32,750 --> 00:03:34,117 E doar un pic mai simplu. 84 00:03:34,117 --> 00:03:35,950 Ei bine, dacă vrei un matrice, se pare că ai 85 00:03:35,950 --> 00:03:38,908 poate face ceva destul de similar cu C. Sintaxa este un pic diferit. 86 00:03:38,908 --> 00:03:41,000 Dar aici e un tablou numit dolar semnat numere. 87 00:03:41,000 --> 00:03:44,261 Și am folosi, în PHP, pătrat paranteze, se pare. 88 00:03:44,261 --> 00:03:47,260 Și vom vedea aceste din nou în JavaScript-- încă o altă limbă. 89 00:03:47,260 --> 00:03:49,968 Eu folosesc doar notație suport pătrat a avea o listă separate prin virgula 90 00:03:49,968 --> 00:03:51,530 de numere întregi, în acest caz. 91 00:03:51,530 --> 00:03:53,010 Dar asta îmi dă o matrice. 92 00:03:53,010 --> 00:03:56,270 >> Dar chiar și mai puternic în PHP, avem, de asemenea, în general, ceea ce sunt 93 00:03:56,270 --> 00:03:57,640 numit tablouri asociative. 94 00:03:57,640 --> 00:03:59,540 Și o mulțime de limbi au acestea de asemenea. 95 00:03:59,540 --> 00:04:03,810 Lucru despre C matrice este că indicii 96 00:04:03,810 --> 00:04:06,940 pentru o matrice, lucru pe care utilizați în paranteze pătrate prin care 97 00:04:06,940 --> 00:04:08,600 accesați elemente, trebuie să fie ce? 98 00:04:08,600 --> 00:04:10,620 >> Audiența: [inaudibil] 99 00:04:10,620 --> 00:04:14,220 >> SPEAKER 1: Ei trebuie să fie numere sau numere întregi, în special de la zero pe sus. 100 00:04:14,220 --> 00:04:17,140 Ei bine, în PHP, și, se pare out, în alte limbi, 101 00:04:17,140 --> 00:04:20,820 puteți începe să aveți indici care nu sunt numeric. 102 00:04:20,820 --> 00:04:23,880 Dar de fapt ele sunt cuvinte sau Expresii, astfel încât mai degrabă decât 103 00:04:23,880 --> 00:04:27,070 încercați să vă amintiți unde ceva este, sau stocate într-o variabilă i, 104 00:04:27,070 --> 00:04:31,720 puteți folosi de fapt, un cuvânt și spune that-- vă pot spune un cuvânt de genul asta. 105 00:04:31,720 --> 00:04:34,730 >> Deci, semnul dolar citat este Numele unei variabile aici. 106 00:04:34,730 --> 00:04:39,360 Acest lucru este oarecum înfricoșat sintaxă asta e asocierea doi valoare cheie 107 00:04:39,360 --> 00:04:41,250 perechi pentru această variabilă. 108 00:04:41,250 --> 00:04:45,490 Mai exact, acest lucru este mine da o matrice care este de lungime 2. 109 00:04:45,490 --> 00:04:47,660 Dar indicii nu sunt 0 și 1. 110 00:04:47,660 --> 00:04:51,250 Indicii sunt citat încheiat citatul simbol și oferta de pret încheiat citatul. 111 00:04:51,250 --> 00:04:55,990 Și valorile acestor indici, respectiv, este FB pentru Facebook 112 00:04:55,990 --> 00:05:00,360 și $ 79,53, când am ultima verificat un preț pentru acest lucru. 113 00:05:00,360 --> 00:05:01,210 >> Ce înseamnă asta? 114 00:05:01,210 --> 00:05:04,136 Ei bine, aceasta înseamnă că în loc de scrierea de cod 115 00:05:04,136 --> 00:05:09,612 ca aceasta, în cazul în care am folosit pentru a face ceva cum ar fi dolarul sign-- sau, mai degrabă, în C 116 00:05:09,612 --> 00:05:11,070 Nici măcar nu ar fi un semn dolar. 117 00:05:11,070 --> 00:05:13,490 Mi-ar face ceva cum ar fi citate și apoi 118 00:05:13,490 --> 00:05:18,410 Mi-ar face placuta i pentru a ajunge la un Valoarea arbitrar indexate numeric. 119 00:05:18,410 --> 00:05:21,430 Începând de astăzi, în PHP, dacă doriți să obțineți de la o valoare, 120 00:05:21,430 --> 00:05:24,742 avem un fel de au mai expresivitate semantică. 121 00:05:24,742 --> 00:05:27,450 Doar un mod fantezist de a spune putem doar sunați lucrurile ceea ce sunt. 122 00:05:27,450 --> 00:05:29,800 >> Și dacă doriți să obțineți la simbol ceva, 123 00:05:29,800 --> 00:05:32,180 acum faci literalmente citat simbol încheiat citatul 124 00:05:32,180 --> 00:05:34,910 în paranteze pătrate în loc de un simplu număr. 125 00:05:34,910 --> 00:05:36,450 Deci, este un avantaj frumos. 126 00:05:36,450 --> 00:05:38,140 Și asta e un fel de-l pentru moment. 127 00:05:38,140 --> 00:05:40,240 Există buchete de alte caracteristici în PHP. 128 00:05:40,240 --> 00:05:43,180 Și într-adevăr, PHP vine cu chiuveta de bucatarie proverbiala. 129 00:05:43,180 --> 00:05:48,640 Zeci, sute de funcții vin cu PHP-- atât de multe mai mult venit cu C. 130 00:05:48,640 --> 00:05:51,360 >> Și asta nu e destinat să copleși ci ajuta 131 00:05:51,360 --> 00:05:53,900 îți dai seama că noi nu mai trebuie să scrie cod 132 00:05:53,900 --> 00:05:55,590 asta e un fel de aici conceptual. 133 00:05:55,590 --> 00:05:58,465 Acum putem începe să pur și simplu să profite de mult mai avansate caracteristici 134 00:05:58,465 --> 00:05:59,920 că limbile, cum ar fi PHP au. 135 00:05:59,920 --> 00:06:02,630 Așa că nu trebuie să vă faceți griji cu privire la se deplasează în jurul valorii de lucruri în memorie. 136 00:06:02,630 --> 00:06:05,338 Noi nu trebuie să vă faceți griji cu privire la malloc și toate acestea nivel inferior, 137 00:06:05,338 --> 00:06:09,390 detalii puternice, care vă va se luptă cu, în cazul în care nu se luptă cu, pset5, 138 00:06:09,390 --> 00:06:13,380 dar puteți începe să lua în curând pentru a acordat. 139 00:06:13,380 --> 00:06:17,770 >> De fapt, hai să scrie un super program simplu in PHP, după cum urmează. 140 00:06:17,770 --> 00:06:21,550 Am de gând să merg cu capul în CS50 IDE aici, și ceea ce am de gând să fac 141 00:06:21,550 --> 00:06:29,370 este crea un nou fișier, că foarte simplu va fi numit salut punct PHP. 142 00:06:29,370 --> 00:06:31,860 Deci, în loc de punct c, e va fi numit punct PHP. 143 00:06:31,860 --> 00:06:34,260 Și apoi, în acest dosar, Pot începe să tastați. 144 00:06:34,260 --> 00:06:36,960 Dar se pare că un singur lucru am să știu 145 00:06:36,960 --> 00:06:41,470 este că orice fișier PHP, în general, are nevoie de pentru a începe cu unele sintaxă specială. 146 00:06:41,470 --> 00:06:44,570 Similare în spirit de HTML, dar, din nou, PHP este un limbaj de programare, nu 147 00:06:44,570 --> 00:06:45,590 un limbaj de marcare. 148 00:06:45,590 --> 00:06:48,700 >> Deci fiecare fișier, și este un fel de prost căutați voi recunosc. 149 00:06:48,700 --> 00:06:50,480 Deschis suport, semn de întrebare, PHP. 150 00:06:50,480 --> 00:06:53,060 Și acesta este doar mod limbă de a spune, 151 00:06:53,060 --> 00:06:58,400 hei, calculator aici vine un cod scris intr-o limba numita PHP. 152 00:06:58,400 --> 00:07:01,900 Și apoi la sfârșitul fișierului, faci un fel de fel de opusul. 153 00:07:01,900 --> 00:07:04,860 Tu nu scrie PHP din nou, doar face semn de întrebare, suport unghi. 154 00:07:04,860 --> 00:07:08,500 Și apoi orice ai pus în interiorul acestor două etichete, ca să spunem așa, 155 00:07:08,500 --> 00:07:11,490 va fi, sau ar trebui să fie, cod PHP. 156 00:07:11,490 --> 00:07:13,180 >> Deci, hai sa facem ceva super-simplu. 157 00:07:13,180 --> 00:07:19,370 Am de gând să merg mai departe și de a face de imprimare def, Bună ziua lume, backslash n, salva. 158 00:07:19,370 --> 00:07:27,310 Și acum, la promptă mea, am de gând să face, face hello-- nu, am de gând să fac, 159 00:07:27,310 --> 00:07:28,726 dot slash salut. 160 00:07:28,726 --> 00:07:31,250 Nu, slash punct, hm. 161 00:07:31,250 --> 00:07:32,990 Deci ceva e diferit. 162 00:07:32,990 --> 00:07:36,920 Și într-adevăr, aceasta este o diferență cheie între PHP și limbi ca C. C 163 00:07:36,920 --> 00:07:38,730 a fost un așa-numitul limbaj compilat. 164 00:07:38,730 --> 00:07:40,929 Ce a însemnat pentru C să fie elaborate? 165 00:07:40,929 --> 00:07:41,970 Care a fost implicarea? 166 00:07:41,970 --> 00:07:42,898 Da. 167 00:07:42,898 --> 00:07:45,220 >> Audiența: scris în cod mașină așa că ar putea fi conduse de calculator. 168 00:07:45,220 --> 00:07:46,011 >> SPEAKER 1: Exact. 169 00:07:46,011 --> 00:07:49,075 Trebuie să-l transforme în primul așa-numitele cod mașină, zerouri și cele, 170 00:07:49,075 --> 00:07:51,950 înainte de a va fi de fapt executabil și înțelese de către calculator. 171 00:07:51,950 --> 00:07:52,840 De Intel în interiorul. 172 00:07:52,840 --> 00:07:54,530 De CPU în interiorul calculatorului. 173 00:07:54,530 --> 00:07:58,170 PHP, prin contrast, este ceea ce se numește un limbaj interpretat, care 174 00:07:58,170 --> 00:08:02,230 înseamnă că nu-l compilați în zerouri și cele, cod mașină, 175 00:08:02,230 --> 00:08:04,360 ai loc să-l lăsați ca codul sursă. 176 00:08:04,360 --> 00:08:08,130 Și tu în schimb să-l dați ca intrare la un program, un interpret 177 00:08:08,130 --> 00:08:11,960 că altcineva a scris ani în urmă că înțelege 178 00:08:11,960 --> 00:08:14,310 linie cu linie, caracter de caracter. 179 00:08:14,310 --> 00:08:16,120 Deci, cu alte cuvinte, oamenii de acolo a scris 180 00:08:16,120 --> 00:08:19,670 un program care va arata la linia de cod de linie, 181 00:08:19,670 --> 00:08:21,680 și dau seama ce computerul ar trebui să facă, 182 00:08:21,680 --> 00:08:25,960 fără convertind-o direct la zero și cele. 183 00:08:25,960 --> 00:08:28,370 >> Deci, în cazul în care vede o pentru bucla, acest așa-numit interpret 184 00:08:28,370 --> 00:08:30,630 va fi ca, bine, ar trebui să face ceva nou și din nou și din nou. 185 00:08:30,630 --> 00:08:31,150 Ce ar trebuii să fac? 186 00:08:31,150 --> 00:08:32,159 Lasă-mă să te uiti la linia următoare. 187 00:08:32,159 --> 00:08:33,367 Lasă-mă să te uiti la linia următoare. 188 00:08:33,367 --> 00:08:35,350 Și-l interpretează într-adevăr o linie cu linie. 189 00:08:35,350 --> 00:08:37,220 Deci, să-l execute, eu nu folosesc make. 190 00:08:37,220 --> 00:08:39,409 Eu nu folosesc punct slash în acest caz. 191 00:08:39,409 --> 00:08:43,530 Am în schimb fac PHP, care este numele unui program, a.k.a. 192 00:08:43,530 --> 00:08:46,562 Un interpret, care este pre-instalat în CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 și acum am nevoie pentru a trece un argument linie de comandă, care 194 00:08:48,770 --> 00:08:52,290 este pur și simplu numele de fișier pe care vreau să interpreteze. 195 00:08:52,290 --> 00:08:54,740 Sau mai mult la întâmplare, pe care vreau să ruleze. 196 00:08:54,740 --> 00:08:57,000 Și dacă am lovit Enter, nu o avem. 197 00:08:57,000 --> 00:08:57,825 Buna, lume. 198 00:08:57,825 --> 00:08:59,950 Acum se dovedește că am def de imprimare uzat în mod deliberat 199 00:08:59,950 --> 00:09:01,600 să ne podul de la C la PHP. 200 00:09:01,600 --> 00:09:05,150 Cele mai multe programatori PHP, după cum veți vedea, chiar nu deranjez folosind def imprimare. 201 00:09:05,150 --> 00:09:08,290 Ei folosesc doar o funcție numită de imprimare, care C nu avea. 202 00:09:08,290 --> 00:09:11,390 Și așa, dacă l-am rulați din nou acum, de fapt comportă punct de vedere funcțional. 203 00:09:11,390 --> 00:09:13,730 Nu pot utiliza la sută s și procente i și așa mai departe, 204 00:09:13,730 --> 00:09:16,250 dar există și alte modalități în PHP de a face asta. 205 00:09:16,250 --> 00:09:18,100 Dar aceasta este doar pentru spun că punct de vedere sintactic, 206 00:09:18,100 --> 00:09:21,850 altele decât unele lucruri ciudate până top, iar unele personaje ciudate care se derulează 207 00:09:21,850 --> 00:09:25,960 în partea de jos, conceptele acum de Programarea în acest altă limbă 208 00:09:25,960 --> 00:09:27,860 vor fi exact la fel. 209 00:09:27,860 --> 00:09:30,120 >> De fapt, hai să facem o altă exemplu. 210 00:09:30,120 --> 00:09:32,520 Deci, am de gând să merg mai departe și închideți acest fișier. 211 00:09:32,520 --> 00:09:37,740 Lasă-mă să creeze un altul care Îl sun condiții 1 punct PHP. 212 00:09:37,740 --> 00:09:40,770 Deci, nu la zero, pentru că ceea ce am făcut am fost uitat înapoi câteva săptămâni în urmă, 213 00:09:40,770 --> 00:09:43,490 am avut un fișier numit Condiții 1 punct C. Și ce 214 00:09:43,490 --> 00:09:47,590 Am făcut a fost convertit în mea cap, și aici pe hârtie, 215 00:09:47,590 --> 00:09:51,290 și, în curând pe cursului site-ul, linie cu linie în PHP. 216 00:09:51,290 --> 00:09:55,520 >> Deci, în versiunea C, am făcut ceva ca șir s devine obține șir. 217 00:09:55,520 --> 00:09:58,200 Deci, este un pic diferit a face acest lucru în PHP. 218 00:09:58,200 --> 00:10:01,390 În schimb, Mă duc de a face, sau, mai degrabă, am 219 00:10:01,390 --> 00:10:05,870 ar fi putut face int n devine obține Int, în acest exemplu mai devreme. 220 00:10:05,870 --> 00:10:12,600 Deci, în loc de asta, am de gând să fac n se line citit, mi-ar plăcea un număr întreg, 221 00:10:12,600 --> 00:10:13,670 Vă rog. 222 00:10:13,670 --> 00:10:15,110 Deci, aceasta este doar promptă mea. 223 00:10:15,110 --> 00:10:17,260 Și așa se pare, și Mi-ar știu doar acest 224 00:10:17,260 --> 00:10:20,480 de a fi citit sau văzut funcția înainte, linii de funcții în PHP citit 225 00:10:20,480 --> 00:10:23,810 ia un argument, care este un prompt pentru om, iar scopul său în viață 226 00:10:23,810 --> 00:10:26,220 este de a citi o linie de text că el sau ea tipuri în. 227 00:10:26,220 --> 00:10:29,160 Și apoi magazine care text în n variabile. 228 00:10:29,160 --> 00:10:32,200 >> Și acum aș putea dori să fac ceva cum am făcut acum câteva săptămâni, în săptămâna ca 229 00:10:32,200 --> 00:10:33,290 unul din clasa. 230 00:10:33,290 --> 00:10:36,600 Dacă n este mai mare decât , atunci, mă duc la zero 231 00:10:36,600 --> 00:10:42,930 pentru a împrumuta că sintaxa tocmai am văzut, def imprimare, ai ales un număr pozitiv, 232 00:10:42,930 --> 00:10:44,360 n backslash. 233 00:10:44,360 --> 00:10:49,990 Altfel, dacă n este egal cu zero, egal, eu sunt merge mai departe și spune, def imprimare, 234 00:10:49,990 --> 00:10:54,090 ai ales la zero backslash n. 235 00:10:54,090 --> 00:10:56,830 Altfel, situația în speță ar trebui să fi, desigur, def imprimare, 236 00:10:56,830 --> 00:10:58,620 ai ales un număr negativ. 237 00:10:58,620 --> 00:11:00,970 >> Si putem implementa cu siguranță logica de acest lucru 238 00:11:00,970 --> 00:11:03,390 într-o grămadă de diferite moduri, dar punctul aici 239 00:11:03,390 --> 00:11:07,210 este faptul că punct de vedere sintactic, abia orice este nou. 240 00:11:07,210 --> 00:11:09,830 E doar semnul dolar și o nouă funcție și linia de citit. 241 00:11:09,830 --> 00:11:12,090 Dar fundamental, ce mai e nou acum este Sunt interpretarea asta. 242 00:11:12,090 --> 00:11:13,910 Am o trece ca intrare la un alt program. 243 00:11:13,910 --> 00:11:16,620 Deci, dacă vreau să ruleze acest lucru, în cazul în care Nu am face orice greșeli, 244 00:11:16,620 --> 00:11:20,140 Am de gând să ruleze PHP, de Condiții 1 punct PHP, Enter, 245 00:11:20,140 --> 00:11:23,440 Am de gând să tastați în numărul 50, și să presupunem pentru moment funcționează. 246 00:11:23,440 --> 00:11:25,940 Deoarece logica este aceleasi lucruri ca o saptamana. 247 00:11:25,940 --> 00:11:28,020 >> Bine, pentru ca e destul de underwhelming, nu? 248 00:11:28,020 --> 00:11:30,240 Am putea face acest lucru în orice Numărul de limbi. 249 00:11:30,240 --> 00:11:33,200 Să facem ceva mult mai puternic. 250 00:11:33,200 --> 00:11:35,610 Să problemă finisaj set de cinci. 251 00:11:35,610 --> 00:11:37,370 Deci, am de gând să mergeți mai departe și de a face acest lucru. 252 00:11:37,370 --> 00:11:42,920 Am de gând pentru a crea un fișier numit Dicționar dot PHP, 253 00:11:42,920 --> 00:11:45,424 și înclinată ca s-ar putea fi pentru a se lupta în jos o mulțime de note, 254 00:11:45,424 --> 00:11:47,340 notele vor ajuta doar daca ai voie 255 00:11:47,340 --> 00:11:48,923 să pună în aplicare probleme stabilit cinci în PHP. 256 00:11:48,923 --> 00:11:52,706 Dar vom vedea cât de repede acum ne pot implementa același set problemă. 257 00:11:52,706 --> 00:11:56,830 >> Deci, în dot dicționar PHP, am de gând să se presupună că există deja 258 00:11:56,830 --> 00:11:58,514 un fișier în lume numit Speller. 259 00:11:58,514 --> 00:12:01,430 Și într-adevăr, am făcut acest lucru în avans, și nu vom umbla prin această linie 260 00:12:01,430 --> 00:12:03,596 de linie, dar dacă ești curios doresc mai târziu și într-adevăr 261 00:12:03,596 --> 00:12:06,250 să-și încheie în jurul mintea ta diferențe între C și PHP, 262 00:12:06,250 --> 00:12:09,030 literalmente compara acest fișier, Speller, de la codul sursă de azi 263 00:12:09,030 --> 00:12:11,190 că vom posta mai târziu astăzi, împotriva p set 264 00:12:11,190 --> 00:12:15,309 cinci Speller punct C, care vă oferim, și este aproape aceeași linie cu linie. 265 00:12:15,309 --> 00:12:16,600 Există unele semne mai mult de dolari. 266 00:12:16,600 --> 00:12:18,330 Câteva funcții sunt un pic diferit. 267 00:12:18,330 --> 00:12:20,038 Dar e un mod frumos de fel de a vedea modul în care 268 00:12:20,038 --> 00:12:22,740 traduce o limbă în alta. 269 00:12:22,740 --> 00:12:24,812 Și e linie aproape identice pentru linia. 270 00:12:24,812 --> 00:12:27,770 Dar am de gând să se presupună că acel există, și ceea ce am de gând să fac aici 271 00:12:27,770 --> 00:12:31,310 este să încercați să arunce în aer dvs. minte de reimplementing 272 00:12:31,310 --> 00:12:36,210 totalitatea problemei stabilit cinci fel mai repede decât te-ai făcut până acum. 273 00:12:36,210 --> 00:12:39,330 Deci, de exemplu, am de gând să primul declara o variabilă globală numită mărime, 274 00:12:39,330 --> 00:12:40,444 și setați-o egal cu zero. 275 00:12:40,444 --> 00:12:41,610 Acum, că nu e mult de economii. 276 00:12:41,610 --> 00:12:44,170 Cote sunt puse în aplicare te Dimensiunea destul de mult la fel, 277 00:12:44,170 --> 00:12:48,440 sau aluzie indiciu, va seara asta sau mâine, folosind doar o variabilă globală numită 278 00:12:48,440 --> 00:12:49,900 mărimea, și stabilirea-l egal cu zero. 279 00:12:49,900 --> 00:12:52,660 Asta nu e un deosebit spoiler uimitor. 280 00:12:52,660 --> 00:12:57,180 >> Deci, ce au fost datele structurile alegere, cei dintre voi care s-au scufundat în 281 00:12:57,180 --> 00:13:02,170 și citiți spec, structuri de date ce au cele mai multe dintre voi au folosit? 282 00:13:02,170 --> 00:13:06,840 Un tabel hash sau să încerce, poate unele variante ale acestora. 283 00:13:06,840 --> 00:13:10,490 Deci, punerea în aplicare a unui tabel hash, cel puțin, este un fel de o mulțime de linii de cod, 284 00:13:10,490 --> 00:13:10,990 dreapta? 285 00:13:10,990 --> 00:13:13,700 Și nu toate dintre ele ar putea fi funcțional în acest moment în săptămâna, 286 00:13:13,700 --> 00:13:14,366 dar asta e bine. 287 00:13:14,366 --> 00:13:19,300 Pentru că în PHP, dacă am doresc un tabel hash, făcut. 288 00:13:19,300 --> 00:13:20,260 Dreapta? 289 00:13:20,260 --> 00:13:22,610 Așa că variabila care le-am doar declarat este, evident, 290 00:13:22,610 --> 00:13:26,180 numita dolar masă semn, pe introducerea înainte. 291 00:13:26,180 --> 00:13:28,902 >> Dar chiar vreau doar, la sfârșitul zilei, o matrice. 292 00:13:28,902 --> 00:13:31,610 Dar nu o indexat numeric matrice, pentru că e ca doua saptamani 293 00:13:31,610 --> 00:13:33,440 lucruri, atunci când am vorbit despre tablouri. 294 00:13:33,440 --> 00:13:34,850 Vreau un tabel hash. 295 00:13:34,850 --> 00:13:38,070 Dar un tabel hash este într-adevăr doar un mod concret de a spune, 296 00:13:38,070 --> 00:13:40,190 vrei un tablou asociativ. 297 00:13:40,190 --> 00:13:43,270 Vrei să fii în stare să chei asociate cu valori. 298 00:13:43,270 --> 00:13:44,200 Taste cu valori. 299 00:13:44,200 --> 00:13:45,640 Ce este un dicționar, într-adevăr? 300 00:13:45,640 --> 00:13:47,080 Ei bine, e o grămadă de chei. 301 00:13:47,080 --> 00:13:50,320 Cuvinte precum mere, pere, banane și, și toate aceste cuvinte în limba engleză 302 00:13:50,320 --> 00:13:51,490 pe care vă mână. 303 00:13:51,490 --> 00:13:54,820 >> Și valorile pe care ești în mod eficient inserarea în dicționarul 304 00:13:54,820 --> 00:13:57,790 sunt fie adevărate, sau absența, fals. 305 00:13:57,790 --> 00:14:00,540 Cu alte cuvinte, pe care introducerea o grămadă de perechi de valori-cheie, 306 00:14:00,540 --> 00:14:03,720 mere, adevărat, pere, adevărat, banane, adevărat. 307 00:14:03,720 --> 00:14:07,446 Astfel încât atunci când preluați sau uita up care datele din tabel hash 308 00:14:07,446 --> 00:14:10,070 cu funcția de verificare, ești fie obtinerea înapoi un răspuns, 309 00:14:10,070 --> 00:14:13,260 Da, l-am găsit în complexul meu hash masă, sau nu, nu e acolo, 310 00:14:13,260 --> 00:14:14,540 astfel încât să return false. 311 00:14:14,540 --> 00:14:19,440 >> Deci, pentru a face acest lucru, tot ce am nevoie este de date structura cum am propus înainte. 312 00:14:19,440 --> 00:14:22,050 Am nevoie doar să fie în măsură să asocieze cuvinte 313 00:14:22,050 --> 00:14:25,570 cum ar fi, citat unquote, simbol, cu o valoare cum ar fi, adevărat. 314 00:14:25,570 --> 00:14:27,090 Deci nu e masa mea hash. 315 00:14:27,090 --> 00:14:28,180 Să-l folosească de fapt. 316 00:14:28,180 --> 00:14:30,310 Deci sunt câteva funcții Am nevoie de a pune în aplicare. 317 00:14:30,310 --> 00:14:33,300 Am de gând să merg mai departe și musca pe o dimensiune funcție numită. 318 00:14:33,300 --> 00:14:34,390 Este nevoie de nici un argument. 319 00:14:34,390 --> 00:14:36,660 Eu nu trebuie să deranjez cu cuvântul, gol, în PHP. 320 00:14:36,660 --> 00:14:38,770 Am pur și simplu de gând să se întoarcă dimensiune. 321 00:14:38,770 --> 00:14:41,287 >> Și, ca o paranteza, PHP are acest detaliu minorly enervant, 322 00:14:41,287 --> 00:14:44,620 în cazul în care în cazul în care ceva este la nivel mondial, trebuie să spune funcția în care îl utilizați 323 00:14:44,620 --> 00:14:46,220 ea, hei, aceasta este o variabilă globală. 324 00:14:46,220 --> 00:14:49,330 Deci, prostia minor, dar Trebuie să o fac totuși. 325 00:14:49,330 --> 00:14:50,920 >> Deci, ce despre sarcină? 326 00:14:50,920 --> 00:14:52,990 Am de gând să pună în aplicare o sarcină funcție numită 327 00:14:52,990 --> 00:14:56,790 care ia în numele unui dicționar, la fel ca și în problema set de cinci. 328 00:14:56,790 --> 00:14:59,554 Și înainte să efectueze, observați că nu am 329 00:14:59,554 --> 00:15:00,970 fost tastarea destul de aceleași lucruri. 330 00:15:00,970 --> 00:15:06,060 Ce este, evident, diferit în PHP despre cum declara o functie comparativ cu C? 331 00:15:06,060 --> 00:15:06,616 Da. 332 00:15:06,616 --> 00:15:07,490 Audiența: [inaudibil] 333 00:15:07,490 --> 00:15:08,573 SPEAKER 1: Fără tip de întoarcere. 334 00:15:08,573 --> 00:15:12,350 Și într-adevăr, acesta este cazul, PHP în măsura în care este liber tipizat, 335 00:15:12,350 --> 00:15:14,190 este, de asemenea, un pic neglijent în acest sens. 336 00:15:14,190 --> 00:15:17,680 Nu specificați ca programator ce revine această funcție. 337 00:15:17,680 --> 00:15:20,490 Tu ar trebui să te uiți de fapt la codul pentru a seama de asta. 338 00:15:20,490 --> 00:15:22,670 Sau de a citi comentariile sau documentația. 339 00:15:22,670 --> 00:15:24,870 Deci, plusuri și minusuri de aceste tipuri de decizii. 340 00:15:24,870 --> 00:15:26,750 Dar eu trebuie să spun cuvântul cheie, funcția. 341 00:15:26,750 --> 00:15:28,360 Și când vom învăța JavaScript în câteva săptămâni 342 00:15:28,360 --> 00:15:31,026 vom vedea același lucru din nou, dar este aceeași idee. 343 00:15:31,026 --> 00:15:34,220 Numele funcției, argumentul său sau argumente sau lipsa acestora, și acum 344 00:15:34,220 --> 00:15:35,630 aici este punerea în aplicare. 345 00:15:35,630 --> 00:15:38,860 >> Deci, am de gând să taie unele colțuri doar să fie dramatică pentru un moment. 346 00:15:38,860 --> 00:15:40,485 Dar am de gând să merg mai departe și spun acest lucru. 347 00:15:40,485 --> 00:15:44,890 Acest lucru este cum pot încărca un fișier într-o matrice. 348 00:15:44,890 --> 00:15:47,580 Există o funcție în PHP numit fișier. 349 00:15:47,580 --> 00:15:49,300 Ai numele unui fișier mână. 350 00:15:49,300 --> 00:15:53,950 Acesta vă dă înapoi o matrice, în interiorul de care este în fiecare linie de la dosar. 351 00:15:53,950 --> 00:15:56,480 De la zero, unul, pe sus să n minus 1 linii. 352 00:15:56,480 --> 00:15:57,210 Asta e, nu? 353 00:15:57,210 --> 00:15:57,990 Nu e nici f citit. 354 00:15:57,990 --> 00:15:58,826 Nu e nici f get s. 355 00:15:58,826 --> 00:15:59,700 Nu e nici o sută s. 356 00:15:59,700 --> 00:16:00,420 Nu sunt dureri de cap. 357 00:16:00,420 --> 00:16:01,220 Nu e nici o feof. 358 00:16:01,220 --> 00:16:03,950 Toate lucrurile care cu care ai fost lupte, probabil, 359 00:16:03,950 --> 00:16:06,550 cu p set patru și cinci, dispare. 360 00:16:06,550 --> 00:16:09,450 >> Deci, am citit doar acele linii în fișierul, și apoi știi ce? 361 00:16:09,450 --> 00:16:15,510 Dacă vreau să itera peste aceste cuvinte, Eu pot face, pentru fiecare linii ca linie. 362 00:16:15,510 --> 00:16:19,992 Amintiți-vă că acest lucru a fost un fel de inteligent mod de iterarea peste o matrice, index 363 00:16:19,992 --> 00:16:25,090 de index, și pe fiecare iterație de asteptare linia curentă, dolarul linie semn. 364 00:16:25,090 --> 00:16:31,560 Și aici am de gând să merg și spun masă, suport, linie, devine adevărat. 365 00:16:31,560 --> 00:16:35,880 >> Cu alte cuvinte, acest lucru este cum am introduce în masa mea hash în PHP. 366 00:16:35,880 --> 00:16:38,740 Eu spun masă semn dolar, care este array asociativ mea, care a fost 367 00:16:38,740 --> 00:16:40,690 gol pe linia de cod deasupra. 368 00:16:40,690 --> 00:16:42,790 Apoi m-am index în ea Nu, folosind un număr, 369 00:16:42,790 --> 00:16:45,300 dar literalmente folosind cuvânt cheie care îmi pasă. 370 00:16:45,300 --> 00:16:47,730 Poate e de mere sau pere sau banane sau orice altceva, 371 00:16:47,730 --> 00:16:51,645 dar în mod special am indexarea în ea ca și cum aș propus mai devreme. 372 00:16:51,645 --> 00:16:53,770 Eu iau numele meu tablou asociativ, și apoi m-am 373 00:16:53,770 --> 00:16:56,450 utilizați citat încheiat citatul în paranteze drepte, cu un șir, 374 00:16:56,450 --> 00:16:58,490 în loc de un număr real. 375 00:16:58,490 --> 00:17:00,250 >> Și așa asta e. 376 00:17:00,250 --> 00:17:01,720 Funcția de încărcare se face. 377 00:17:01,720 --> 00:17:05,119 Odată ce reiterează buclă, am pus totul în tabelul hash. 378 00:17:05,119 --> 00:17:07,810 Acum Disclaimer mic, există o câteva lucruri am nevoie de a stabili. 379 00:17:07,810 --> 00:17:10,030 Și versiunea Voi posta on-line va avea toate nuanțele, 380 00:17:10,030 --> 00:17:12,670 dar este cea mai mare parte doar de gând să fie o verificarea erorilor și unele trucuri minore. 381 00:17:12,670 --> 00:17:14,044 Dar asta e, într-adevăr esența de ea. 382 00:17:14,044 --> 00:17:16,750 Dacă acum vreau să pună în aplicare funcția numit 383 00:17:16,750 --> 00:17:19,869 verifica, care se așteaptă la o cuvânt ca argument, 384 00:17:19,869 --> 00:17:22,099 cum s-ar putea să merg despre a face asta? 385 00:17:22,099 --> 00:17:30,020 Ei bine, am de gând să spun pur și simplu, în cazul în care interiorul masa mea, la locația cuvânt, 386 00:17:30,020 --> 00:17:30,652 dacă este setat. 387 00:17:30,652 --> 00:17:32,360 Deci, dacă există este-- De fapt, știi ce? 388 00:17:32,360 --> 00:17:34,830 Am de gând să o fac în un pic de pseudocod. 389 00:17:34,830 --> 00:17:36,020 Dar ideea este aceeași. 390 00:17:36,020 --> 00:17:41,640 Dacă acest lucru este egal cu adevărat, return true. 391 00:17:41,640 --> 00:17:43,890 In regula. 392 00:17:43,890 --> 00:17:46,851 Else-- puteți fel de a vedea unde acest lucru este going-- să se întoarcă false. 393 00:17:46,851 --> 00:17:47,350 Efectuat. 394 00:17:47,350 --> 00:17:49,640 De verificare se face. 395 00:17:49,640 --> 00:17:50,940 >> Destul de frumos, nu? 396 00:17:50,940 --> 00:17:52,560 Și așa mai departe ceea ce este acest lucru cu adevărat ajungi? 397 00:17:52,560 --> 00:17:53,680 Și asta, am tăiat unele colțuri. 398 00:17:53,680 --> 00:17:56,020 Uită-te la versiunea online pentru toate mici nuanțe. 399 00:17:56,020 --> 00:17:57,103 Dar asta e esența de ea. 400 00:17:57,103 --> 00:17:59,080 Index în ta tablou asociativ, a.k.a. 401 00:17:59,080 --> 00:18:02,910 Tabel hash, vezi dacă există o valoare acolo, în cazul în care este setat la true, și dacă da, 402 00:18:02,910 --> 00:18:03,930 return true. 403 00:18:03,930 --> 00:18:05,819 Deci ne-am diminuate până toate complexitatea. 404 00:18:05,819 --> 00:18:07,110 Deci, un fel de minte suflare, nu? 405 00:18:07,110 --> 00:18:09,680 Eu nu va deranja aceasta terminând cu descărcare, pentru că în fact-- oh, știi ce? 406 00:18:09,680 --> 00:18:11,620 Da, hai să termine cu descărcare. 407 00:18:11,620 --> 00:18:18,940 >> Descărca într-un tabel hash ar putea arata ca funcția de descărcare, se întoarcă. 408 00:18:18,940 --> 00:18:19,930 OK așa că e de descărcare. 409 00:18:19,930 --> 00:18:21,350 Pentru că nu e nimic pentru a descărca, nu? 410 00:18:21,350 --> 00:18:22,170 Nu e nici o malloc. 411 00:18:22,170 --> 00:18:24,280 Nu am cerut în mod explicit sistem de operare pentru nimic. 412 00:18:24,280 --> 00:18:25,571 Tocmai am inceput sa folosesc variabile. 413 00:18:25,571 --> 00:18:30,510 Și așa și aceasta este o manifestare a Caracteristici limbi nivel superior. 414 00:18:30,510 --> 00:18:32,940 Deci, din nou, cea mai mare parte acest termen am fost de-a face aici 415 00:18:32,940 --> 00:18:34,280 cu C. nivel Super scăzut. 416 00:18:34,280 --> 00:18:35,980 Puteti vedea memoria calculatorului. 417 00:18:35,980 --> 00:18:38,440 Puteți atinge tot ce doresc în RAM a computerului, 418 00:18:38,440 --> 00:18:39,440 pentru bine și la rău. 419 00:18:39,440 --> 00:18:41,760 >> Aici, vom să renunțe la această putere. 420 00:18:41,760 --> 00:18:44,730 Dar Doamne, uite ce mult mai puțin cod am scris. 421 00:18:44,730 --> 00:18:47,660 De fapt, dacă nu s-au vorbit și vorbesc peste dactilografiere mea, 422 00:18:47,660 --> 00:18:50,190 ne-ar fi putut face cu acest exemplu acum cinci minute. 423 00:18:50,190 --> 00:18:52,150 Deci, ce este prețul plătit? 424 00:18:52,150 --> 00:18:54,100 Ei bine, haideți să aruncăm o privire. 425 00:18:54,100 --> 00:18:55,340 Hai să aruncăm o privire. 426 00:18:55,340 --> 00:18:59,340 Am de gând să merg mai departe și a alerga CS50. 427 00:18:59,340 --> 00:19:02,160 Lasă-mă să merg mai întâi în Exemple de astăzi în cazul în care 428 00:19:02,160 --> 00:19:03,970 Am directorul texte ca înainte. 429 00:19:03,970 --> 00:19:08,520 Am de gând să executați soluția care el vine cu o problemă set de cinci numit 430 00:19:08,520 --> 00:19:11,190 Speller, care este în contul CS50 lui. 431 00:19:11,190 --> 00:19:14,040 >> Și am de gând să-l rula pe ceva mare ca Biblia King James, 432 00:19:14,040 --> 00:19:16,547 doar pentru ca am pus într-adevăr soluții de personal la încercare. 433 00:19:16,547 --> 00:19:19,130 Acum, uneori, pe internet este un pic mai lent, un pic mai repede, 434 00:19:19,130 --> 00:19:20,338 s-ar putea dura un timp pentru a derula. 435 00:19:20,338 --> 00:19:23,730 Dar a fost nevoie de un total de .56 secunde pentru a verifica vraja King James 436 00:19:23,730 --> 00:19:25,150 Biblia folosind soluția de personal. 437 00:19:25,150 --> 00:19:25,620 Deci, destul de bine. 438 00:19:25,620 --> 00:19:27,786 Al tău ar putea fi mult mai lent, și asta e în regulă. 439 00:19:27,786 --> 00:19:30,090 Dar este corect aici. 440 00:19:30,090 --> 00:19:32,440 Deci asta e soluția personal. 441 00:19:32,440 --> 00:19:34,785 Dacă mă duc și curețe versiunea PHP. 442 00:19:34,785 --> 00:19:36,990 Și am de gând să fac un pic de ca de copt spectacol lucru. 443 00:19:36,990 --> 00:19:39,720 Vom lua codul am scris mai devreme, așa că este perfect corect. 444 00:19:39,720 --> 00:19:42,678 Deoarece codul am scris nu se va să fie perfect corect chiar acum. 445 00:19:42,678 --> 00:19:47,310 Dar dacă I ​​a alerga versiunea PHP, Ce trebuie să renunțe la ziua de azi? 446 00:19:47,310 --> 00:19:49,980 Mi-a luat cinci minute pentru a punerea în aplicare a p set de cinci, eu pretind. 447 00:19:49,980 --> 00:19:51,770 Ce preț au am plătit? 448 00:19:51,770 --> 00:19:52,270 Da. 449 00:19:52,270 --> 00:19:52,937 >> Audiența: Viteza. 450 00:19:52,937 --> 00:19:53,645 SPEAKER 1: Viteza. 451 00:19:53,645 --> 00:19:54,380 Ce vrei sa spui? 452 00:19:54,380 --> 00:19:55,230 >> Audiența: Va dura mai mult. 453 00:19:55,230 --> 00:19:55,660 >> SPEAKER 1: Bine. 454 00:19:55,660 --> 00:19:56,160 Sa vedem. 455 00:19:56,160 --> 00:19:59,590 O să dureze mai mult, nu scrie, dar să-l rulați. 456 00:19:59,590 --> 00:20:00,090 Da. 457 00:20:00,090 --> 00:20:00,960 Așa că haideți să încercăm. 458 00:20:00,960 --> 00:20:05,720 Deci, aici am de gând să mergeți mai departe și de a face PHP de Speller, și pentru că fișierului 459 00:20:05,720 --> 00:20:06,360 numit Speller. 460 00:20:06,360 --> 00:20:07,580 Deci, eu nu sunt rulează Dicționar, amintesc, 461 00:20:07,580 --> 00:20:09,204 Sunt rularea programului numit Speller. 462 00:20:09,204 --> 00:20:12,450 Am de gând să treacă în același fișier, King James a cincea. 463 00:20:12,450 --> 00:20:14,377 E de zbor de. 464 00:20:14,377 --> 00:20:17,210 Acest lucru ar putea fi doar de viteza de internet, asa ca nu citesc prea mult in asta. 465 00:20:17,210 --> 00:20:21,680 Dar se simte mai sigur. 466 00:20:21,680 --> 00:20:23,280 1.26 secunde. 467 00:20:23,280 --> 00:20:25,150 >> Acum, că e încă destul de al naibii de repede, nu? 468 00:20:25,150 --> 00:20:28,140 Și singurul motiv pentru care simtit ca mai mult ca trei, sau patru, sau cinci 469 00:20:28,140 --> 00:20:30,515 secunde, asta e doar pentru că Internetul a dat lent. 470 00:20:30,515 --> 00:20:33,980 Timpul petrecut de calculator a fost 1,26 secunde, fata de 0,56 cred. 471 00:20:33,980 --> 00:20:35,880 Deci, mai mult decât de două ori la fel de lent. 472 00:20:35,880 --> 00:20:39,170 Acum, că e încă destul de al naibii de rapid, dar este o manifestare 473 00:20:39,170 --> 00:20:40,860 de, într-adevăr, că tariful exact. 474 00:20:40,860 --> 00:20:43,460 >> Pentru ca suntem interpretarea în linia de cod de linie, 475 00:20:43,460 --> 00:20:46,740 și că programul PHP citește meu Codul sus în jos, la stânga la dreapta, 476 00:20:46,740 --> 00:20:47,940 trebuie să facă mai mult de gândire. 477 00:20:47,940 --> 00:20:50,430 Trebuie să fel de a converti ea însăși în interiorul 478 00:20:50,430 --> 00:20:53,464 pentru fiecare mașină cod pe zbor, ca să spunem așa, 479 00:20:53,464 --> 00:20:55,380 chiar dacă mecanicii sunt un pic diferit. 480 00:20:55,380 --> 00:20:59,430 În loc de doar alimentare la Intel CPU zerouri prime și cele 481 00:20:59,430 --> 00:21:00,930 că înțelege nativ. 482 00:21:00,930 --> 00:21:04,110 >> Deci absolut, mâinile în jos, am plătit un preț. 483 00:21:04,110 --> 00:21:09,120 Și codul scris într-o limbă ca PHP tinde să fie mai lent. 484 00:21:09,120 --> 00:21:10,050 Dar Dumnezeu mi. 485 00:21:10,050 --> 00:21:12,740 Așa că acum, când am vraja verifica meu fișier, mi-am petrecut un plus de 0.7 486 00:21:12,740 --> 00:21:17,280 sau așa secunde vs 20 ore pentru a implementa o mai rapida corector ortografic, nu? 487 00:21:17,280 --> 00:21:18,397 E un fel de compromis. 488 00:21:18,397 --> 00:21:20,980 Și dacă sunteți doar incepand p set de cinci, nu ar putea fi de 20 de ore. 489 00:21:20,980 --> 00:21:22,188 S-ar putea să fie mult mai puține decât atât. 490 00:21:22,188 --> 00:21:23,600 Dar e un compromis, pentru Real. 491 00:21:23,600 --> 00:21:27,820 Și dacă rulați codul pe foarte mare seturi de date, sau pe hardware-ul chiar mai mari, 492 00:21:27,820 --> 00:21:32,650 aceste tipuri de diferențe Puteți adăuga cu siguranță în sus. 493 00:21:32,650 --> 00:21:34,880 >> Orice întrebări până acum? 494 00:21:34,880 --> 00:21:35,617 Da. 495 00:21:35,617 --> 00:21:36,492 >> Audiența: [inaudibil] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 SPEAKER 1: Ne pare rău, poate ai spus o dată mai mult? 498 00:21:39,978 --> 00:21:40,853 Audiența: [inaudibil] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 SPEAKER 1: Esti renunțarea la timp. 501 00:21:44,700 --> 00:21:45,283 Ei bine, așa da. 502 00:21:45,283 --> 00:21:47,322 Sunteți economie de timp de nu au să-l compilați, 503 00:21:47,322 --> 00:21:48,530 dacă asta e ceea ce cere. 504 00:21:48,530 --> 00:21:50,710 Și într-adevăr, în CS50, majoritatea programelor, 505 00:21:50,710 --> 00:21:53,668 chiar dacă s-ar putea dura un timp pentru a scrie, sunt relativ scurt. 506 00:21:53,668 --> 00:21:56,860 Câteva zeci de, câteva sute de linii de cod, și astfel încât acestea compila destul de repede. 507 00:21:56,860 --> 00:21:58,470 Dar atunci când începeți scrierea de programe mai mari, 508 00:21:58,470 --> 00:22:01,511 ca daca esti Microsoft sau esti Google și scrierea programelor într-adevăr mari 509 00:22:01,511 --> 00:22:05,360 în C, sau C ++, sau în mod similar compilate limbi, ar putea dura mai multe secunde, 510 00:22:05,360 --> 00:22:08,577 sau chiar minute sau mai mult la compila milioane de linii de cod. 511 00:22:08,577 --> 00:22:10,660 Și acolo, că diferență se va adăuga în sus. 512 00:22:10,660 --> 00:22:12,840 >> Și, de fapt, odată ce vom tranziție de astăzi, în aceeași zi 513 00:22:12,840 --> 00:22:15,910 astăzi, la programare web folosind PHP, ești 514 00:22:15,910 --> 00:22:18,460 gând să-l găsi doar atât de mult mai plăcut de a scrie cod 515 00:22:18,460 --> 00:22:21,501 atunci când nu au de a face aceste stupid măsuri cum ar fi schimbarea la terminalul 516 00:22:21,501 --> 00:22:24,202 fereastră, de tip make salut, re rulați-l, reîncărcați fereastra. 517 00:22:24,202 --> 00:22:25,910 Doar atât de multe de prost pași mecanice care 518 00:22:25,910 --> 00:22:28,480 doar să stea în calea de a face interesant, opera de distracție. 519 00:22:28,480 --> 00:22:31,450 Și într-adevăr am arunca că departe cu PHP. 520 00:22:31,450 --> 00:22:34,960 Și putem interacționa cu ea mai rapid. 521 00:22:34,960 --> 00:22:35,495 Da. 522 00:22:35,495 --> 00:22:36,370 Audiența: [inaudibil] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 SPEAKER 1: Sigur. 525 00:22:40,960 --> 00:22:42,876 Pot să clarifice ce înseamnă să fii interpretat? 526 00:22:42,876 --> 00:22:45,870 Când compilați un limbaj cum ar fi C, se duce în jos 527 00:22:45,870 --> 00:22:48,140 așa cum am spus la mașină cod, zerouri și cele. 528 00:22:48,140 --> 00:22:51,860 Și Intel a decis cu ani în urmă că anumite modele de zero-uri și cele 529 00:22:51,860 --> 00:22:56,220 reprezintă plus, sau scădere, sau de imprimare, sau alte operațiuni de bază. 530 00:22:56,220 --> 00:23:00,250 În lumea de un limbaj interpretat cum ar fi PHP, JavaScript sau, sau Python, 531 00:23:00,250 --> 00:23:03,120 sau Ruby, sau buchete de alții, în schimb cineva 532 00:23:03,120 --> 00:23:05,120 a scris o interpreter-- în acest caz, 533 00:23:05,120 --> 00:23:09,770 este, de asemenea numit PHP, identic cu Numele language-- care, în esență, 534 00:23:09,770 --> 00:23:13,840 are o buclă mare în ea că reiterează peste toate liniile de cod 535 00:23:13,840 --> 00:23:18,170 că l-am hrăni ca de intrare, cum ar fi salut dot PHP, sau punct dicționarul PHP. 536 00:23:18,170 --> 00:23:21,760 >> Și apoi vă puteți gândi de mare buclă ca având o mulțime de condiții. 537 00:23:21,760 --> 00:23:26,340 Și aceste condiții spune, în cazul în care umană a scris cuvântul cheie pentru, 538 00:23:26,340 --> 00:23:28,470 începe să faci lui sau a ei Codul nou și din nou. 539 00:23:28,470 --> 00:23:31,360 Sau în cazul în care omul are scris linia de cod, 540 00:23:31,360 --> 00:23:34,880 dacă, numai executa lor următor linie condiționat. 541 00:23:34,880 --> 00:23:37,740 Deci e adevarat ca interpretarea într-un sens uman, linie 542 00:23:37,740 --> 00:23:39,660 de linie, și care ia doar de timp. 543 00:23:39,660 --> 00:23:41,340 Este nevoie de deasupra capului. 544 00:23:41,340 --> 00:23:44,189 Și așa că e un price-- bine question-- plătim. 545 00:23:44,189 --> 00:23:46,480 Deci, hai sa facem un alt demo care este un pic mai dramatic. 546 00:23:46,480 --> 00:23:51,160 Nu este, aș spune, un stadion acest lucru la o probabilitate de 90% de a nu oribil, 547 00:23:51,160 --> 00:23:53,869 dar vei fi uimit cu 10% probabilitate. 548 00:23:53,869 --> 00:23:55,660 Deci, în fiecare an vom încerca a face acest lucru, prin care ne-am 549 00:23:55,660 --> 00:23:59,061 încercați să scrie un program care trece prin problemă set la zero, pentru care ați 550 00:23:59,061 --> 00:24:02,060 prezentate numere de telefon și o mulțime de alte informații demografice, 551 00:24:02,060 --> 00:24:06,030 si noi programatic va trimite un mesaj de tip text. 552 00:24:06,030 --> 00:24:08,540 Și apoi de telefon tuturor începe bip sau vibratoare, 553 00:24:08,540 --> 00:24:11,460 și este pur și simplu uimitor, pentru că Ei bine, uita-te la ceea ce computerele pot face. 554 00:24:11,460 --> 00:24:13,840 >> Acest rareori funcționează corect se pare, în mare parte 555 00:24:13,840 --> 00:24:16,800 pentru că am de obicei, ajunge pe lista neagră prin Gmail sau alte servicii 556 00:24:16,800 --> 00:24:19,630 pentru, de fapt încercarea de a face acest lucru pe scară. 557 00:24:19,630 --> 00:24:24,940 Dar lucru ciudat este prea, din moment ce nu au toată lumea de aici astăzi, 558 00:24:24,940 --> 00:24:27,690 fapt distractiv trecut am timp încercat acest urmă cu doi ani, 559 00:24:27,690 --> 00:24:30,870 Cred că am scris un program care stătea într-un iterarea buclă 560 00:24:30,870 --> 00:24:34,040 peste toți elevii din clasă, și fiecare dintre ele un mesaj text, 561 00:24:34,040 --> 00:24:37,534 și a spus ceva de genul, De ce nu ești în curs? 562 00:24:37,534 --> 00:24:39,170 Dragoste, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Nu ai idee cât de multe apologetic și e-mailuri fel de dureroase 564 00:24:42,580 --> 00:24:46,970 Am primit răspuns de la n minus 100 de persoane care nu au fost aici 565 00:24:46,970 --> 00:24:47,960 acea zi. 566 00:24:47,960 --> 00:24:52,116 Și chiar mai amuzant, mai rușinos story-- Știi, să-l pună acolo. 567 00:24:52,116 --> 00:24:53,740 E deja pe video acum câțiva ani. 568 00:24:53,740 --> 00:24:56,810 Așa că mă va vedea în curând Trimite pentru buclă, prin care 569 00:24:56,810 --> 00:25:00,640 este foarte ușor pentru a scrie un bug în care pentru bucla, astfel încât prima dată 570 00:25:00,640 --> 00:25:02,800 prin bucla, ai trimite un mesaj text. 571 00:25:02,800 --> 00:25:06,190 >> A doua oară prin bucla I ar fi trimis mai multe mesaje text, 572 00:25:06,190 --> 00:25:08,250 și apoi un text mai multe mesaj, și unul mai mult. 573 00:25:08,250 --> 00:25:11,490 Dar se pare că, dacă faci o greșeală de scriere atunci când programare, uneori, 574 00:25:11,490 --> 00:25:14,460 poate scrie programe care trimit o mesaj text, apoi două mesaje text, 575 00:25:14,460 --> 00:25:18,742 apoi de trei mesaje text pentru toată lumea care a primit deja un mesaj de tip text. 576 00:25:18,742 --> 00:25:21,450 Și, după cum știți, face ceva, plus ceva, plus ceva, 577 00:25:21,450 --> 00:25:25,910 plus ceva, este O mare de o mulțime de mesaje text, sau n pătrat, 578 00:25:25,910 --> 00:25:29,830 sau de la $ 0,10 un mesaj text, 20.000 $. 579 00:25:29,830 --> 00:25:33,700 >> Din fericire am lovit de control-C înainte de faptul că sa întâmplat, dar am datorez cel puțin un 580 00:25:33,700 --> 00:25:37,550 dintre predecesorii dumneavoastră 20 de dolari pentru 200 unele mesaje text ciudat că, 581 00:25:37,550 --> 00:25:40,450 nu a mers numai la telefonul său, dar De asemenea, a fost ca un telefon mai vechi clapa 582 00:25:40,450 --> 00:25:43,520 așa că place împins sale Memoria fiecare alt text personal 583 00:25:43,520 --> 00:25:45,930 Mesajul el a ajuns, de fapt. 584 00:25:45,930 --> 00:25:49,250 Deci avem un singur scop astăzi, să nu faci asta. 585 00:25:49,250 --> 00:25:50,620 Poate activa modul avion. 586 00:25:50,620 --> 00:25:51,120 In regula. 587 00:25:51,120 --> 00:25:56,590 Deci, să mergem într-un Programul aici callled-- 588 00:25:56,590 --> 00:25:59,060 pe care o voi suna textul punct PHP. 589 00:25:59,060 --> 00:26:01,074 Și în avans, am două fișiere aici. 590 00:26:01,074 --> 00:26:06,030 Am făcut un fișier doar pentru personalul, care are toate info personalului, toate numele 591 00:26:06,030 --> 00:26:07,260 pe site-ul cursului. 592 00:26:07,260 --> 00:26:09,756 Și apoi pentru acum doar pus unele numere false 555-1212. 593 00:26:09,756 --> 00:26:11,380 Astfel încât acestea nu ar merge de fapt nicăieri. 594 00:26:11,380 --> 00:26:15,140 Dar observați în interiorul acestui fișier CSV, care am vorbit despre înainte de scurt 595 00:26:15,140 --> 00:26:16,540 în contextul de fișier IO. 596 00:26:16,540 --> 00:26:18,730 >> Ce este un fișier CSV? 597 00:26:18,730 --> 00:26:19,970 Separate prin virgulă variabile. 598 00:26:19,970 --> 00:26:24,400 Și acest lucru este un fel de foarte de baze de date ușor, dacă vreți. 599 00:26:24,400 --> 00:26:28,650 Există un fel de fel de patru coloane în acest dosar, și nu zimțate, 600 00:26:28,650 --> 00:26:32,400 dar virgulele în esență, reprezintă coloane din dosar. 601 00:26:32,400 --> 00:26:35,400 Prima coloană este TF sau numele CA. 602 00:26:35,400 --> 00:26:37,800 A doua coloană este numele de la ultima lor. 603 00:26:37,800 --> 00:26:39,820 Coloana a treia este numărul lor de telefon. 604 00:26:39,820 --> 00:26:44,760 Și a patra coloană, aparent este-- al patrulea coloană este aparent ce? 605 00:26:44,760 --> 00:26:45,870 OK, deci este purtător lor. 606 00:26:45,870 --> 00:26:47,180 Deci Verizon, Sprint sau, sau ceea ce nu. 607 00:26:47,180 --> 00:26:48,620 Și dacă misspoke mai devreme, CSV. 608 00:26:48,620 --> 00:26:51,800 Valori separate prin virgulă CSV este aici. 609 00:26:51,800 --> 00:26:54,260 >> Deci, ce pot face cu acest lucru? 610 00:26:54,260 --> 00:26:56,940 Ei bine, acest lucru este doar un fișier text mare, și e un fel de lung, nu? 611 00:26:56,940 --> 00:26:58,690 Ca și acest lucru se întâmplă pentru fi un fel de enervant. 612 00:26:58,690 --> 00:27:03,510 Și se pare că, totuși, că, dacă am doriți să trimiteți un mesaj text la, să 613 00:27:03,510 --> 00:27:05,180 spune Alex aici. 614 00:27:05,180 --> 00:27:09,690 Lasă-mă să intru în browser-ul meu și a ieși din modul ecran complet 615 00:27:09,690 --> 00:27:11,660 doar ca să pot comuta înainte și înapoi. 616 00:27:11,660 --> 00:27:20,280 Se pare, să vedem, dacă mă duc în aici, și intrați în Gmail, bine. 617 00:27:20,280 --> 00:27:22,950 Nu te uita la această parte. 618 00:27:22,950 --> 00:27:23,880 Am ajunge pentru a vedea. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 desigur, poate Livestream încă vedea ce fac. 621 00:27:28,800 --> 00:27:29,360 In regula. 622 00:27:29,360 --> 00:27:31,850 >> Deci, aici este doar Gmail cu Contul John Harvard. 623 00:27:31,850 --> 00:27:34,000 Deci, dacă vreau să trimit un mesaj text la Alex, 624 00:27:34,000 --> 00:27:35,530 Pot compune, desigur, un mesaj. 625 00:27:35,530 --> 00:27:38,410 Și se pare, și am testat cu Alex înainte aici, 626 00:27:38,410 --> 00:27:42,260 astfel încât să puteți adăuga un anumit domeniu nume la numerele de telefon oamenilor, 627 00:27:42,260 --> 00:27:45,850 deoarece există în lume lucruri chemat SMS a trimite un email gateway. 628 00:27:45,850 --> 00:27:50,000 Care este o modalitate de a spune tuturor fantezie dintre noi care au telefoane mobile care 629 00:27:50,000 --> 00:27:53,200 au numere de telefon, desigur, există, probabil, este pentru operatorul dvs., 630 00:27:53,200 --> 00:27:56,840 un anumit sufix ca la Vtext.com pentru mesaj text Verizon 631 00:27:56,840 --> 00:28:00,320 dot com, pe care le puteți adăuga la dvs. propriul număr de telefon personal, și apoi 632 00:28:00,320 --> 00:28:03,540 tine sau prietenii, sau parintii tai poate te textul la acea adresă particular. 633 00:28:03,540 --> 00:28:07,380 >> Și Verizon are un server, un e-mail Server, că la primirea acestui e-mail, 634 00:28:07,380 --> 00:28:11,180 se uită la partea numerică și apoi foloseste orice special magie industrie 635 00:28:11,180 --> 00:28:14,540 ei trebuie să-l trimită de fapt peste undele radio în celulă special 636 00:28:14,540 --> 00:28:15,040 telefon. 637 00:28:15,040 --> 00:28:18,030 Acum, acest lucru este frumos, pentru că eu nu într-adevăr știu cum să trimită un mesaj text 638 00:28:18,030 --> 00:28:20,460 sau pentru a scrie încă cod pentru telefonul meu mobil, 639 00:28:20,460 --> 00:28:23,580 și s-ar putea face exact acest lucru pentru un proiect final, dar de acum toate 640 00:28:23,580 --> 00:28:24,770 Am este laptop-ul meu aici. 641 00:28:24,770 --> 00:28:29,830 Deci, vreau să itera peste care CSV fișier, linie, de linie, de linie, de linie, 642 00:28:29,830 --> 00:28:35,160 apuca fiecare dintre numerele de telefon personalului, și transportator și prin programare, 643 00:28:35,160 --> 00:28:39,770 înlănțui, care este, conectați telefonul Numărul cu numele de domeniu corespunzător 644 00:28:39,770 --> 00:28:40,820 și apoi trimite un e-mail. 645 00:28:40,820 --> 00:28:41,940 >> Așa că o mulțime de pași. 646 00:28:41,940 --> 00:28:45,530 Și noroc face că, în C. Este un coșmar de-o situație 647 00:28:45,530 --> 00:28:48,350 pentru a deschide un fișier, să-l citesc linie, de linie, de linie, în timp ce 648 00:28:48,350 --> 00:28:51,100 văd, sau pot vedea în curând cu problema set de cinci, în cazul în care nu 649 00:28:51,100 --> 00:28:53,560 problemă set de patru, și apoi la înlănțui dinamic 650 00:28:53,560 --> 00:28:57,020 două șiruri împreună, pentru că în C, să ia două șiruri și să le combine, 651 00:28:57,020 --> 00:29:00,900 ce părere aveți minim trebuie să facem cel mai probabil? 652 00:29:00,900 --> 00:29:03,020 Ai nevoie de a declara mai multă memorie, nu? 653 00:29:03,020 --> 00:29:04,710 Și de a pune, malloc, pot avea mai multă memorie? 654 00:29:04,710 --> 00:29:07,060 Deci, eu pot pune jumatate din aceasta aici, jumătate din acest aici. 655 00:29:07,060 --> 00:29:08,150 E atât de mulți pași. 656 00:29:08,150 --> 00:29:10,310 Și de acel moment ți-ai pierdut interes în demo stupid mic 657 00:29:10,310 --> 00:29:11,851 în cazul în care face bip telefon tuturor. 658 00:29:11,851 --> 00:29:14,590 Să facem acest tip de PHP stil, prin care ne-am 659 00:29:14,590 --> 00:29:16,210 începe să utilizați mai mult de faptul că chiuveta de bucatarie. 660 00:29:16,210 --> 00:29:18,050 >> Și ideile sunt fundamental aceeași, 661 00:29:18,050 --> 00:29:20,710 dar nu trebuie să vă faceți griji prea mult despre asta nivel inferior. 662 00:29:20,710 --> 00:29:22,950 Deci, hai sa vedem cum am putea du-te despre a face acest lucru. 663 00:29:22,950 --> 00:29:26,664 Și ca să nu repete greșelile din trecut, 664 00:29:26,664 --> 00:29:28,330 Am scris câteva note pentru mine aici. 665 00:29:28,330 --> 00:29:31,070 Și să vedem dacă pot să umblăm prin unele dintre etapele fundamentale, 666 00:29:31,070 --> 00:29:33,861 și apoi de dragul timpului ne vom poate reduce unele colțuri în cele din urmă. 667 00:29:33,861 --> 00:29:38,007 Am de gând să merg mai departe și se deschid suport PHP pentru a începe acest fișier. 668 00:29:38,007 --> 00:29:39,590 Și am de gând să mergeți mai departe și de a face acest lucru. 669 00:29:39,590 --> 00:29:41,490 Fișier mâner, după cum veți vedea în curând, de fapt, 670 00:29:41,490 --> 00:29:44,790 solicită o funcție numită f deschis. 671 00:29:44,790 --> 00:29:46,280 Și amintiți-vă acest deschide un fișier. 672 00:29:46,280 --> 00:29:48,800 Și citat, citatul, R înseamnă ce, din nou? 673 00:29:48,800 --> 00:29:49,800 Doar deschide pentru citire. 674 00:29:49,800 --> 00:29:51,210 Acum, în set p pentru, ai făcut asta. 675 00:29:51,210 --> 00:29:54,500 Și mâner putea fi orice, fu, bar, bas, orice nume de variabilă. 676 00:29:54,500 --> 00:29:57,470 Dar, în general un calculator om de știință ar numi un fișier deschis, 677 00:29:57,470 --> 00:30:00,962 oferindu-vă un mâner fișier, ceva să dețină pe ca să spunem așa. 678 00:30:00,962 --> 00:30:02,670 Mă duc să fac unele verificarea erorilor. 679 00:30:02,670 --> 00:30:07,260 Deci, în cazul în care mânerul este falsă, la fel ca în C, am de gând să fac ceva de genul, 680 00:30:07,260 --> 00:30:09,545 nu a putut deschide fișierul, backslash n. 681 00:30:09,545 --> 00:30:11,420 Și apoi Mă duc a merge mai departe și de ieșire. 682 00:30:11,420 --> 00:30:14,340 Și se pare că, în PHP, Eu nu sunt în interiorul unei funcții. 683 00:30:14,340 --> 00:30:16,160 Nu e nici o funcție principală aici. 684 00:30:16,160 --> 00:30:17,450 Așa că nu se mai întorc, în sine. 685 00:30:17,450 --> 00:30:18,120 Am ieși. 686 00:30:18,120 --> 00:30:19,619 Care este în esență același lucru. 687 00:30:19,619 --> 00:30:22,510 Și eu ies cu un Y probabil. 688 00:30:22,510 --> 00:30:24,220 Unul înseamnă doar o eroare de un fel. 689 00:30:24,220 --> 00:30:25,580 Este diferită de zero, asa ca este o eroare. 690 00:30:25,580 --> 00:30:30,220 >> Bine, deci dacă eu sunt aici acum în programul meu, am deschis fișierul. 691 00:30:30,220 --> 00:30:34,250 Am de gând să mergeți mai departe și să declare o matrice numit adrese, 692 00:30:34,250 --> 00:30:38,610 și în C mi-ar fi să știu mărimea matrice în avans, nu? 693 00:30:38,610 --> 00:30:41,910 Sau mi-ar trebui să declare acest lucru este un pointer, iar apoi utilizați malloc. 694 00:30:41,910 --> 00:30:44,720 Și apoi de fiecare dată am citit printr-o altă rând în dosar, 695 00:30:44,720 --> 00:30:46,620 Am de gând să trebuie să malloc mai multă memorie, malloc mai multă memorie. 696 00:30:46,620 --> 00:30:47,703 Aceasta este o durere în gât. 697 00:30:47,703 --> 00:30:50,950 Și din fericire, PHP, Ruby și, și Python, și JavaScript, ei 698 00:30:50,950 --> 00:30:53,880 va crește tablouri dvs. pentru tine în mod automat. 699 00:30:53,880 --> 00:30:54,830 Nu mai malloc. 700 00:30:54,830 --> 00:30:56,227 Nu mai gestionare a memoriei. 701 00:30:56,227 --> 00:30:57,560 Computerul are grija de asta. 702 00:30:57,560 --> 00:31:00,330 Dar prețul pe care îl plătiți. 703 00:31:00,330 --> 00:31:01,350 E un pic mai lent. 704 00:31:01,350 --> 00:31:03,190 Și pentru un program de genul asta nu vom observa. 705 00:31:03,190 --> 00:31:04,720 Vom trimite 100 de mesaje text. 706 00:31:04,720 --> 00:31:06,136 De exemplu, nu o să-l simți. 707 00:31:06,136 --> 00:31:08,430 Este într-adevăr începe numai conteaza limba dvs. de a alege 708 00:31:08,430 --> 00:31:11,490 atunci când datele sau programele obține cu adevărat, într-adevăr considerabilă, 709 00:31:11,490 --> 00:31:14,120 ca va fi cazul cu atât mai mult cu lucrurile noastre bazate pe web. 710 00:31:14,120 --> 00:31:15,450 >> Dar pentru moment să merge înainte. 711 00:31:15,450 --> 00:31:20,120 În timp ce se pare că există o funcție în C numit f obține CSV. 712 00:31:20,120 --> 00:31:24,570 Fișier CSV obține, care are o fișier mâner ca argument, 713 00:31:24,570 --> 00:31:28,810 și continuă apoi, rând, de rând, de rând, pentru a citi într-un rând. 714 00:31:28,810 --> 00:31:30,964 Deci, se citește doar o linie de text din fișierul. 715 00:31:30,964 --> 00:31:34,130 Dar ceea ce e frumos despre această funcție, aceasta nu doar dă-mi-o linie de text. 716 00:31:34,130 --> 00:31:37,320 Se pare ca aceste virgule, și analizează linia. 717 00:31:37,320 --> 00:31:41,740 Și pentru a analiza linia de mijloace pentru a împărți aceasta pe anumite valori în acest context. 718 00:31:41,740 --> 00:31:45,510 >> Cu alte cuvinte, semnul dolar rând este o variabilă care este 719 00:31:45,510 --> 00:31:47,010 O să-mi dea o grămadă de indici. 720 00:31:47,010 --> 00:31:49,635 Acest lucru se întâmplă să fie prima coloană în CSV mea. 721 00:31:49,635 --> 00:31:52,510 Aceasta va fi a doua coloană, aceasta va fi a treia, 722 00:31:52,510 --> 00:31:53,968 și acest lucru va fi al patrulea. 723 00:31:53,968 --> 00:31:57,440 Deoarece rechemare, și Excel NOT coopereze ultima dată când am făcut asta, 724 00:31:57,440 --> 00:32:03,350 dar dacă pot descărca personal dot CSV. 725 00:32:03,350 --> 00:32:04,940 Ne pare rău, nu redenumi. 726 00:32:04,940 --> 00:32:09,120 Dacă pot descărca dot personal CSV, și încercați să deschideți-l, 727 00:32:09,120 --> 00:32:12,510 Deja am registered-- oh nu au actualizat Excel de la ultima dată. 728 00:32:12,510 --> 00:32:15,880 Veți vedea că, în punct de personal CSV, am patru coloane. 729 00:32:15,880 --> 00:32:18,720 Așa că atunci când am citit în primul rând pentru Abby aici, 730 00:32:18,720 --> 00:32:23,582 dolar semn rând 0 este Abby, dolar semn rând unul este Lyons, 731 00:32:23,582 --> 00:32:27,740 dolar semn rând doi este numărul ei, și apoi de transport telefon ei. 732 00:32:27,740 --> 00:32:28,410 >> Deci asta-i tot. 733 00:32:28,410 --> 00:32:30,740 Și asta e frumos, că am Nu trebuie să dau acum din 734 00:32:30,740 --> 00:32:32,800 unde toate aceste virgula fapt sunt. 735 00:32:32,800 --> 00:32:35,300 Deci, am de gând să merg mai departe și face acest lucru, dat fiind faptul că definiția, 736 00:32:35,300 --> 00:32:38,960 Am de gând să spun că numele ei este în suport rând la zero, așa cum a promis. 737 00:32:38,960 --> 00:32:41,150 Și am de gând să grab-- și De fapt, știi ce? 738 00:32:41,150 --> 00:32:42,780 Nu am de gând să vă faceți griji cu privire la numele ei, în acest caz. 739 00:32:42,780 --> 00:32:43,988 Am de gând să-l păstrați simplu. 740 00:32:43,988 --> 00:32:48,610 Am de gând să fac numărul ei este în rândul suport două, cred. 741 00:32:48,610 --> 00:32:50,510 Și transportator ei a fost în cazul în care? 742 00:32:50,510 --> 00:32:53,405 Row trei, unul peste. 743 00:32:53,405 --> 00:32:54,280 Deci, nimic nou acolo. 744 00:32:54,280 --> 00:32:56,770 E doar zero, indexarea într-o matrice. 745 00:32:56,770 --> 00:32:58,760 >> Și acum, am de gând să fac următoarele. 746 00:32:58,760 --> 00:33:03,930 În cazul în care operatorul de transport este egal cu egal AT & T-- Mă duc pentru a avea un loop-- 747 00:33:03,930 --> 00:33:06,790 Vreau să creeze un e-mail adresă care arata ca acest lucru. 748 00:33:06,790 --> 00:33:12,320 O să fie 617-555-1212 la, ce este, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 este ceea ce vreau să fac. 750 00:33:13,490 --> 00:33:15,260 Deci, cum fac asta? 751 00:33:15,260 --> 00:33:16,730 Am de gând să fac următoarele. 752 00:33:16,730 --> 00:33:22,460 Adresa ei va fi numărul ei, și acum, lasă-mă să merg mai departe și a face acest lucru. 753 00:33:22,460 --> 00:33:23,760 Acest lucru este ceva sintaxă funky. 754 00:33:23,760 --> 00:33:27,250 Am putea face la sută s truc, dar pot de fapt, doar face acest lucru. 755 00:33:27,250 --> 00:33:29,900 >> Deci, acesta este un lucru PHP, dar să considerăm ceea ce fac. 756 00:33:29,900 --> 00:33:31,630 Dolari semna adresa pe stânga, doar o variabilă. 757 00:33:31,630 --> 00:33:32,300 Dă-mi o variabilă. 758 00:33:32,300 --> 00:33:33,390 Nu am pentru a specifica tipul. 759 00:33:33,390 --> 00:33:34,570 PHP va da seama. 760 00:33:34,570 --> 00:33:36,580 Pe partea dreapta, ceea ce este tipul de date 761 00:33:36,580 --> 00:33:38,399 de care totul pe pe partea dreaptă? 762 00:33:38,399 --> 00:33:40,190 Se pare ca un șir de caractere, pentru că există dublu 763 00:33:40,190 --> 00:33:42,280 citate pe extrema stângă și extrema dreaptă. 764 00:33:42,280 --> 00:33:44,210 Acum există unele sintaxa nou funky, aici. 765 00:33:44,210 --> 00:33:47,550 Există acolade, și numărul semn dolar. 766 00:33:47,550 --> 00:33:52,860 Dar ia o ghici ce este că sintaxa probabil spune PHP pentru a face pentru mine? 767 00:33:52,860 --> 00:33:53,360 Da. 768 00:33:53,360 --> 00:33:54,630 Doar introduceți valoarea acolo. 769 00:33:54,630 --> 00:33:55,530 Deci, nu la sută s. 770 00:33:55,530 --> 00:33:58,160 Am putea folosi de imprimare f, sau s imprimare f sau ceva de genul acesta, 771 00:33:58,160 --> 00:34:00,070 dar PHP și o mulțime de limbi nivel superior, 772 00:34:00,070 --> 00:34:03,070 ai de gând să văd că ai putea face acelasi lucru funcțional, poate 773 00:34:03,070 --> 00:34:04,019 șase moduri diferite. 774 00:34:04,019 --> 00:34:06,310 Și așa începe să devină o chestiune de proiectare sau de stil. 775 00:34:06,310 --> 00:34:09,902 Deci, aceasta este doar o modalitate de criptic căutarea de a spune, da-mi o adresa de email, 776 00:34:09,902 --> 00:34:12,110 dar plug-in numărul din între aceste acolade. 777 00:34:12,110 --> 00:34:15,440 Și acolade nu vor ajung în adresa finală. 778 00:34:15,440 --> 00:34:18,010 >> Acum putem sări peste unele dintre aceste linii de dragul lui. timp 779 00:34:18,010 --> 00:34:21,210 Deci, dacă un operator de transport este egal cu este egal cu verHorizon-- Hopa, 780 00:34:21,210 --> 00:34:24,989 Verizon-- vreau să fac ceva foarte asemănătoare, în cazul în care adresa devine, 781 00:34:24,989 --> 00:34:27,569 Citat, unquote, numărul la text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 Și apoi eu pot face același tip de lucru pentru restul transportatorilor. 784 00:34:35,050 --> 00:34:37,090 Dar voi face doar punct, punct, punct de acum. 785 00:34:37,090 --> 00:34:43,050 Și acum să presupunem că Vreau să adăugați matrice, apăsați. 786 00:34:43,050 --> 00:34:45,969 Vreau să adăugați la matrice, numit adrese. 787 00:34:45,969 --> 00:34:50,409 >> Această adresă, aceasta este modul în care adăuga ceva la o serie de PHP. 788 00:34:50,409 --> 00:34:51,610 Nu aveți nevoie pentru a face malloc. 789 00:34:51,610 --> 00:34:53,068 Nu trebuie să redimensiona matrice. 790 00:34:53,068 --> 00:34:54,259 Tu spui doar matrice, împinge. 791 00:34:54,259 --> 00:34:57,300 Ce vrei să push-- ce matrice vrei să împingă ceva pe? 792 00:34:57,300 --> 00:34:58,000 Adrese. 793 00:34:58,000 --> 00:34:59,550 Ce vrei să împingă pe adrese? 794 00:34:59,550 --> 00:35:00,350 Adresa. 795 00:35:00,350 --> 00:35:02,430 Și, de fapt, dacă doresc cu adevărat să fie inteligent, 796 00:35:02,430 --> 00:35:05,610 o cantitate de zahăr sintactic pentru aceasta, ca să spunem așa, 797 00:35:05,610 --> 00:35:10,230 ceea ce înseamnă că doar cum se poate face acest lucru în modul mai frumoasa, ar fi de a face acest lucru. 798 00:35:10,230 --> 00:35:14,060 Că are prea efectul de creștere matrice adrese de mărime unul, 799 00:35:14,060 --> 00:35:17,130 și apoi plop că suplimentare adresă e-mail în ea. 800 00:35:17,130 --> 00:35:17,630 Da. 801 00:35:17,630 --> 00:35:19,730 >> Audiența: [inaudibil] 802 00:35:19,730 --> 00:35:22,520 >> SPEAKER 1: o greșeală de scriere cu privire la altceva if-- oh, purtător. 803 00:35:22,520 --> 00:35:23,070 Asta e ok. 804 00:35:23,070 --> 00:35:26,971 De asemenea, nu va dori să-mi eșecul punerea în aplicare a parte a acestui program 805 00:35:26,971 --> 00:35:27,470 mai târziu. 806 00:35:27,470 --> 00:35:28,810 Dar vă mulțumesc pentru prinderea. 807 00:35:28,810 --> 00:35:30,671 Unul mai mult bug. 808 00:35:30,671 --> 00:35:31,170 Multumesc. 809 00:35:31,170 --> 00:35:33,746 Ne dorim ca acest lucru să fie Vtext.com. 810 00:35:33,746 --> 00:35:34,340 Da. 811 00:35:34,340 --> 00:35:34,839 In regula. 812 00:35:34,839 --> 00:35:36,330 Deci, în cazul în care face acest lucru ne lasă? 813 00:35:36,330 --> 00:35:38,224 Am scris codul pentru a deschide fișierul. 814 00:35:38,224 --> 00:35:40,390 Avem o buclă de a repeta peste rândurile din fișierul. 815 00:35:40,390 --> 00:35:43,650 Avem cod care se adaugă la mea matrice, una la un moment dat, în mod corect 816 00:35:43,650 --> 00:35:44,790 adresă e-mail formatate. 817 00:35:44,790 --> 00:35:48,480 Deci, tot ce rămâne într-adevăr este de a trimite un e-mail la fiecare dintre aceste persoane. 818 00:35:48,480 --> 00:35:52,830 >> Așa că am mers mai departe și eu pregătit, după cum urmează. 819 00:35:52,830 --> 00:35:59,580 Ceea ce am de gând să fac aici este-- și să mergeți mai departe și trece la unele codul actual, 820 00:35:59,580 --> 00:36:00,620 care arata ca acest lucru. 821 00:36:00,620 --> 00:36:02,950 Deci, aici este pre-copt Versiunea am scris mai devreme. 822 00:36:02,950 --> 00:36:04,700 Și observați am terminat de punere în aplicare Sprint. 823 00:36:04,700 --> 00:36:06,130 Am terminat implementarea T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Am terminat de punere în aplicare Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 Și voi cer scuze în avans. 826 00:36:09,622 --> 00:36:12,080 Exista cateva transportatorii care unii elevi din clasa au 827 00:36:12,080 --> 00:36:14,640 că nu am deranjat enumerând în cazul în care starea de aici. 828 00:36:14,640 --> 00:36:16,015 Deci, nu toate textele vor ieși. 829 00:36:16,015 --> 00:36:17,556 Dar să vedem ce altceva trebuie să fac. 830 00:36:17,556 --> 00:36:19,660 Am închideți fișierul, doar ca în p set de patru. 831 00:36:19,660 --> 00:36:20,835 >> Și acest lucru este nou sintaxă. 832 00:36:20,835 --> 00:36:22,710 Și vom vedea un pic bit de acest timp, 833 00:36:22,710 --> 00:36:24,450 în special cu p stabilit șapte și opt. 834 00:36:24,450 --> 00:36:28,140 Dar acest lucru este sintaxa pentru a crea un tip special de structura. 835 00:36:28,140 --> 00:36:31,490 Se pare că este o bibliotecă care vine cu PHP, numit PHP Mailer. 836 00:36:31,490 --> 00:36:33,840 Scopul său în viață este să trimite e-mailuri programatic. 837 00:36:33,840 --> 00:36:36,840 E cod altcineva a scris că face mai ușor pentru noi pentru a trimite e-mailuri, 838 00:36:36,840 --> 00:36:39,131 așa că nu trebuie să țină merge înainte și înapoi la Gmail, 839 00:36:39,131 --> 00:36:41,151 și lipirea în adrese de email oamenilor. 840 00:36:41,151 --> 00:36:44,150 Există o grămadă de linii aici că sincer, doar un fel de copiat 841 00:36:44,150 --> 00:36:45,660 și lipite din documentația. 842 00:36:45,660 --> 00:36:47,409 Și, de fapt, daca esti curios, am lăsat toate 843 00:36:47,409 --> 00:36:50,550 din adresele URL ale documentației în codul pe care vom posta mai târziu. 844 00:36:50,550 --> 00:36:52,360 Și observați că între lucrurile pe care le fac 845 00:36:52,360 --> 00:36:55,710 este, eu spun această bibliotecă, utiliza serverul Gmail, nu? 846 00:36:55,710 --> 00:36:59,360 SMTP am vorbit pe scurt despre atunci când am au fost la Yale despre a fi Simple Mail 847 00:36:59,360 --> 00:37:00,110 protocol de transfer. 848 00:37:00,110 --> 00:37:02,920 Este protocolul care servere folosite pentru a trimite e-mail, 849 00:37:02,920 --> 00:37:05,150 și that's-- Gmail are una dintre cele. 850 00:37:05,150 --> 00:37:07,290 Un port, acesta este numărul de port TCP. 851 00:37:07,290 --> 00:37:09,630 E bine dacă nu au văzut 587 înainte. 852 00:37:09,630 --> 00:37:11,420 Știu doar că din documentația. 853 00:37:11,420 --> 00:37:12,250 Iată numele meu de utilizator. 854 00:37:12,250 --> 00:37:13,670 Am de gând să utilizeze bot CF50. 855 00:37:13,670 --> 00:37:16,690 Și într-un moment, eu sunt doar de gând să introduceți parola actuală bot de. 856 00:37:16,690 --> 00:37:18,690 Și apoi aici, observa ceea ce rămâne. 857 00:37:18,690 --> 00:37:22,840 >> Am stabilit meu de la adresa să fie BOT la CS50.net. 858 00:37:22,840 --> 00:37:26,240 Cred că nu va trimite un regret mesaj text la 800 de oameni care 859 00:37:26,240 --> 00:37:30,590 spune, dor de tine, bot dragoste CS50, poate pentru cei care nu ar putea face astazi. 860 00:37:30,590 --> 00:37:33,160 Și apoi, în linie 76, ce fac? 861 00:37:33,160 --> 00:37:39,010 Acest tip de arata ca C. Deci, pentru I este egal cu 0, n equals-- acum conta este nou. 862 00:37:39,010 --> 00:37:42,077 Se pare că, dacă doriți să obțineți numărul de lucruri într-o matrice, 863 00:37:42,077 --> 00:37:43,660 nu trebuie să-l amintesc mai. 864 00:37:43,660 --> 00:37:45,370 Puteți cere doar o Funcția numit conta, 865 00:37:45,370 --> 00:37:48,320 și vă va spune cât de multe Adresele sunt în matrice. 866 00:37:48,320 --> 00:37:53,210 >> Și apoi am de gând să adăugați adresa la e-mail. 867 00:37:53,210 --> 00:37:55,090 Și știu acest lucru de la Utilizarea documentației. 868 00:37:55,090 --> 00:37:56,900 Există o funcție de adăugare adresă. 869 00:37:56,900 --> 00:37:58,980 Și acum observați acolo este o bucată de sintaxă. 870 00:37:58,980 --> 00:38:01,470 Am mai văzut asta înainte în C. similare în spirit. 871 00:38:01,470 --> 00:38:04,100 Vă puteți gândi la semnul dolar ne ca o variabilă, care este. 872 00:38:04,100 --> 00:38:08,100 Dar este o struct în interiorul care nu sunt numai proprietăți, 873 00:38:08,100 --> 00:38:09,400 variabile dacă vrei. 874 00:38:09,400 --> 00:38:13,480 Dar se pare că în PHP, care este un programării orientate pe obiecte 875 00:38:13,480 --> 00:38:16,520 limbă, cum ar fi Java, dacă ai luat APCS. 876 00:38:16,520 --> 00:38:21,420 >> Dolar semn mail, dacă doriți sa-- ea are, de asemenea, funcții în interiorul acestuia, 877 00:38:21,420 --> 00:38:22,380 sau metode. 878 00:38:22,380 --> 00:38:24,720 Deci, acest lucru este de a spune că PHP Mailer speciale 879 00:38:24,720 --> 00:38:29,280 bibliotecă, dacă am o variabilă a acestuia, dacă vreau să sun o funcție care 880 00:38:29,280 --> 00:38:31,559 vine cu acea bibliotecă, în scopuri de astăzi, 881 00:38:31,559 --> 00:38:33,100 știu doar să utilizați notația săgeată. 882 00:38:33,100 --> 00:38:34,150 Nu e nici o notație punct. 883 00:38:34,150 --> 00:38:35,220 E doar săgeata. 884 00:38:35,220 --> 00:38:36,380 Dar asta nu e un pointer. 885 00:38:36,380 --> 00:38:38,680 E doar împrumutat de la sintaxa C lui. 886 00:38:38,680 --> 00:38:43,620 Deci sun adăugați adresa în interiorul obiect sau variabilă această bibliotecă a lui. 887 00:38:43,620 --> 00:38:44,440 >> In regula. 888 00:38:44,440 --> 00:38:45,570 Aceasta este linia magic. 889 00:38:45,570 --> 00:38:46,740 Așa am trimite un e-mail. 890 00:38:46,740 --> 00:38:50,040 Acesta este echivalentul de deschidere Gmail, aceasta dactilografiere afară, și lovirea trimite. 891 00:38:50,040 --> 00:38:54,870 Dar va trimite în schimb un e-mail la această adresă, cu acest organism, 892 00:38:54,870 --> 00:38:57,120 de la bot CS50. 893 00:38:57,120 --> 00:38:58,710 Și acum linie cheie. 894 00:38:58,710 --> 00:39:03,130 Această linie a fost absent în 2011 ca când mă gândesc am încercat ultima asta. 895 00:39:03,130 --> 00:39:05,640 Această linie acolo, desigur, șterge adresele. 896 00:39:05,640 --> 00:39:07,920 Deci logic, dacă aș Nu clar adresa 897 00:39:07,920 --> 00:39:11,740 după fiecare iterație, primul e-mail sau mesaj text merge la Alice, 898 00:39:11,740 --> 00:39:14,320 al doilea se duce la Alice si Bob, al treilea 899 00:39:14,320 --> 00:39:17,870 se duce la Alice și Bob și Charlie, prin urmare, foarte scump greseala 900 00:39:17,870 --> 00:39:18,760 Am făcut acel an. 901 00:39:18,760 --> 00:39:21,080 >> Deci, să vedem. 902 00:39:21,080 --> 00:39:24,200 Există întrebări înainte de a ne trimite toate un text 903 00:39:24,200 --> 00:39:28,210 mesaj cu 10 la suta probabilitate? 904 00:39:28,210 --> 00:39:28,940 Alte intrebari? 905 00:39:28,940 --> 00:39:30,330 In regula. 906 00:39:30,330 --> 00:39:36,100 Să-mi drumul aici și schimbarea parola la ceea ce ar trebui să funcționeze, 907 00:39:36,100 --> 00:39:37,780 va primi probabil pe lista neagră de Gmail. 908 00:39:37,780 --> 00:39:39,821 Deci, s-ar putea merge nu toate out, deoarece, probabil, 909 00:39:39,821 --> 00:39:42,960 Nu-mi place să ne trimite e-mailuri 800 într-o buclă de-o dată. 910 00:39:42,960 --> 00:39:45,140 Din moment ce nu este comportamentul uman deosebit. 911 00:39:45,140 --> 00:39:47,460 >> Oh, am de gând să schimbe un alt lucru. 912 00:39:47,460 --> 00:39:50,850 Până la partea de sus, am de gând să sent-- modificați fișierul studenților dot CSV. 913 00:39:50,850 --> 00:39:55,420 Și nu se va deschide acest lucru, dar aceasta este o fișier CSV identic cu nu 100 de personal, 914 00:39:55,420 --> 00:39:58,970 dar 800 de studenți, doar de la Harvard, Yale, deoarece 915 00:39:58,970 --> 00:40:00,207 are locaș luna octombrie a acestui săptămână. 916 00:40:00,207 --> 00:40:03,290 Și se pare ca un fel de lucru nemernic să facă la text toate de ce 917 00:40:03,290 --> 00:40:04,750 nu sunt în clasa în vacanță. 918 00:40:04,750 --> 00:40:05,250 Asta e ok. 919 00:40:05,250 --> 00:40:08,310 Doar studenții la Harvard astăzi în interiorul acestui fișier. 920 00:40:08,310 --> 00:40:12,320 Și acum să ne întoarcem la fereastra mea terminal. 921 00:40:12,320 --> 00:40:13,710 Sunt un fel de nervos. 922 00:40:13,710 --> 00:40:22,000 >> OK asa ca acum am de gând să meargă în director, și punct de text PHP PHP. 923 00:40:22,000 --> 00:40:24,950 Ce zici de un voluntar curajos? 924 00:40:24,950 --> 00:40:26,690 Deci, eu nu vreau acest lucru pe mine. 925 00:40:26,690 --> 00:40:28,410 OK, haide sus. 926 00:40:28,410 --> 00:40:29,162 Care e numele tău? 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 Hai sus, Maya. 930 00:40:31,610 --> 00:40:34,120 In regula. 931 00:40:34,120 --> 00:40:35,389 Să vedem dacă funcționează. 932 00:40:35,389 --> 00:40:38,430 Mi-am pus adresa mea de e-mail proprie în file-- numărul meu de telefon propriu în dosar, 933 00:40:38,430 --> 00:40:40,110 astfel încât sperăm voi primi unul, de asemenea. 934 00:40:40,110 --> 00:40:40,819 Îmi pare bine să te cunosc. 935 00:40:40,819 --> 00:40:41,443 MAYA: De asemenea. 936 00:40:41,443 --> 00:40:44,510 SPEAKER 1: Deci tot ce trebuie să faceți este să apăsați Enter pentru a trimite 800 de mesaje text, 937 00:40:44,510 --> 00:40:45,466 dacă nu am în bară. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Nisa. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Ar putea dura un timp, statistic, până când vom ajunge la un e-mail address-- 942 00:40:58,430 --> 00:41:00,573 un mesaj text care este în camera de acum. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Să leneviți și să vedem. 945 00:41:05,390 --> 00:41:06,940 >> Audiența: [Whistling] 946 00:41:06,940 --> 00:41:08,270 >> SPEAKER 1: Oh, da. 947 00:41:08,270 --> 00:41:09,230 >> Audiența: Oh, Te-am prins. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> SPEAKER 1: Pentru bucle are-- acest nu este lentă din cauza PHP. 950 00:41:19,180 --> 00:41:21,810 Acest lucru este lent, deoarece Gmail ne supraîncărcarea și nu 951 00:41:21,810 --> 00:41:25,170 permițându-ne trimite mai mult de ca unul de e-mail pe secundă. 952 00:41:25,170 --> 00:41:26,300 Orice? 953 00:41:26,300 --> 00:41:29,990 Acest lucru a fost un lucru greu pentru mine pentru a testa la acasă cu doar eu si una telefonul meu, așa. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 Este că sperăm la bot? 956 00:41:41,111 --> 00:41:41,610 Da? 957 00:41:41,610 --> 00:41:42,110 Nu? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Spune da. 960 00:41:46,620 --> 00:41:47,479 Nu? 961 00:41:47,479 --> 00:41:49,374 E de la un prieten? 962 00:41:49,374 --> 00:41:49,874 Ciudat. 963 00:41:49,874 --> 00:41:50,374 BINE. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Destul de sigur că funcționează, deși. 966 00:42:00,090 --> 00:42:00,910 Uh oh. 967 00:42:00,910 --> 00:42:03,190 Ei black-- oh, așteptați un minut. 968 00:42:03,190 --> 00:42:04,280 Știi ce? 969 00:42:04,280 --> 00:42:06,100 Un moment va rog. 970 00:42:06,100 --> 00:42:07,802 Numai Maya si Eu-- Mia, a fost? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 SPEAKER 1: Maya, sunt de gând să știu ce am făcut greșit aici. 973 00:42:12,110 --> 00:42:14,890 Oh, stai un minut. 974 00:42:14,890 --> 00:42:23,320 Cred că tocmai am trimis 100 mesaje text la 555-1212. 975 00:42:23,320 --> 00:42:24,346 Așteptare. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Nu pot câștiga un an. 978 00:42:29,270 --> 00:42:30,180 BINE. 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 că, în producția de post. 982 00:42:36,219 --> 00:42:36,718 La naiba! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 În urma de la adresa. 985 00:42:40,390 --> 00:42:41,301 OK, in stand by. 986 00:42:41,301 --> 00:42:41,800 Scuze. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 E dureros în fiecare an. 989 00:42:47,080 --> 00:42:48,640 OK, un moment. 990 00:42:48,640 --> 00:42:50,530 Asta e bine. 991 00:42:50,530 --> 00:42:54,010 Am loc de gând să facă acest lucru. 992 00:42:54,010 --> 00:42:55,470 Adresa de imprimare. 993 00:42:55,470 --> 00:42:56,030 OK, in stand by. 994 00:42:56,030 --> 00:43:01,340 Adrese de imprimare, suport i. 995 00:43:01,340 --> 00:43:02,710 Da, îmi place asta. 996 00:43:02,710 --> 00:43:10,220 Dolar sign-- OK voi explica ceea ce am face într-un moment, după ce m-am rula acest. 997 00:43:10,220 --> 00:43:11,670 In fiecare an. 998 00:43:11,670 --> 00:43:13,125 OK, aici vom merge. 999 00:43:13,125 --> 00:43:15,750 Am doar-- și nu vreau pentru a arăta numărul de telefon tuturor, 1000 00:43:15,750 --> 00:43:17,740 dar Maya poate confirma cu un semn al capului, 1001 00:43:17,740 --> 00:43:20,800 că ea vede toată lumea e număr de telefon în clasa 1002 00:43:20,800 --> 00:43:26,750 că am de gând să copiați în un program numit Gmail. 1003 00:43:26,750 --> 00:43:30,860 Și dacă în Gmail, ceea ce vrem să spunem? 1004 00:43:30,860 --> 00:43:32,137 Mi-e dor de tine. 1005 00:43:32,137 --> 00:43:33,220 Love-- nu e de la mine. 1006 00:43:33,220 --> 00:43:35,230 Nici măcar nu am lovit trimite încă. 1007 00:43:35,230 --> 00:43:39,450 Așa că hai să mergem mai departe și de a face acest lucru, dacă pot mări. 1008 00:43:39,450 --> 00:43:40,300 BINE. 1009 00:43:40,300 --> 00:43:42,480 Deci, eu sunt, folosind un program numit Gmail acum. 1010 00:43:42,480 --> 00:43:44,490 Dacă Maya, doriți să faceți clic pe butonul Send, 1011 00:43:44,490 --> 00:43:46,970 vom simula ce că Codul ar trebui să fi făcut. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Orice? 1014 00:43:55,254 --> 00:43:56,062 >> [BEEPS] 1015 00:43:56,062 --> 00:43:56,870 >> Audiența: Da. 1016 00:43:56,870 --> 00:43:58,030 >> SPEAKER 1: Da? 1017 00:43:58,030 --> 00:43:59,210 Mântuire? 1018 00:43:59,210 --> 00:44:00,427 >> Audiența: Da. 1019 00:44:00,427 --> 00:44:01,260 SPEAKER 1: dor de tine. 1020 00:44:01,260 --> 00:44:02,718 Și am de gând să trimită restul. 1021 00:44:02,718 --> 00:44:06,060 Am trimis jumătate pentru că eu nu cred că Gmail va lăsa pe cei trece prin. 1022 00:44:06,060 --> 00:44:12,410 Așa că amintiți-vă, astăzi este ziua că ai învățat că pot folosi Gmail. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Asta a fost oribil. 1025 00:44:15,810 --> 00:44:17,140 O aplauze mare pentru Maya. 1026 00:44:17,140 --> 00:44:18,980 Multumesc. 1027 00:44:18,980 --> 00:44:21,280 Bine, așa. 1028 00:44:21,280 --> 00:44:22,210 ce 1029 00:44:22,210 --> 00:44:23,140 >> [BEEPS] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Avem câteva beep-uri, da? 1032 00:44:26,580 --> 00:44:27,080 In regula. 1033 00:44:27,080 --> 00:44:30,590 Acum am de gând pentru a obține într-adevăr 700 e-mailuri de la colegii de clasă nefericite înapoi. 1034 00:44:30,590 --> 00:44:32,400 Deci, cel puțin, vom vedea dacă a meritat. 1035 00:44:32,400 --> 00:44:33,300 Deci, ce a mers prost? 1036 00:44:33,300 --> 00:44:35,300 Voi da seama ce a mers greșit după faptul, 1037 00:44:35,300 --> 00:44:38,340 dar uita-te cât de ușor a fost de a face că, în PHP. 1038 00:44:38,340 --> 00:44:44,598 Deci, ce putem face acum, că de fapt, avem această expresivitate de PHP. 1039 00:44:44,598 --> 00:44:45,970 Asta asta-- care a fost oribil. 1040 00:44:45,970 --> 00:44:46,480 In regula. 1041 00:44:46,480 --> 00:44:48,430 Deci, asta a fost ceea ce ar fi trebuit să ieșit. 1042 00:44:48,430 --> 00:44:52,770 Acest lucru a fost mi-a testa în această dimineață pe meu telefon, screenshot reală de telefonul meu. 1043 00:44:52,770 --> 00:44:56,180 >> Dar acum să considerăm de ce suntem de fapt introducerea 1044 00:44:56,180 --> 00:44:57,840 toate aceste lucruri, în primul rând. 1045 00:44:57,840 --> 00:45:01,625 Deci, scopul nu este de a scrie aceste programe care 1046 00:45:01,625 --> 00:45:03,250 sunt scrise în linia de comandă, nu? 1047 00:45:03,250 --> 00:45:05,000 Așa că am scris un simplu salut programul, am scris 1048 00:45:05,000 --> 00:45:09,155 un mic program care face condiționale, si a folosit o linie de citire și așa mai departe. 1049 00:45:09,155 --> 00:45:11,530 Și în teorie, tocmai am scris un program care a trimis 1050 00:45:11,530 --> 00:45:14,290 800 mesaje text, da sau de a lua 800. 1051 00:45:14,290 --> 00:45:16,830 Și că programul a fost tot încă rula la linia de comandă. 1052 00:45:16,830 --> 00:45:18,538 Și că, desigur, este nu pe web, nu? 1053 00:45:18,538 --> 00:45:22,160 Scopul este acum de a începe să utilizați ceea ce pretind este un ușor de utilizat 1054 00:45:22,160 --> 00:45:24,720 limbă, îndrăznesc să spun un mai limbaj puternic din punct de vedere 1055 00:45:24,720 --> 00:45:27,104 dintre caracteristicile care vin cu ea, pentru a începe 1056 00:45:27,104 --> 00:45:29,850 scrierea de cod care generează pagini web. 1057 00:45:29,850 --> 00:45:33,248 >> Deci, ultima dată și săptămâna trecută, am vorbit despre HTTP și HTML. 1058 00:45:33,248 --> 00:45:36,350 Și ceea ce este frumos despre HTML este că este doar un text pur. 1059 00:45:36,350 --> 00:45:38,220 Și text este cu siguranță ceva pe care le puteți 1060 00:45:38,220 --> 00:45:42,040 imprima de literalmente apel de imprimare f funcție, sau funcția de imprimare. 1061 00:45:42,040 --> 00:45:46,160 Și într-adevăr, asta e ceea ce este PHP acum de gând să ne permită să facem. 1062 00:45:46,160 --> 00:45:48,610 Deci printre exemplele pe care le au în codul sursă de astăzi, 1063 00:45:48,610 --> 00:45:51,610 în plus față de o parte din codul că am pus acolo în urmă cu o clipă, 1064 00:45:51,610 --> 00:45:55,440 Avem programe de acest gen, de exemplu. 1065 00:45:55,440 --> 00:45:58,760 Froshims, sau bobocilor Intramural sport, a fost de fapt 1066 00:45:58,760 --> 00:46:01,500 unul dintre primele extracurriculars M-am implicat cu ani în urmă. 1067 00:46:01,500 --> 00:46:03,750 Și coleg de cameră și am mea, cu alte copii de pe campus, 1068 00:46:03,750 --> 00:46:05,280 folosit pentru a rula programul froshims. 1069 00:46:05,280 --> 00:46:07,420 Primesc mesajele mele scrise acum. 1070 00:46:07,420 --> 00:46:14,030 >> Acum așa și noi, din nou în a doua zi, astfel încât această a fost 1,996 sau cam asa ceva, nu a existat un internet, 1071 00:46:14,030 --> 00:46:17,395 dar nu a existat nici process-- acolo a fost găsit nici un site pentru froshims. 1072 00:46:17,395 --> 00:46:20,270 Și așa că, dacă ai vrut să vă înscrieți pentru fotbal sau volei sau orice altceva, 1073 00:46:20,270 --> 00:46:22,240 v-ar completați acest lucru numit o bucată de hârtie, 1074 00:46:22,240 --> 00:46:25,060 și v-ar plimba peste Harvard curte, și v-ar aluneca 1075 00:46:25,060 --> 00:46:29,230 în slotul mail a Proctor, care a fost în Wigglesworth, unul din cămin. 1076 00:46:29,230 --> 00:46:31,270 Și acest lucru vă s-au înregistrat. 1077 00:46:31,270 --> 00:46:33,570 Și el sau ea ar atunci compune un e-mail pentru a vă 1078 00:46:33,570 --> 00:46:36,514 manual, la fel ca eu doar a făcut aici cu Maya, 1079 00:46:36,514 --> 00:46:38,930 și apoi v-ar fi confirmat ca fiind înregistrată. 1080 00:46:38,930 --> 00:46:40,840 >> Deci, acest lucru a fost ca nivelul agățat de fructe, ca să spunem așa. 1081 00:46:40,840 --> 00:46:42,930 A fost un fel de stupid ca am fost utilizarea hârtiei pentru acest lucru. 1082 00:46:42,930 --> 00:46:45,024 Am vrut să fie în măsură pentru a merge doar pe un site, 1083 00:46:45,024 --> 00:46:47,440 sau au boboci merge pe un site-ul, inscrieti pentru sport, 1084 00:46:47,440 --> 00:46:50,398 și doar automatiza o mulțime de aceste lucruri prin punerea numele și e-mailuri lor 1085 00:46:50,398 --> 00:46:51,850 și așa mai departe într-o bază de date. 1086 00:46:51,850 --> 00:46:56,510 Și, de fapt, prima versiune a site-ului, folosind HTML super-urât, 1087 00:46:56,510 --> 00:46:58,195 ar fi privit ceva de genul asta. 1088 00:46:58,195 --> 00:47:01,070 A fost de fapt, în mod ironic, mai jenant bine decât asta înapoi 1089 00:47:01,070 --> 00:47:01,460 apoi. 1090 00:47:01,460 --> 00:47:02,890 Dar am folosit un limbaj de programare. 1091 00:47:02,890 --> 00:47:06,060 Nu PHP, ci numit Perl, care este o limbă mai veche, 1092 00:47:06,060 --> 00:47:07,251 dar foarte similare în spirit. 1093 00:47:07,251 --> 00:47:09,000 Și am complet învățat să mă. 1094 00:47:09,000 --> 00:47:12,208 Si mi-a luat ceva timp să-mi dau seama, cere o mulțime de întrebări de prieteni. 1095 00:47:12,208 --> 00:47:14,080 Dar ideile de acolo au fost exact la fel. 1096 00:47:14,080 --> 00:47:18,050 Pentru că ceea ce a fost cu adevărat conceput PHP pentru nu este chestii linie de comandă 1097 00:47:18,050 --> 00:47:20,450 ne-am jucat cu, dar pentru programare web. 1098 00:47:20,450 --> 00:47:24,960 >> Este într-adevăr legat în funcție de setat pe web, după cum urmează. 1099 00:47:24,960 --> 00:47:26,370 Aceasta este froshims. 1100 00:47:26,370 --> 00:47:28,720 Și dacă am vrut să înregistrați în această formă, 1101 00:47:28,720 --> 00:47:30,930 acest lucru este destul de urât, cu siguranță, dar lasă-mă să merg mai departe 1102 00:47:30,930 --> 00:47:34,440 și să fie un student mai puțin confortabil, și orice sport pentru Matthews, 1103 00:47:34,440 --> 00:47:35,630 faceți clic pe Înregistrare. 1104 00:47:35,630 --> 00:47:39,780 Ceea ce vreau să fie capabil să facă este să prezinte informații de la un formular, 1105 00:47:39,780 --> 00:47:42,400 nu la serverul Google ca am făcut ultima dată, complet 1106 00:47:42,400 --> 00:47:47,100 inseala cu ajutorul backend lor, am doresc să pună în aplicare propriul meu cod backend. 1107 00:47:47,100 --> 00:47:51,410 Ceea ce înseamnă a scrie PHP cod care locuiește la o adresă URL 1108 00:47:51,410 --> 00:47:54,180 că datele din formular pot fi depuse la. 1109 00:47:54,180 --> 00:47:57,510 >> Și apoi codul, scris în PHP pe un server, 1110 00:47:57,510 --> 00:47:59,400 poate apoi răspunde la asta introduse de utilizator. 1111 00:47:59,400 --> 00:48:03,287 Cum ar fi numele lui sau a ei, sau la nivel de confort, sau cămin, și apoi face ceva cu el. 1112 00:48:03,287 --> 00:48:05,120 În acest caz, eu doar stupid-l imprimate 1113 00:48:05,120 --> 00:48:06,750 ca text, care nu este tot ceea ce destul de. 1114 00:48:06,750 --> 00:48:09,590 Dar ai putea cu siguranță imagina, dacă știi HTML, 1115 00:48:09,590 --> 00:48:13,010 și veți ști cât de curând cum de a genera HTML cu print f, și de imprimare, 1116 00:48:13,010 --> 00:48:16,500 și funcții similare, puteți cu siguranță genera o pagină web mai frumoasa care spune, 1117 00:48:16,500 --> 00:48:17,929 Hei David, tu sunt înregistrate acum. 1118 00:48:17,929 --> 00:48:20,220 Ești un mai confortabil elev de la Matthews, nu? 1119 00:48:20,220 --> 00:48:23,880 >> Aveți posibilitatea să utilizați doar o grămadă de ses%, sau acolade și semnul dolar 1120 00:48:23,880 --> 00:48:27,750 notație am folosit acum o clipă, pentru a genera text care este mai ușor de utilizat 1121 00:48:27,750 --> 00:48:28,567 decât aceasta. 1122 00:48:28,567 --> 00:48:30,150 Deci, haideți să aruncăm o privire la acest fișier unul. 1123 00:48:30,150 --> 00:48:34,666 Froshim zero, punct PHP arata ca acest lucru. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Când m-am reîncărcați IDE CS50, zero, froshim arata ca acest lucru. 1126 00:48:43,500 --> 00:48:45,700 Acest lucru este froshim zero, punct PHP. 1127 00:48:45,700 --> 00:48:47,730 Și ce observi despre acest fișier? 1128 00:48:47,730 --> 00:48:49,506 >> Audiența: [inaudibil] 1129 00:48:49,506 --> 00:48:50,922 SPEAKER 1: Ne pare rău, un pic mai tare? 1130 00:48:50,922 --> 00:48:53,250 Audiența: [inaudibil] E totul în HTML. 1131 00:48:53,250 --> 00:48:57,130 Și, de fapt, este, pentru că ceea ce este interesant despre PHP 1132 00:48:57,130 --> 00:48:58,880 este că acesta a fost conceput să fie, pentru o mai bună 1133 00:48:58,880 --> 00:49:02,110 sau pentru mai rău, amestecate cu codul HTML. 1134 00:49:02,110 --> 00:49:05,850 Și, de fapt, chiar dacă acest lucru fișier, froshim la zero punct PHP, 1135 00:49:05,850 --> 00:49:11,470 are un comentariu PHP la partea de sus de ea, totul este doar HTML. 1136 00:49:11,470 --> 00:49:17,655 Dar în schimb, în ​​cazul în care am deschis în sus, să să zicem, inscrieti la zero punct PHP, care 1137 00:49:17,655 --> 00:49:19,550 doar are un comentariu mare în partea de sus. 1138 00:49:19,550 --> 00:49:26,500 Acest prea pare aproape în întregime cum ar fi HTML, cu excepția pentru ce? 1139 00:49:26,500 --> 00:49:29,350 Linie, ceea ce, 21 arată un pic ciudat. 1140 00:49:29,350 --> 00:49:32,739 >> Dar observați am intra în modul PHP cu suport deschis semn de întrebare PHP. 1141 00:49:32,739 --> 00:49:33,780 Apoi am niște chestii. 1142 00:49:33,780 --> 00:49:36,724 Și apoi, la sfârșitul acestei linii Aproape am, semn de întrebare PHP. 1143 00:49:36,724 --> 00:49:38,390 Și aceasta este ceea ce vreau să spun de amestecat. 1144 00:49:38,390 --> 00:49:41,910 Puteți scrie HTML pe care tocmai ați doriți ca serverul să scuipe. 1145 00:49:41,910 --> 00:49:45,090 Dar, dacă vrei să faci ceva partway dinamic prin intermediul paginii, 1146 00:49:45,090 --> 00:49:47,699 ca inserați numele meu sau cămin sau la nivel de confort, 1147 00:49:47,699 --> 00:49:49,490 Pot folosi o funcție ca de imprimare R, care este 1148 00:49:49,490 --> 00:49:52,492 imprima recursivă, ceea ce înseamnă doar imprima această variabilă, formatarea se 1149 00:49:52,492 --> 00:49:53,200 Cu toate acestea vrei. 1150 00:49:53,200 --> 00:49:55,880 Nu e chiar pentru scopuri umane, e doar 1151 00:49:55,880 --> 00:49:58,290 pentru depanare sau scopuri de diagnostic. 1152 00:49:58,290 --> 00:49:59,460 Deci, asta e cum am făcut asta. 1153 00:49:59,460 --> 00:50:06,100 >> Dacă mă duc în locul froshims două punct PHP, observă că acțiunea acestui formular 1154 00:50:06,100 --> 00:50:09,680 nu este înregistrat la zero punct PHP ca old-- cea anterioară a fost de fapt. 1155 00:50:09,680 --> 00:50:11,222 Dar e înregistrat două puncte PHP. 1156 00:50:11,222 --> 00:50:13,680 Deci, să ne uităm la modul în care aceasta se comporta un pic diferit. 1157 00:50:13,680 --> 00:50:15,140 Dacă mă duc în versiunea două. 1158 00:50:15,140 --> 00:50:20,430 Dacă aici, dacă mă înregistrez ca David, mai puțin confortabil, de la cămin de Mathews, 1159 00:50:20,430 --> 00:50:21,480 înregistra. 1160 00:50:21,480 --> 00:50:23,770 Deci, de data aceasta a spus, tu sunt înregistrate, nu chiar. 1161 00:50:23,770 --> 00:50:25,370 Să vedem ce am făcut aici. 1162 00:50:25,370 --> 00:50:29,760 Dacă mă uit la registru două dot PHP, acest lucru are ceva mai mult de cod PHP. 1163 00:50:29,760 --> 00:50:35,410 E un pic mai curat, cu toate că încă înfășoară un pic cam lung pe această linie. 1164 00:50:35,410 --> 00:50:36,260 Observați aici. 1165 00:50:36,260 --> 00:50:40,300 Am imprima eticheta mea HTML, tag-ul capul meu, tag-ul meu titlu, cap, corp. 1166 00:50:40,300 --> 00:50:45,410 >> Și apoi am început să spun lucruri cum ar fi intra în modul PHP. 1167 00:50:45,410 --> 00:50:48,540 Și pentru ca tag-ul, suport deschis Semn de întrebare PHP-- PHP spune, 1168 00:50:48,540 --> 00:50:53,460 hei, server, execute-- interpreta următoarele lucruri ca PHP 1169 00:50:53,460 --> 00:50:55,030 până când vedeți eticheta final. 1170 00:50:55,030 --> 00:50:58,590 Și chiar dacă ar putea să nu cunosc nici altele decât PHP le-ați văzut până acum, 1171 00:50:58,590 --> 00:51:01,290 puteți citi un fel de ea destul de intuitiv. 1172 00:51:01,290 --> 00:51:10,670 Dacă numele este gol, sau confortul este gol, sau cămin este goală, ce să fac? 1173 00:51:10,670 --> 00:51:12,830 Ce spun pentru utilizator? 1174 00:51:12,830 --> 00:51:15,330 Trebuie să furnizați numele, confort, și cămin, și așa mai departe. 1175 00:51:15,330 --> 00:51:17,750 Altfel, spun esti înregistrat, bine nu chiar. 1176 00:51:17,750 --> 00:51:19,190 >> Și nu spune cu adevărat pentru că nu există nici o bază de date. 1177 00:51:19,190 --> 00:51:20,200 Nu fac nimic cu datele. 1178 00:51:20,200 --> 00:51:22,408 Eu doar l aruncați pentru scopuri demonstrative. 1179 00:51:22,408 --> 00:51:24,320 Acum am un fel de zgarcita peste linia 22. 1180 00:51:24,320 --> 00:51:26,400 Există mai multe sintaxa acolo, dar semnul dolar 1181 00:51:26,400 --> 00:51:28,320 sublinia post-este un fel de interesant. 1182 00:51:28,320 --> 00:51:30,300 Și aceasta este ceea ce este frumos despre PHP. 1183 00:51:30,300 --> 00:51:35,610 În PHP, aveți ceea ce se numesc câteva variabile globale Super. 1184 00:51:35,610 --> 00:51:38,430 Ele sunt un fel de chiar mai important decât variabile globale. 1185 00:51:38,430 --> 00:51:41,370 Și acestea, toate capitalizate ca atare, vin cu PHP. 1186 00:51:41,370 --> 00:51:44,550 Deci, dacă aveți un server care are un server web instalat, cum ar fi Apache, 1187 00:51:44,550 --> 00:51:49,390 și instalați limba suport pentru PHP, dintr-o dată te 1188 00:51:49,390 --> 00:51:52,250 poate începe să utilizați aceste super- variabile globale în codul dumneavoastră. 1189 00:51:52,250 --> 00:51:54,330 >> Și ceea ce este frumos despre PHP este că, dacă doar 1190 00:51:54,330 --> 00:51:57,540 scrie un fișier care se termină în punct PHP, pune-l pe un server web, 1191 00:51:57,540 --> 00:52:01,260 și apoi trimiteți un formular pentru a prin care tag-ul de acțiune și o etichetă formă, 1192 00:52:01,260 --> 00:52:05,110 că atribut de acțiune în forma tag-ul, PHP și pe web 1193 00:52:05,110 --> 00:52:09,360 complet seama cum de a apuca toate aceste perechi de valoare-cheie din 1194 00:52:09,360 --> 00:52:11,633 din URL-ul ca întrebare marcă q este egal cu pisici, 1195 00:52:11,633 --> 00:52:14,782 se va da seama cum să q și pisici. 1196 00:52:14,782 --> 00:52:17,710 Dacă trimiteți o fotografie, sau un nume de utilizator, sau o parolă pentru a place Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP va da seama pentru tine în cazul în care toate de care datelor este. 1198 00:52:21,360 --> 00:52:23,821 Și-l va preda doar ai un tablou asociativ 1199 00:52:23,821 --> 00:52:27,560 numita dolar posta semn subliniere, sau semnul dolar sublinia obține, 1200 00:52:27,560 --> 00:52:30,590 în funcție de dacă sunteți folosind GET sau posta observații. 1201 00:52:30,590 --> 00:52:32,950 Și vă va înmâna doar o variabilă globală super, 1202 00:52:32,950 --> 00:52:37,254 astfel încât, dacă doriți să obțineți de la numele că utilizatorul a prezentat, prin intermediul web care 1203 00:52:37,254 --> 00:52:41,894 formular, literalmente spune doar numele din variabila globală super, citat, 1204 00:52:41,894 --> 00:52:43,380 încheiat citatul, nume. 1205 00:52:43,380 --> 00:52:46,144 Și citat, confort citatul, și citat, cămin încheiat citatul. 1206 00:52:46,144 --> 00:52:48,810 Și vom putea face acest lucru și mult mai mult cu PHP. 1207 00:52:48,810 --> 00:52:50,540 Si chiar daca acest lucru a fost o privire vârtej de vânt la ea, 1208 00:52:50,540 --> 00:52:51,980 vom arunca cu capul în mai saptamana viitoare. 1209 00:52:51,980 --> 00:52:54,247 Vom introduce o bază de date astfel că ești de fapt 1210 00:52:54,247 --> 00:52:56,816 de gând să înceapă punerea în aplicare a propriul based-- e-comerț 1211 00:52:56,816 --> 00:52:59,150 ca site-ul, în timp doar o săptămână. 1212 00:52:59,150 --> 00:53:02,750 Deci ne vedem data viitoare, și Sper că ai mesajelor text. 1213 00:53:02,750 --> 00:53:05,450 Pa. 1214 00:53:05,450 --> 00:53:06,950 >> [MUSIC JOC] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [DOOR DESCHIDERE] 1217 00:53:12,950 --> 00:53:14,475 >> SPEAKER 2: Hei. 1218 00:53:14,475 --> 00:53:15,350 SPEAKER 3: Care-i treaba? 1219 00:53:15,350 --> 00:53:17,750 SPEAKER 2: Ce faci? 1220 00:53:17,750 --> 00:53:19,850 SPEAKER 3: Lucrul pe un set problemă. 1221 00:53:19,850 --> 00:53:21,050 SPEAKER 2: Nisa. 1222 00:53:21,050 --> 00:53:22,550 Bate palma. 1223 00:53:22,550 --> 00:53:23,150 >> [BATE PALMA] 1224 00:53:23,150 --> 00:53:25,584 >> Ce are-- uh, ce faci aici? 1225 00:53:25,584 --> 00:53:26,750 SPEAKER 3: Doar stau. 1226 00:53:26,750 --> 00:53:28,134 Tocmai sa întors de la sala de sport. 1227 00:53:28,134 --> 00:53:30,050 N-am putut ajuta, dar observă atunci când ne-mare bătut palma, 1228 00:53:30,050 --> 00:53:32,450 că aveți mâinile destul de dur. 1229 00:53:32,450 --> 00:53:33,950 Nu te duci la sala de sport? 1230 00:53:33,950 --> 00:53:35,150 >> SPEAKER 2: Nu. 1231 00:53:35,150 --> 00:53:36,650 Nu. 1232 00:53:36,650 --> 00:53:38,450 >> SPEAKER 3: Omule, arăți destul de mare. 1233 00:53:38,450 --> 00:53:45,950 Ceea ce este rău, pentru că toată lumea știe 8-ball este omul mare din campus. 1234 00:53:45,950 --> 00:53:48,050 Bate palma. 1235 00:53:48,050 --> 00:53:49,550 >> SPEAKER 2: Uh, nu. 1236 00:53:49,550 --> 00:53:50,450 Nu, cred că sunt bun. 1237 00:53:50,450 --> 00:53:52,300 Cred că sunt bine. 1238 00:53:52,300 --> 00:53:54,097