1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Secțiunea 8] [mai puțin confortabilă] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Universitatea Harvard] 3 00:00:04,000 --> 00:00:08,000 [Acest lucru este CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Bine ati venit la a doua noastră de a ultima secțiune. 5 00:00:11,000 --> 00:00:13,000 În această săptămână vom vorbi despre PHP, iar apoi saptamana viitoare 6 00:00:13,000 --> 00:00:17,000 vom face un comentariu mic pentru Test 1. 7 00:00:17,000 --> 00:00:20,000 Vom incepe de la pagina 3 a problemei seturi de ambalaj, 8 00:00:20,000 --> 00:00:28,000 și vom lucra prin secțiunea de întrebări destul de repede. 9 00:00:28,000 --> 00:00:34,000 La pagina 3, începem să vorbim despre această diferență între C și PHP 10 00:00:34,000 --> 00:00:38,000 în sensul că PHP este un limbaj dinamic tastat, 11 00:00:38,000 --> 00:00:42,000 întrucât C este static tastat, 12 00:00:42,000 --> 00:00:46,000 și-a făcut cineva foarte repede orice codificare în ceva de genul PHP 13 00:00:46,000 --> 00:00:51,000 sau Python sau Ruby înainte, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Cu totul nou? Bine. 15 00:00:53,000 --> 00:00:56,000 >> Toate aceste limbi pe care tocmai am menționat 16 00:00:56,000 --> 00:01:01,000 sunt foarte diferite de limbi, cum ar fi C și C + + si Java 17 00:01:01,000 --> 00:01:04,000 în sensul că, atunci când declarați o variabilă nu trebuie să declare 18 00:01:04,000 --> 00:01:09,000 ce fel de variabile, este, deci, în C am fost blocați în vedere spună întotdeauna 19 00:01:09,000 --> 00:01:13,000 acest lucru este mergi la a fi o variabila int, sau acest lucru este mergi la a fi o variabilă char *, 20 00:01:13,000 --> 00:01:16,000 întrucât, cu PHP, Python cu, cu Ruby, 21 00:01:16,000 --> 00:01:20,000 cu o mulțime de aceste limbi mai moderne nu trebuie să faci asta la toate. 22 00:01:20,000 --> 00:01:24,000 Tu doar să declarați variabila, iar în caz de PHP 23 00:01:24,000 --> 00:01:28,000 te să declare că este o variabila prin prefixarea cu un semn $, 24 00:01:28,000 --> 00:01:35,000 și apoi tipul de variabilă este determinat de orice valoare este holding, 25 00:01:35,000 --> 00:01:38,000 care este destul de mișto. 26 00:01:38,000 --> 00:01:44,000 Pentru a juca în jurul cu acest bit un pic, avem mostră de cod PHP chiar aici 27 00:01:44,000 --> 00:01:47,000 în între etichetele de început și de sfârșit. 28 00:01:47,000 --> 00:01:53,000 Suntem folosind acest fel de HTML, în sensul că 29 00:01:53,000 --> 00:01:56,000 ne-am luat aceste paranteze unghiulare aici pentru a deschide și închide. 30 00:01:56,000 --> 00:01:58,000 Veți vedea acest lucru cu HTML. 31 00:01:58,000 --> 00:02:03,000 Veți vedea același tip de sintaxa cu XML prea. 32 00:02:03,000 --> 00:02:06,000 >> Aceasta indică începutul unui bloc PHP. 33 00:02:06,000 --> 00:02:09,000 Acest php? Este specific PHP. 34 00:02:09,000 --> 00:02:16,000 Am aproape totul cu o>, precum și?. 35 00:02:16,000 --> 00:02:22,000 Să deschide un fișier în aparatul noastră folosind orice dorești. 36 00:02:22,000 --> 00:02:25,000 În acest pachet se spune pentru a apela dynamic.php. 37 00:02:25,000 --> 00:02:29,000 Într-adevăr, se poate numi orice dorești, dar numele fișierului va veni 38 00:02:29,000 --> 00:02:34,000 și să fie important mai târziu, astfel încât amintesc doar ce-ai spune. 39 00:02:34,000 --> 00:02:36,000 Am de gând să treacă la aparat, 40 00:02:36,000 --> 00:02:43,000 și am de gând să facă un director pentru 41 00:02:43,000 --> 00:02:48,000 Secțiunea 9 Eu cred că suntem puțin acum. 42 00:02:48,000 --> 00:02:51,000 Și vom merge în secțiunea 9, 43 00:02:51,000 --> 00:02:54,000 și am de gând să folosească gedit. 44 00:02:54,000 --> 00:02:59,000 Să vedem, gedit, și am de gând să sun dynamic.php mea. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 În cadrul dynamic.php, deoarece aceasta este un fișier PHP 47 00:03:06,000 --> 00:03:09,000 și vreau să rulați acest lucru prin interpret PHP 48 00:03:09,000 --> 00:03:12,000 Am nevoie pentru a începe totul off cu aceste tag-uri deschise, 49 00:03:12,000 --> 00:03:17,000 așa că am de gând să înceapă celor imediat, 50 00:03:17,000 --> 00:03:23,000 da eu un mic spatiu intre tag-uri, 51 00:03:23,000 --> 00:03:26,000 și apoi punctul de acest exercițiu a fost să se joace în jurul valorii de cu 52 00:03:26,000 --> 00:03:34,000 aceasta functie numita gettype, așa gettype, această funcție chiar aici. 53 00:03:34,000 --> 00:03:38,000 >> Observați că nu e nici o subliniere sau de spațiu sau cratimă sau ceva de genul asta 54 00:03:38,000 --> 00:03:42,000 separarea 2 cuvinte, pentru a primi și tastați, doar un singur cuvânt cu totul. 55 00:03:42,000 --> 00:03:46,000 Dar ce va face este dacă am trece intr-o variabila pentru a gettype, 56 00:03:46,000 --> 00:03:51,000 spune $ var sau $ x, 57 00:03:51,000 --> 00:03:55,000 acest lucru va spune-mi un fel de într-un format de depanare 58 00:03:55,000 --> 00:03:59,000 ce nume de acest tip este. 59 00:03:59,000 --> 00:04:03,000 Vom experimenta aici. 60 00:04:03,000 --> 00:04:07,000 În special, dacă te uiți înapoi la spec. PSET 61 00:04:07,000 --> 00:04:11,000 ne-am luat câteva linii diferite de cod aici. 62 00:04:11,000 --> 00:04:16,000 În prima linie de cod am inițializa această variabilă, $ var, 63 00:04:16,000 --> 00:04:21,000 să fie egal cu 7, și apoi avem această linie printf 64 00:04:21,000 --> 00:04:25,000 care spune hey, var printf este gol. 65 00:04:25,000 --> 00:04:29,000 Printf este una dintre cele mai multe moduri putem imprima lucruri în PHP. 66 00:04:29,000 --> 00:04:33,000 De multe ori veți vedea funcția de ecoul folosit în loc de printf, 67 00:04:33,000 --> 00:04:40,000 dar printf toți suntem familiarizați cu care au fost de codificare în C pentru un timp. 68 00:04:40,000 --> 00:04:42,000 Ce puteți face de fapt, este să vedem dacă lucrările de copiere și lipire. 69 00:04:42,000 --> 00:04:46,000 Am de gând să dea această un try. 70 00:04:46,000 --> 00:04:52,000 Ne vom întoarce pe la aparatul. 71 00:04:52,000 --> 00:05:00,000 Bine, și acolo vom merge. 72 00:05:00,000 --> 00:05:05,000 Și spațierea este un funky, pic, dar aici vom merge. 73 00:05:05,000 --> 00:05:08,000 Avem acest cod aici. 74 00:05:08,000 --> 00:05:11,000 >> [Student] E stilul nu este bine sa-l fila? 75 00:05:11,000 --> 00:05:13,000 Ne pare rău? 76 00:05:13,000 --> 00:05:15,000 [Student] Este convențional să-l fila? 77 00:05:15,000 --> 00:05:21,000 Corect, deci Sam întreabă dacă e convenție la tab-ul sau nu. 78 00:05:21,000 --> 00:05:23,000 De obicei da. 79 00:05:23,000 --> 00:05:26,000 În acest caz, am ales să nu. 80 00:05:26,000 --> 00:05:33,000 Sincer, veți vedea lucruri diferite printre programatori diferite. 81 00:05:33,000 --> 00:05:40,000 PHP este de obicei folosit de multe ori în combinație cu HTML 82 00:05:40,000 --> 00:05:45,000 și alte limbi, și așa, uneori, de imprimare va arata un pic funky, 83 00:05:45,000 --> 00:05:50,000 dacă în termen de pornire liniuță PHP și etichetele finale. 84 00:05:50,000 --> 00:05:53,000 Este într-adevăr depinde. 85 00:05:53,000 --> 00:05:56,000 În acest caz, copiere și lipire nu a lipi pe filele din pentru mine, 86 00:05:56,000 --> 00:06:02,000 dar cu siguranta nu, cum ai spus, face mai clară. 87 00:06:02,000 --> 00:06:06,000 În regulă, dacă salvați acest cod în dynamic.php 88 00:06:06,000 --> 00:06:10,000 atunci ce poti sa faci este coborât la fereastra terminalului dumneavoastră în cazul în care am dreptate aici 89 00:06:10,000 --> 00:06:17,000 în gedit, și să facă echivalentul a compila 90 00:06:17,000 --> 00:06:20,000 folosind facă și să fie difuzate, apoi codul în C 91 00:06:20,000 --> 00:06:25,000 tot ce trebuie să faci cu fișierul PHP este pornirea interpret PHP, 92 00:06:25,000 --> 00:06:30,000 care este un mic program numit PHP, 93 00:06:30,000 --> 00:06:35,000 și argumentul pe care il dați interpret este fișierul pe care doriți să interpreteze. 94 00:06:35,000 --> 00:06:40,000 În acest caz, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Hopa, în cazul în care l-am pus? 96 00:06:43,000 --> 00:06:52,000 Oh, am pus-o în secțiunea 9, și iată-mă aici. Asta e motivul. 97 00:06:52,000 --> 00:06:57,000 >> Acum, dacă am alerga din nou 98 00:06:57,000 --> 00:07:02,000 vedem că în prima invitație mea funcție gettype 99 00:07:02,000 --> 00:07:04,000 var este un număr întreg. 100 00:07:04,000 --> 00:07:12,000 În următoarea var este un șir, și apoi în al treilea var este un boolean. 101 00:07:12,000 --> 00:07:15,000 Ce este interesant despre acest lucru este în cazul în care ne derula înapoi, vedem că 102 00:07:15,000 --> 00:07:18,000 Acestea sunt tipuri asemănătoare cu cele pe care le-am avut în C. 103 00:07:18,000 --> 00:07:22,000 Am avut Ints în C. 104 00:07:22,000 --> 00:07:26,000 Am avut un fel de siruri de caractere în C, 105 00:07:26,000 --> 00:07:31,000 astfel siruri de caractere nu au fost un tip cu totul legitim, în sensul că 106 00:07:31,000 --> 00:07:37,000 șir nostru CS50 a fost cu adevărat ce? 107 00:07:37,000 --> 00:07:39,000 Ne pare rău? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Da, a fost acest char * am folosit. 110 00:07:43,000 --> 00:07:47,000 La începutul semestrului am fost folosind tipul de șir, 111 00:07:47,000 --> 00:07:52,000 dar a fost într-adevăr un char * sub capota. 112 00:07:52,000 --> 00:07:58,000 Am doar de tip a definit-o, în timp ce în PHP aceste siruri de caractere sunt un tip real. 113 00:07:58,000 --> 00:08:07,000 Nu e nici mai mult de acest tip de lucruri char *. 114 00:08:07,000 --> 00:08:10,000 >> Veți vedea că putem face multe lucruri mai mult cu siruri de caractere 115 00:08:10,000 --> 00:08:14,000 mult mai ușor în PHP decât am putea în C, 116 00:08:14,000 --> 00:08:17,000 și apoi în cele din urmă, avem acest tip boolean, iar diferența mare aici este că 117 00:08:17,000 --> 00:08:21,000 dacă ne derula în jos, vedem că numele acestor tipuri de 118 00:08:21,000 --> 00:08:28,000 sunt acum șir întreg, și în loc de boolean, int și bool 119 00:08:28,000 --> 00:08:31,000 și cum să te iau diferite limbaje de programare, 120 00:08:31,000 --> 00:08:36,000 presupunând că, la un moment dat în viața dumneavoastră vă va veni în contact cu 121 00:08:36,000 --> 00:08:40,000 cele diferite pe care le vei observa ca aceasta quirks puțin 122 00:08:40,000 --> 00:08:44,000 în cazul în care solicită, C Ints întregi. 123 00:08:44,000 --> 00:08:46,000 Unii o numesc numere întregi. 124 00:08:46,000 --> 00:08:51,000 Există alți termeni pe care veți rula în. 125 00:08:51,000 --> 00:08:55,000 Int mare am văzut azi în SQL. 126 00:08:55,000 --> 00:08:59,000 Există, de asemenea, numărul și apoi bool, boolean, 127 00:08:59,000 --> 00:09:03,000 tot felul de diferențe acolo. 128 00:09:03,000 --> 00:09:07,000 >> Acest lucru nu este teribil de interesantă, dar acum am de gând să vă dau un pic de timp- 129 00:09:07,000 --> 00:09:13,000 dacă ne zoom înapoi-a lucra prin intermediul acestui exercițiu, la partea de jos a paginii 3 130 00:09:13,000 --> 00:09:20,000 în cazul în care se întreabă ce tipuri corespund la aceste valori aici, la partea de jos. 131 00:09:20,000 --> 00:09:24,000 Avem 3.50. 132 00:09:24,000 --> 00:09:28,000 Avem chestia asta chiar aici, ceea ce este interesant. 133 00:09:28,000 --> 00:09:32,000 Nu am văzut că înainte, deși, dacă ați fost în urma de-a lungul în curs 134 00:09:32,000 --> 00:09:35,000 probabil știți deja ce este. 135 00:09:35,000 --> 00:09:40,000 Apoi, avem acest lucru, care este un fel de funky. 136 00:09:40,000 --> 00:09:42,000 Ai recunosc acest lucru. 137 00:09:42,000 --> 00:09:46,000 Ce este acest lucru în C? 138 00:09:46,000 --> 00:09:50,000 Sam? Ce s-ar prezenta dai în C? 139 00:09:50,000 --> 00:09:54,000 Aceasta ar deschide un fișier numit dynamic.php și să-l fi citit. 140 00:09:54,000 --> 00:09:58,000 Da, și ceea ce ar fi tipul de variabile care ne-ar atribui acest fișier să stea? >>. 141 00:09:58,000 --> 00:10:02,000 Exact, ne-ar atribui acest lucru o stea fișier. 142 00:10:02,000 --> 00:10:08,000 Acest lucru este PHP legitim prea. 143 00:10:08,000 --> 00:10:12,000 Executați. Vezi ce se întâmplă atunci când treci asta în gettype. 144 00:10:12,000 --> 00:10:19,000 Și apoi, de asemenea, să verificați ce este nul, ceea ce ar putea fi în PHP. 145 00:10:19,000 --> 00:10:21,000 Îți dau câteva minute. 146 00:10:21,000 --> 00:10:24,000 Aveți posibilitatea să copiați și să lipiți literalmente aceste valori în, 147 00:10:24,000 --> 00:10:29,000 și apoi vom face un apel pic de aleator pe tine 148 00:10:29,000 --> 00:10:34,000 si vezi ce ai. 149 00:10:34,000 --> 00:10:36,000 >> [Student] Am o intrebare. << Da. 150 00:10:36,000 --> 00:10:40,000 Într-una din prelegerile lui David a spus că e ceva ce se poate pune la începutul fișierului dvs. 151 00:10:40,000 --> 00:10:43,000 astfel încât să nu trebuie să tastați în PHP de fiecare dată. 152 00:10:43,000 --> 00:10:45,000 Ce-a fost asta? 153 00:10:45,000 --> 00:10:50,000 El a fost, probabil, vorbind despre bang-ului lira, bang hash. 154 00:10:50,000 --> 00:10:57,000 E o directivă că, dacă marcați fișierul ca executabil 155 00:10:57,000 --> 00:11:01,000 apoi ceea ce face este atunci când executați fișierul 156 00:11:01,000 --> 00:11:06,000 se va spune programul coajă 157 00:11:06,000 --> 00:11:12,000 pentru a utiliza interpretorul PHP să interpreteze conținutul fișierului. 158 00:11:12,000 --> 00:11:16,000 Întrebarea fiind ceea ce a fost această linie specială 159 00:11:16,000 --> 00:11:20,000 că am putea include în partea de sus a fișierelor PHP noastre nu trebuie să includă 160 00:11:20,000 --> 00:11:26,000 această linie PHP, sau ori de câte ori această comandă PHP vrem să execute fișierul? 161 00:11:26,000 --> 00:11:31,000 Și vă puteți face de fapt acest lucru cu o grămadă de fișiere diferite. 162 00:11:31,000 --> 00:11:37,000 Cred că depinde de unde binarul PHP este stocat, 163 00:11:37,000 --> 00:11:43,000 dar de multe ori usr / bin / php este un loc bun pentru a începe. 164 00:11:43,000 --> 00:11:45,000 Vă puteți da seama exact de asta merge înapoi la aparatul dvs. 165 00:11:45,000 --> 00:11:50,000 și tastarea în care php. 166 00:11:50,000 --> 00:11:55,000 Comanda care figurează atunci când sunteți de executare binar 167 00:11:55,000 --> 00:12:01,000 sau o comandă în cazul în care fișierul corespunzător este. 168 00:12:01,000 --> 00:12:06,000 Acest lucru mi-a spus că PHP este într-adevăr aliasing acest fisier binar 169 00:12:06,000 --> 00:12:13,000 care este stocat în usr / bin, care este în cazul în care o mulțime de binare de sistem sunt instalate. 170 00:12:13,000 --> 00:12:21,000 De exemplu, dacă am derulați până la partea de sus, acum că l-am pus asta #! Linia aici 171 00:12:21,000 --> 00:12:27,000 Eu pot derula în jos, și pot încerca să fugi 172 00:12:27,000 --> 00:12:35,000 dynamic.php, dar am această eroare cu privire la permisiunea de a fi refuzat, 173 00:12:35,000 --> 00:12:42,000 și ceea ce înseamnă că este faptul că acest fișier nu este oferindu-prezent permisiunile executabile. 174 00:12:42,000 --> 00:12:46,000 Acesta nu este marcat ca un fișier care cineva poate rula. 175 00:12:46,000 --> 00:12:52,000 >> Când ai fugit Marca sau zăngănit și ai un executabil de la ea 176 00:12:52,000 --> 00:12:56,000 compilatorul a fost suficient de inteligent să știe că hei, eu sunt construirea unui executabil. 177 00:12:56,000 --> 00:13:00,000 Probabil, veți dori să-l execute, asa ca ar configura în mod automat 178 00:13:00,000 --> 00:13:02,000 permisiunile pentru tine. 179 00:13:02,000 --> 00:13:06,000 Acest lucru nu este cazul, deși, atunci când creați un fișier obișnuit de la zero, 180 00:13:06,000 --> 00:13:13,000 motivul fiind de obicei nu doriți să aveți orice fișier de pe sistemul dvs. să fie executabil, 181 00:13:13,000 --> 00:13:15,000 deci de fapt trebuie să mergi și să-l facă manual. 182 00:13:15,000 --> 00:13:22,000 Cel mai simplu mod de a face acest lucru este cu comanda chmod, 183 00:13:22,000 --> 00:13:28,000 și chmod + x spune adaugă biți executabil 184 00:13:28,000 --> 00:13:31,000 pentru că nu e pic de citire, scriere și biți biți executabil, 185 00:13:31,000 --> 00:13:35,000 r, w și x, 186 00:13:35,000 --> 00:13:39,000 și zicând: chmod + x va porni biți executabil 187 00:13:39,000 --> 00:13:46,000 pentru ca mai apoi fișierul pe care le specificați, care în acest caz va fi dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Student] este că pornit pentru toata lumea? 189 00:13:49,000 --> 00:13:52,000 Să verificăm acest lucru, asa cum mi-ar verifica pentru a vedea permisiunile? 190 00:13:52,000 --> 00:13:54,000 Știi cum aș verifica pentru a vedea permisiunile unui fișier? 191 00:13:54,000 --> 00:13:56,000 [Răspuns studentul neauzit] 192 00:13:56,000 --> 00:13:58,000 Ne pare rau >> [Student]? XSD. 193 00:13:58,000 --> 00:14:03,000 XSD ne dă fișierul în hacks. 194 00:14:03,000 --> 00:14:09,000 Enumerând toate fișierele,-l, va arata-mi toate fișierele din directorul meu 195 00:14:09,000 --> 00:14:13,000 un fel de listare lung în lor, prolix, și așa mai departe aici vedem că 196 00:14:13,000 --> 00:14:17,000 acest fișier dynamic.php 197 00:14:17,000 --> 00:14:23,000 Ultima modificare 05 noiembrie la ora 04:21. 198 00:14:23,000 --> 00:14:26,000 Proprietarul acestui fisier este jharvard. 199 00:14:26,000 --> 00:14:28,000 Asta e utilizatorul care este logat 200 00:14:28,000 --> 00:14:31,000 Asta e ghidul lucrez ca, 201 00:14:31,000 --> 00:14:36,000 și, de asemenea, dacă sunteți în aparatul esti, de asemenea, de lucru ca jharvard utilizator. 202 00:14:36,000 --> 00:14:38,000 Ești în grupul studenților, 203 00:14:38,000 --> 00:14:44,000 și acestea sunt lucruri pe care le veți vedea destul de des. 204 00:14:44,000 --> 00:14:47,000 >> Putem merge într-o mulțime de detalii aici, 205 00:14:47,000 --> 00:14:50,000 dar pentru cea mai mare parte ceea ce vrei să se uite la atunci când sunteți în căutarea pentru a vedea 206 00:14:50,000 --> 00:14:55,000 dacă este sau nu un fișier executabil este în primul rând este 207 00:14:55,000 --> 00:14:58,000 utilizatorul care deține fișierul, proprietarul, 208 00:14:58,000 --> 00:15:03,000 astfel încât acest jharvard, iar apoi ne-am 209 00:15:03,000 --> 00:15:07,000 biți permisele de aici de pe partea stângă, 210 00:15:07,000 --> 00:15:13,000 și modul de a citi acest lucru este faptul că ultimul bit 211 00:15:13,000 --> 00:15:18,000 de obicei, este utilizat pentru marcarea sau cel puțin nu-în acest caz, 212 00:15:18,000 --> 00:15:21,000 acest ultimul bit va fi adesea setat la anunț pentru a indica 213 00:15:21,000 --> 00:15:24,000 faptul că fișierul este un director și nu doar un fișier obișnuit. 214 00:15:24,000 --> 00:15:28,000 Atunci următoarele 3 biti chiar aici 215 00:15:28,000 --> 00:15:34,000 determina permisiunile pe care proprietarul fișierului are, 216 00:15:34,000 --> 00:15:38,000 astfel încât, în acest caz jharvard, în calitate de proprietar al fișierului, poate citi și scrie acest fișier, 217 00:15:38,000 --> 00:15:42,000 dar exista o linie spune că jharvard nu poate executa acest fișier. 218 00:15:42,000 --> 00:15:46,000 Următoarele 3 biti sunt pentru grup, astfel încât acesta este grupul studenților, 219 00:15:46,000 --> 00:15:49,000 așa că, dacă au existat mai mulți utilizatori de pe aparat meu, 220 00:15:49,000 --> 00:15:52,000 si am avut mai mulți utilizatori, ca parte a grupului studenți, 221 00:15:52,000 --> 00:15:55,000 atunci ei pot citi toate acest fișier, dar nu o pot scrie, 222 00:15:55,000 --> 00:15:59,000 și, de asemenea oricine altcineva, lumea 223 00:15:59,000 --> 00:16:01,000 poate doar citi acest fișier, de asemenea. 224 00:16:01,000 --> 00:16:03,000 Există o writeup bun, mult timp despre acest lucru, 225 00:16:03,000 --> 00:16:05,000 astfel încât să puteți citi on-line. 226 00:16:05,000 --> 00:16:10,000 În spec. set de probleme vom merge in aceasta mai în detaliu. 227 00:16:10,000 --> 00:16:12,000 >> [Student] Este 218 referindu-se la lumea? 228 00:16:12,000 --> 00:16:17,000 218-off este partea de sus a capul meu mă uit, 229 00:16:17,000 --> 00:16:20,000 dar nu. 230 00:16:20,000 --> 00:16:29,000 Hai să a se vedea. Sunt decupare pe asta acum. 231 00:16:29,000 --> 00:16:32,000 Revenind la ceea ce am fost pe cale de a face cu acest chmod + x 232 00:16:32,000 --> 00:16:37,000 în cazul în care am vrut să dea permisiuni dynamic.php executabile, 233 00:16:37,000 --> 00:16:40,000 și întrebarea dacă a fost sau nu acest lucru ar da permisiuni executabile pentru toată lumea 234 00:16:40,000 --> 00:16:44,000 sau doar la jharvard, și putem vedea acest lucru prin 235 00:16:44,000 --> 00:16:48,000 execută comenzile și tastarea ls-l, 236 00:16:48,000 --> 00:16:51,000 și acum vedem că este marcat ca executabil. 237 00:16:51,000 --> 00:16:54,000 Veți vedea că a existat o schimbare de culoare. 238 00:16:54,000 --> 00:16:57,000 Acum dynamic.php este listat în verde, 239 00:16:57,000 --> 00:17:01,000 si se pare ca raspunsul la intrebare este ce, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Numai jharvard. >> Numai jharvard, da. 241 00:17:04,000 --> 00:17:08,000 >> Dacă am vrut să transforme bit executabil pe pentru toată lumea 242 00:17:08,000 --> 00:17:10,000 cum am putea face asta? 243 00:17:10,000 --> 00:17:13,000 Orice gânduri >> A? + X? 244 00:17:13,000 --> 00:17:15,000 Da, exact. 245 00:17:15,000 --> 00:17:23,000 Charlotte a spus putem face chmod a + x de dynamic.php, 246 00:17:23,000 --> 00:17:26,000 și acum, dacă vom rula ls-l vedem ca executabile biți 247 00:17:26,000 --> 00:17:30,000 într-adevăr, sunt pornite pentru toată lumea. 248 00:17:30,000 --> 00:17:37,000 Și puteți face de fapt, invers de acest lucru, astfel încât să puteți opri pentru toată lumea 249 00:17:37,000 --> 00:17:41,000 folosind minus. 250 00:17:41,000 --> 00:17:46,000 Acum este oprit, iar acum putem porni din nou pentru jharvard 251 00:17:46,000 --> 00:17:52,000 astfel încât să putem rula de fapt, acum, 252 00:17:52,000 --> 00:17:58,000 și acum voi vedea când vom rula codul de această specială #! linie la partea de sus, 253 00:17:58,000 --> 00:18:04,000 #! Linia, a declarat coajă, 254 00:18:04,000 --> 00:18:08,000 a spus terminalul nostru hei, atunci când acest fișier se execută, 255 00:18:08,000 --> 00:18:14,000 utilizarea / usr / bin / php pentru a interpreta acest fișier 256 00:18:14,000 --> 00:18:20,000 și apoi să imprimați de ieșire. 257 00:18:20,000 --> 00:18:22,000 [Întrebare elev neauzit] 258 00:18:22,000 --> 00:18:25,000 Sigur, lasă-mă să derulați înapoi. La fel ca asta. 259 00:18:25,000 --> 00:18:36,000 Veți vedea toate aceste directive să înceapă cu acest lire și apoi semn de exclamare, 260 00:18:36,000 --> 00:18:39,000 numit, uneori, o bubuitură shebang, hash. 261 00:18:39,000 --> 00:18:48,000 >> [Student] Cum putem rula cu dynamic.php php înainte de a ne face executabil? 262 00:18:48,000 --> 00:18:55,000 Întrebarea era cum putem rula acest lucru utilizând binarul PHP 263 00:18:55,000 --> 00:18:58,000 în timp ce dynamic.php nu este executabil? 264 00:18:58,000 --> 00:19:01,000 Acest lucru este extrem de important, deoarece acest lucru este exact modul în care 265 00:19:01,000 --> 00:19:06,000 o să lucreze, atunci când scrie set de probleme 7. 266 00:19:06,000 --> 00:19:09,000 Cele mai multe dintre fișierele de timp PHP nu sunt direct executabil. 267 00:19:09,000 --> 00:19:14,000 Modul în care funcționează este că este binar executabil PHP care e. 268 00:19:14,000 --> 00:19:16,000 Interpretul este lucru care se execută, 269 00:19:16,000 --> 00:19:20,000 și așa cum se face este literalmente slurping în întregul conținut 270 00:19:20,000 --> 00:19:25,000 de fișier nostru dynamic.php și linia merge prin linie 271 00:19:25,000 --> 00:19:29,000 și de executare aceste comenzi, asa ca foloseste fisierul PHP 272 00:19:29,000 --> 00:19:31,000 ca o listă de instrucțiuni. 273 00:19:31,000 --> 00:19:36,000 Nu e asta direct de executare. 274 00:19:36,000 --> 00:19:40,000 Asta e atunci când spunem că aceste fișiere sunt interpretate la momentul execuției. 275 00:19:40,000 --> 00:19:46,000 E o limba timpul de funcționare în loc de ceva care este determinat la momentul compilării, 276 00:19:46,000 --> 00:19:49,000 nu un limbaj compilat ca C. 277 00:19:49,000 --> 00:19:54,000 >> Există o modalitate de a obține un limbaj timpul de funcționare să acționeze ca în cazul în care este un timp de compilare limbă, 278 00:19:54,000 --> 00:19:58,000 ca în cazul în care aveți toate funcționare încheiat la serverul 279 00:19:58,000 --> 00:20:00,000 mai degrabă decât-Știi ce vreau să spun? 280 00:20:00,000 --> 00:20:04,000 Da, așa este întrebarea 281 00:20:04,000 --> 00:20:11,000 există o modalitate de a obține limbi rula timp să acționeze mai mult ca tipuri de timp de compilare de limbi? 282 00:20:11,000 --> 00:20:18,000 Și acolo sunt, vreau să spun, că este un domeniu activ de cercetare pentru o mulțime de aceste companii. 283 00:20:18,000 --> 00:20:22,000 Cred că Facebook a făcut o mulțime de lucru cu PHP 284 00:20:22,000 --> 00:20:25,000 și a le compila în jos, făcându-l mai rapid, optimizarea se 285 00:20:25,000 --> 00:20:29,000 deoarece site-ul lor este construit pe PHP. 286 00:20:29,000 --> 00:20:34,000 Dacă ați fost în urma node.js la toate, 287 00:20:34,000 --> 00:20:40,000 care este un fel de interpret JavaScript 288 00:20:40,000 --> 00:20:44,000 pentru a fi în măsură să ruleze JavaScript în afara browser-ului, in afara de browser-ul web, 289 00:20:44,000 --> 00:20:47,000 deoarece în mod tradițional JavaScript va rula doar din interiorul Firefox sau Chrome, 290 00:20:47,000 --> 00:20:52,000 și ar fi folosite pentru a face animații se răcească întâmpla pe o pagină Web 291 00:20:52,000 --> 00:20:55,000 și să facă pagina de web dinamice. 292 00:20:55,000 --> 00:20:59,000 Care a fost construit pe o mulțime de muncă pe care Google le-a făcut 293 00:20:59,000 --> 00:21:03,000 pentru a face JavaScript și C + + 294 00:21:03,000 --> 00:21:09,000 obligati împreună, astfel încât există o mulțime de cercetare activă a 295 00:21:09,000 --> 00:21:13,000 obține aceste limbi pentru a interacționa și de a optimiza le, 296 00:21:13,000 --> 00:21:17,000 în primul rând pentru că atât de mulți oameni pot coda in PHP si JavaScript 297 00:21:17,000 --> 00:21:19,000 deoarece este mult mai ușor. 298 00:21:19,000 --> 00:21:21,000 E mult mai frumos. Nu aveți pointeri. 299 00:21:21,000 --> 00:21:27,000 Nu aveți tipuri plutesc în jurul. 300 00:21:27,000 --> 00:21:31,000 Ei au vrut să obțină beneficiile acestor limbi timp de compilare 301 00:21:31,000 --> 00:21:36,000 cu toate verificarea tipul și viteza și utilizarea memoriei inferioare și toate că 302 00:21:36,000 --> 00:21:42,000 menținând în același timp încă flexibilitatea și ușurința de utilizare a acestor cele mai noi. 303 00:21:42,000 --> 00:21:46,000 >> Înapoi la planul nostru inițial de atac. 304 00:21:46,000 --> 00:21:50,000 Avem câteva dintre aceste întrebări aici, în spec. nostru set de probleme. 305 00:21:50,000 --> 00:21:54,000 Să mergem prin ele foarte repede, și vom merge în jurul valorii de cameră. 306 00:21:54,000 --> 00:21:59,000 Charlotte, ce tip este 3.50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Asta e un dublu. >> E o dubla. 308 00:22:01,000 --> 00:22:03,000 Jimmy, ce e asta urmatoarea? >> O matrice. 309 00:22:03,000 --> 00:22:09,000 O matrice, minunat, și Jared, ceea ce este fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] E o resursă >> E o resursă.. 311 00:22:11,000 --> 00:22:15,000 Asta e un fel de una noua, nu o stea dosar, nu un fișier. 312 00:22:15,000 --> 00:22:19,000 E o resursă este de tip în PHP, 313 00:22:19,000 --> 00:22:24,000 și îmi pare rău, Ella, nul ultima este ceea ce? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, cum este scris în PHP? >> Fel. 316 00:22:28,000 --> 00:22:30,000 În același fel, capitalele >> Da. 317 00:22:30,000 --> 00:22:33,000 Da, în regulă. 318 00:22:33,000 --> 00:22:35,000 Aici mergem, avem o dublă, avem o matrice, 319 00:22:35,000 --> 00:22:41,000 avem o resursă, iar apoi ne-am luat nul. 320 00:22:41,000 --> 00:22:48,000 Să vedem acum ai văzut- 321 00:22:48,000 --> 00:22:51,000 hai sa vedem, asa ca acum cred ca ceea ce am, de asemenea, vreau să faceți este să trageți în sus 322 00:22:51,000 --> 00:22:56,000 această pagină web chiar aici, acest php.net / manual, 323 00:22:56,000 --> 00:23:01,000 Deci, dacă voi, care copiați și deschidă un browser web. 324 00:23:01,000 --> 00:23:07,000 Am de gând să trageți în sus Chrome, care a pus inch 325 00:23:07,000 --> 00:23:10,000 Vreau să-ți arăt asta nu doar pentru că 326 00:23:10,000 --> 00:23:13,000 putem vorbi toată ziua despre tipurile și toate chestiile alea amuzante 327 00:23:13,000 --> 00:23:19,000 ci mai degrabă pentru că aceasta este manualul PHP, 328 00:23:19,000 --> 00:23:23,000 și există o mulțime de programatori PHP acolo. 329 00:23:23,000 --> 00:23:26,000 Există o mulțime de site-uri web PHP acolo, 330 00:23:26,000 --> 00:23:31,000 și, ca urmare, există o mulțime de documente pe PHP, 331 00:23:31,000 --> 00:23:36,000 si manual, acest php.net, este un loc foarte bun pentru a merge 332 00:23:36,000 --> 00:23:43,000 ori de câte ori aveți întrebări despre ceea ce este cel mai bun mod de a face X în PHP 333 00:23:43,000 --> 00:23:45,000 sau ceea ce nu o funcție arata? 334 00:23:45,000 --> 00:23:49,000 Doar un fel de a obține familiarizat cu ceea ce acest lucru arata ca, deoarece 335 00:23:49,000 --> 00:23:54,000 veți fi venit aici de multe ori, un pic de problemă set 7. 336 00:23:54,000 --> 00:23:57,000 >> Dacă ajungi să faci un proiect final care utilizează PHP 337 00:23:57,000 --> 00:24:04,000 acest lucru va fi un loc care vă veți deveni foarte bine familiarizat cu. 338 00:24:04,000 --> 00:24:09,000 Adesea modul în care oamenii fac acest lucru este ei folosesc Google pentru a căuta site-ul, 339 00:24:09,000 --> 00:24:16,000 și nu utilizați caseta de căutare, care e aici, în partea din dreapta sus, care este un fel de mici. 340 00:24:16,000 --> 00:24:19,000 Dacă sunteți Googling în jurul valorii de ceva de-a face cu PHP și veți vedea 341 00:24:19,000 --> 00:24:24,000 unul din link-urile de manual de pop-up care vă puteți baza pe faptul că de obicei 342 00:24:24,000 --> 00:24:31,000 ca o resursă destul de bun. 343 00:24:31,000 --> 00:24:34,000 Minunat, astfel încât din aceste tipuri, doar din curiozitate, 344 00:24:34,000 --> 00:24:37,000 cele care nu am văzut? 345 00:24:37,000 --> 00:24:40,000 Orice nu am văzut aici? 346 00:24:40,000 --> 00:24:44,000 [Student] Resurse. >> Am văzut resursă cu apelul fopen. 347 00:24:44,000 --> 00:24:48,000 [Student] Obiecte Obiecte >> nu ne-am vazut sigur.. 348 00:24:48,000 --> 00:24:51,000 Callback nu am văzut. 349 00:24:51,000 --> 00:24:54,000 Există unele dintre aceste pseudo-tipuri. 350 00:24:54,000 --> 00:24:57,000 Am văzut cu siguranta doar întreg și dublu. 351 00:24:57,000 --> 00:25:01,000 Noi nu am vedea unele de celelalte, deci dacă ne faceți clic pe numere întregi 352 00:25:01,000 --> 00:25:08,000 putem vedea sunt acolo orice alte numere întregi pe care le au aici? 353 00:25:08,000 --> 00:25:11,000 Sunt toate-așa întreg, întreg, întreg. 354 00:25:11,000 --> 00:25:14,000 Unele limbi au mai mari tipuri de intregi, 355 00:25:14,000 --> 00:25:23,000 ca am vazut pe MySQL astăzi nu a fost int și apoi int mare. 356 00:25:23,000 --> 00:25:25,000 Mișto. 357 00:25:25,000 --> 00:25:28,000 >> Deci, PHP Manual. 358 00:25:28,000 --> 00:25:37,000 Să ne întoarcem la spec. nostru set de probleme, iar noi vom defila acum la pagina 4. 359 00:25:37,000 --> 00:25:41,000 Unul dintre lucrurile care se întâmplă atunci când vei ajunge aceste limbi 360 00:25:41,000 --> 00:25:49,000 care nu au această dactilografiere static, astfel încât aceste limbi în cazul în care va trebui să declare 361 00:25:49,000 --> 00:25:52,000 tipul unui front de până variabilă 362 00:25:52,000 --> 00:26:00,000 este veți obține cazurile în care s-ar putea începe cu variabile de diferite tipuri 363 00:26:00,000 --> 00:26:04,000 interacționează unii cu alții, 364 00:26:04,000 --> 00:26:09,000 și PHP face acest lucru în cazul în care acesta încearcă să facă 365 00:26:09,000 --> 00:26:13,000 ceea ce consideră a fi cel mai sensibil pentru a face 366 00:26:13,000 --> 00:26:18,000 cand ai 2 tipuri diferite interacționează unele cu altele. 367 00:26:18,000 --> 00:26:24,000 De exemplu, dacă ne uităm la aceste linii de cod aici 368 00:26:24,000 --> 00:26:29,000 vedeți că avem ceea ce se întâmplă atunci când 369 00:26:29,000 --> 00:26:38,000 vom încerca și se adaugă șir întreg de la 1 la 2. 370 00:26:38,000 --> 00:26:41,000 Ce se întâmplă dacă am încerca și adaugă un șir care nu este o valoare numerică 371 00:26:41,000 --> 00:26:48,000 ci mai degrabă personaje reale, CS la numărul 50? 372 00:26:48,000 --> 00:26:51,000 Apoi, vom vedea ceva diferit este faptul că se întâmplă în cazul în care 373 00:26:51,000 --> 00:26:56,000 în loc de a adăuga un șir de la un număr suntem adăugarea unui număr la un șir de caractere, 374 00:26:56,000 --> 00:27:00,000 și așa mai departe și așa mai departe până la punctul în care ne apropiem 375 00:27:00,000 --> 00:27:05,000 un fel de chestii ciudate chiar aici unde ne-am luat 7 + adevărat. 376 00:27:05,000 --> 00:27:09,000 Ce naiba înseamnă asta? 377 00:27:09,000 --> 00:27:19,000 >> Dacă voi mergeți mai departe și să lipiți o parte din acest cod în aparatul. 378 00:27:19,000 --> 00:27:27,000 Puteți să vă păstrați-l în dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Vom vedea ce se întâmplă. 380 00:27:41,000 --> 00:27:43,000 [Student] Tocmai folosi de imprimare nu, printf? 381 00:27:43,000 --> 00:27:52,000 Da, astfel încât veți găsi că de imprimare este de asemenea o funcție valabil pentru imprimarea în PHP. 382 00:27:52,000 --> 00:27:54,000 Există multe moduri diferite de a face asta. 383 00:27:54,000 --> 00:27:58,000 Vom vedea, cu un cuplu de exemple mai târziu, odată ce vom începe să vorbim 384 00:27:58,000 --> 00:28:02,000 despre problema unica pe care vom scrie 385 00:28:02,000 --> 00:28:06,000 și apoi problema concentrații care am de gând să scrie 386 00:28:06,000 --> 00:28:09,000 că, deși avem fopen și fclose 387 00:28:09,000 --> 00:28:15,000 asta nu e de multe ori mai simplu mod de a citi în conținutul unui fișier. 388 00:28:15,000 --> 00:28:21,000 PHP are o mulțime de aceste holdovers C-ca. 389 00:28:21,000 --> 00:28:28,000 [Student] Când m-am pus în toate 6 din acele lucruri pe care le primesc doar un singur număr ca o ieșire. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Atunci când pune în toate 6 din aceste lucruri. 391 00:28:36,000 --> 00:28:39,000 Să vedem este ca este posibil, 392 00:28:39,000 --> 00:28:46,000 un lucru este faptul că aceste apeluri de imprimare nu sunt oprite de la sfârșitul cu linii noi. 393 00:28:46,000 --> 00:28:49,000 Nu e nici o noua linie de separare fiecare dintre aceste apeluri de imprimare, 394 00:28:49,000 --> 00:28:51,000 asa ca poate vei primi un număr mare, 395 00:28:51,000 --> 00:28:58,000 și este într-adevăr doar amalgam de personaje noi de linie. 396 00:28:58,000 --> 00:29:00,000 [Student] Bine, cum mă pot asigura că- 397 00:29:00,000 --> 00:29:03,000 Ei bine, există o mulțime de moduri diferite. 398 00:29:03,000 --> 00:29:06,000 Ai putea pune manual într-o imprimare de un caracter linie nouă, 399 00:29:06,000 --> 00:29:09,000 un ecou al unui caracter linie nouă, 400 00:29:09,000 --> 00:29:12,000 imprima de linie nouă. 401 00:29:12,000 --> 00:29:16,000 [Student] Deci ecou este același lucru ca și printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf este ca C printf 403 00:29:21,000 --> 00:29:24,000 în cazul în care sunteți de imprimare un șir formatat. 404 00:29:24,000 --> 00:29:32,000 Tu le furnizează șirul de formatul și apoi toate variabilele substituente. 405 00:29:32,000 --> 00:29:39,000 E de multe ori ceva care nu este utilizat- 406 00:29:39,000 --> 00:29:42,000 hai sa vedem, ca o declarație de renunțare, 407 00:29:42,000 --> 00:29:48,000 Sunt mai puțin familiarizați cu PHP decât mine cu limbi de web alte, 408 00:29:48,000 --> 00:29:53,000 și când m-am programat în PHP de obicei nu folosesc printf 409 00:29:53,000 --> 00:29:59,000 pentru că mi se pare mai rapid de a utiliza capacitățile șir de interpolare pe care o are, 410 00:29:59,000 --> 00:30:04,000 pe care vom merge în și vă voi arăta în doar o secundă, 411 00:30:04,000 --> 00:30:08,000 întrucât, în C avem un fel de trebuie să facem acest lucru hacky să-l pentru a imprima în mod corespunzător. 412 00:30:08,000 --> 00:30:16,000 Puteți pune, de fapt variabile direct în siruri de caractere în PHP. 413 00:30:16,000 --> 00:30:22,000 Printf este un fel de prea mult timp pentru ceea ce fac de obicei. Da, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] În general, dacă aveți eroare de analiză înseamnă asta- 415 00:30:25,000 --> 00:30:30,000 ca pe C nu-ți spun exact unde este greseala si ceea ce este, 416 00:30:30,000 --> 00:30:34,000 astfel înseamnă asta privire prin codul întreaga dvs. și dau afară? 417 00:30:34,000 --> 00:30:39,000 E de obicei, mai precis decât atât. 418 00:30:39,000 --> 00:30:48,000 Cred că, în cazul în care a fost oprit un pic, 419 00:30:48,000 --> 00:30:51,000 deci cred ca in acest caz am fost lipsește o virgulă. 420 00:30:51,000 --> 00:30:54,000 Acesta a fost încercarea de a face sens de tot, 421 00:30:54,000 --> 00:30:57,000 astfel ca aceste limbi interpretate, interpretul este de gând să încerce 422 00:30:57,000 --> 00:31:01,000 și de a face tot posibilul pentru a face munca totul în mod corespunzător. 423 00:31:01,000 --> 00:31:04,000 >> Veți vedea, de exemplu, în JavaScript 424 00:31:04,000 --> 00:31:10,000 veți de multe ori-line declarațiile end cu un punct și virgulă la fel cum o fac în PHP, 425 00:31:10,000 --> 00:31:13,000 la fel cum o fac în C. 426 00:31:13,000 --> 00:31:15,000 În JavaScript unele dintre interpreți JavaScript 427 00:31:15,000 --> 00:31:20,000 într-o mulțime de browsere va pune punct și virgulă pentru tine în 428 00:31:20,000 --> 00:31:23,000 dacă se întâmplă să fie le lipsesc. 429 00:31:23,000 --> 00:31:29,000 Vor încerca și potrivi pentru unele superficialitate din partea ta. 430 00:31:29,000 --> 00:31:34,000 Asta e în cazul în care acesta ar putea fi încercat și încearcă și încercarea de a face lucrurile sa mearga, 431 00:31:34,000 --> 00:31:36,000 și apoi în cele din urmă se va ajunge la un punct în cazul în care se spune bine, 432 00:31:36,000 --> 00:31:38,000 Eu nu pot face lucrurile sa mearga pe salvarea, și asta e în cazul în care veți obține un număr de linie 433 00:31:38,000 --> 00:31:44,000 care ar putea părea un pic off de la locul exact. 434 00:31:44,000 --> 00:31:47,000 Bine, asa ca hai sa trecem prin asta foarte repede. 435 00:31:47,000 --> 00:31:50,000 Am lăsat-o cu Ella, așa că hai să mergem pe la Missy, 436 00:31:50,000 --> 00:31:54,000 și Missy, ceea ce nu se imprimă șir 1 plus numărul 2 dai? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3 >> 3.. 438 00:31:56,000 --> 00:31:59,000 Are vreun sens? Oarecum? 439 00:31:59,000 --> 00:32:02,000 Nu-l da un număr? Nu-l da un șir? 440 00:32:02,000 --> 00:32:05,000 [Missy] Un număr >> E un număr.. 441 00:32:05,000 --> 00:32:09,000 Dar e asta imprimarea, așa că o să vă dau un fel de șir. 442 00:32:09,000 --> 00:32:12,000 >> Un lucru pe care îl putem face pentru a verifica acest lucru 443 00:32:12,000 --> 00:32:21,000 este, dacă facem $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 și apoi spunem ecou de gettype, 445 00:32:28,000 --> 00:32:33,000 așa că suntem folosind un al treilea fel de tipărire aici. 446 00:32:33,000 --> 00:32:39,000 Acum putem vedea ce se întâmplă aici. 447 00:32:39,000 --> 00:32:42,000 Aici ceea ce avem este un număr întreg avem din asta. 448 00:32:42,000 --> 00:32:45,000 Chiar dacă am fost adăugarea acestui șir la un număr, 449 00:32:45,000 --> 00:32:48,000 nu am primit un șir de ea, la fel ca Missy a spus. 450 00:32:48,000 --> 00:32:52,000 Am fost obtinerea un număr întreg. 451 00:32:52,000 --> 00:32:57,000 Bine, asa ca hai sa vedem, în continuare sus, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50 >> [Kevin] 50?. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Are vreun sens? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Da. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] De ce? De ce are sens pentru tine? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Pentru că este doar având în șir, având o valoare de zero numărul. 457 00:33:11,000 --> 00:33:16,000 Da, grozav. 458 00:33:16,000 --> 00:33:20,000 Fel de situații ambigue, dar e bine să știm ce se întâmplă. 459 00:33:20,000 --> 00:33:25,000 Stella, ce se întâmplă în continuare cu numărul 1 + string 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3 >> 3 din nou.. 461 00:33:27,000 --> 00:33:30,000 Și în acest caz, nu vom obține un șir sau un număr? 462 00:33:30,000 --> 00:33:36,000 >> Hai da-i o încercați. 463 00:33:36,000 --> 00:33:43,000 Oricine mai repede decât mă răspunsul? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, am didn't-ok, hai sa vedem, vom face același tip de lucru 465 00:33:46,000 --> 00:33:49,000 în cazul în care avem un număr, plus un șir, și vom ecou tipul, 466 00:33:49,000 --> 00:33:51,000 vedem ce putem obține. 467 00:33:51,000 --> 00:33:55,000 Avem, de asemenea, un număr întreg. 468 00:33:55,000 --> 00:33:58,000 Nu conteaza care unul este șir, care unul este numărul. 469 00:33:58,000 --> 00:34:00,000 Suntem încă în desfășurare pentru a obține un număr întreg. 470 00:34:00,000 --> 00:34:04,000 E încă în desfășurare pentru a face ceea ce ne-am putea aștepta. 471 00:34:04,000 --> 00:34:09,000 În regulă, deci Sam, ce zici de 90 + 9 sticle de bere pe perete? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99 >> 99.. 473 00:34:12,000 --> 00:34:15,000 Nu există sticle de bere pe perete, totuși. 474 00:34:15,000 --> 00:34:17,000 Ea ne dă informații un pic mai mult despre ceea ce se întâmplă. 475 00:34:17,000 --> 00:34:21,000 [Sam] Daca ai fi scris cu litere de 9 476 00:34:21,000 --> 00:34:23,000 atunci ar avea 90, nu? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Da. 478 00:34:26,000 --> 00:34:30,000 Întrebarea era dacă am fi scris ca 9 N-I-N-E 479 00:34:30,000 --> 00:34:34,000 ne-ar fi ajuns 99 sau 90? 480 00:34:34,000 --> 00:34:38,000 Ne-ar lua 90. 481 00:34:38,000 --> 00:34:42,000 Este literalmente în căutarea doar pentru caracterele cifre. 482 00:34:42,000 --> 00:34:46,000 Nu e suficient de inteligent pentru a recunoaște cuvinte și că numărul chestii. Da. 483 00:34:46,000 --> 00:34:48,000 >> [Student] Există un astfel de lucru ca typecasting în PHP? 484 00:34:48,000 --> 00:34:54,000 Există, și este exact modul în care ar face-o în C. 485 00:34:54,000 --> 00:34:56,000 Ce zici de 10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1.4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Da, deci ceea ce ar putea fi surprinzător despre asta? 488 00:35:01,000 --> 00:35:04,000 Ce s-ar întâmpla dacă ați făcut acest fel același lucru în C, 489 00:35:04,000 --> 00:35:06,000 dacă ai făcut-o 10/7 în C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Aceasta ar da numai tu-în funcție de modul în care typecasted cred 491 00:35:08,000 --> 00:35:12,000 s-ar da doar un număr limitat de cifre după zecimală. 492 00:35:12,000 --> 00:35:16,000 Da, deci un număr limitat de cifre după zecimală. 493 00:35:16,000 --> 00:35:21,000 Ce altceva ar putea fi, l-ar da orice cifre după zecimală? 494 00:35:21,000 --> 00:35:28,000 De multe ori, nu, acest lucru din nou, în funcție de modul în care îl typecasting 495 00:35:28,000 --> 00:35:31,000 acesta poate sau nu poate să-l transforma într-un număr în virgulă mobilă. 496 00:35:31,000 --> 00:35:35,000 Aici a fost un fel de frumos ca acesta a facut. 497 00:35:35,000 --> 00:35:40,000 Dacă am arătat asta înapoi când am început să fac acest gen de lucruri în C 498 00:35:40,000 --> 00:35:44,000 probabil că ar fi avut sens un pic mai mult 499 00:35:44,000 --> 00:35:48,000 că nu merge doar la 1. 500 00:35:48,000 --> 00:35:51,000 Și apoi în cele din urmă, Jamie, ce zici de 7 + adevărat? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Ce înseamnă asta? 503 00:35:56,000 --> 00:35:58,000 Cred că doar dă adevărata valoarea de 1. 504 00:35:58,000 --> 00:36:01,000 Da,. Ce se întâmplă dacă am schimba asta la fals? 505 00:36:01,000 --> 00:36:04,000 [Student] 7. 506 00:36:04,000 --> 00:36:09,000 Da, asa ca nu uita unde vorbim despre aceste valori binare, 507 00:36:09,000 --> 00:36:12,000 1 fiind pe, 0 fiind oprit? 508 00:36:12,000 --> 00:36:17,000 Acum avem adevarata este 1, 0 este falsă, 509 00:36:17,000 --> 00:36:21,000 și ar putea să nu fi văzut acest lucru în exemplele C pe care le-am făcut în acest semestru trecut, 510 00:36:21,000 --> 00:36:27,000 dar istoric de tip bool în C nu a fost un tip real, 511 00:36:27,000 --> 00:36:32,000 astfel încât oamenii au folosit 0 și 1 în loc de adevărat și fals. 512 00:36:32,000 --> 00:36:35,000 Aceasta este o manifestare a acestei. 513 00:36:35,000 --> 00:36:39,000 >> Ok, deci o parte importantă despre toate astea 514 00:36:39,000 --> 00:36:41,000 este că avem aceste tipuri diferite. 515 00:36:41,000 --> 00:36:43,000 Ele pot interactiona unii cu alții. 516 00:36:43,000 --> 00:36:49,000 Ele pot interacționa adesea unul cu altul în moduri care sunt frumos, așa cum am văzut aici. 517 00:36:49,000 --> 00:36:53,000 E frumos să fie în măsură să aibă șir 1 și numărul 2, adăugați-le împreună și de a lua 3. 518 00:36:53,000 --> 00:36:55,000 Asta are sens. 519 00:36:55,000 --> 00:36:59,000 Cu toate acestea, atunci când scrii site-uri web, și mai ales atunci când sunteți de prelucrare 520 00:36:59,000 --> 00:37:04,000 introduse de utilizator, astfel încât să presupunem că ați scris un formular web 521 00:37:04,000 --> 00:37:09,000 care colectează informații de la utilizator și apoi se duce să-l proceseze 522 00:37:09,000 --> 00:37:13,000 pe partea din spate, pe partea de server în cod PHP 523 00:37:13,000 --> 00:37:18,000 dacă vă așteptați ca valoare pe care utilizatorul tastat și a prezentat 524 00:37:18,000 --> 00:37:23,000 pentru a forma dvs. pentru a fi un întreg sau să fie un număr în virgulă mobilă sau ceva de genul asta 525 00:37:23,000 --> 00:37:29,000 aveți nevoie pentru a arunca în mod explicit că 526 00:37:29,000 --> 00:37:34,000 și de a face apoi unele verificări de tip. 527 00:37:34,000 --> 00:37:41,000 >> Tu nu vrei să se bazeze doar pe acest tip de sistem de jonglerie pentru a face lucrurile să meargă afară, 528 00:37:41,000 --> 00:37:48,000 în special pentru motive de securitate și doar pentru robustețea site-ul tau. 529 00:37:48,000 --> 00:37:51,000 Doar ceva pentru a păstra în minte faptul că ori de câte ori sunteți manipularea datelor de formular, 530 00:37:51,000 --> 00:37:57,000 ceva care vine din post sau get superglobalele 531 00:37:57,000 --> 00:38:01,000 asigurați-vă că validează întotdeauna și de ao transforma și typecast-l. 532 00:38:01,000 --> 00:38:04,000 Și la fel ca noi vorbeam despre un moment în urmă, că typecasting 533 00:38:04,000 --> 00:38:08,000 în PHP este exact același ca în C, unde aveți paranteze 534 00:38:08,000 --> 00:38:14,000 și apoi tipul. 535 00:38:14,000 --> 00:38:16,000 Țineți minte asta. 536 00:38:16,000 --> 00:38:19,000 O funcție care va veni la îndemână atunci când faci asta 537 00:38:19,000 --> 00:38:22,000 este am fost folosind-și acest lucru este un fel de ca o parte- 538 00:38:22,000 --> 00:38:27,000 am fost folosind această funcție gettype chiar aici 539 00:38:27,000 --> 00:38:30,000 să dau seama de tipul unei variabile, 540 00:38:30,000 --> 00:38:37,000 și în timp ce acest lucru este la îndemână pentru depanare și pentru a vedea ce tip de variabila este 541 00:38:37,000 --> 00:38:42,000 nu doriți să utilizați acest lucru, de exemplu, într-o stare în care 542 00:38:42,000 --> 00:38:57,000 te de verificare pentru a vedea dacă gettype de $ var = număr întreg facem ceva. 543 00:38:57,000 --> 00:39:01,000 Acest lucru este rău, rău, rău. 544 00:39:01,000 --> 00:39:09,000 În schimb, există aceste funcții numite este întreg, este șir, 545 00:39:09,000 --> 00:39:14,000 este matrice pe care doriți să o utilizați în schimb, în ​​acest caz, 546 00:39:14,000 --> 00:39:18,000 ceea ce aș vrea să fac în loc de acest tip chiar aici 547 00:39:18,000 --> 00:39:31,000 este utilizarea este var întreg. 548 00:39:31,000 --> 00:39:37,000 Și ei adesea menționată este * is_ în sensul că ați fi putut înlocui cu * întreg, 549 00:39:37,000 --> 00:39:43,000 șir, et cetera, si doar pentru a asigurați-vă că într-adevăr rapid 550 00:39:43,000 --> 00:39:50,000 este acest lucru este int php. 551 00:39:50,000 --> 00:39:59,000 Se pare ca poti face, fie este int sau este nu este întreg, precum și? 552 00:39:59,000 --> 00:40:06,000 Da, alias, alias-uri, astfel int intregi. 553 00:40:06,000 --> 00:40:08,000 Mișto. 554 00:40:14,000 --> 00:40:17,000 >> Cum facem? 555 00:40:17,000 --> 00:40:20,000 Să ridica ritmul un pic. 556 00:40:20,000 --> 00:40:24,000 Acum vom vorbi despre matrice, astfel încât puteți vedea 557 00:40:24,000 --> 00:40:28,000 în următoarea parte a spec. vorbim despre modul matrice în PHP 558 00:40:28,000 --> 00:40:31,000 sunt ușor diferite decât sunt în C. 559 00:40:31,000 --> 00:40:34,000 Într-adevăr, ei sunt un fel de amalgam de 560 00:40:34,000 --> 00:40:36,000 tablouri pe care le-ați venit să cunoască și să iubească în C 561 00:40:36,000 --> 00:40:40,000 în cazul în care totul este de același tip 562 00:40:40,000 --> 00:40:43,000 stocate consecutiv și contiguously în memorie, 563 00:40:43,000 --> 00:40:46,000 și aveți aceste indicii numerici. 564 00:40:46,000 --> 00:40:49,000 Ai indicele 0, indice 1, indice 2, 565 00:40:49,000 --> 00:40:53,000 și să stocați valori de la aceste indicii. 566 00:40:53,000 --> 00:40:57,000 Puteți, de asemenea, în C, atunci când ai scris Speller, o mulțime de tine 567 00:40:57,000 --> 00:41:00,000 a făcut abordare tabel hash, și ați văzut că nu am avut 568 00:41:00,000 --> 00:41:03,000 un alt fel de stocare în cazul în care am fost cartografierea 569 00:41:03,000 --> 00:41:07,000 o cheie de la o valoare, astfel încât atunci când ați încercat să stocați ceva în tabel hash 570 00:41:07,000 --> 00:41:11,000 ai avut să se precizeze că ai vrut să-l păstrează cu o cheie specifică, 571 00:41:11,000 --> 00:41:17,000 și că tasta determinat locația valoare și în cazul în care ar fi stocate. 572 00:41:17,000 --> 00:41:22,000 Ati cam luat aceste două concepte se întâmplă în același timp, într-o matrice PHP, 573 00:41:22,000 --> 00:41:27,000 și, ca rezultat, de multe ori numim aceste tablouri asociative 574 00:41:27,000 --> 00:41:33,000 în cazul în care suntem asocierea o cheie într-o valoare. 575 00:41:33,000 --> 00:41:39,000 În această parte următoare vorbim despre o matrice PHP simplu 576 00:41:39,000 --> 00:41:45,000 în cazul în care avem cheile a, b, și c, 577 00:41:45,000 --> 00:41:53,000 toate siruri de caractere, cartografiere la 1 intregi, 2, și 3. 578 00:41:53,000 --> 00:41:57,000 Și tu poți avea chei de diferite tipuri. 579 00:41:57,000 --> 00:42:00,000 >> Puteți avea unele taste care sunt siruri de caractere, unele chei care sunt numere întregi. 580 00:42:00,000 --> 00:42:03,000 Puteți avea valori de diferite tipuri. 581 00:42:03,000 --> 00:42:06,000 Puteți avea o valoare care este un șir de caractere, o valoare care este un număr întreg, 582 00:42:06,000 --> 00:42:11,000 o valoare care este un obiect sau un alt tablou, de exemplu, 583 00:42:11,000 --> 00:42:16,000 toate în același obiect matrice, care este un fel de ciudat. 584 00:42:16,000 --> 00:42:20,000 Tu nu trebuie să aibă o matrice care are doar un singur tip de element în el. 585 00:42:20,000 --> 00:42:26,000 Puteți avea multe lucruri diferite întâmplă pe acolo. 586 00:42:26,000 --> 00:42:33,000 Un alt lucru de remarcat este faptul că, atunci când văd așa ceva în cod, 587 00:42:33,000 --> 00:42:38,000 care este PHP valabilă de a declara o matrice la fel ca asta, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 care va declara o suma initializat ARR să fie această matrice. 589 00:42:43,000 --> 00:42:48,000 Dar ceea ce esti de fapt, obtinerea de sub capota este acest tip de implicit 590 00:42:48,000 --> 00:42:55,000 generarea de chei, unde am primit 0 - 0, 1 la 1, 2 la 2, 3 la 3. 591 00:42:55,000 --> 00:42:59,000 Și se dovedește că, chiar dacă aveți o matrice ca pe tipul ăsta aici 592 00:42:59,000 --> 00:43:03,000 în cazul în care aveți o, b și c ca tastele 593 00:43:03,000 --> 00:43:09,000 și apoi începe să utilizați metoda de apăsare matrice pentru a începe să utilizați acest tablou ca o stivă, 594 00:43:09,000 --> 00:43:12,000 astfel încât să puteți vedea că acest obiect matrice, această matrice este într-adevăr deveni supraîncărcat. 595 00:43:12,000 --> 00:43:15,000 O putem folosi ca o matrice. O putem folosi ca un tabel hash. 596 00:43:15,000 --> 00:43:19,000 O putem folosi ca o stivă. 597 00:43:19,000 --> 00:43:22,000 Când porniți impinge lucrurile pe această matrice 598 00:43:22,000 --> 00:43:30,000 primul lucru pe care împinge pe acest indice va fi 0 și apoi indexul 1 și indicele 2. 599 00:43:30,000 --> 00:43:33,000 Puteți obține acest tip de generații implicită de taste 600 00:43:33,000 --> 00:43:38,000 dacă nu le precizeze în mod explicit. 601 00:43:38,000 --> 00:43:43,000 Modul în care specificați în mod explicit cheile, desigur, este prin utilizarea acestui suport notație, 602 00:43:43,000 --> 00:43:48,000 care este similar cu matrice, cu excepția în loc de doar permițându- 603 00:43:48,000 --> 00:43:54,000 Indicii întregi de aici, acum ne permit nimic. 604 00:43:54,000 --> 00:43:57,000 Dacă doriți ca cheia să fie un șir de caractere, ți-ar specifica ca acest lucru. 605 00:43:57,000 --> 00:44:06,000 Dacă vrei să fi un int, îl specificați cu int pe care doriți să o utilizați. 606 00:44:06,000 --> 00:44:13,000 >> Întrebări cu privire la faptul că până în prezent? 607 00:44:13,000 --> 00:44:18,000 Unul dintre lucrurile frumoase despre această idee 608 00:44:18,000 --> 00:44:26,000 este că puteți doar vreodata avea o valoare stocată cu o cheie specială. 609 00:44:26,000 --> 00:44:32,000 Dacă ne întoarcem pe la aparatul nostru lasă-mă să-ștergeți unele din lucrurile astea. 610 00:44:32,000 --> 00:44:47,000 Și să spun că am inițializa o matrice pentru a fi 0, 1, 2, făcut. 611 00:44:47,000 --> 00:44:55,000 Dacă Știu acum că, de exemplu, în cazul în care am echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Mă duc pentru a obține valoarea 0 imprimat, 613 00:44:59,000 --> 00:45:05,000 și din moment ce nu poate fi decât vreodată o valoare stocată pentru o anumită cheie 614 00:45:05,000 --> 00:45:11,000 dacă am păstra ceva la $ arr [0], spune o, 615 00:45:11,000 --> 00:45:16,000 atunci știu că atunci când am echo $ arr [0] din nou 616 00:45:16,000 --> 00:45:19,000 Eu nu am de gând pentru a obține 0 imprimate la fel ca înainte. 617 00:45:19,000 --> 00:45:24,000 Mă duc doar pentru a obține o. 618 00:45:24,000 --> 00:45:30,000 Deci, acest lucru este practic spune că eu nu pot avea $ arr [0] păstrare 2 valori diferite. 619 00:45:30,000 --> 00:45:34,000 Ea nu poate stoca atât 0 și string-o, ca aceasta literalmente înlocuiește 620 00:45:34,000 --> 00:45:38,000 ceea ce era de la $ arr [0] anterior. 621 00:45:38,000 --> 00:45:43,000 Motivul pentru care am adus asta este rula, a se vedea ce se întâmplă. 622 00:45:43,000 --> 00:45:47,000 Vezi aici care am 0 tipărite și apoi o jos aici. 623 00:45:47,000 --> 00:45:51,000 Nu e nici o linie nouă acolo pentru că am fost leneș și nu am pus asta inch 624 00:45:51,000 --> 00:45:54,000 Ce e misto despre acest lucru este, putem folosi acest lucru ca o modalitate de 625 00:45:54,000 --> 00:46:00,000 pentru a capta această idee a unui set de 626 00:46:00,000 --> 00:46:07,000 în cazul în care nu putem avea mai multe chei în cadrul unei matrice. 627 00:46:07,000 --> 00:46:10,000 Nu putem avea chei identice în cadrul unei matrice. 628 00:46:10,000 --> 00:46:17,000 Eu nu pot avea tasta 0 și valoarea 1 și 0 și valoarea tasta o 629 00:46:17,000 --> 00:46:21,000 sau 0 cheie și adevărata valoare. 630 00:46:21,000 --> 00:46:27,000 Tastele sunt toate acolo e doar 1-cheie în matrice. 631 00:46:27,000 --> 00:46:32,000 Chiar dacă puteți avea aceeași valoare stocată 632 00:46:32,000 --> 00:46:35,000 de mai multe ori în matrice sub chei diferite 633 00:46:35,000 --> 00:46:42,000 nu este posibil să aibă chei identice de mai multe ori în matrice PHP. 634 00:46:42,000 --> 00:46:47,000 >> Dacă ne uităm la această problemă viitoare, unique.php, 635 00:46:47,000 --> 00:46:51,000 în cazul în care dorim să deschidem un fișier PHP 636 00:46:51,000 --> 00:46:54,000 care conține o listă de siruri de caractere, un singur șir pe linie, 637 00:46:54,000 --> 00:47:01,000 și vrem să găsim toate siruri de caractere unice în acest dosar 638 00:47:01,000 --> 00:47:06,000 tot ce trebuie sa faci este sa folosesti una din aceste matrice PHP 639 00:47:06,000 --> 00:47:12,000 și de a folosi siruri de caractere în fișier ca cheile de la această matrice 640 00:47:12,000 --> 00:47:17,000 și să păstreze actualizarea gama noastră așa cum am păstra aceste chei noi. 641 00:47:17,000 --> 00:47:22,000 Așa cum am citit fiecare linie a fișierului putem stoca în matrice, 642 00:47:22,000 --> 00:47:28,000 iar la final vom avea ca cheile noastre în gama noastră 643 00:47:28,000 --> 00:47:34,000 toate siruri de caractere unice în cadrul fișierului. 644 00:47:34,000 --> 00:47:37,000 Are vreun sens? 645 00:47:37,000 --> 00:47:41,000 Să vedem cum funcționează. 646 00:47:41,000 --> 00:47:49,000 Vom deschide, în conformitate cu spec., un nou fisier numit unique.php. 647 00:47:49,000 --> 00:47:58,000 Deschide. Hopa, îmi pare rău, fișier nou. 648 00:47:58,000 --> 00:48:03,000 Vom porni cu tag-uri de pe acelasi inceput și de sfârșit. 649 00:48:03,000 --> 00:48:17,000 Mergem să-l salvați în secțiunea 9, și am de gând să-l sun unique.php. 650 00:48:17,000 --> 00:48:25,000 Bine, acum zoom inch 651 00:48:25,000 --> 00:48:32,000 Ideea aici este deschis un fișier, 652 00:48:32,000 --> 00:48:38,000 citit în linie cu linie dosar. 653 00:48:38,000 --> 00:48:46,000 Pentru fiecare linie din fișier 654 00:48:46,000 --> 00:48:51,000 vom avea o matrice în cazul în care avem 655 00:48:51,000 --> 00:49:03,000  linie ca cheia noastră. 656 00:49:03,000 --> 00:49:09,000 Și apoi când vom ajunge la sfârșitul aici 657 00:49:09,000 --> 00:49:17,000 Tastele $ ARR sunt liniile unice 658 00:49:17,000 --> 00:49:25,000 de la dosar, deoarece știm că, dacă am pus în această matrice linie 659 00:49:25,000 --> 00:49:33,000 de mai multe ori că va păstra doar imperative valoarea veche, 660 00:49:33,000 --> 00:49:46,000 și putem pune de fapt, linia de matrice, în sine, ca la fel ca asta. 661 00:49:46,000 --> 00:49:48,000 >> Aceasta este un fel de ciudat. 662 00:49:48,000 --> 00:49:52,000 Suntem stocarea pereche de aceeași valoare tasta de peste si peste si peste, din nou, 663 00:49:52,000 --> 00:50:00,000 dar din moment ce sunt garantate că nu va fi doar 1 cheie numită linie 664 00:50:00,000 --> 00:50:05,000 Deci, dacă avem un fișier care spune că-un fișier de zgomote de animale si are bătătură, bătătură, 665 00:50:05,000 --> 00:50:11,000 miau, miau, moo, Moo, si de fiecare data am citit un zgomot animală din 666 00:50:11,000 --> 00:50:15,000 ca bătătură și am stoca în gama noastră avem bătătură, iar apoi a doua oară 667 00:50:15,000 --> 00:50:20,000 stocăm bătătură se va suprascrie prima dată că l-am păstrat. 668 00:50:20,000 --> 00:50:25,000 În final vom avea doar o intrare în matrice 669 00:50:25,000 --> 00:50:33,000 pentru fiecare dintre cele zgomote de animale din dosarul nostru animalelor zgomote. 670 00:50:33,000 --> 00:50:41,000 Nu voi avea încredere că puteți aborda deschiderea unui fișier în PHP? 671 00:50:41,000 --> 00:50:45,000 O modalitate de a face acest lucru, să trecem peste acest fel de repede, o să-l facă 672 00:50:45,000 --> 00:50:50,000 este cu fopen, cum am văzut mai devreme. 673 00:50:50,000 --> 00:50:55,000 Puteți fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Puteți să-l deschidă în modul de citire, la fel ca în C. 675 00:50:59,000 --> 00:51:02,000 Asta e un mod perfect bună de a face acest lucru. 676 00:51:02,000 --> 00:51:05,000 Puteți, de asemenea apoi pentru lectură în linie cu linie dosar 677 00:51:05,000 --> 00:51:12,000 au aceleași funcții, multe dintre ele, pe care le-ai făcut în C. 678 00:51:12,000 --> 00:51:14,000 Ai fgets. 679 00:51:14,000 --> 00:51:17,000 Ai feof, deși nu ne place folosind ca 680 00:51:17,000 --> 00:51:22,000 deoarece, amintiți-vă, că nu a fost mare în C. 681 00:51:22,000 --> 00:51:25,000 Puteți face același mod, 682 00:51:25,000 --> 00:51:34,000 dar aici este un lucru foarte misto. 683 00:51:34,000 --> 00:51:41,000 Ne pare rău, nu vreau să fac $ file, dar există o funcție numită fișier în PHP, 684 00:51:41,000 --> 00:51:47,000 și această funcție chiar aici este rece, deoarece acesta citește întregul conținut 685 00:51:47,000 --> 00:51:52,000 de fișier pe care îl specificați, așa some_file.txt, 686 00:51:52,000 --> 00:51:56,000 citește întregul conținut al acestui fișier într-o matrice 687 00:51:56,000 --> 00:52:03,000 și apoi vă permite să itera peste el, ceea ce este destul de puturos. 688 00:52:03,000 --> 00:52:07,000 >> Dacă mergem, de exemplu, browser-ul nostru 689 00:52:07,000 --> 00:52:14,000 și ne uităm la Google pentru fișier PHP 690 00:52:14,000 --> 00:52:23,000 puteti vedea aici că manualul nostru spune că fișierul citește întregul fișier într-o matrice, 691 00:52:23,000 --> 00:52:27,000 și putem file_get_contents pentru a reveni conținutul unui fișier ca un șir de caractere, 692 00:52:27,000 --> 00:52:30,000 dar de obicei doar obtinerea ca o matrice este într-adevăr frumos, deoarece ceea ce face 693 00:52:30,000 --> 00:52:33,000 este că se rupe în sus, astfel încât fiecare element de 694 00:52:33,000 --> 00:52:37,000 în matrice este o linie a fișierului, 695 00:52:37,000 --> 00:52:41,000 așa că, dacă ne uităm la dosar 0, asta e prima linie a fișierului. 696 00:52:41,000 --> 00:52:46,000 File 1, a doua linie, dosar 2, al treilea rând, și așa mai departe și așa mai departe. 697 00:52:46,000 --> 00:52:50,000 Nu ar fi frumos dacă asta a fost tot ce trebuia să fac în C? 698 00:52:50,000 --> 00:52:53,000 Destul de puturos. 699 00:52:53,000 --> 00:52:59,000 David a arătat acest lucru în curs, precum și a arătat idiomul a fost 700 00:52:59,000 --> 00:53:03,000 că, în plus față de standardul nostru pentru buclă în PHP-am avut ca 701 00:53:03,000 --> 00:53:09,000 pentru ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 și puteți face acest lucru în PHP de asemenea, același lucru- 703 00:53:16,000 --> 00:53:27,000 avem, de asemenea, această construcție se răcească numit foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach este foarte la îndemână atunci când iterarea peste tablouri sau aceste structuri de date 705 00:53:32,000 --> 00:53:36,000 pentru că vă permite să scoateți fiecare element al matricei 706 00:53:36,000 --> 00:53:42,000 fără a fi nevoie de a face manual indexare tine, 707 00:53:42,000 --> 00:53:46,000 fără a fi nevoie să creați manual o variabila index, incrementa, 708 00:53:46,000 --> 00:53:51,000 scoate valoarea din matrice la acel moment, pentru că este un lucru foarte comun de a face. 709 00:53:51,000 --> 00:53:54,000 >> Tu, probabil, au făcut ca de tone de ori, atunci când făceau lucruri C 710 00:53:54,000 --> 00:54:00,000 peste semestru, deci cu această foreach 711 00:54:00,000 --> 00:54:06,000 putem bucla peste acest fișier matrice, 712 00:54:06,000 --> 00:54:12,000 și sintaxa este că dorim acum bucla peste această matrice 713 00:54:12,000 --> 00:54:18,000 și să precizeze că variabila vom folosi pentru a stoca 714 00:54:18,000 --> 00:54:27,000 element al acestei matrice pe plan local, locale, la domeniul de aplicare al prezentei bucla foreach, 715 00:54:27,000 --> 00:54:32,000 se vom numi linie. 716 00:54:32,000 --> 00:54:38,000 Dacă e un fișier de cuvinte și nu e doar un cuvânt într-o linie 717 00:54:38,000 --> 00:54:43,000 am putea numi cuvânt la fel de bine, de fapt doar dai asta un nume, 718 00:54:43,000 --> 00:54:49,000 ce vrei să-i spunem, 719 00:54:49,000 --> 00:55:02,000 și apoi în interiorul bucla poți să faci ce vrei cu această linie variabilă. 720 00:55:02,000 --> 00:55:08,000 Dacă nu e de ajuns pentru a obține valoarea de matrice și tu, de asemenea, doriți să obțineți 721 00:55:08,000 --> 00:55:17,000 Indicele împreună cu ea aveți posibilitatea să specificați un nume pentru index 722 00:55:17,000 --> 00:55:22,000 precum și valoarea, iar acum aveți acces la 2 variabile. 723 00:55:22,000 --> 00:55:26,000 Ai $ i și linia de 724 00:55:26,000 --> 00:55:30,000 unde $ i este indexul în matrice, 725 00:55:30,000 --> 00:55:38,000 și linia este linia pe care ați preluat de la dosar. 726 00:55:38,000 --> 00:55:49,000 De exemplu, dacă am vrut să imprime ecou 0 linie de fișier ca acest lucru, 727 00:55:49,000 --> 00:55:57,000 am putea face la fel ca asta, "Linia $ i al fișierului este de $ line," 728 00:55:57,000 --> 00:56:02,000 și aici este ceva ce, de asemenea, nu am văzut încă nici 729 00:56:02,000 --> 00:56:13,000 în cazul în care tocmai am sarit peste acest total% s% d toată afaceri 730 00:56:13,000 --> 00:56:16,000 pe care am avut de a face cu în C, și în loc să am dus direct la 731 00:56:16,000 --> 00:56:19,000 scris variabilele din linie în șir mea. 732 00:56:19,000 --> 00:56:23,000 >> Aceasta se numește interpolare variabila, string interpolare 733 00:56:23,000 --> 00:56:26,000 în cazul în care sunteți umplutura variabilele chiar în, și interpret PHP 734 00:56:26,000 --> 00:56:31,000 este suficient de inteligent atunci când este citit prin intermediul unui șir care începe cu citate duble- 735 00:56:31,000 --> 00:56:34,000 nu ghilimele simple, cu siruri de caractere unice cotate nu poți face acest lucru, 736 00:56:34,000 --> 00:56:38,000 dar cu siruri de caractere dublu cotate ca ea citește prin el se caută variabile. 737 00:56:38,000 --> 00:56:42,000 E-i vânează în jos, iar în cazul în care consideră că variabilele se va lua valoarea variabilei 738 00:56:42,000 --> 00:56:47,000 și chestii în șir dacă se poate transforma într-o reprezentare șir, 739 00:56:47,000 --> 00:56:51,000 care este destul de puturos. 740 00:56:51,000 --> 00:56:56,000 Pentru moment, să comentați restul de tot, 741 00:56:56,000 --> 00:57:00,000 salva acest lucru și ceea ce putem face acum este, putem deschide un fișier 742 00:57:00,000 --> 00:57:06,000 pe care o putem numi some_file.txt-hai să creați un nou fișier 743 00:57:06,000 --> 00:57:15,000 și ne poate pune într-o grămadă de lucruri prostii aici doar pentru a testa totul, 744 00:57:15,000 --> 00:57:25,000 salvați-l, suna-l some_file.txt, așa cum fac eu aici, la partea de sus, 745 00:57:25,000 --> 00:57:33,000 și acum, dacă am micșora doar pentru a vă asigura că totul este în același director- 746 00:57:33,000 --> 00:57:36,000 se pare ca am unique.php și some_file.txt în același director. 747 00:57:36,000 --> 00:57:42,000 Dacă I ​​a alerga php unique.php 748 00:57:42,000 --> 00:57:51,000 a se vedea cum se imprimă fiecare linie în dosarul meu și ceea ce este linia? 749 00:57:51,000 --> 00:57:56,000 >> Asta e destul de puternic, nu? 750 00:57:56,000 --> 00:58:03,000 Uite, a fost nevoie de 3 linii de cod pentru a deschide un fișier. 751 00:58:03,000 --> 00:58:08,000 Ei bine, 4 linii de cod. Eu nu pot conta azi, în mod clar. 752 00:58:08,000 --> 00:58:13,000 Dar de fapt doar 2 linii de cod interesante, deoarece celelalte 2 au fost acolade, 753 00:58:13,000 --> 00:58:17,000 dar în acest cod de mult am putut pentru a deschide un fișier, itera prin ea, 754 00:58:17,000 --> 00:58:20,000 scoate numărul de linie și linia de sine 755 00:58:20,000 --> 00:58:24,000 și-l imprimați. 756 00:58:24,000 --> 00:58:26,000 Misto chestii. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Am o întrebare despre sintaxa. 758 00:58:28,000 --> 00:58:33,000 Foreach așa Oferte cu fiecare linie a fișierului pe care îl deschideți, 759 00:58:33,000 --> 00:58:37,000 și atunci când vrei să faci lucruri cu fiecare linie pe care tocmai ați face ca 760 00:58:37,000 --> 00:58:39,000 și să se asocieze, apoi valoarea. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Ce puteți face chiar aici, întrebarea a fost 762 00:58:41,000 --> 00:58:46,000 foreach are de a face cu matrice, astfel încât foreach sintaxa 763 00:58:46,000 --> 00:58:51,000 foreach este într-adevăr, și observați că nu există nici un spațiu 764 00:58:51,000 --> 00:58:53,000 sau ceva între și pentru fiecare. 765 00:58:53,000 --> 00:58:56,000 Ei au dreptul să meargă unul lângă altul, 766 00:58:56,000 --> 00:59:00,000 și apoi ia într-o matrice, 767 00:59:00,000 --> 00:59:05,000 și apoi aveți acest cuvânt cheie altă numit ca trebuie sa fie acolo, 768 00:59:05,000 --> 00:59:11,000 și apoi, după cum puteți pune nici un nume variabilă, 769 00:59:11,000 --> 00:59:14,000 în cazul în care ai de gând să fie trăgând valorile matrice, 770 00:59:14,000 --> 00:59:20,000 nu indicii, sau daca o faci cum am scris mai jos 771 00:59:20,000 --> 00:59:24,000 veți obține cheile și valorile. 772 00:59:24,000 --> 00:59:33,000 Ai element de foreach de matrice sau o pereche de matrice ca tastat la valoarea 773 00:59:33,000 --> 00:59:38,000 sau ca doar o valoare. 774 00:59:38,000 --> 00:59:40,000 În funcție de ceea ce ai nevoie, dacă nu aveți nevoie de cheile, 775 00:59:40,000 --> 00:59:42,000 atunci poti sa te duci cu valoarea. 776 00:59:42,000 --> 00:59:45,000 Dacă doriți tastele poti sa te duci cu ei prea. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] De asemenea, am dat seama că niciodată nu a declarat I sau linia. 778 00:59:48,000 --> 00:59:51,000 Cum se știe nici măcar ce sunt? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Ce vrei să spui prin declara? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Noi nu le-am spus ce am sau linia mijloace. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] N-am spus ceea ce am calculatorul sau linie înseamnă, în termeni de- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] că acestea sunt indexate sau care Sunt pe- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] N-am spus-o ca aceasta ar trebui să fie index sau tasta și valoarea, 784 01:00:09,000 --> 01:00:13,000 și asta pentru că e interpret PHP. 785 01:00:13,000 --> 01:00:17,000 Aceasta servește ca declarație și spune bine, cheia va fi 786 01:00:17,000 --> 01:00:20,000 o variabilă numită i stocate într-o variabilă numită i. 787 01:00:20,000 --> 01:00:24,000 Valoarea este de gând să fie stocate într-o variabilă numită linie, 788 01:00:24,000 --> 01:00:28,000 astfel încât aceasta servește ca declarație a acestor variabile 789 01:00:28,000 --> 01:00:35,000 și spune $ i este o cheie, iar $ line este o valoare. 790 01:00:35,000 --> 01:00:37,000 Da, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] În cazul în care cheile nu sunt facute numeric 792 01:00:41,000 --> 01:00:44,000 cum decide ce ordine se va imprima totul? 793 01:00:44,000 --> 01:00:47,000 Este la fel ca ordinea este înscris la? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Hai să încercăm. 795 01:00:51,000 --> 01:00:57,000 Să creăm o variabila numita ARR, 796 01:00:57,000 --> 01:01:06,000 și putem face un merge la 7. 797 01:01:06,000 --> 01:01:19,000 Să spunem 0 merge la un alt matrice cu 1, 2, sau de mere. 798 01:01:19,000 --> 01:01:30,000 Să spunem că merge la 7 1, b merge la 2, 799 01:01:30,000 --> 01:01:39,000 și 3 se duce la 4. 800 01:01:39,000 --> 01:01:44,000 Aceasta este un fel de exemplu nebun în căutarea pentru că suntem de amestecare până 801 01:01:44,000 --> 01:01:47,000 siruri de caractere și numere întregi peste tot locul. 802 01:01:47,000 --> 01:01:50,000 Nu e nici o ordine reală a acestei matrice. 803 01:01:50,000 --> 01:01:55,000 Adică, am putea comanda totul în ordine alfabetică, după cheile. 804 01:01:55,000 --> 01:01:57,000 Am putea comanda totul în ordine alfabetică de valoare. 805 01:01:57,000 --> 01:02:00,000 >> Am putea încerca și să ia în considerare faptul că unele sunt siruri de caractere, unele sunt Ints, 806 01:02:00,000 --> 01:02:03,000 și am putea încerca și de a le converti toate la același tip și să vedem ce se întâmplă, 807 01:02:03,000 --> 01:02:09,000 sau am putea să le ia în considerare în valoarea în care noi deja le-a intrat 808 01:02:09,000 --> 01:02:14,000 în cazul în care am pus acest tip, în primul rând, acest tip în al doilea rând, acest tip din al treilea, 809 01:02:14,000 --> 01:02:19,000 acest tip în al patrulea rând, et cetera. 810 01:02:19,000 --> 01:02:23,000 Să vedem ce se întâmplă atunci când vom rula acest cod. 811 01:02:23,000 --> 01:02:29,000 Dacă ne defilați în jos și de a face același tip de lucru, 812 01:02:29,000 --> 01:02:31,000 și aici nu e tipărirea noilor linii. 813 01:02:31,000 --> 01:02:35,000 Când a citit lucruri din dosar a fost inclusiv de noi linii în valorile, 814 01:02:35,000 --> 01:02:38,000 care a fost motivul pentru care imprimat frumos, întrucât aici nu a făcut, 815 01:02:38,000 --> 01:02:40,000 deci de aceea totul este smushed împreună. 816 01:02:40,000 --> 01:02:44,000 Să adăugăm că, în noua linie doar pentru a face lucrurile frumos. 817 01:02:44,000 --> 01:02:51,000 Să-l rulați din nou, și așa mai departe aici 818 01:02:51,000 --> 01:02:54,000 uita-te la ceea ce sa întâmplat. 819 01:02:54,000 --> 01:03:00,000 Acesta tipărite tot în ordinea în care l-am pus în matrice. 820 01:03:00,000 --> 01:03:10,000 Ea își păstrează ordinea în acest sens. 821 01:03:10,000 --> 01:03:15,000 >> Revenind la această problemă de unici 822 01:03:15,000 --> 01:03:20,000 în cazul în care dorim să fie în măsură pentru a itera peste un fișier, 823 01:03:20,000 --> 01:03:24,000 și vom da some_file.txt, 824 01:03:24,000 --> 01:03:27,000 și am de gând să itera peste el ca asta. 825 01:03:27,000 --> 01:03:31,000 Am spus că am vrut să utilizați o matrice pentru a vă asigura că am primit toate 826 01:03:31,000 --> 01:03:36,000 linii unice de acolo, și am putea face asta într-adevăr ușor 827 01:03:36,000 --> 01:03:49,000 doar prin stocarea într-o matrice care ne desigur declara în afara domeniului de aplicare a unei bucle, 828 01:03:49,000 --> 01:03:55,000 și am spus că, dacă am folosit liniile din fișierul ca cheile în gama noastră 829 01:03:55,000 --> 01:03:59,000 în cazul în care am intrat într-o linie de duplicat am fi imperative valoarea precedentă. 830 01:03:59,000 --> 01:04:08,000 Nu este niciodată posibil să aibă 2 chei, care sunt identice în aceeași matrice. 831 01:04:08,000 --> 01:04:13,000 Putem face doar asta. 832 01:04:13,000 --> 01:04:17,000 Vom scăpa de această declarație ecou chiar aici. 833 01:04:17,000 --> 01:04:24,000 Aici suntem stocarea linie în fișierul în gama noastră 834 01:04:24,000 --> 01:04:28,000 folosind-se ca tasta. 835 01:04:28,000 --> 01:04:32,000 Nimic la ea, și se pare că nu avem nevoie de chiar și această cheie. 836 01:04:32,000 --> 01:04:38,000 Nu avem nevoie de asta am variabilă. 837 01:04:38,000 --> 01:04:43,000 În acest moment, dacă ar fi să facem o altă buclă foreach 838 01:04:43,000 --> 01:04:48,000 și am fost la bucla peste fiecare arr 839 01:04:48,000 --> 01:04:56,000 și linia de acum, dacă am echo-Oops, îmi pare rău. 840 01:04:56,000 --> 01:05:00,000 Noi nu putem folosi virgula. Noi trebuie să utilizeze acest drept cuvânt cheie. 841 01:05:00,000 --> 01:05:05,000 Acum, dacă am echo line ar trebui să ne toate cuvintele unice din dosar. 842 01:05:05,000 --> 01:05:10,000 Dacă vom merge până la some_file.txt, 843 01:05:10,000 --> 01:05:19,000 și să spunem că vom face mere, banane, mere, mere, banane, 844 01:05:19,000 --> 01:05:22,000 dacă suntem imprimarea toate cuvintele unice în acest dosar ar trebui sa ne doar 845 01:05:22,000 --> 01:05:30,000 mere și banane pentru a imprima. 846 01:05:30,000 --> 01:05:36,000 Dacă vom salva acest lucru, acum aici, ne vom mări înapoi, 847 01:05:36,000 --> 01:05:44,000 php unique.php, si TA-DA. 848 01:05:44,000 --> 01:05:51,000 Am uniqued cu succes fișierul. 849 01:05:51,000 --> 01:05:55,000 >> Partea finală a acestei probleme vă cere pentru a sorta această matrice înainte de a le tipărit 850 01:05:55,000 --> 01:05:58,000 pentru că în acest exemplu simplu, pe care le-am făcut doar 851 01:05:58,000 --> 01:06:04,000 am fost norocos în sensul că-file 852 01:06:04,000 --> 01:06:06,000 am făcut acest exemplu artificială cu mere și banane. 853 01:06:06,000 --> 01:06:08,000 Acesta a fost deja sortate. 854 01:06:08,000 --> 01:06:19,000 Dar folosind funcția de sortare simplu, aveți posibilitatea să sortați o matrice, care este destul de puturos. 855 01:06:19,000 --> 01:06:24,000 Ultimul lucru am vrut sa vorbesc cu voi despre foarte repede 856 01:06:24,000 --> 01:06:31,000 este faptul că acest tip de PHP este tot bine și bună, și e foarte la îndemână 857 01:06:31,000 --> 01:06:43,000 să știi cum să faci, dacă ai nevoie să faci lucruri mici, rapide programatic. 858 01:06:43,000 --> 01:06:48,000 De exemplu, dacă am nevoie pentru a scrie un program care, să zicem, 859 01:06:48,000 --> 01:06:53,000 pune toata lumea in sectiuni nu am de gând să meargă și să scrie în C. 860 01:06:53,000 --> 01:06:55,000 O să fie lung. 861 01:06:55,000 --> 01:06:57,000 O să fie un fel de durere, mai ales dacă există fișiere implicate, 862 01:06:57,000 --> 01:07:00,000 la fel ca și voi ați văzut. 863 01:07:00,000 --> 01:07:05,000 E atât de frumos ca doar cu acest cod de mult aici 864 01:07:05,000 --> 01:07:08,000 noi am fost capabil pentru a extrage printr-un fișier, scoate toate valorile unice 865 01:07:08,000 --> 01:07:11,000 și să le imprimați înapoi. 866 01:07:11,000 --> 01:07:16,000 >> Cu toate acestea, pentru sarcinile tale, pentru proiectele tale, 867 01:07:16,000 --> 01:07:20,000 dacă sunteți construirea site-uri web cu PHP putere este faptul că 868 01:07:20,000 --> 01:07:25,000 nu mai avem dosarele noastre PHP prin acest interpret, 869 01:07:25,000 --> 01:07:29,000 și interpretul este prelucrarea totul în cadrul tag-uri PHP, 870 01:07:29,000 --> 01:07:34,000 lăsând totul altceva neatins si scuipa rezultatele. 871 01:07:34,000 --> 01:07:40,000 Putem face acest lucru pentru a construi HTML programatic. 872 01:07:40,000 --> 01:07:46,000 Acum, dacă ne întoarcem la spec., ultima problemă în spec. 873 01:07:46,000 --> 01:07:56,000 vorbește despre această idee a concentrațiilor 874 01:07:56,000 --> 01:08:01,000 și crearea unui meniu drop-down, 875 01:08:01,000 --> 01:08:06,000 care poate sau nu poate să facă, în funcție de ceea ce proiectul dvs. final este de a face, 876 01:08:06,000 --> 01:08:13,000 care permite utilizatorului să selecteze dintr-o listă cu toate posibilele concentrări 877 01:08:13,000 --> 01:08:15,000 lor o concentrație. 878 01:08:15,000 --> 01:08:21,000 Acum, acest lucru este un fel de durere de tip acest lucru 879 01:08:21,000 --> 01:08:25,000 și trebuie să facem tot acest manual, mai ales atunci când aveți pentru a vă asigura 880 01:08:25,000 --> 01:08:28,000 că aveți toate parantezele unghiulare în locul potrivit și toate citate în locul potrivit, 881 01:08:28,000 --> 01:08:34,000 deci cu PHP puteți face acest lucru în mod programatic, și puteți face acest lucru foarte repede. 882 01:08:34,000 --> 01:08:36,000 >> Să vedem cum se face acest lucru. 883 01:08:36,000 --> 01:08:42,000 Vom deschide un fișier nou. 884 01:08:42,000 --> 01:08:46,000 Vom pune în tag-uri PHP noastre. 885 01:08:46,000 --> 01:08:53,000 Vom numi concentrations.php, 886 01:08:53,000 --> 01:08:58,000 și acum, când faci asta, un fel de un lucru bun să se gândească 887 01:08:58,000 --> 01:09:02,000 atunci când sunteți încercarea de a se amestecă și se potrivesc PHP si HTML 888 01:09:02,000 --> 01:09:08,000 este imaginind, bine, ceea ce este partea pe care doresc să genereze programare? 889 01:09:08,000 --> 01:09:11,000 Care este partea care pot genera programare? 890 01:09:11,000 --> 01:09:17,000 E adevărat că poți să faci tot a codului HTML 891 01:09:17,000 --> 01:09:19,000 în interiorul blocurilor de PHP. 892 01:09:19,000 --> 01:09:24,000 Puteți ecou toate HTML ca șiruri. 893 01:09:24,000 --> 01:09:30,000 De exemplu, dacă vreau să încep a face etichetele selectați în interiorul PHP 894 01:09:30,000 --> 01:09:46,000 Eu pot să spun ecou, ​​spune selectați numele = concentrația, 895 01:09:46,000 --> 01:09:49,000 și apoi în jos de mai jos am putea avea un alt tag-ecou 896 01:09:49,000 --> 01:09:57,000 sau un alt ecou numit aproape selectați. 897 01:09:57,000 --> 01:10:00,000 Aceasta este o modalitate de a face acest lucru, deoarece acest lucru este ceea ce literalmente de gând să faci 898 01:10:00,000 --> 01:10:09,000 se imprima acest șir atunci când a rulat prin interpret PHP, 899 01:10:09,000 --> 01:10:12,000 astfel încât rezultatul va fi HTML. 900 01:10:12,000 --> 01:10:18,000 Dacă aș salva acest fișier ca acesta este chiar acum 901 01:10:18,000 --> 01:10:24,000 și alerg concentrations.php php 902 01:10:24,000 --> 01:10:26,000 uita-te la ceea ce am primit. 903 01:10:26,000 --> 01:10:30,000 Am primit această etichetă deschisă, selectați aproape. 904 01:10:30,000 --> 01:10:36,000 >> Dacă ar fi să fac acest lucru și am fost pentru a salva acest rezultat într-un fișier, 905 01:10:36,000 --> 01:10:45,000 spun, concentrations.html-asteptati, se pare ca am trecut peste a la alte lateral- 906 01:10:45,000 --> 01:11:02,000 acum, dacă mă deschid aici concentrations.html vezi Am un fișier HTML valid. 907 01:11:02,000 --> 01:11:05,000 Este acel tip de ciudat? 908 01:11:05,000 --> 01:11:09,000 Suntem folosind PHP pentru a crea HTML, de a crea HTML validă. 909 01:11:09,000 --> 01:11:13,000 Mod o facem este vom avea doar de imprimare PHP 910 01:11:13,000 --> 01:11:16,000 HTML pe care dorim să imprimați. 911 01:11:16,000 --> 01:11:20,000 Aceasta este literalmente modul în care site-urile web PHP sunt de lucru. 912 01:11:20,000 --> 01:11:24,000 Când vizitați un site Web care vă trimite la ceva de genul 913 01:11:24,000 --> 01:11:30,000 ceva, ceva, ceva dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 calculatorul este literalmente de asteptare pana index.php, 915 01:11:33,000 --> 01:11:38,000 rulează-l prin interpret PHP, precum și orice drog iese 916 01:11:38,000 --> 01:11:49,000 se trimite înapoi la browser-ul și zicând: hei, browser-ul, interpreta acest lucru ca HTML. 917 01:11:49,000 --> 01:11:54,000 Cel mai frumos lucru este că aceasta poate fi o durere de a scrie în mod constant ecou, ​​ecou, ​​ecou, ​​ecou 918 01:11:54,000 --> 01:11:59,000 și încadrați totul în ghilimele, cum ar fi acest lucru, așa că, dacă doriți să scrieți 919 01:11:59,000 --> 01:12:04,000 HTML care va fi statice te poti face ca aceasta, 920 01:12:04,000 --> 01:12:16,000 a pus-o afară, închideți-l, 921 01:12:16,000 --> 01:12:21,000 si apoi aici, ai pus numai în interiorul tag-uri PHP pe care pe care le cunoașteți 922 01:12:21,000 --> 01:12:26,000 doriți pentru a genera programatic, și în acest caz, e acele etichete opțiunea 923 01:12:26,000 --> 01:12:31,000 care sunt o durere pentru a genera. 924 01:12:31,000 --> 01:12:37,000 >> De exemplu, am putea genera o mie de tag-uri opțiune 925 01:12:37,000 --> 01:12:48,000 de a face ceva de genul asta, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 și spunând opțiune valoarea echo $ =-Ups, eu nu pot face asta. 927 01:13:00,000 --> 01:13:03,000 Ei bine, hai să încercăm și să vedem ce se întâmplă. 928 01:13:03,000 --> 01:13:22,000 $ I și apoi spun $ i 01:13:27,000 Mai degrabă decât a fi nevoie să introduceți faptul că eticheta de opțiune o mie de ori diferite 930 01:13:27,000 --> 01:13:33,000 Sunt folosind codul PHP să genereze în mod automat, programatic. 931 01:13:33,000 --> 01:13:38,000 Un fel de puturos. Da,. 932 01:13:38,000 --> 01:13:41,000 Îmi amintesc acest lucru fiind menționat în nici curs sau walkthrough, 933 01:13:41,000 --> 01:13:43,000 dar ceea ce este diferența între ghilimele, 934 01:13:43,000 --> 01:13:45,000 cele normale, iar aceste lucruri simple? 935 01:13:45,000 --> 01:13:49,000 Asta e de fapt ceva ce am făcut greșit aici, că am fost de gând să-ți arăt. 936 01:13:49,000 --> 01:13:52,000 Cele ghilimele simple nu permit caractere speciale, 937 01:13:52,000 --> 01:13:57,000 deci totul într-un singur șir citat este interpretat literal. 938 01:13:57,000 --> 01:14:02,000 Dacă aș fi avut o \ n interiorul ghilimele simple și am salva acest lucru, de exemplu, 939 01:14:02,000 --> 01:14:07,000 și acum mă duc aici și rulați-l- 940 01:14:07,000 --> 01:14:12,000 Hopa, unde mă duc? 941 01:14:12,000 --> 01:14:19,000 Oh, e pentru ca am uitat $. 942 01:14:19,000 --> 01:14:25,000 >> Acum, dacă am deschide-de fapt, aici, vom scapa de ea tastarea într-un fișier. 943 01:14:25,000 --> 01:14:27,000 Vom citi doar. 944 01:14:27,000 --> 01:14:34,000 Aici vei vedea că am luat acest literală \ n în șir, ca să nu o linie nouă reală, 945 01:14:34,000 --> 01:14:38,000 și, de asemenea, în loc de interpolare de fapt, valoarea acestei variabile 946 01:14:38,000 --> 01:14:42,000 mi-a dat $ i in sine, care este un fel de durere. 947 01:14:42,000 --> 01:14:46,000 Cale în jurul valorii de acest lucru este de a folosi ghilimele duble, 948 01:14:46,000 --> 01:14:52,000 și apoi atunci când utilizați ghilimele duble, de fapt aceasta va 949 01:14:52,000 --> 01:14:56,000 interpola corect valorile toate aceste variabile aici 950 01:14:56,000 --> 01:14:59,000 și recunosc, de asemenea, acest \ n pentru a fi noua linie pe care este 951 01:14:59,000 --> 01:15:02,000 și nu \ n. 952 01:15:02,000 --> 01:15:07,000 Folosind cele individuale este frumos atunci când aveți 953 01:15:07,000 --> 01:15:10,000 caractere care ar putea fi interpretate drept caractere speciale, deoarece, atunci nu trebuie să 954 01:15:10,000 --> 01:15:15,000 scăpa le în mod constant. 955 01:15:15,000 --> 01:15:18,000 Lucrurile pot obține dezordonat, și, adesea, modul în care am face acest lucru, 956 01:15:18,000 --> 01:15:24,000 doar pentru a face lucrurile mai ușor, este că, dacă am de gând să aibă nimic 957 01:15:24,000 --> 01:15:31,000 HTML ca în codul meu voi include în termen de ghilimele simple de editare 958 01:15:31,000 --> 01:15:36,000 și de a folosi apoi acest operator de concatenare 959 01:15:36,000 --> 01:15:43,000 Pentru a concatena variabilele inch 960 01:15:43,000 --> 01:15:47,000 Acesta este un alt mod de a face asta 961 01:15:47,000 --> 01:15:52,000 în cazul în care avem puncte care va conecta acest este un șir de 962 01:15:52,000 --> 01:15:56,000 cu acest lucru cu acest lucru cu acest lucru, 963 01:15:56,000 --> 01:15:59,000 si acum nu mai trebuie să scape de aceste ghilimele duble. 964 01:15:59,000 --> 01:16:02,000 Eu nu trebuie să utilizeze acest tip să scape. 965 01:16:02,000 --> 01:16:08,000 Vor fi literalmente imprimate ca ghilimele duble și apoi tipul ăsta chiar aici. 966 01:16:08,000 --> 01:16:11,000 Acesta este un alt mod de amestecare totul împreună. 967 01:16:11,000 --> 01:16:14,000 >> [Student] De asemenea, atunci când a reiterat gettype nu au existat între ghilimele, la toate. 968 01:16:14,000 --> 01:16:22,000 Corect, deci este un fel de ecou special în sensul că nu aveți nevoie de paranteze. 969 01:16:22,000 --> 01:16:29,000 Nu aveți nevoie pentru a avea ghilimelele neapărat în jurul valorii de variabile, 970 01:16:29,000 --> 01:16:37,000 ca e valabil să spun echo $ i, și-l va interpreta acest lucru ca pe un șir. 971 01:16:37,000 --> 01:16:44,000 Se va face exprimate, asa ca am putea face acest lucru, si asta e valabil prea, dar nu avem nevoie de ea. 972 01:16:44,000 --> 01:16:48,000 E opțional. 973 01:16:48,000 --> 01:16:53,000 În set de probleme din această săptămână se uite pentru o mulțime de acest gen de lucruri 974 01:16:53,000 --> 01:16:58,000 în cazul în care sunteți de amestecare și de potrivire HTML cu PHP 975 01:16:58,000 --> 01:17:08,000 la fel ca asta, și acum, dacă ne derulați înapoi și vom rula acest 976 01:17:08,000 --> 01:17:13,000 putem vedea că avem o grămadă de valori opțiune 977 01:17:13,000 --> 01:17:15,000 care tocmai a fost imprimat. 978 01:17:15,000 --> 01:17:20,000 Avem tot acest cod HTML care s-au generat foarte repede pentru noi. 979 01:17:20,000 --> 01:17:22,000 O voi lăsa ca un exercițiu. 980 01:17:22,000 --> 01:17:24,000 Este foarte similar cu citirea fișierului pe care am făcut-o mai devreme. 981 01:17:24,000 --> 01:17:31,000 >> Există un fișier concentrations.txt care se poate trage în jos de la CDN, 982 01:17:31,000 --> 01:17:34,000 și puteți să-l deschideți utilizând același truc foreach că am făcut mai devreme, 983 01:17:34,000 --> 01:17:39,000 și foreach trebuie doar să răsune o opțiune și conectați 984 01:17:39,000 --> 01:17:44,000 valorile corespunzătoare, tastele corespunzătoare și indici, 985 01:17:44,000 --> 01:17:49,000 și atunci veți primi un drop jos care literalmente creează 986 01:17:49,000 --> 01:17:54,000 programatic pentru tine toate concentrații diferite de la Harvard. 987 01:17:54,000 --> 01:17:57,000 Un lucru la îndemână pentru a avea. 988 01:17:57,000 --> 01:18:02,000 Există o mulțime de lucruri de configurare pentru această misiune. 989 01:18:02,000 --> 01:18:07,000 Dacă nu ați făcut-o deja să ia următoarea jumătate de oră, oră, 990 01:18:07,000 --> 01:18:10,000 ceva timp în seara asta cu siguranta pentru sigur, 991 01:18:10,000 --> 01:18:14,000 plimbare prin spec. set de probleme, 992 01:18:14,000 --> 01:18:20,000 a se vedea ce se întâmplă cu înființarea vhosts, gazdă locală, toate chestiile astea. 993 01:18:20,000 --> 01:18:24,000 Un lucru să subliniez acum este faptul că 994 01:18:24,000 --> 01:18:30,000 în cele mai multe seturi de probleme am fost merge în folderul Dropbox 995 01:18:30,000 --> 01:18:34,000 și descărcarea apoi zip problema set de fișiere și dezarhivați-l. 996 01:18:34,000 --> 01:18:36,000 Pentru acest set de problema pe care nu vrei sa. 997 01:18:36,000 --> 01:18:40,000 Vrei să mergi în acest director vhosts. 998 01:18:40,000 --> 01:18:45,000 Veți dori să meargă în vhosts și du-te în directorul gazdă locală în cadrul acestuia, 999 01:18:45,000 --> 01:18:50,000 și acest lucru este în cazul în care veți dori să trage în jos fișierul zip, 1000 01:18:50,000 --> 01:18:55,000 dezarhivați-l, și pregătiți-vă să meargă. 1001 01:18:55,000 --> 01:18:57,000 Va trebui să urmați pașii de mai îndeaproape. 1002 01:18:57,000 --> 01:19:02,000 >> Dacă aveți orice întrebări, trimiteți e-mail, posta pe Forum, vin la ore de birou. 1003 01:19:02,000 --> 01:19:08,000 Multumesc baieti. Săptămâna viitoare vom avea o sesiune de revizuire pentru test. 1004 01:19:08,000 --> 01:19:12,000 Bucurați-vă de setul de problema ta ultima. Sper ca totul merge foarte bine. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]