1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> DOUG LLOYD: Deci, am făcut o mulțime de muncă în C, 3 00:00:07,370 --> 00:00:09,536 și C este o foarte misto limbă, pentru că vă oferă 4 00:00:09,536 --> 00:00:12,840 capacitatea de a se arunca cu capul într-adevăr nivel scăzut în programele dumneavoastră. 5 00:00:12,840 --> 00:00:16,810 Ajungem să facem lucruri ca într-adevăr minut ca manipularea 6 00:00:16,810 --> 00:00:18,800 bytes individuale de memorie. 7 00:00:18,800 --> 00:00:21,420 Reamintim că într-adevăr indicative ne permit asta flexibilitate. 8 00:00:21,420 --> 00:00:25,260 >> Dar avem nevoie întotdeauna să aibă acest nivel cu granulație fină de detaliu 9 00:00:25,260 --> 00:00:26,820 in programele noastre? 10 00:00:26,820 --> 00:00:28,210 Probabil că nu, nu? 11 00:00:28,210 --> 00:00:30,376 Și dacă vom avea un compromis între a fi 12 00:00:30,376 --> 00:00:32,911 capabil să facă într-adevăr, într-adevăr lucruri minute și într-adevăr, într-adevăr 13 00:00:32,911 --> 00:00:35,910 lucruri mari pe care noi nu trebuie să ne gândim despre, nu avem să pună în aplicare 14 00:00:35,910 --> 00:00:40,290 aceste idei într-adevăr mare, dacă acestea sunt deja construit în pentru noi, 15 00:00:40,290 --> 00:00:43,980 în general, pentru construirea de mare programe sau proiecte mari, 16 00:00:43,980 --> 00:00:49,130 ne, probabil, va să greșească pe partea de de a fi mai multe lucruri limba construit în 17 00:00:49,130 --> 00:00:51,300 pentru noi, în loc de a chestii de nivel scăzut. 18 00:00:51,300 --> 00:00:53,970 Și asta e în cazul în care într-adevăr vine în PHP. 19 00:00:53,970 --> 00:00:58,200 >> Acum, unul dintre motivele pe care le preda PHP în CS50 20 00:00:58,200 --> 00:01:01,020 este faptul că este puternic inspirat de C. Și, de fapt, în opinia mea, 21 00:01:01,020 --> 00:01:05,140 există într-adevăr două limbi progenitoare care 22 00:01:05,140 --> 00:01:08,200 sunt foarte frecvente în zilele noastre. 23 00:01:08,200 --> 00:01:10,110 C și LISP. 24 00:01:10,110 --> 00:01:13,280 Și ei sunt limbi progenitoare pentru că toate celelalte programe moderne 25 00:01:13,280 --> 00:01:17,380 limbă pe care a dezvoltat de atunci este inspirat 26 00:01:17,380 --> 00:01:20,330 de unul sau celălalt punct de vedere sintactic. 27 00:01:20,330 --> 00:01:26,160 PHP este foarte asemănătoare sintactic la C, în timp ce limbi, cum ar fi schema, 28 00:01:26,160 --> 00:01:27,900 de exemplu, care este posibil să fi auzit de, 29 00:01:27,900 --> 00:01:32,070 este puternic inspirat de un limbaj numit LISP, care este o limbă mai veche. 30 00:01:32,070 --> 00:01:34,220 >> Deci, motivul pentru care am preda PHP în CS50 este faptul că, 31 00:01:34,220 --> 00:01:37,730 cunoscând C ca fundamental cum faci în acest moment, 32 00:01:37,730 --> 00:01:41,280 ridicarea PHP, care oferă vă capacitatea de a face lucruri nivel mult mai ridicat 33 00:01:41,280 --> 00:01:44,710 decât C nu, nu este că de mult de un obstacol, 34 00:01:44,710 --> 00:01:48,230 pentru că aveți deja Ideea de bază a sintaxei. 35 00:01:48,230 --> 00:01:50,590 C a fost în jur de aproape 45 de ani de la acest moment. 36 00:01:50,590 --> 00:01:52,780 PHP a fost în jur de aproximativ 20 de ani. 37 00:01:52,780 --> 00:01:57,080 Și prin aceea că de 25 de ani în între, programatori 38 00:01:57,080 --> 00:02:01,540 stabilit că vor mult mai degrabă au abilități de nivel superior, 39 00:02:01,540 --> 00:02:04,970 și greșelile și luptele de 20 de ani din între 40 00:02:04,970 --> 00:02:08,210 a dus la PHP și alte limbi moderne. 41 00:02:08,210 --> 00:02:11,039 >> PHP este o alegere excelentă de Limba de software 42 00:02:11,039 --> 00:02:14,042 care allow-- pentru software-ul în cazul în care that-- 43 00:02:14,042 --> 00:02:16,250 trebuie să facem lucruri pe care, în C sunt de fapt complicate. 44 00:02:16,250 --> 00:02:18,480 Deci, de exemplu, de lucru cu siruri de caractere in C 45 00:02:18,480 --> 00:02:21,709 este foarte complicat, deoarece după cum știm, siruri de caractere in C 46 00:02:21,709 --> 00:02:23,250 sunt într-adevăr doar rețele de caractere. 47 00:02:23,250 --> 00:02:25,230 Nu este un tip de date built-in. 48 00:02:25,230 --> 00:02:28,220 Sau poate mai important, ceva ce nu a acoperit, chiar și în C, 49 00:02:28,220 --> 00:02:30,360 Ce se întâmplă dacă trebuie să faceți unele rețele de calculatoare? 50 00:02:30,360 --> 00:02:30,860 In regula? 51 00:02:30,860 --> 00:02:34,920 >> C are capacitatea de a face acest lucru, dar e atât de arcane și atât de dificil de a face de fapt. 52 00:02:34,920 --> 00:02:37,580 Nu ar fi frumos dacă limbă a avut un mod ușor de built-in 53 00:02:37,580 --> 00:02:38,910 să pună în aplicare în rețea? 54 00:02:38,910 --> 00:02:43,420 Și PHP este un limbaj care face ca, sau facilitează că, destul de un pic mai mult. 55 00:02:43,420 --> 00:02:47,740 Așa cum am spus, PHP este foarte puternic inspirat prin C. Sintaxa este foarte asemănătoare. 56 00:02:47,740 --> 00:02:51,760 Și așa ar trebui să sperăm a face pe tranziția de la una la alta 57 00:02:51,760 --> 00:02:54,710 un pic mai moale decât unele alte limbi ar putea fi. 58 00:02:54,710 --> 00:02:58,800 >> Pentru a începe să scrie PHP, doar deschide un fișier cu extensia .php. 59 00:02:58,800 --> 00:03:00,670 Punct de vedere tehnic acest lucru nu este de fapt este necesar, 60 00:03:00,670 --> 00:03:04,495 dar dacă doriți lucruri cum ar fi sintaxa subliniind în IDE, astfel încât tipul 61 00:03:04,495 --> 00:03:07,620 nume, sau nume de variabile, funcții, stii, cuvintele cheie ale limbajului 62 00:03:07,620 --> 00:03:10,090 sunt evidențiate într-o culoare specifică, în general, vă 63 00:03:10,090 --> 00:03:14,020 doresc pentru a numi fișierele cu un anumit extensie de fișier. 64 00:03:14,020 --> 00:03:18,430 Deci ne-am numit fișier nostru cu un .php extensie, dar apoi, de asemenea, cu PHP, 65 00:03:18,430 --> 00:03:23,310 tot codul PHP scriem în care fișier trebuie să fie închise în aceste PHP 66 00:03:23,310 --> 00:03:25,190 delimitatori pe care le vedem aici, pe ecran. 67 00:03:25,190 --> 00:03:27,910 Suport unghi? Php pentru a începe. 68 00:03:27,910 --> 00:03:30,860 Apoi ne-am scrie toate PHP noastre cod care ne-o dorim în între. 69 00:03:30,860 --> 00:03:32,260 Si atunci ? 70 00:03:32,260 --> 00:03:34,710 suport unghi pentru a închide. 71 00:03:34,710 --> 00:03:37,170 >> Dacă nu facem acest lucru, atunci ce se va întâmpla? 72 00:03:37,170 --> 00:03:38,170 Nu o să se prăbușească. 73 00:03:38,170 --> 00:03:39,410 Nu o să ruina într-adevăr programul nostru. 74 00:03:39,410 --> 00:03:41,440 Dar nu va avea efectul pe care ne-o dorim. 75 00:03:41,440 --> 00:03:44,540 Ce se va întâmpla, într-adevăr, este că, atunci când vom încerca și a alerga acest program, 76 00:03:44,540 --> 00:03:50,330 tot ceea ce nu între aceste delimitatori va fi imprimate textual. 77 00:03:50,330 --> 00:03:52,210 Nu o să executa de fapt codul, 78 00:03:52,210 --> 00:03:56,010 că va doar de imprimare-l textual. 79 00:03:56,010 --> 00:03:57,320 >> Acum, de ce este cazul? 80 00:03:57,320 --> 00:04:00,416 Deci, C este ceea ce este cunoscut ca un limbaj compilat. 81 00:04:00,416 --> 00:04:03,040 Esti, probabil, familiarizat cu etapa de a face programele, 82 00:04:03,040 --> 00:04:07,820 cotitură fișierele .c și fișierele .h într-un singur executabil cu make, 83 00:04:07,820 --> 00:04:11,130 în special utilizarea Zăngăni ca compilator nostru. 84 00:04:11,130 --> 00:04:13,030 PHP, deși, nu au acest echivalent. 85 00:04:13,030 --> 00:04:15,600 PHP este ceea ce se numește un limbaj interpretat. 86 00:04:15,600 --> 00:04:16,760 Și ce înseamnă asta? 87 00:04:16,760 --> 00:04:20,680 >> Ei bine, aceasta înseamnă că nu trebuie să transforme codul nostru sursă de zero-uri și cele 88 00:04:20,680 --> 00:04:21,470 în prealabil. 89 00:04:21,470 --> 00:04:23,900 Mai degrabă, există un program, care se mai numește 90 00:04:23,900 --> 00:04:29,771 PHP, care intelege PHP și poate un fel de face pe zbor. 91 00:04:29,771 --> 00:04:32,520 Asta nu e chiar exact precise, dar este o analogie destul de bun 92 00:04:32,520 --> 00:04:33,760 de ce se întâmplă. 93 00:04:33,760 --> 00:04:37,230 Este interpretarea celor zerouri și cele pe zbor. 94 00:04:37,230 --> 00:04:40,160 Și așa, dacă nu știe cum pentru a procesa ceva, 95 00:04:40,160 --> 00:04:42,800 în cazul în care nu știe cum să proces PHP, probabil 96 00:04:42,800 --> 00:04:44,680 a vrut să pună acest text acolo, nu? 97 00:04:44,680 --> 00:04:48,960 >> Probabil ai vrut să pună codul în acolo, chiar dacă nu este între PHP-- 98 00:04:48,960 --> 00:04:50,035 delimitatorii PHP. 99 00:04:50,035 --> 00:04:51,910 Dar-- așa că nu se va să-l ștergeți pentru tine, 100 00:04:51,910 --> 00:04:53,576 este doar de gând să-l aruncați în esență. 101 00:04:53,576 --> 00:04:55,550 Deci o să imprime l pe ecran. 102 00:04:55,550 --> 00:04:57,150 >> Aceasta pare a fi că e un rău lucru, dar de fapt e 103 00:04:57,150 --> 00:04:58,220 Va fi un adevărat lucru bun, cum vom 104 00:04:58,220 --> 00:05:00,390 vezi atunci când vorbim despre Dezvoltare web PHP, 105 00:05:00,390 --> 00:05:04,010 pentru că înseamnă că putem răspândi PHP și HTML. 106 00:05:04,010 --> 00:05:06,640 Le putem folosi împreună pentru a a crea o pagina web mai dinamic. 107 00:05:06,640 --> 00:05:10,650 Dar mai mult pe faptul că, în video pe dezvoltare web PHP. 108 00:05:10,650 --> 00:05:12,021 >> Deci, ce este sintaxa PHP? 109 00:05:12,021 --> 00:05:13,520 Asta e ceea ce acest film este despre toate. 110 00:05:13,520 --> 00:05:14,850 Să vorbim despre asta. 111 00:05:14,850 --> 00:05:16,490 >> Deci, pentru a începe, variabile. 112 00:05:16,490 --> 00:05:18,030 Există variabile PHP. 113 00:05:18,030 --> 00:05:20,067 Există doar două mari diferențele față de C. 114 00:05:20,067 --> 00:05:21,900 Primul este că nu există nici un tip specificator. 115 00:05:21,900 --> 00:05:24,245 Noi nu trebuie să spun Int, char, float, toate chestiile astea. 116 00:05:24,245 --> 00:05:25,620 Noi nu trebuie să mai faci asta. 117 00:05:25,620 --> 00:05:26,810 PHP este un limbaj modern. 118 00:05:26,810 --> 00:05:28,910 Se pot da seama de ce ești încearcă să facă sau să facă o mai bună 119 00:05:28,910 --> 00:05:30,451 ghici cu privire la ceea ce încerci să faci. 120 00:05:30,451 --> 00:05:31,700 Așa că e destul de frumos. 121 00:05:31,700 --> 00:05:35,330 >> Un alt lucru este că toate variabilă Numele trebuie să înceapă cu un semn dolar. 122 00:05:35,330 --> 00:05:36,940 Asta e doar ceva să te obișnuiești. 123 00:05:36,940 --> 00:05:39,496 E un pic ciudat, pentru că este astfel încât să poată înțelege PHP 124 00:05:39,496 --> 00:05:40,870 ceea ce este o variabilă și ce nu. 125 00:05:40,870 --> 00:05:43,340 Deci, fiecare nume de variabilă începe cu un semn dolar. 126 00:05:43,340 --> 00:05:46,884 Deci, în C am putea spune ceva ca aceasta, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Noi nu trebuie să faci asta mai în PHP. 128 00:05:48,550 --> 00:05:52,540 Putem spune doar $ x = 54. 129 00:05:52,540 --> 00:05:55,920 Și am putea spune, de exemplu, în C, dacă am fi lira-inclus .h CS50 130 00:05:55,920 --> 00:06:00,314 fișier antet, am putea spune Expresie string = "Acesta este CS50." 131 00:06:00,314 --> 00:06:01,980 Noi nu trebuie să faci asta în PHP, totuși. 132 00:06:01,980 --> 00:06:04,865 Putem spune doar $ fraza = "Aceasta este CS50." 133 00:06:04,865 --> 00:06:08,760 Și, de fapt, string este acum un tip de date built-in în PHP, 134 00:06:08,760 --> 00:06:10,950 sau mai degrabă PHP înțelege ceea ce un șir este. 135 00:06:10,950 --> 00:06:15,612 E separat de o serie de caractere ca acesta este în C. 136 00:06:15,612 --> 00:06:17,570 Toate dumneavoastră preferat Declarații condiționale din C 137 00:06:17,570 --> 00:06:19,520 sunt încă disponibile pentru tine de a utiliza. 138 00:06:19,520 --> 00:06:21,140 Deci, nici o tranziție mare acolo. 139 00:06:21,140 --> 00:06:23,400 Putem say-- putem avea dacă afirmații de genul asta. 140 00:06:23,400 --> 00:06:28,210 dacă $ y 43, sau $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Așa că e destul de simplu. 142 00:06:29,690 --> 00:06:31,980 Putem avea, dacă și altceva. 143 00:06:31,980 --> 00:06:34,210 Putem avea dacă și altceva, dacă. 144 00:06:34,210 --> 00:06:36,430 >> Și observat ceva destul de frumos aici, iar acest lucru 145 00:06:36,430 --> 00:06:39,620 este un fel de una dintre aceste Avantajele PHP față de C, o notificare 146 00:06:39,620 --> 00:06:41,510 ce funcție nu suntem utilizați aici? 147 00:06:41,510 --> 00:06:47,737 Suntem folosind == pentru a compara o variabila, nume $, la un șir. 148 00:06:47,737 --> 00:06:49,070 Nu am putut face asta în C, nu? 149 00:06:49,070 --> 00:06:53,200 Am avut de a utiliza o funcție numită StrComp sau StrEndComp sau orice 150 00:06:53,200 --> 00:06:54,840 de veri aferente. 151 00:06:54,840 --> 00:06:56,980 >> Și astfel vedem deja aceste avantaje. 152 00:06:56,980 --> 00:07:00,930 Noi nu trebuie să facem ceva ca prostie sau poate unintuitive 153 00:07:00,930 --> 00:07:03,540 ca o funcție numită apel StrComp dacă vreau doar pentru a testa 154 00:07:03,540 --> 00:07:05,237 dacă o valoare este egală cu un șir. 155 00:07:05,237 --> 00:07:07,820 Aș putea folosi doar egal la egal la egal, ca și cum aș putea face altceva. 156 00:07:07,820 --> 00:07:09,560 Deci, există un avantaj. 157 00:07:09,560 --> 00:07:13,350 >> Uneori, de altfel, s-ar putea vezi mai dacă ca un singur cuvânt, elseif. 158 00:07:13,350 --> 00:07:14,910 Și asta e în regulă, în PHP, de asemenea. 159 00:07:14,910 --> 00:07:17,020 Astfel încât, uneori s-ar putea vedea asta. 160 00:07:17,020 --> 00:07:17,790 Nu este o greșeală de scriere. 161 00:07:17,790 --> 00:07:21,830 PHP de fapt înțelege elseif. 162 00:07:21,830 --> 00:07:23,980 Nu știu de ce a decis să pună în aplicare faptul că, 163 00:07:23,980 --> 00:07:28,220 dar cum am văzut de multe ori de-a lungul videoclipurile noastre de până acum, 164 00:07:28,220 --> 00:07:30,460 ne place, dacă programatori putem face lucruri rapid, 165 00:07:30,460 --> 00:07:33,660 astfel a scăpa de acest spațiu este aparent un mare avantaj. 166 00:07:33,660 --> 00:07:34,800 >> Deci, asta e, dacă și elseif. 167 00:07:34,800 --> 00:07:37,540 Avem, de asemenea, operatorul ternar, rechemare semn de întrebare de colon, 168 00:07:37,540 --> 00:07:43,262 pentru foarte scurt formular dacă altceva sau ramificare condiționată. 169 00:07:43,262 --> 00:07:45,470 Și se pare că, în acest sens, ceea ce încercăm să facem aici 170 00:07:45,470 --> 00:07:49,720 este atribui variabila $ scrisoare fie adevărat sau fals, 171 00:07:49,720 --> 00:07:54,110 depinzând dacă $ var este un caracter alfabetic. 172 00:07:54,110 --> 00:07:57,320 Deci, aceasta este destul de similar cu isalpha că suntem familiarizați cu de la C. 173 00:07:57,320 --> 00:07:59,010 Aceasta este un fel de echivalent în PHP. 174 00:07:59,010 --> 00:08:01,550 Funcția este aparent numit ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 dar asta e modul în care o facem în PHP. 176 00:08:03,450 --> 00:08:08,560 Deci, toate acestea sunt mergi la a fi este, în cazul în care $ var este o scrisoare, $ scrisoare este adevărat. 177 00:08:08,560 --> 00:08:13,820 Dacă $ var nu este o scrisoare, $ scrisoare este falsă. 178 00:08:13,820 --> 00:08:15,820 >> Avem, de asemenea declarații de comutare încă. 179 00:08:15,820 --> 00:08:17,870 Ne amintim cele din C, de asemenea. 180 00:08:17,870 --> 00:08:22,480 La foarte de sus acolo, asta e modul în care ne facem ceva de genul int get sau pentru a obține șir. 181 00:08:22,480 --> 00:08:23,845 Deci PHP are care a construit în. 182 00:08:23,845 --> 00:08:25,470 Nu avem nevoie de biblioteca CS50 mai. 183 00:08:25,470 --> 00:08:27,237 Putem folosi doar funcția readline. 184 00:08:27,237 --> 00:08:29,820 Ceea ce va face este de imprimare în mesajul, "stat tău, 185 00:08:29,820 --> 00:08:33,820 please "și apoi clipește prompte de așteptare pentru utilizatorului să introducă 186 00:08:33,820 --> 00:08:34,739 niște informații. 187 00:08:34,739 --> 00:08:36,530 Acum observați ce altceva putem face cu comutator. 188 00:08:36,530 --> 00:08:39,105 Dacă ați folosit înainte, vă amintiți că comutator 189 00:08:39,105 --> 00:08:44,960 se limitează destul de mult la numere întregi și de caractere, dar acum putem folosi siruri de caractere. 190 00:08:44,960 --> 00:08:50,190 Și, de fapt, declarația comutator în PHP este destul de un pic mai flexibil 191 00:08:50,190 --> 00:08:54,880 decât vărul său de la C. 192 00:08:54,880 --> 00:08:55,380 Bucle. 193 00:08:55,380 --> 00:08:58,130 La fel ca condiționale, toate vechi favorite sunt încă acolo. 194 00:08:58,130 --> 00:09:00,740 Avem timp ce bucle care conteaza la 1 la 100, în acest caz. 195 00:09:00,740 --> 00:09:03,940 Am face în timp ce buclele care numără de la 1 la 100, 196 00:09:03,940 --> 00:09:06,200 și ne-am pentru bucle care numără de la 1 cu 100. 197 00:09:06,200 --> 00:09:07,220 Deci, nu salt mare acolo. 198 00:09:07,220 --> 00:09:09,360 Sintaxa este destul de mult exact la fel, 199 00:09:09,360 --> 00:09:11,760 cu excepția acum suntem utilizând dolar variabilă semn loc 200 00:09:11,760 --> 00:09:17,260 de a declara variabile întregi sau ceva de genul asta pentru contoare noastre. 201 00:09:17,260 --> 00:09:20,090 >> Iată unde lucrurile devin un mult mai bine decât C, totuși. 202 00:09:20,090 --> 00:09:21,020 Arrays. 203 00:09:21,020 --> 00:09:23,020 Deci, amintesc când am fost vorbesc despre C, în scopul de 204 00:09:23,020 --> 00:09:25,560 pentru noi să crească și reduce seturi de informații, 205 00:09:25,560 --> 00:09:28,310 avem nevoie pentru a sorta de default la această idee a unei liste legate, 206 00:09:28,310 --> 00:09:30,780 deoarece C tablouri au fost fixate în mărime. 207 00:09:30,780 --> 00:09:31,800 Noi nu le-ar putea micsora. 208 00:09:31,800 --> 00:09:32,930 Noi nu le-ar putea crește. 209 00:09:32,930 --> 00:09:36,074 Am avut de a realoca memoria și de a face toate acestea nebunie 210 00:09:36,074 --> 00:09:38,490 sau de a folosi liste legate, care ia destul de un pic mai mult spațiu. 211 00:09:38,490 --> 00:09:41,590 Dar, în PHP, matrice sunt Nu mai stabilit în mărime. 212 00:09:41,590 --> 00:09:43,240 Ele pot crește și se pot reduce. 213 00:09:43,240 --> 00:09:46,660 Deci, din nou, acești 20 de ani, care a existat între prima versiune a C 214 00:09:46,660 --> 00:09:49,440 și prima versiune PHP, am decis că, știți, 215 00:09:49,440 --> 00:09:51,670 ar fi foarte mare dacă am putea face acest lucru. 216 00:09:51,670 --> 00:09:54,100 Și astfel am implementat acest lucru. 217 00:09:54,100 --> 00:09:58,040 >> Deci, tablouri PHP nu sunt fixate în mărimea, și pentru că PHP nu prea 218 00:09:58,040 --> 00:10:03,090 au programator front-cu care se confruntă noțiuni de tipuri, 219 00:10:03,090 --> 00:10:05,110 putem amesteca tipuri de date în matrice noastre, de asemenea. 220 00:10:05,110 --> 00:10:08,100 Așa că nici măcar nu trebuie să utilizeze toate întregi sau toate punctele plutitoare, 221 00:10:08,100 --> 00:10:12,826 putem avea un mix de toate diferite tipuri într-o singură matrice. 222 00:10:12,826 --> 00:10:14,700 Declararea o serie este destul de simplă. 223 00:10:14,700 --> 00:10:16,116 E la fel ca orice altă variabilă. 224 00:10:16,116 --> 00:10:20,020 $ Nums = array (1, 2, 3, 4), matrice fiind o functie 225 00:10:20,020 --> 00:10:22,760 care este construit în PHP care va crea un array pentru tine. 226 00:10:22,760 --> 00:10:28,315 Aceasta creează o serie de patru valori, Numerele în acest caz, numit $ Nums. 227 00:10:28,315 --> 00:10:29,940 Și există mai mult de un mod de a face acest lucru. 228 00:10:29,940 --> 00:10:32,420 Și am de gând să vezi aceasta foarte mult în PHP. 229 00:10:32,420 --> 00:10:36,380 PHP a fost dezvoltat de multe diferite oameni și crește și crește și crește. 230 00:10:36,380 --> 00:10:40,050 Nu e de obicei, nu doar două sau trei moduri de a face ceva în PHP, 231 00:10:40,050 --> 00:10:42,170 există, de obicei, cum ar fi 10 sau 20. 232 00:10:42,170 --> 00:10:45,300 Iată doar un alt comun mod de a declara o matrice. 233 00:10:45,300 --> 00:10:48,310 $ Nums = patrati suportului 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Deci aceasta este un fel de similar cu unghi C de br-- notație bretele cret, destul de. $ - 235 00:10:53,170 --> 00:10:58,525 sau ar fi Nums int pătrat paranteze este egal cu bretele ondulat 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 În PHP este $ Nums = pătrat paranteze 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 Dar ambele exemple aici dă-mi o serie de patru numere întregi în acest caz. 238 00:11:08,920 --> 00:11:10,920 >> Ce se întâmplă dacă vreau să tac ceva acum? 239 00:11:10,920 --> 00:11:14,760 Ei bine, pot să spun doar $ Nums 4, care din nou, încă de numărare de la 0 aici 240 00:11:14,760 --> 00:11:17,800 în PHP, ar fi al cincilea Element de matrice. 241 00:11:17,800 --> 00:11:18,990 Pot spune doar că. 242 00:11:18,990 --> 00:11:22,860 Eu nu am de gând de a suferi un seg vina, pentru ca matrice mea este doar 243 00:11:22,860 --> 00:11:24,337 de gând să crească pentru a se potrivi asta. 244 00:11:24,337 --> 00:11:25,420 Asta e destul de frumos, nu? 245 00:11:25,420 --> 00:11:28,400 Și, de fapt, nici măcar nu trebuie să specifica unde vreau să-l puneți. 246 00:11:28,400 --> 00:11:31,220 Pot spune doar acest lucru și doar tac-l chiar pe până la sfârșit, 247 00:11:31,220 --> 00:11:34,099 Sau aș putea chiar doar spune $ Nums 20 sau 1000. 248 00:11:34,099 --> 00:11:35,140 Nu contează. 249 00:11:35,140 --> 00:11:38,330 Este încă doar de gând să tac-l chiar pe la sfârșit. 250 00:11:38,330 --> 00:11:41,490 >> Așa că am putea să crească, și as-- suntem nu o să-l acopere aici, 251 00:11:41,490 --> 00:11:45,360 dar pot lipitură sau benzi elemente din matrice, precum și, 252 00:11:45,360 --> 00:11:50,064 și matrice va micșora pentru a se potrivi că spațiul lipsește acum sau gol. 253 00:11:50,064 --> 00:11:52,230 Există un alt mod de a tac ceva pe o matrice, 254 00:11:52,230 --> 00:11:54,330 care este o funcție numită array_push. 255 00:11:54,330 --> 00:11:57,860 Deci, din nou, doar această idee de a fi capabil să facă lucruri mai multe moduri diferite. 256 00:11:57,860 --> 00:12:01,950 Deci am văzut trei moduri diferite acum să tac un alt element pe o matrice. 257 00:12:01,950 --> 00:12:06,900 Deci, acest adaugă un alt element de la sfârșitul șirului $ Nums. 258 00:12:06,900 --> 00:12:08,340 Și putem amesteca tipuri noastre de date. 259 00:12:08,340 --> 00:12:13,110 Așa că am putea avea o serie de nu 1, 2, 3, 4, dar 1, adevărat, 3, 4, 260 00:12:13,110 --> 00:12:16,420 în cazul în care adevărata este un Boolean, și apoi dacă vreau să tac pe alt element 261 00:12:16,420 --> 00:12:20,860 pentru că matrice, probabil, un șir de caractere, șirul "cinci", am putea face asta. 262 00:12:20,860 --> 00:12:26,110 Și acum matrice meu ar fie 1, adevărat, 3, 4, cinci. 263 00:12:26,110 --> 00:12:28,640 Cuvântul cinci, nu întreg 5. 264 00:12:28,640 --> 00:12:31,270 Astfel încât o mulțime de flexibilitate acolo. 265 00:12:31,270 --> 00:12:33,290 >> Flexibilitatea devine chiar mai bine, deși, 266 00:12:33,290 --> 00:12:37,530 pentru că PHP are suport pentru ceva numit un tablou asociativ. 267 00:12:37,530 --> 00:12:40,660 Și am un fel de vag vorbit tablouri despre asociative din C 268 00:12:40,660 --> 00:12:44,740 în contextul tabele de dispersie, deoarece ce matrice asociative sunt într-adevăr toate 269 00:12:44,740 --> 00:12:48,950 despre fac cheie mapări valoare pereche. 270 00:12:48,950 --> 00:12:53,410 Și în acest caz, în cazul în care keys-- suntem familiarizați cu tablouri de la C, 271 00:12:53,410 --> 00:12:55,440 tastele sunt numere de index. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 Și valorile sunt ceea ce am descoperit că matrice 0, 1 matrice, matrice 2, și așa mai departe. 274 00:13:03,070 --> 00:13:06,310 Deci, tastele sunt indici, iar valorile sunt 275 00:13:06,310 --> 00:13:10,060 ceea ce este în acea locație matrice, specificat de acel index. 276 00:13:10,060 --> 00:13:15,130 >> Dar, în PHP, nu avem de a face acest lucru noțiune de matrice 0, 1 matrice, matrice 2 277 00:13:15,130 --> 00:13:15,830 mai. 278 00:13:15,830 --> 00:13:21,025 Putem folosi acum cuvinte reale pentru a mapa cheile la valori. 279 00:13:21,025 --> 00:13:22,650 Și așa am putea spune ceva de genul asta. 280 00:13:22,650 --> 00:13:26,710 Aș putea crea o matrice folosind pătrat sintaxa suport, după cum urmează. 281 00:13:26,710 --> 00:13:30,685 $ pizza = suport pătrat "brânză" și apoi 282 00:13:30,685 --> 00:13:37,210 acest tip de săgeată notație dublu, 8,99, "pepperoni," săgeată 10.99-- 9.99, 283 00:13:37,210 --> 00:13:37,880 si asa mai departe. 284 00:13:37,880 --> 00:13:39,060 Și ce se întâmplă aici? 285 00:13:39,060 --> 00:13:41,040 Ce am de fapt fac? 286 00:13:41,040 --> 00:13:43,990 Creez cheie mapări de valoare pereche. 287 00:13:43,990 --> 00:13:49,060 Deci, în loc de a spune, de exemplu, pizza 0, piese 1, 2, pizza 288 00:13:49,060 --> 00:13:52,350 Pot să spun acum pizza brânză, pizza pepperoni, 289 00:13:52,350 --> 00:13:55,120 și se referă la valorile asociate acestora. 290 00:13:55,120 --> 00:13:56,970 >> Deci, aici sunt cheile în verde. 291 00:13:56,970 --> 00:13:59,870 Brânză, pepperoni, de legume, carne de pui de bivol. 292 00:13:59,870 --> 00:14:04,200 Aici este săgeata care face această cheie de cartografiere valoare pereche. 293 00:14:04,200 --> 00:14:07,420 Și apoi aici sunt valorile la acea locație matrice. 294 00:14:07,420 --> 00:14:10,330 Deci e ca și cum spune array 0 este egal cu 8,99. 295 00:14:10,330 --> 00:14:11,720 Cheia este 0. 296 00:14:11,720 --> 00:14:13,600 Valoarea este 8.99. 297 00:14:13,600 --> 00:14:19,370 Pot spune acum brânză matrice, sau în acest caz brânză pizza, branza este cheia, 298 00:14:19,370 --> 00:14:23,340 și ceea ce mi se pare la brânză pizza este 8.99. 299 00:14:23,340 --> 00:14:25,540 Asta e valoarea pe care am găsi acolo. 300 00:14:25,540 --> 00:14:28,124 >> Deci, eu pot spune lucruri de genul. $ pizza brânză = 7.99. 301 00:14:28,124 --> 00:14:29,040 Spun Am o vânzare. 302 00:14:29,040 --> 00:14:31,750 Vreau dis-- vreau să scadă prețul de pizza brânză. 303 00:14:31,750 --> 00:14:35,620 Sau pot folosi legume pizza, ca parte a unei condiții, 304 00:14:35,620 --> 00:14:39,990 sau pot adăuga un element nou pentru a-mi matrice, așa cum am putea face anterior. 305 00:14:39,990 --> 00:14:44,680 Pot adăuga un element nou la acest tablou asociativ cu cheie "bacon" 306 00:14:44,680 --> 00:14:49,250 și valoarea 13.49. 307 00:14:49,250 --> 00:14:53,820 >> Dar acest tip de introduce o problemă dacă te gândești la asta pentru un al doilea. 308 00:14:53,820 --> 00:14:55,721 Cum ne-ar repeta, prin aceasta matrice? 309 00:14:55,721 --> 00:14:56,220 Dreapta? 310 00:14:56,220 --> 00:14:59,820 În C, am avea doar un pentru bucla, de obicei, că 311 00:14:59,820 --> 00:15:03,650 ar fi de la 0 la Dimensiunea de matrice minus 1. 312 00:15:03,650 --> 00:15:08,060 Matrice are n elemente în cel, The indici valide sunt 0 la n minus 1. 313 00:15:08,060 --> 00:15:11,530 Deci, am putea folosi un pentru buclă de pas prin fiecare singur element. 314 00:15:11,530 --> 00:15:13,530 >> Dar asta nu e chiar cazul mai, nu? 315 00:15:13,530 --> 00:15:17,360 Acum unde avem pereche valoare-cheie mapări unde sunt cheile de cuvinte, 316 00:15:17,360 --> 00:15:19,970 cum putem repeta pe toate cuvintele? 317 00:15:19,970 --> 00:15:22,420 Ei bine, din fericire, PHP are un mod de a face cu asta, 318 00:15:22,420 --> 00:15:24,580 și așa ne vom sări înapoi la buclele pentru un al doilea 319 00:15:24,580 --> 00:15:30,780 să introducă un al patrulea fel de buclă, care există în PHP numit-o buclă foreach. 320 00:15:30,780 --> 00:15:34,430 Și ce o buclă foreach nu este este practic aceeași idee. 321 00:15:34,430 --> 00:15:36,060 Îl puteți folosi pentru orice tip de matrice. 322 00:15:36,060 --> 00:15:38,100 Dar e practic aceeași idee ca o pentru bucla, 323 00:15:38,100 --> 00:15:40,750 cu excepția loc de a folosi indici, doar 324 00:15:40,750 --> 00:15:45,830 au această sintaxă ciudat în cazul în care te sun la fiecare singur element 325 00:15:45,830 --> 00:15:47,550 un nume în sensul această buclă. 326 00:15:47,550 --> 00:15:49,258 >> Deci, în acest caz, foreach ($ array ca $ cheie). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Practic, cum că notele comentariu, în interiorul acestui bucla foreach, 329 00:15:56,450 --> 00:16:00,466 este de gând să meargă pe fiecare Element de $ array, care este de obicei 330 00:16:00,466 --> 00:16:03,340 O să fie un tablou asociativ, dar poate fi cu adevărat nici un fel de matrice 331 00:16:03,340 --> 00:16:05,419 pe care doriți în PHP. 332 00:16:05,419 --> 00:16:07,210 Și de fiecare dată faptul că, în o pentru buclă s-ar putea 333 00:16:07,210 --> 00:16:13,780 au spus $ array paranteze pătrate $ i, ai putea spune doar $ cheie. 334 00:16:13,780 --> 00:16:22,340 Astfel încât $ cheie devine un alias pentru fiecare Indicele de PHP asociativ matrice, 335 00:16:22,340 --> 00:16:23,710 și astfel încât să puteți utiliza ca asta. 336 00:16:23,710 --> 00:16:25,897 >> Deci, de exemplu, ne-am acum a primit pizza nostru matrice. 337 00:16:25,897 --> 00:16:27,730 Am un fel de ea ascuns într-un colț acolo 338 00:16:27,730 --> 00:16:31,080 astfel încât să putem folosi pentru a face un exemplu rapid. 339 00:16:31,080 --> 00:16:36,420 Dacă spun foreach ($ pizza ca $ pizza), ei bine, ce se întâmplă? 340 00:16:36,420 --> 00:16:42,400 Ei bine, am de gând să repeta prin fiecare singur element din matrice $ pizza, 341 00:16:42,400 --> 00:16:46,670 și astfel, am de gând pentru a apela fiecare element, atunci când sunt în interiorul eu 342 00:16:46,670 --> 00:16:49,400 a corpului de care pentru bucla, $ pizza. 343 00:16:49,400 --> 00:16:52,440 >> Deci asta e un fel de stand-in, amintesc, că $ pizza 344 00:16:52,440 --> 00:16:59,140 este un stand-in pentru a spune $ pizza paranteze pătrate $ I 345 00:16:59,140 --> 00:17:03,370 dacă am fost folosind un pentru buclă, în cazul în care ne-am ar putea merge de la $ i = 0 la, în acest caz, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Dacă nu am avea perechi de valoare-cheie aici, acest lucru ar fi elementul 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 si ne-ar folosi o buclă pentru a merge $ 0 pizza, pizza $ 1, $ 2, pizza 349 00:17:16,390 --> 00:17:17,750 $ pizza 3. 350 00:17:17,750 --> 00:17:23,130 Deci, acum doar $ pizza este înlocuind pentru acea cheie individuale. 351 00:17:23,130 --> 00:17:25,630 >> Deci, ce se întâmplă acest lucru pentru a imprima? 352 00:17:25,630 --> 00:17:29,030 Sunt imprimarea $ pizza. 353 00:17:29,030 --> 00:17:35,270 Ce am de gând să găsească at-- dacă am imprima $ pizza, $ i? 354 00:17:35,270 --> 00:17:35,770 Dreapta? 355 00:17:35,770 --> 00:17:38,680 Dacă am de gând să imprima elementul-lea de pizza, 356 00:17:38,680 --> 00:17:40,070 ce am de gând să imprima? 357 00:17:40,070 --> 00:17:42,580 Am de gând să imprima Valorile de la acea locație, nu? 358 00:17:42,580 --> 00:17:45,370 Ca și în cazul în care făceam acest lucru în contextul C, 359 00:17:45,370 --> 00:17:49,786 nu folosesc de obicei iterator nostru variabilă, int i = 0, i este mai mic de 3, 360 00:17:49,786 --> 00:17:52,900 i ++, pentru a imprima 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Suntem imprimarea matrice 0, matrice 1, matrice 2, 3 matrice. 362 00:17:57,500 --> 00:17:59,580 Și ce imprimă acest lucru este aceasta. 363 00:17:59,580 --> 00:18:01,150 E lista de prețuri. 364 00:18:01,150 --> 00:18:05,750 8,99, 9,99, 10,99, 11,99. 365 00:18:05,750 --> 00:18:06,900 >> Acum, o scurtă notă aici. 366 00:18:06,900 --> 00:18:10,900 O bucla foreach nu neapărat imprima lucrurile în ordine. 367 00:18:10,900 --> 00:18:12,770 Nu e garantat. 368 00:18:12,770 --> 00:18:13,550 De obicei nu. 369 00:18:13,550 --> 00:18:17,667 Este, de obicei, bazată pe ordinea în care elemente sunt adăugate la matrice, 370 00:18:17,667 --> 00:18:18,750 asa ca suporta faptul că, în minte. 371 00:18:18,750 --> 00:18:20,830 S-ar putea să nu fie în ordine. 372 00:18:20,830 --> 00:18:23,930 Dar o buclă foreach va repeta peste fiecare singur element 373 00:18:23,930 --> 00:18:25,060 de matrice în cauză. 374 00:18:25,060 --> 00:18:27,980 In acest caz, din nou, că este matrice $ pizza. 375 00:18:27,980 --> 00:18:32,920 >> Pot schimba sintaxa, deși, în cazul în care Vreau atât cheia și valoarea. 376 00:18:32,920 --> 00:18:37,179 În loc de a spune $ pizza de la $ pizza, pot să spun acest lucru. 377 00:18:37,179 --> 00:18:39,470 Și dacă te uiți la ceea ce am evidențiate cu verde aici, 378 00:18:39,470 --> 00:18:42,130 se pare ca o cartografiere cheie valoare pereche. 379 00:18:42,130 --> 00:18:45,980 Și astfel, dacă Tu-- chiar dacă nu sunteți în întregime sigur ce va face, 380 00:18:45,980 --> 00:18:49,300 probabil puteți ghici că $ topping se întâmplă 381 00:18:49,300 --> 00:18:53,800 a fi cheia în acest caz și $ tarif va fi valoarea. 382 00:18:53,800 --> 00:18:59,200 Așa că eu sunt înlocuirea acum fiecare element de $ pizza ca o pereche valoare-cheie, 383 00:18:59,200 --> 00:19:03,900 și acum se poate referi la cheie și valoarea, care ar putea la îndemână, 384 00:19:03,900 --> 00:19:05,590 de exemplu, după cum urmează. 385 00:19:05,590 --> 00:19:10,170 >> "Un întreg" - aceasta este o mulțime de imprimarea întâmplă here-- "un întreg" 386 00:19:10,170 --> 00:19:17,300 topping "pizza costa $" preț, și apoi Am imprima o perioadă și un backslash n. 387 00:19:17,300 --> 00:19:23,420 Deci, acum, din nou, o notificare am acces la o cheie, $ topping, și o valoare, $ tarif. 388 00:19:23,420 --> 00:19:26,647 Deci poti ghici ce acest va imprima? 389 00:19:26,647 --> 00:19:29,480 Există o mulțime de declarații de imprimare, dar există un singur backslash n, 390 00:19:29,480 --> 00:19:33,410 asa ca va imprima ceva pe un entire-- pe o singură linie de cod. 391 00:19:33,410 --> 00:19:36,965 >> Dacă eu pot referi la cheie și valoarea, apoi acum, 392 00:19:36,965 --> 00:19:39,090 în loc de doar a putea pentru a imprima preturile, 393 00:19:39,090 --> 00:19:41,330 Pot imprima ceva de genul asta. 394 00:19:41,330 --> 00:19:43,780 "O pizza brânză întreg costurile de $ 8,99." 395 00:19:43,780 --> 00:19:47,150 Și acum eu sunt, folosind toate keys-- brânză, pepperoni, legume, 396 00:19:47,150 --> 00:19:49,640 Buffalo chicken-- și valorile. 397 00:19:49,640 --> 00:19:53,980 8,99, 9,99, 10,99, 11,99 Deci, asta e doar un mod diferit 398 00:19:53,980 --> 00:19:57,840 pentru a face o buclă foreach că, în loc de doar oferindu-vă acces la valorile, 399 00:19:57,840 --> 00:20:02,950 doar dă Tu-- vă oferă acces la chei și valorile. 400 00:20:02,950 --> 00:20:04,411 >> Deci, imprimarea informații. 401 00:20:04,411 --> 00:20:07,410 Am făcut deja un cuplu de moduri diferite, s-ar putea fi observat. 402 00:20:07,410 --> 00:20:11,080 Cele două funcții în primul rând ne-am văzut sunt de imprimare și ecou. 403 00:20:11,080 --> 00:20:14,380 Și pentru destul de mult toate punctele și scopuri, sunt exact la fel. 404 00:20:14,380 --> 00:20:17,130 Sunt-- există o foarte subtil diferenta nu e chiar merită 405 00:20:17,130 --> 00:20:21,130 intra în, dar în esență peste tot aveți posibilitatea să utilizați de imprimare puteți folosi, probabil, 406 00:20:21,130 --> 00:20:22,370 ecou, ​​de asemenea. 407 00:20:22,370 --> 00:20:23,610 >> Și asta nu e doar două. 408 00:20:23,610 --> 00:20:26,970 PHP are o multime de diferite modalități de a imprima lucruri, 409 00:20:26,970 --> 00:20:30,520 și are, de asemenea metode de a integra variabile în mijlocul string. 410 00:20:30,520 --> 00:20:32,860 Deci, amintesc de C, nu amintiți-vă ce funcție 411 00:20:32,860 --> 00:20:37,580 putem folosi pentru a substitui variabile în lucrurile pe care vrem să imprime? 412 00:20:37,580 --> 00:20:40,160 Probabil utilizați acest funcționează destul de mult. 413 00:20:40,160 --> 00:20:42,290 printf, nu? 414 00:20:42,290 --> 00:20:45,290 Deci, asta este ceea ce am avut înainte de interior de contextul bucla foreach noastre. 415 00:20:45,290 --> 00:20:48,000 Am avut aceste cinci declarații de imprimare separate, 416 00:20:48,000 --> 00:20:50,330 pentru că a fost singurul mod Știam într-adevăr, la momentul 417 00:20:50,330 --> 00:20:52,450 cum pentru a imprima mesaje. 418 00:20:52,450 --> 00:20:59,560 Nu știam cum să integreze $ variabila topping în codul meu PHP. 419 00:20:59,560 --> 00:21:03,700 Ei bine, dacă am doar luat o presupunere, printf, de fapt s-ar fi lucrat. 420 00:21:03,700 --> 00:21:08,980 printf este o funcție care le pot utiliza în PHP, așa cum am puteți folosi în C. 421 00:21:08,980 --> 00:21:11,880 >> Și astfel ceva de genul asta, printf, din nou, suntem familiarizați cu asta. 422 00:21:11,880 --> 00:21:16,420 Primul% s este înlocuit cu valoarea $ topping. 423 00:21:16,420 --> 00:21:19,700 Cea de a doua% s este înlocuit cu valoarea $ tarif. 424 00:21:19,700 --> 00:21:22,630 Și așa că eu sunt interpellating, care este doar un mod de lux 425 00:21:22,630 --> 00:21:25,400 de a spune eu lipirea variabile în acea locație. 426 00:21:25,400 --> 00:21:31,000 Deci, eu sunt conectarea $ topping unde roșu% s este și în cazul în care prețul de $ albastru% s 427 00:21:31,000 --> 00:21:36,060 este, și apoi mi-ar lua un mesaj, "O pizza brânză întreg costurile de $ 8,99." 428 00:21:36,060 --> 00:21:37,750 >> Nu numai modul în care am putea face acest lucru, totuși. 429 00:21:37,750 --> 00:21:39,760 Poate că ar dori să utilizeze această metodă. 430 00:21:39,760 --> 00:21:44,890 Aceasta este de fapt ceea ce este cel mai frecvent numit interpelare variabilă. 431 00:21:44,890 --> 00:21:45,690 Pot folosi un ecou. 432 00:21:45,690 --> 00:21:47,737 Mi-ar prinde un print de asemenea, ca vom vedea. 433 00:21:47,737 --> 00:21:48,820 Dar ce se întâmplă aici? 434 00:21:48,820 --> 00:21:51,520 >> Mai întâi de toate, trebuie să scăpa de semnul dolar. 435 00:21:51,520 --> 00:21:55,140 Pentru că amintiți-vă, atunci când am fost de fapt imprimarea prețurile pizza, 436 00:21:55,140 --> 00:21:59,370 Am fost de fapt de formatare le ca cifre monetare cu un semn dolar. 437 00:21:59,370 --> 00:22:05,635 Dar noi îl utilizați, de asemenea, semne de dolari pentru a reprezenta numele de variabile în PHP, 438 00:22:05,635 --> 00:22:08,010 și în special atunci când sunt folosind această metodă a buclat 439 00:22:08,010 --> 00:22:10,040 variabilă bretele Metoda interpelare, am nevoie de 440 00:22:10,040 --> 00:22:13,490 pentru a scăpa de semnul meu dolar așa că nu cred că vorbesc despre o variabilă. 441 00:22:13,490 --> 00:22:16,920 O să de fapt, literalmente imprima un semn dolar. 442 00:22:16,920 --> 00:22:19,530 >> Deci, un fel de ea analogii la ceea ce vezi la sfârșitul acolo. 443 00:22:19,530 --> 00:22:22,832 Ea nu, de fapt print backslash n, nu? 444 00:22:22,832 --> 00:22:24,290 Se imprimă un caracter nou linie. 445 00:22:24,290 --> 00:22:26,750 Acest este-- nu va semn de imprimare backslash dolar, 446 00:22:26,750 --> 00:22:30,130 se va imprima doar un caracter semn dolar. 447 00:22:30,130 --> 00:22:30,640 Aceeași idee. 448 00:22:30,640 --> 00:22:32,760 Escape secvențe, ceea ce aceste lucruri sunt numite. 449 00:22:32,760 --> 00:22:37,080 >> Dar observați că eu nu fac orice fel de% s substituții, 450 00:22:37,080 --> 00:22:40,050 Eu doar literalmente conectarea în aceste variabile. 451 00:22:40,050 --> 00:22:45,110 Și așa mai departe în asta: ce se va întâmpla aici este faptul că valoarea $ topping-- nou, 452 00:22:45,110 --> 00:22:48,390 doar conformitate cu ceea ce am fost vorbim despre brânză, astfel far-- ar obține 453 00:22:48,390 --> 00:22:49,720 conectat acolo. 454 00:22:49,720 --> 00:22:54,780 Și $ tarif ar fi orice valoare nu este la pizza, între paranteze drepte, brânză, 455 00:22:54,780 --> 00:22:56,270 care a fost 8.99. 456 00:22:56,270 --> 00:23:01,860 Și așa ar imprima de asemenea, "O pizza brânză întreg costurile de $ 8,99." 457 00:23:01,860 --> 00:23:05,160 Și cum am spus, mi-ar prinde imprima aici, în loc de ecou, 458 00:23:05,160 --> 00:23:08,040 și funcționalitatea fi destul de mult exact la fel. 459 00:23:08,040 --> 00:23:09,660 Aceasta ar imprima același lucru. 460 00:23:09,660 --> 00:23:12,680 >> Există un alt mod de a face acest lucru, și acesta este un alt avantaj 461 00:23:12,680 --> 00:23:14,710 de lucru cu PHP siruri de caractere. 462 00:23:14,710 --> 00:23:17,130 Putem face șir concatenare. 463 00:23:17,130 --> 00:23:19,660 Am putea face acest lucru în C, de asemenea, utilizând o funcție numită strcat, 464 00:23:19,660 --> 00:23:21,180 dar, din nou, a trebuit să apel funcții separate. 465 00:23:21,180 --> 00:23:22,640 Acesta a fost toată mizeria asta de a face. 466 00:23:22,640 --> 00:23:24,590 Am avut de a lira includ string.h. 467 00:23:24,590 --> 00:23:25,780 A fost o producție, nu? 468 00:23:25,780 --> 00:23:30,070 Dar acum pot folosi doar acest operator punct a concatena siruri de caractere împreună. 469 00:23:30,070 --> 00:23:34,910 >> Deci, eu sunt concatenarea "un întreg" și apoi, indiferent de valoarea $ topping este, 470 00:23:34,910 --> 00:23:38,860 și apoi un alt string, "costurile de pizza $" 471 00:23:38,860 --> 00:23:42,340 și apoi concatenarea orice valoarea $ tarif este, 472 00:23:42,340 --> 00:23:45,670 și apoi la sfârșitul Sunt capsare pe perioada backslash n. 473 00:23:45,670 --> 00:23:47,926 Și așa mai departe, de asemenea, acest lucru ar imprima "un întreg" - din nou, 474 00:23:47,926 --> 00:23:50,550 dacă vorbim despre primul element de care array-- pizza 475 00:23:50,550 --> 00:23:54,710 "O pizza brânză întreg costurile de $ 8,99." 476 00:23:54,710 --> 00:24:01,260 Perioada, backslash n, din nou, cu $ topping și $ tarif substituind 477 00:24:01,260 --> 00:24:06,580 pentru ceea ce ne-am specificat în foreach nostru bucla ca cheie maparea valoare pereche. 478 00:24:06,580 --> 00:24:08,050 >> PHP se pot ocupa funcții. 479 00:24:08,050 --> 00:24:11,250 Funcții au fost un fel de parte integrantă a C, după cum am văzut. 480 00:24:11,250 --> 00:24:14,870 Ca variabile, nu avem nevoie să specifica tipul de întoarcere a funcției, 481 00:24:14,870 --> 00:24:16,350 pentru că nu contează cu adevărat. 482 00:24:16,350 --> 00:24:18,660 Și noi nu specifică tipuri de date de orice parametri, 483 00:24:18,660 --> 00:24:21,410 pentru că ei nu prea materie, cum am am văzut în PHP. 484 00:24:21,410 --> 00:24:24,510 Fiecare funcție este introdus cu cuvântul cheie funcția. 485 00:24:24,510 --> 00:24:27,920 Asta e modul în care ne indica faptul că PHP ce vorbim despre este o funcție. 486 00:24:27,920 --> 00:24:29,720 >> Și noi nu trebuie să a face cu principal, la toate, 487 00:24:29,720 --> 00:24:33,690 pentru că interpretul, PHP interpret, lucrări de sus în jos, 488 00:24:33,690 --> 00:24:34,190 indiferent. 489 00:24:34,190 --> 00:24:35,640 În cazul în care vede puteți face un apel de funcție, se va 490 00:24:35,640 --> 00:24:37,850 du-te găsi apelul funcției, chiar dacă este vorba de mai târziu. 491 00:24:37,850 --> 00:24:40,360 Dar o să citesc de sus în de jos, așa că nu trebuie să specificați, 492 00:24:40,360 --> 00:24:41,500 aici este în cazul în care începe. 493 00:24:41,500 --> 00:24:46,700 Începi pe linia 1 de dvs. PHP și de a lucra în jos de acolo. 494 00:24:46,700 --> 00:24:49,690 >> Deci, aici este modul în care s-ar crea o funcție numită hard_square. 495 00:24:49,690 --> 00:24:54,100 Aparent durează o parametru, care sun $ x. 496 00:24:54,100 --> 00:24:58,424 Această funcție este complicat doar pentru a ilustra diverse lucruri. 497 00:24:58,424 --> 00:24:59,590 Încă mai avem valori de returnare. 498 00:24:59,590 --> 00:25:00,870 Sunt folosind o buclă de aici. 499 00:25:00,870 --> 00:25:04,970 Dar este practic doar, ceea ce acest se ridică la doar $ x este ori $ x. 500 00:25:04,970 --> 00:25:10,520 Ceea ce am de fapt, fac este doar adăugarea X la 0 x ori sau $ X $ la zero x ori. 501 00:25:10,520 --> 00:25:15,850 Dar e în mod eficient cît mai exact La fel ca înmulțirea $ x ori x $. 502 00:25:15,850 --> 00:25:18,700 Eu pot întoarce încă o valoare, în acest caz $ rezultat, 503 00:25:18,700 --> 00:25:22,060 și am făcut o funcție în PHP. 504 00:25:22,060 --> 00:25:24,160 >> Iată cum s-ar putea folosi în context. 505 00:25:24,160 --> 00:25:26,020 Deci, poate că sunt în interiorul unor fișiere PHP. 506 00:25:26,020 --> 00:25:29,240 Observați în albastru acolo Am folosit delimitatori mele PHP, 507 00:25:29,240 --> 00:25:31,010 Suport unghi semn de întrebare php. 508 00:25:31,010 --> 00:25:35,180 În între acestea sunt toate PHP pe care vreau să scrie. 509 00:25:35,180 --> 00:25:37,840 Așa că am de gând să se pare get-- Am de gând să solicita utilizatorului 510 00:25:37,840 --> 00:25:41,550 să-mi dea un număr, magazin care variabilă, magazin în care variabila $ x, 511 00:25:41,550 --> 00:25:43,320 orice mi-au dat. 512 00:25:43,320 --> 00:25:48,590 Apoi m-am de gând să ecou hard_square de această valoare, 513 00:25:48,590 --> 00:25:50,370 și se pare că merge să tac pe o linie nouă 514 00:25:50,370 --> 00:25:53,590 De asemenea, și apoi mai târziu pe Voi defini funcția hard_square așa 515 00:25:53,590 --> 00:25:55,550 că, atunci când Eu fac apel la hard_square, 516 00:25:55,550 --> 00:25:58,160 știe ce vorbesc despre. 517 00:25:58,160 --> 00:26:00,705 >> Acum, aș putea face, de asemenea ceva de genul. 518 00:26:00,705 --> 00:26:02,050 Acest lucru este ușor diferită. 519 00:26:02,050 --> 00:26:04,190 E aproape exact La fel ca ceea ce am văzut mai înainte, 520 00:26:04,190 --> 00:26:08,400 cu excepția loc de a spune doar $ x acolo ca parametru de hard_square, 521 00:26:08,400 --> 00:26:11,730 Spun $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Deci, acesta este un exemplu de programare defensivă, 523 00:26:14,330 --> 00:26:17,070 paza programele împotriva utilizatorilor rău intenționați. 524 00:26:17,070 --> 00:26:20,020 >> Aceasta este o modalitate de a face o eroare verificarea că nu am cu adevărat 525 00:26:20,020 --> 00:26:24,670 au ca o opțiune în C. Am putea niciodată specifica valoarea implicită a ceva. 526 00:26:24,670 --> 00:26:27,010 Întotdeauna am avut de a verifica dacă, de exemplu, 527 00:26:27,010 --> 00:26:30,820 dacă ne-am făcut un apel la getString, a fost cel mai potrivit dacă imediat după ce 528 00:26:30,820 --> 00:26:33,300 verificat că, ne-am cazat dacă șirul 529 00:26:33,300 --> 00:26:35,504 că utilizatorul ne-a dat nu este egal cu NULL, 530 00:26:35,504 --> 00:26:37,920 pentru că nu vreau să încep de lucru cu un șir nul. 531 00:26:37,920 --> 00:26:39,670 >> Aici, aceasta este o modalitate pentru a proteja împotriva acestei. 532 00:26:39,670 --> 00:26:43,480 În cazul în care utilizatorul nu ne oferă ceva într-un fel, ceea ce ne face? 533 00:26:43,480 --> 00:26:46,080 Ei bine, vom spune doar ceea ce ei nu ne oferă, 534 00:26:46,080 --> 00:26:47,705 noi suntem doar de gând să conectați în 10 loc. 535 00:26:47,705 --> 00:26:52,030 Deci, în cazul în care nu ne-a dat o valoare, trebuie doar să utilizați 10 în mod implicit. Și așa aici, 536 00:26:52,030 --> 00:26:53,940 observați că am face Un apel la hard_square, 537 00:26:53,940 --> 00:26:55,980 dar nu exista nici o promptă pentru utilizator, nu? 538 00:26:55,980 --> 00:26:57,540 Mă face un apel gol. 539 00:26:57,540 --> 00:27:00,860 >> Dar funcția mea hard_square se așteaptă un parametru. 540 00:27:00,860 --> 00:27:02,222 Ce se întâmplă acest lucru pentru a imprima? 541 00:27:02,222 --> 00:27:03,680 Se va imprima 100, nu? 542 00:27:03,680 --> 00:27:05,720 Deoarece Userul nu a da-mi ceva. 543 00:27:05,720 --> 00:27:08,970 Și așa am de gând doar să-și asume că 10-- 10 este valoarea implicită. 544 00:27:08,970 --> 00:27:13,760 Și așa s-ar imprima aceasta out 100 pe o linie proprie. 545 00:27:13,760 --> 00:27:16,390 >> Fișierele PHP nu trebuie să fie doar un singur fișier. 546 00:27:16,390 --> 00:27:19,480 Puteți combina mai multe fișiere împreună, la fel ca tine poate în mod C. 547 00:27:19,480 --> 00:27:24,330 am făcut că, în C a fost de obicei pentru a face o #include pentru a obține fișiere antet tras în. 548 00:27:24,330 --> 00:27:26,180 Noi nu facem asta în PHP. 549 00:27:26,180 --> 00:27:29,110 Noi facem ceva numit require_once. 550 00:27:29,110 --> 00:27:33,360 Și apoi există acest întreg lucru, ce-i asta __dir__? 551 00:27:33,360 --> 00:27:36,510 Asta e doar o special variabil, sau constant special, 552 00:27:36,510 --> 00:27:39,030 într-adevăr, care specifică ce directorul curent este. 553 00:27:39,030 --> 00:27:41,320 Și așa va arăta în directorul curent 554 00:27:41,320 --> 00:27:44,900 pentru un fișier numit cs50.php în acest exemplu aici, 555 00:27:44,900 --> 00:27:50,490 si va pentru a lipi acest fișier în partea de sus a programului PHP, 556 00:27:50,490 --> 00:27:56,980 presupunând că ai pus necesita odată linie în partea de sus a fișierului PHP. 557 00:27:56,980 --> 00:28:01,474 >> Deci PHP este utilizat în principal, dar nu exclusiv, 558 00:28:01,474 --> 00:28:03,140 ca un limbaj de programare pentru web-based. 559 00:28:03,140 --> 00:28:05,270 Asta e într-adevăr cum a ajuns să fie. 560 00:28:05,270 --> 00:28:06,980 Dar este un plin limbă, așa cum am văzut. 561 00:28:06,980 --> 00:28:10,105 Am văzut destul de mult toate lucrurile că se poate face acest lucru sunt similare cu C, 562 00:28:10,105 --> 00:28:13,290 si se poate face un heck de mult mai mult decât atât. 563 00:28:13,290 --> 00:28:16,950 >> Dar, pentru că este un limbaj complet, iar noi poate face programare linia de comandă în ea. 564 00:28:16,950 --> 00:28:18,630 Putem rula programe linia de comandă. 565 00:28:18,630 --> 00:28:22,580 Tot ce este necesar pentru a rula o comandă program de linie care este scris în PHP 566 00:28:22,580 --> 00:28:24,260 este că aveți o interpret PHP. 567 00:28:24,260 --> 00:28:27,460 Deci, este un fel de analog având un compilator pe sistemul dumneavoastră 568 00:28:27,460 --> 00:28:31,100 dacă doriți să compilați codul C să-l transforme în fișiere executabile. 569 00:28:31,100 --> 00:28:33,810 Aveți nevoie pentru a avea un interpret PHP care există pe sistemul dvs. 570 00:28:33,810 --> 00:28:37,330 astfel încât să puteți interpreta fișiere PHP. 571 00:28:37,330 --> 00:28:40,370 >> Tu presupunând face, și, de obicei acest interpret este numit PHP, 572 00:28:40,370 --> 00:28:44,300 și este, de obicei, la pachet cu cele mai multe fișiere descărcate sau instalații de PHP 573 00:28:44,300 --> 00:28:47,430 pe care le puteți obține on-line, și, desigur, numele interpretului PHP 574 00:28:47,430 --> 00:28:49,550 avem în CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Tot ce faci este fișier php tip. 576 00:28:51,819 --> 00:28:53,610 Și ce program tău de gând să faci este e 577 00:28:53,610 --> 00:28:55,360 de gând să ruleze prin interpretului, e 578 00:28:55,360 --> 00:28:58,040 O să ignore tot ce e nu în între cauză mark-- 579 00:28:58,040 --> 00:29:03,160 sau, unghi suport semn de întrebare php, delimitatorii PHP, și imprima afară, 580 00:29:03,160 --> 00:29:07,660 și va interpreta și executa Codul interiorul delimitatori PHP. 581 00:29:07,660 --> 00:29:12,850 >> Deci, haideți să pop pe la IDE CS50 și au o privire la o serie de fișiere PHP, 582 00:29:12,850 --> 00:29:19,850 execută o serie de fișiere PHP, în linie de comandă interfață de IDE CS50. 583 00:29:19,850 --> 00:29:22,100 Deci, aici suntem în IDE CS50, și am luat libertatea 584 00:29:22,100 --> 00:29:25,800 de a deschide un fișier numit hello1.php. 585 00:29:25,800 --> 00:29:29,920 Și se pare că, conținutul acestei fișier sunt doar delimitatorii PHP acolo, 586 00:29:29,920 --> 00:29:32,220 și în între, echo ("Bună ziua, lume"). 587 00:29:32,220 --> 00:29:34,710 Acesta este un program de destul de simplu PHP. 588 00:29:34,710 --> 00:29:37,670 Mă duc pentru a defila în jos la fereastra mea terminale aici, 589 00:29:37,670 --> 00:29:44,320 și am de gând să tastați php hello1.php, lovit introduceți. 590 00:29:44,320 --> 00:29:44,950 Buna, lume. 591 00:29:44,950 --> 00:29:48,110 Asta e, probabil, ceea ce am fost așteaptă să facă, nu? 592 00:29:48,110 --> 00:29:51,140 >> Să mergem sus și să ia un alt uita-te la un program. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Destul de mult același lucru, nu, o mulțime întâmplă aici. 595 00:29:55,090 --> 00:29:57,190 De data aceasta, însă, am de gând să solicite utilizatorul să-mi dea numele lor. 596 00:29:57,190 --> 00:29:59,290 Sunt folosind din nou această funcție readline. 597 00:29:59,290 --> 00:30:01,340 $ name = readline. 598 00:30:01,340 --> 00:30:03,070 Asta e prompt, "Care este numele tau?" 599 00:30:03,070 --> 00:30:04,880 >> Se pare că eu sunt de imprimare o pe o linie proprie. 600 00:30:04,880 --> 00:30:07,220 Și apoi, astfel încât linia de mai jos care va fi prompt 601 00:30:07,220 --> 00:30:08,750 în cazul în care utilizatorul poate introduce numele lor. 602 00:30:08,750 --> 00:30:12,030 Și apoi eu sunt, folosind un pic de interpelare variabil aici, pe linia 3 603 00:30:12,030 --> 00:30:14,780 pentru a imprima "Hello" și indiferent de tipurile de utilizatori. 604 00:30:14,780 --> 00:30:22,040 Deci acest lucru este analog cu a spune, Buna, ziua, virgulă,% s dacă am utilizați printf în C. 605 00:30:22,040 --> 00:30:24,910 >> Deci, să mergem și să interpreteze acest program. 606 00:30:24,910 --> 00:30:27,400 Deci, din nou, voi derulați în jos la fereastra mea terminal. 607 00:30:27,400 --> 00:30:29,070 php hello2.php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Cum te numești? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Buna ziua, Doug. 612 00:30:36,526 --> 00:30:39,440 Am, de asemenea un alt fișier numit hello3.php. 613 00:30:39,440 --> 00:30:42,850 Am de gând să-mi șterge ecran cu control L, 614 00:30:42,850 --> 00:30:46,210 și am de gând să execute. 615 00:30:46,210 --> 00:30:47,640 Cum te numești? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Buna ziua, Doug. 618 00:30:49,780 --> 00:30:56,540 Deci comportamentul este identic cu hello2.php, dar de ce este hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Ei bine, aici e diferența. 620 00:30:58,040 --> 00:31:00,620 În acest caz, aviz că pe linia 1 aici, 621 00:31:00,620 --> 00:31:04,270 Am ceva care nu este în între delimitatorii PHP. 622 00:31:04,270 --> 00:31:07,760 Eu doar imprimarea out-- sau I doar tastat, "Care este numele tau?" 623 00:31:07,760 --> 00:31:12,060 În cazul în care interpretul PHP vede acest lucru, nu are nici o idee cum să-l interpreteze ca PHP, 624 00:31:12,060 --> 00:31:15,060 și astfel încât în ​​loc de a nu, este doar de gând să-l scuipe. 625 00:31:15,060 --> 00:31:19,010 >> Deci observați pe linia 3 acum, chemarea mea la readline, nu exista nici o promptă mai. 626 00:31:19,010 --> 00:31:21,750 Mă duc, de fapt, atunci când sa-- interpretorul PHP vede acest lucru, 627 00:31:21,750 --> 00:31:23,400 se va imprima "Cum te numești?" 628 00:31:23,400 --> 00:31:25,941 Apoi vede, oh, OK, here's-- orice altceva va fi 629 00:31:25,941 --> 00:31:29,970 interpretat în PHP, astfel încât de aceea acest lucru funcționează. 630 00:31:29,970 --> 00:31:34,990 Nu trebuie să solicite neapărat sa-- utilizator interiorul readline, 631 00:31:34,990 --> 00:31:37,490 Pot avea chiar în afara din delimitatorii PHP 632 00:31:37,490 --> 00:31:41,490 și pentru a permite interpretului la doar imprima pentru mine. 633 00:31:41,490 --> 00:31:45,364 >> Deci nu au de fapt doar să aibă un set de delimitatori PHP 634 00:31:45,364 --> 00:31:46,030 în programul dumneavoastră. 635 00:31:46,030 --> 00:31:49,887 Puteți avea, de fapt mai multe dintre ele, deschiderea și închiderea acestora în funcție de necesități. 636 00:31:49,887 --> 00:31:51,720 Deci, haideți să aruncăm o privire la o pereche de programe 637 00:31:51,720 --> 00:31:55,070 în IDE CS50 unde am ilustrează această idee de a avea 638 00:31:55,070 --> 00:31:58,376 mai multe seturi de PHP delimitate. 639 00:31:58,376 --> 00:32:02,010 >> OK, asa ca am deschis un fișier aici numit add1.php. 640 00:32:02,010 --> 00:32:03,390 Și observați ce se întâmplă aici. 641 00:32:03,390 --> 00:32:08,077 La fel ca și mai înainte, am o singur PHP set de delimitatori. 642 00:32:08,077 --> 00:32:10,660 Am de gând să imprima mesaj: "Te rog dă-mi un număr." 643 00:32:10,660 --> 00:32:13,394 Apoi m-am de gând să citească o linie și depozitați-l în $ num1 variabila. 644 00:32:13,394 --> 00:32:14,810 Apoi m-am de gând să imprimați din nou. 645 00:32:14,810 --> 00:32:16,310 Dă-mi un al doilea număr. 646 00:32:16,310 --> 00:32:20,450 Citeste o linie de la utilizator, magazin tot ce scris în $ num2. 647 00:32:20,450 --> 00:32:23,980 Adăugați-le împreună și stoca care duce la o variabilă numită $ sumă, 648 00:32:23,980 --> 00:32:26,180 și apoi imprima, "The suma acestor două numere 649 00:32:26,180 --> 00:32:29,254 este ", și apoi interpeleze acolo $ suma variabila. 650 00:32:29,254 --> 00:32:31,170 Deci, hai să executați acest prin interpret 651 00:32:31,170 --> 00:32:33,720 pentru a confirma că aceasta este ceea ce ne așteptăm. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Vă rugăm să da-mi un număr, 3. 654 00:32:38,665 --> 00:32:40,410 Dați-mi un al doilea număr, 4. 655 00:32:40,410 --> 00:32:43,370 Suma acestor două numere este 7. 656 00:32:43,370 --> 00:32:45,030 Asta e 3 plus 4. 657 00:32:45,030 --> 00:32:45,530 OK? 658 00:32:45,530 --> 00:32:47,770 Deci, nimic nu teribil de lux acolo. 659 00:32:47,770 --> 00:32:51,080 >> Și acum să deschidă add2.php. 660 00:32:51,080 --> 00:32:54,460 Aici, am o pereche de PHP seturi delimitat acolo, nu? 661 00:32:54,460 --> 00:32:59,107 Linii 1, 3-- liniile 1 și 3 nu au delimitatori PHP. 662 00:32:59,107 --> 00:33:00,940 Deci, atunci când interpretul le vede, e doar 663 00:33:00,940 --> 00:33:03,220 O să scuipe exact ceea ce am tastat acolo. 664 00:33:03,220 --> 00:33:05,011 Deci, asta e în cazul în care sunt face tot determinat mea. 665 00:33:05,011 --> 00:33:11,220 Pe liniile 2 și 4, vom vedea foarte $ familiar? php fel de delimitatori, 666 00:33:11,220 --> 00:33:15,210 astfel cele două linii sunt O să execute ca PHP. 667 00:33:15,210 --> 00:33:18,270 Și apoi pe linia 5, am această lucru ciudat aici, nu? 668 00:33:18,270 --> 00:33:20,480 Această categorie de unghi întrebare semn de egal semn. 669 00:33:20,480 --> 00:33:22,660 Voi mări chiar și într-un pic mai departe. 670 00:33:22,660 --> 00:33:29,270 Puteți vedea acest lucru este ceea ce eu sunt vorbesc despre acolo, acest $? =. 671 00:33:29,270 --> 00:33:33,420 >> Se pare că este atât de comun, care motivul pentru care am deschis un set de PHP 672 00:33:33,420 --> 00:33:36,055 delimitatori este de a imprima o valoare. 673 00:33:36,055 --> 00:33:37,430 Și asta e tot vom face. 674 00:33:37,430 --> 00:33:39,220 Dar nu e chiar prescurtare pentru asta. 675 00:33:39,220 --> 00:33:46,490 $? = Este PHP prescurtarea pentru a spune ceva de genul $? php echo suma 676 00:33:46,490 --> 00:33:48,350 de num1 și num2. 677 00:33:48,350 --> 00:33:51,900 Deci, aceasta este doar un alt prescurtare pentru asta. 678 00:33:51,900 --> 00:33:55,550 >> Deci, dacă am rula acest program, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Voi zoom jos un pic. 680 00:33:57,530 --> 00:33:59,000 Vă rugăm să da-mi un număr de 4. 681 00:33:59,000 --> 00:34:00,350 Dați-mi un al doilea număr. 682 00:34:00,350 --> 00:34:04,650 Și din moment ce nu-mi pasă cu adevărat despre tipurile de date în PHP, pot spune 4.8. 683 00:34:04,650 --> 00:34:07,160 Suma acestor două numere este 8.8. 684 00:34:07,160 --> 00:34:10,179 Această funcție se comportă destul de mult exact la fel cum ne-am aștepta, 685 00:34:10,179 --> 00:34:10,989 deasemenea. 686 00:34:10,989 --> 00:34:13,114 Și am încă o deschis aici numit dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Încercați din nou. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Am una mai mult aici numit dice1.php, care, de asemenea, a se vedea, 691 00:34:33,280 --> 00:34:37,440 are această întrebare suport unghi marca notație semnul egal acolo, 692 00:34:37,440 --> 00:34:40,659 dar observă că, în acest caz, eu sunt asteptare Rand funcție, care în timp ce 693 00:34:40,659 --> 00:34:42,790 s-ar putea aștepta generează un număr aleatoriu. 694 00:34:42,790 --> 00:34:46,889 "Tu laminate un," și va calcula un numar aleatoriu, mod 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Așa că o să-mi dea numărul în intervalul de la 1 la 6. 697 00:34:49,989 --> 00:34:53,040 >> Amintiți-vă că mod 6 mi-ar da un număr în intervalul de la 0 la 5, 698 00:34:53,040 --> 00:34:56,630 dar dacă am simularea role zaruri, care este ceea ce fac eu aici, 699 00:34:56,630 --> 00:35:00,040 Nu vreau aceste zaruri pentru a merge de la 0 la 5, vreau zaruri care merg la 1 la 6. 700 00:35:00,040 --> 00:35:02,800 Și așa aceasta este o modalitate de a obține mă în intervalul 1 la 6. 701 00:35:02,800 --> 00:35:04,720 Fac asta de două ori. 702 00:35:04,720 --> 00:35:08,630 Deci, se pare că eu sunt de rulare două zaruri la acest program. 703 00:35:08,630 --> 00:35:15,210 >> Așa că am să îndepărteze ecranul, și voi face php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Tu laminate un 4 și un 2. 705 00:35:16,640 --> 00:35:19,156 Și dacă rulați programul din nou, laminate un 5 și un 5. 706 00:35:19,156 --> 00:35:21,780 Deci, de fiecare dată când rulați programul, Primesc numere diferite, 707 00:35:21,780 --> 00:35:24,280 pentru că de fiecare dată când fac Deci, începe peste. 708 00:35:24,280 --> 00:35:27,250 Se va genera un nou set de numere aleatoare pentru mine. 709 00:35:27,250 --> 00:35:29,790 >> Deci, dacă suntem obișnuiți să derularea programelor de C, 710 00:35:29,790 --> 00:35:32,520 suntem obișnuiți să tastați ./ Numele unui program, nu? 711 00:35:32,520 --> 00:35:35,090 Asta e modul în care am făcut toți programelor noastre în C până în prezent. 712 00:35:35,090 --> 00:35:37,555 Putem face acest lucru în PHP, precum și prin adăugarea de ceva numit 713 00:35:37,555 --> 00:35:40,026 o shebang la partea de sus a fișierului nostru PHP. 714 00:35:40,026 --> 00:35:41,400 Știu că e un fel de cuvânt prostie. 715 00:35:41,400 --> 00:35:44,540 Este prescurtarea de la hash Bang. 716 00:35:44,540 --> 00:35:46,300 Asta e primele două caractere acolo. 717 00:35:46,300 --> 00:35:50,030 Amintiți-vă ce numim semn de exclamare frecvent un bang în informatică. 718 00:35:50,030 --> 00:35:51,690 De asemenea, ar putea fi pentru Bang clare. 719 00:35:51,690 --> 00:35:53,273 Există câteva modalități de a interpreta. 720 00:35:53,273 --> 00:35:57,320 Dar este practic un fel special de comanda care interpretul PHP 721 00:35:57,320 --> 00:36:00,160 înțelege ca, oh, vreau să execute acest program, 722 00:36:00,160 --> 00:36:05,250 care este aparent / utilizator / bin / php, care este, de fapt în cazul în care interpretul PHP 723 00:36:05,250 --> 00:36:08,590 locuiește în mod special pe sistemul nostru. 724 00:36:08,590 --> 00:36:12,530 Deci, ceea ce se întâmplă aici it's-- este interpretul înțelege, oh, 725 00:36:12,530 --> 00:36:17,270 Am aparent-ar trebui să utilizeze în acest program pentru a rula acest fișier. 726 00:36:17,270 --> 00:36:20,010 Și așa că vă permite pentru a trece peste etapa 727 00:36:20,010 --> 00:36:22,979 de a avea de spus php something.php. 728 00:36:22,979 --> 00:36:25,020 Există o altă captură aici, ceea ce este că, dacă am 729 00:36:25,020 --> 00:36:27,320 doresc programele noastre la funcționează conform așteptărilor, vom 730 00:36:27,320 --> 00:36:30,220 Trebuie să facem ceva numit o schimbare permisiune fișier. 731 00:36:30,220 --> 00:36:33,380 Și vom go-- si vorbim un pic mai multe despre fișiere modificări de permisiune 732 00:36:33,380 --> 00:36:37,550 în videoclipul nostru pe MVC, dar este suficient să se spune că aceasta este ceea ce trebuie să faceți 733 00:36:37,550 --> 00:36:42,760 în scopul de a face dumneavoastră fișiere .php executabil. 734 00:36:42,760 --> 00:36:49,330 Deci, haideți să aruncăm o privire la acest lucru ca exemplul nostru în finală asupra CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Deci, aici, în IDE Am două fișiere în acest Director PHP care nu par a fi 736 00:36:53,910 --> 00:36:55,310 numit .php. 737 00:36:55,310 --> 00:36:58,170 Am o funcție numită add-- Am un fișier numit add3 738 00:36:58,170 --> 00:37:00,650 și un fișier numit dice2. 739 00:37:00,650 --> 00:37:03,680 Deci, haideți să aruncăm o rapid uite și să se deschidă add3. 740 00:37:03,680 --> 00:37:08,300 Și, după cum puteți vedea, la început din fișierul meu am acest shebang, nu? 741 00:37:08,300 --> 00:37:11,420 Acest punct hash semn de exclamare. 742 00:37:11,420 --> 00:37:15,115 Acum, de asemenea, poate veți observă că, pentru un motiv oarecare, 743 00:37:15,115 --> 00:37:16,990 Nu am nici o sintaxă mai subliniind, 744 00:37:16,990 --> 00:37:20,198 și acest lucru este ceea ce am făcut aluzie la mai devreme, care a fost că, dacă nu-mi numele fișierul meu 745 00:37:20,198 --> 00:37:23,040 .php, nu am beneficiul de sintaxă mai evidențierea. 746 00:37:23,040 --> 00:37:26,220 Acest fișier este sunat add3. 747 00:37:26,220 --> 00:37:30,960 Astfel încât să pot rula mai târziu cu ./ add3 și nu ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Deci reason-- este încă bine, este încă valabil PHP, 749 00:37:33,680 --> 00:37:37,000 dar aceasta nu sintaxă evidențiată, deoarece acest fișier nu este numit something.php. 750 00:37:37,000 --> 00:37:41,580 Asta e singura diferență reală aici, plus tacâmul. 751 00:37:41,580 --> 00:37:45,170 Deci, haideți să vedem ce se întâmplă atunci când Încerc și rula acest program. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, la fel cum am face-o cu C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Permisiunea add3 negat. 754 00:37:53,190 --> 00:37:55,390 Aceasta este ceea ce ai de gând pentru a vedea dacă vă uitați 755 00:37:55,390 --> 00:37:59,280 de a utiliza comanda chmod pentru a schimba permisiunile fișierului. 756 00:37:59,280 --> 00:38:03,845 >> După cum se dovedește, PHP regulat Fișierele nu pot fi pur și simplu executat. 757 00:38:03,845 --> 00:38:06,970 Acestea pot fi interpretate, dar suntem a face ceva un pic diferit aici. 758 00:38:06,970 --> 00:38:07,761 Suntem o executare. 759 00:38:07,761 --> 00:38:12,970 Și așa că am nevoie pentru a adăuga permisiunea de execuție, chmod o + x pentru a add3. 760 00:38:12,970 --> 00:38:15,680 Atunci pot să spun ./ add3. 761 00:38:15,680 --> 00:38:16,860 Vă rugăm să da-mi un număr. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Suma acestor două numere este 11. 764 00:38:20,490 --> 00:38:26,530 >> În mod similar, am CHMOD deja dice2, așa că am putea doar să tastați ./ dice2, 765 00:38:26,530 --> 00:38:31,260 vă laminate un 1 și un 1, tu laminate un 5 și un 4, și așa mai departe. 766 00:38:31,260 --> 00:38:33,680 >> Deci, asta e destul de mult Ideea de o sintaxă PHP, nu? 767 00:38:33,680 --> 00:38:35,221 Există o mulțime de a obține prin intermediul, știu. 768 00:38:35,221 --> 00:38:39,160 Dar sperăm ai văzut acum că PHP nu este cu adevărat diferit de C 769 00:38:39,160 --> 00:38:43,670 și într-adevăr ne oferă posibilitatea de să ia lucrurile la un alt nivel sau două. 770 00:38:43,670 --> 00:38:48,230 Nu avem cu adevărat să vă faceți griji prea mult about-- noi nu prea 771 00:38:48,230 --> 00:38:51,605 trebuie să vă faceți griji prea mult despre detaliile de nivel scăzut noi 772 00:38:51,605 --> 00:38:52,980 a trebuit să vă faceți griji cu privire la cu C, nu? 773 00:38:52,980 --> 00:38:56,170 Ne putem concentra pe cea mai mare chestii nivel PHP 774 00:38:56,170 --> 00:39:01,090 ne permite să facem și să ia pentru acordată că va lucra pentru noi. 775 00:39:01,090 --> 00:39:04,350 Așa că ne dă posibilitatea de acum, trecerea de la C la PHP, 776 00:39:04,350 --> 00:39:08,280 pentru a face programe care sunt mult mai complexă și, probabil, mult mai robust. 777 00:39:08,280 --> 00:39:13,070 >> Așa că sper că te distrezi de lucru cu PHP, și eu sunt Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Acest lucru este CS50. 779 00:39:15,050 --> 00:39:17,637