1 00:00:00,000 --> 00:00:02,400 [Powered by Google Translate] [Sintaxa PHP] 2 00:00:02,400 --> 00:00:04,400 [Tommy MacWilliam] [Universitatea Harvard] 3 00:00:04,400 --> 00:00:07,400 [Aceasta este CS50.] [CS50.TV] 4 00:00:07,400 --> 00:00:10,080 >> În acest film, vom introduce PHP - 5 00:00:10,080 --> 00:00:12,820 una dintre limbile pe care le veți folosi în CS50 6 00:00:12,820 --> 00:00:15,480 așa cum am tranziția de dezvoltare web. 7 00:00:15,480 --> 00:00:19,250 PHP standuri pentru PHP Hypertext Procesor, 8 00:00:19,250 --> 00:00:23,440 sau PHP Hypertext Procesor Hypertext Processor, 9 00:00:23,440 --> 00:00:24,880 și mă opresc acolo. 10 00:00:24,880 --> 00:00:29,280 PHP este un acronim recursiv, care cred că este cu adevărat minunat. 11 00:00:29,280 --> 00:00:32,020 >> Deci, haideți să scrie "Hello World 'în PHP, 12 00:00:32,020 --> 00:00:37,240 care va fi un pic diferit de "lumea bună" din C care am ajuns să cunosc și iubesc. 13 00:00:37,240 --> 00:00:40,330 În loc de a crea un fișier numit hello.c, 14 00:00:40,330 --> 00:00:42,990 vom crea hello.php. 15 00:00:42,990 --> 00:00:52,430 Toate codul nostru PHP vor fi cuprinse între . 16 00:00:52,430 --> 00:00:56,160 Dacă ne-am nici un cod PHP care se află 17 00:00:56,160 --> 00:00:59,140 in afara de aceste delimitatori, acesta nu va executa. 18 00:00:59,140 --> 00:01:01,740 Putem avea cât mai multe dintre aceste blocuri PHP 19 00:01:01,740 --> 00:01:05,090 așa cum ne-o dorim în interiorul unui singur fișier PHP. 20 00:01:05,090 --> 00:01:09,000 În PHP nu este nevoie de o funcție principală. 21 00:01:09,000 --> 00:01:15,540 În schimb, codul nostru PHP va fi rulat în ordinea în care apare în dosarul nostru PHP. 22 00:01:15,540 --> 00:01:20,970 Atât C și PHP au o funcție "printf" pentru afișarea de date. 23 00:01:20,970 --> 00:01:27,270 Dar în PHP, nu avem nevoie să # include orice fișiere antet, cum ar fi standardIO.h. 24 00:01:27,270 --> 00:01:31,830 Asta pentru că în PHP nu vom fi compilarea codul nostru. 25 00:01:31,830 --> 00:01:35,560 Când am scris cod C fluxul de lucru nostru tendinta de a se deschide 26 00:01:35,560 --> 00:01:39,560 unul sau mai multe. c sau. fișiere h, a le modifica, compilarea lor, 27 00:01:39,560 --> 00:01:41,980 și să fie difuzate binar rezultat. 28 00:01:41,980 --> 00:01:45,800 Check out video de compilatoare pentru mai multe informații despre acest proces. 29 00:01:45,800 --> 00:01:51,480 >> Spre deosebire de C, PHP este un interpretat - limbă - mai degrabă decât compilat. 30 00:01:51,480 --> 00:01:54,080 Asta înseamnă că cod PHP ne scrie 31 00:01:54,080 --> 00:01:57,360 va fi condus printr-un program special numit un interpret, 32 00:01:57,360 --> 00:02:00,440 care se va transforma in executa codul nostru. 33 00:02:00,440 --> 00:02:03,020 Pentru a executa codul nostru PHP, 34 00:02:03,020 --> 00:02:07,860 vom trimite de-a lungul la interpret PHP, care se va ocupa de executarea acestuia, 35 00:02:07,860 --> 00:02:11,260 mai degrabă decât a le compila în cod mașină. 36 00:02:11,260 --> 00:02:13,450 Să vedem interpret în acțiune. 37 00:02:13,450 --> 00:02:17,010 Vom deschide un terminal și rulați comanda PHP 38 00:02:17,010 --> 00:02:21,130 urmat de calea până la fișierul PHP am dori pentru a rula. 39 00:02:21,130 --> 00:02:25,690 Vom spune, "PHP hello.php". 40 00:02:25,690 --> 00:02:30,200 Și acolo mergem. Nu e de ieșire din programul nostru PHP. 41 00:02:30,200 --> 00:02:33,460 Nu am nevoie pentru a compila fișierul nostru PHP, la toate. 42 00:02:33,460 --> 00:02:37,280 În schimb, am avut un alt program - interpret PHP - 43 00:02:37,280 --> 00:02:40,070 executa sursă pe care am scris. 44 00:02:40,070 --> 00:02:43,280 >> PHP poate face mult mai mult decât pur și simplu printf. 45 00:02:43,280 --> 00:02:46,490 Să scrie unele programe mai complexe de PHP. 46 00:02:46,490 --> 00:02:52,240 Sintaxa pentru construcții - ca în cazul în care, altfel, în timp ce, pentru, și comutator - 47 00:02:52,240 --> 00:02:55,440 este aceeași în PHP și C. 48 00:02:55,440 --> 00:03:01,180 La fel ca C, fiecare dintre aceste construcții folosește acolade pentru a delimita corpul lor, 49 00:03:01,180 --> 00:03:04,420 și la fel ca în C, fiecare linie se scrie 50 00:03:04,420 --> 00:03:06,830 trebuie să se termine cu un punct și virgulă; 51 00:03:06,830 --> 00:03:10,700 Cu toate acestea, variabile sunt tratate un pic diferit în PHP. 52 00:03:10,700 --> 00:03:15,630 În primul rând, toate variabilele din PHP trebuie să înceapă cu semnul dolar. 53 00:03:15,630 --> 00:03:18,700 Se pare un pic ciudat la început, dar te vei obisnui cu ea. 54 00:03:18,700 --> 00:03:22,150 În al doilea rând, PHP este un limbaj liber-tastat 55 00:03:22,150 --> 00:03:24,570 ceea ce înseamnă că nu trebuie să includeți în mod explicit 56 00:03:24,570 --> 00:03:27,640 tipul unei variabile când îl creați. 57 00:03:27,640 --> 00:03:33,430 În cazul în care în C ai nevoie pentru a spune int x = 5; 58 00:03:33,430 --> 00:03:38,650 sau char y = 'a'; 59 00:03:39,250 --> 00:03:44,790 în PHP putem spune pur și simplu $ x = 5; 60 00:03:44,790 --> 00:03:48,930 și $ y = 'a';. 61 00:03:48,930 --> 00:03:52,360 Același lucru este valabil pentru funcțiile. 62 00:03:52,360 --> 00:04:01,290 Mai degrabă decât a spune f int () {corpul funcției noastre}, 63 00:04:01,290 --> 00:04:12,160 în PHP vom spune functia f () {corpul funcției noastre}. 64 00:04:12,160 --> 00:04:17,579 Nu avem nevoie de a specifica explicit tipul de returnare a functiei f noastre. 65 00:04:17,579 --> 00:04:22,070 Funcții în PHP, de asemenea, nu trebuie să se întoarcă același tip 66 00:04:22,070 --> 00:04:23,840 de fiecare dată când sunt executate. 67 00:04:23,840 --> 00:04:27,940 De exemplu, am putea scrie o funcție care returnează false pe o eroare 68 00:04:27,940 --> 00:04:29,750 și un alt tip dacă reușește. 69 00:04:29,750 --> 00:04:33,060 >> Acest lucru poate ajuta, de asemenea, ne scrie mai multe funcții generice. 70 00:04:33,060 --> 00:04:35,710 De exemplu, am putea scrie o funcție add singur 71 00:04:35,710 --> 00:04:39,200 care poate returna un întreg, dacă două numere întregi sunt date 72 00:04:39,200 --> 00:04:41,250 sau un flotor în cazul în care două flotoare sunt date. 73 00:04:41,250 --> 00:04:45,530 În C, am nevoie pentru a scrie două funcții separate pentru a face acest lucru. 74 00:04:45,530 --> 00:04:49,230 În timp ce în C vom folosi indicii pentru o marire de salariu și siruri de caractere, 75 00:04:49,230 --> 00:04:52,170 nu vom putea să utilizeze indicii în PHP. 76 00:04:52,170 --> 00:04:58,030 În schimb, cele două tablouri si siruri de caractere sunt încorporate în tipurile din PHP. 77 00:04:58,030 --> 00:04:59,660 Sunt construite chiar în limba. 78 00:04:59,660 --> 00:05:02,270 Pentru a crea o matrice în PHP putem spune, 79 00:05:02,270 --> 00:05:11,280 $ Un array = (1, 2, 3); 80 00:05:11,280 --> 00:05:19,400 sau mai simplu, $ a = [1, 2, 3];. 81 00:05:19,400 --> 00:05:24,990 Putem indice în această matrice folosind aceeași sintaxă pe care suntem obișnuiți de la C. 82 00:05:24,990 --> 00:05:31,780 Pentru a obține primul element, vom spune, $ a [0];. 83 00:05:31,780 --> 00:05:36,290 PHP are, de asemenea, construit-in-suport pentru tablouri asociative. 84 00:05:36,290 --> 00:05:41,460 Tablouri asociative sunt la fel ca hash structura de date de masă le-am văzut deja - 85 00:05:41,460 --> 00:05:44,060 ele harta o cheie pentru o valoare. 86 00:05:44,060 --> 00:05:46,070 >> Să aruncăm o privire la un exemplu. 87 00:05:46,070 --> 00:06:14,740 Putem spune, $ personal = ["instructor" => "David", "TF" => "Tommy"];. 88 00:06:14,740 --> 00:06:21,020 Aici, am un tablou asociativ cu 2 chei - instructor și tf. 89 00:06:21,020 --> 00:06:24,910 Dublu-săgeată, sau este egal cu-mare-mare, 90 00:06:24,910 --> 00:06:29,660 este folosit pentru a separa o cheie și valoarea sa corespunzătoare. 91 00:06:29,660 --> 00:06:41,830 Deci, valoarea de $ personal ["TF"] este șirul de caractere "Tommy". 92 00:06:41,830 --> 00:06:44,430 Valorile unui tablou asociativ - 93 00:06:44,430 --> 00:06:47,540 la fel ca orice altă matrice - poate fi de orice tip. 94 00:06:47,540 --> 00:07:23,370 De exemplu, am putea spune, $ personal = ["instructor" => "David", "TFS" => ["Tommy", "Rob"]];. 95 00:07:23,370 --> 00:07:27,810 Acum, valoarea de "TFS" este o matrice. 96 00:07:27,810 --> 00:07:33,030 Aceasta înseamnă că valorile din interiorul unul tablou asociativ poate fi de diferite tipuri. 97 00:07:33,030 --> 00:07:36,750 >> Matrice PHP, de asemenea, nu au o lungime fixă, 98 00:07:36,750 --> 00:07:40,200 astfel încât să putem adăuga sau elimina elemente dintr-o matrice. 99 00:07:40,200 --> 00:07:49,130 Să presupunem că avem o gamă de simplu ca $ a = [1, 2, 3];. 100 00:07:49,130 --> 00:07:51,860 Pentru a adăuga un nou element la această matrice, 101 00:07:51,860 --> 00:07:57,160 putem spune, $ a [] = 4;. 102 00:07:57,160 --> 00:08:03,630 Acum gama noastră constă din patru elemente - [1, 2, 3, 4]. 103 00:08:03,630 --> 00:08:06,980 Amintiți-vă că, dacă am vrut să facem ceva în C, 104 00:08:06,980 --> 00:08:09,610 Va trebui să aloce o gamă cu totul nouă, 105 00:08:09,610 --> 00:08:12,400 copiați conținutul primul nostru matrice în ea, 106 00:08:12,400 --> 00:08:15,870 și apoi setați ultimul element al noii matrice a noua noastră valoare. 107 00:08:15,870 --> 00:08:18,390 Acest lucru este mult mai ușor în PHP. 108 00:08:18,390 --> 00:08:21,230 Dacă matricea noastră este un tablou asociativ, 109 00:08:21,230 --> 00:08:24,810 putem defini pur și simplu o nouă cheie pentru a crea un element 110 00:08:24,810 --> 00:08:26,250 în cazul în care acesta nu există încă. 111 00:08:26,250 --> 00:08:30,010 Dacă avem gama noastră de mai devreme - $ personal - 112 00:08:30,010 --> 00:08:38,679 putem spune $ personal ["totală"] = 3;. 113 00:08:38,679 --> 00:08:43,330 Acum avem o nouă cheie, cu valoare de 3. 114 00:08:43,330 --> 00:08:46,460 >> Pentru a obține numărul de elemente într-o matrice, 115 00:08:46,460 --> 00:08:48,230 putem folosi funcția "numărul". 116 00:08:48,230 --> 00:08:56,100 Dacă spunem, conta ($ a),, care va avea o valoare de 4. 117 00:08:56,100 --> 00:09:01,930 În PHP, putem crea siruri de caractere folosind ghilimele duble sau single, 118 00:09:01,930 --> 00:09:04,470 astfel încât ambele din aceste variabile sunt siruri de caractere. 119 00:09:04,470 --> 00:09:21,780 $ S1 = "string"; $ s2 = 'un alt șir ";. 120 00:09:21,780 --> 00:09:23,920 Care este diferența dintre aceste două? 121 00:09:23,920 --> 00:09:26,950 Ei bine, este destul de comună pentru a dori să includă 122 00:09:26,950 --> 00:09:29,600 valoarea unei interiorul variabil al unui șir. 123 00:09:29,600 --> 00:09:34,390 O modalitate de a face acest lucru ar fi de a folosi operatorului PHP punct, 124 00:09:34,390 --> 00:09:36,630 care siruri de caractere concatenează. 125 00:09:36,630 --> 00:09:38,680 Am putea face ceva de genul asta - 126 00:09:38,680 --> 00:09:53,800 $ N = 5; $ s = 'n este "$ n;.. 127 00:09:53,800 --> 00:09:57,430 Aici nostru n variabilă este un număr întreg. 128 00:09:57,430 --> 00:10:00,020 Dar când l-am înlănțui cu un șir, 129 00:10:00,020 --> 00:10:04,110 PHP va converti automat la un șir de noi. 130 00:10:04,110 --> 00:10:09,090 Sau putem folosi pur și simplu ghilimele pentru a pune variabila în șir în sine. 131 00:10:09,090 --> 00:10:19,290 Putem spune, $ s = "N este de $ n";. 132 00:10:19,290 --> 00:10:24,040 Acum valoarea $ e va fi 'n este 5'. 133 00:10:24,040 --> 00:10:34,250 Dacă vom folosi ghilimele simple în loc, ca și în $ s = 'n este de $ n "; 134 00:10:34,250 --> 00:10:39,670 valoarea s va fi 'n este $ n';. 135 00:10:39,670 --> 00:10:43,720 Valoarea lui n nu va fi înlocuită dacă vom folosi ghilimele simple, 136 00:10:43,720 --> 00:10:47,150 dar va fi dacă vom folosi ghilimele. 137 00:10:47,150 --> 00:10:51,800 Dacă vrem să folosim ghilimele pentru a include valoarea unui tablou într-un șir, 138 00:10:51,800 --> 00:10:55,060 va trebui să includă acolade în jurul matrice, cum ar fi aceasta - 139 00:10:55,060 --> 00:11:14,470 $ S = "{$ personal ['totala']}";. 140 00:11:14,470 --> 00:11:20,350 >> Să aruncăm acum o privire la un fragment mic în C și traduce în PHP. 141 00:11:20,350 --> 00:11:25,410 Aici, vom crea o functie care afiseaza literele un șir, 142 00:11:25,410 --> 00:11:27,310 un personaj pe linie. 143 00:11:27,310 --> 00:11:32,250 Să facem același lucru în PHP. 144 00:11:32,250 --> 00:11:36,530 În primul rând, va trebui delimitatori noastre PHP. 145 00:11:36,530 --> 00:11:39,000 Când vom crea funcția noastră, 146 00:11:39,000 --> 00:11:42,740 nu avem nevoie să precizeze tipul de returnare sau de tipul de argument. 147 00:11:42,740 --> 00:11:46,890 Variabila s trebuie să înceapă cu un semn dolar. 148 00:11:46,890 --> 00:11:51,590 Funcția PHP strlen ne dă lungimea unui șir, 149 00:11:51,590 --> 00:11:55,660 la fel ca și C lui strlen ne dă lungimea unui șir. 150 00:11:55,660 --> 00:11:59,060 Sub capota, deși, aceste funcții sunt de fapt un pic diferit 151 00:11:59,060 --> 00:12:03,010 deoarece un șir este un tip built-in în PHP. 152 00:12:03,010 --> 00:12:06,930 Sintaxa noastre "pentru" buclă este același. 153 00:12:06,930 --> 00:12:13,530 >> În PHP, putem folosi, de asemenea, notația matrice pentru a accesa caracterele de un șir. 154 00:12:13,530 --> 00:12:19,350 Putem folosi acum funcția de imprimare pentru a imprima fiecare literă a șir. 155 00:12:19,350 --> 00:12:23,080 Cu funcția de imprimare de PHP, nu avem nevoie să vă faceți griji cu privire la substituenți - 156 00:12:23,080 --> 00:12:28,200 cum ar fi% d sau% c - atunci când doriți să imprimați o variabilă care nu este un șir. 157 00:12:28,200 --> 00:12:33,590 În schimb, se poate trece pur și simplu o variabilă de orice tip de funcția de imprimare, 158 00:12:33,590 --> 00:12:36,810 și acesta va fi convertit într-un șir și afișate. 159 00:12:36,810 --> 00:12:43,430 Și asta e tot! Să facem acum dosarul nostru cu "PHP print.php". 160 00:12:43,430 --> 00:12:48,160 Și nu există ieșire am văzut din programul nostru C. 161 00:12:48,160 --> 00:12:52,120 >> PHP susține, de asemenea, un construct numit "foreach" buclă. 162 00:12:52,120 --> 00:12:54,800 Buclă "foreach" este la fel ca un "pentru" buclă, 163 00:12:54,800 --> 00:12:59,080 dar se adaugă un pic de zahăr sintactice pentru a face lucrurile mai ușor de citit. 164 00:12:59,080 --> 00:13:03,690 Aici, vom creea o matrice numita "$ array". 165 00:13:03,690 --> 00:13:10,090 Acum putem spune, foreach ($ array ca $ numar), 166 00:13:10,090 --> 00:13:12,390 și putem imprima $ număr. 167 00:13:12,390 --> 00:13:20,650 Când vom rula acest fișier - PHP foreach.php-, putem vedea fiecare numar pe o linie proprie. 168 00:13:20,650 --> 00:13:26,700 >> Când am scris cod C, a fost de multe ori util de a organiza codul nostru în fișiere separate. 169 00:13:26,700 --> 00:13:29,170 În PHP, putem face același lucru. 170 00:13:29,170 --> 00:13:33,870 Să presupunem că avem câteva funcții într-un fișier numit math.php. 171 00:13:33,870 --> 00:13:38,900 Dacă vreau să folosesc aceste funcții într-un alt dosar PHP, cum ar fi calculator.php, 172 00:13:38,900 --> 00:13:44,110 Eu pot folosi require_once PHP () funcție. 173 00:13:44,110 --> 00:13:47,110 Require_once este la fel ca # include. 174 00:13:47,110 --> 00:13:52,050 Când dat o cale spre un fișier, se va copia în esență și inserați conținutul 175 00:13:52,050 --> 00:13:54,930 din acel fișier în fișierul curent. 176 00:13:54,930 --> 00:14:00,150 Require_once asigură că fiecare fișier este inclus în fișierul curent doar o singură dată, 177 00:14:00,150 --> 00:14:05,680 care poate fi de ajutor dacă aveți o colecție mare de fișiere PHP necesită reciproc. 178 00:14:05,680 --> 00:14:07,750 Să aruncăm o privire la un exemplu. 179 00:14:07,750 --> 00:14:12,620 Aici avem o colecție de funcții pe care aș dori să le utilizați într-un alt dosar. 180 00:14:12,620 --> 00:14:14,990 Să aruncăm o privire la modul în care le putem folosi. 181 00:14:14,990 --> 00:14:20,700 Pe linia 3, suntem necesită math.php. 182 00:14:20,700 --> 00:14:27,170 "__DIR__" Este o constantă special care reprezintă directorul curent 183 00:14:27,170 --> 00:14:33,440 din math.php și calculator.php se află în același director. 184 00:14:33,440 --> 00:14:38,010 După ce am nevoie de math.php, putem folosi funcțiile 185 00:14:38,010 --> 00:14:41,690  ca și cum le-am definit în calculator.php. 186 00:14:41,690 --> 00:14:47,440 Să facem acest lucru cu "PHP calculator.php". Minunat! 187 00:14:47,440 --> 00:14:50,880 >> Asta e pentru introducerea nostru de sintaxa PHP. 188 00:14:50,880 --> 00:14:53,700 Pentru a afla mai multe, verifica PHP.net. 189 00:14:53,700 --> 00:14:59,470 PHP are o multime de functii built-in, și din fericire, documentația este foarte mare. 190 00:14:59,470 --> 00:15:02,680 Numele meu este Tommy, iar acest lucru este CS50. 191 00:15:02,680 --> 00:15:04,680 [CS50.TV] 192 00:15:04,680 --> 00:15:14,000 >> ... Suport, am plecat din cameră. La naiba! Acesta este ultimul film în care folosesc cuvinte mari în codul.