1 00:00:00,000 --> 00:00:05,340 2 00:00:05,340 --> 00:00:07,370 >> Doug LLOYD: pa smo učinjeno puno posla u C, 3 00:00:07,370 --> 00:00:09,536 i C je stvarno cool jezik, jer vam daje 4 00:00:09,536 --> 00:00:12,840 sposobnost za ronjenje stvarno niska razina u svoje programe. 5 00:00:12,840 --> 00:00:16,810 Mi smo dobili za napraviti stvari kao stvarno minuta kao manipulaciju 6 00:00:16,810 --> 00:00:18,800 pojedinačne bajta memorije. 7 00:00:18,800 --> 00:00:21,420 Podsjetimo da je naputke stvarno dopustite nam da fleksibilnost. 8 00:00:21,420 --> 00:00:25,260 >> Ali mi je uvijek trebate imati da razina fino zrno detalje 9 00:00:25,260 --> 00:00:26,820 u našim programima? 10 00:00:26,820 --> 00:00:28,210 Vjerojatno ne, zar ne? 11 00:00:28,210 --> 00:00:30,376 A ako ćemo imati trade-off između biti 12 00:00:30,376 --> 00:00:32,911 u mogućnosti to učiniti jako, jako minute stvari i stvarno, stvarno 13 00:00:32,911 --> 00:00:35,910 velike stvari koje mi ne moramo razmišljati O, ne moramo provoditi 14 00:00:35,910 --> 00:00:40,290 ti stvarno velika ideja ako su već ugrađeni u nas, 15 00:00:40,290 --> 00:00:43,980 uglavnom za izgradnju velike programe ili velike projekte, 16 00:00:43,980 --> 00:00:49,130 mi smo vjerojatno će griješiti na strani da su više jezika stvari izgrađen u 17 00:00:49,130 --> 00:00:51,300 za nas, umjesto da low-level stvari. 18 00:00:51,300 --> 00:00:53,970 I tamo PHP stvarno dolazi u. 19 00:00:53,970 --> 00:00:58,200 >> Zatim, jedan od razloga da učimo PHP u CS50 20 00:00:58,200 --> 00:01:01,020 je da je jako inspiriran C. A u stvari, po mom mišljenju, 21 00:01:01,020 --> 00:01:05,140 postoje zapravo dva ishodišne ​​jezici koji 22 00:01:05,140 --> 00:01:08,200 su vrlo česte u današnje vrijeme. 23 00:01:08,200 --> 00:01:10,110 C i LISP. 24 00:01:10,110 --> 00:01:13,280 I oni su ishodišne ​​jezika jer svaki drugi modernog programiranje 25 00:01:13,280 --> 00:01:17,380 jezik koji je razvio od tada je inspirirala 26 00:01:17,380 --> 00:01:20,330 jedan ili drugi sintaktički. 27 00:01:20,330 --> 00:01:26,160 PHP je vrlo sličan sintaktički na C, dok jezicima kao sheme, 28 00:01:26,160 --> 00:01:27,900 na primjer, koji je možda ste čuli, 29 00:01:27,900 --> 00:01:32,070 je jako inspiriran jeziku zove LISP, što je starija jezik. 30 00:01:32,070 --> 00:01:34,220 >> Dakle, razlog učimo PHP u CS50 je da, 31 00:01:34,220 --> 00:01:37,730 znajući C kao temeljno kao što učiniti u ovom trenutku, 32 00:01:37,730 --> 00:01:41,280 branje gore PHP, što vam daje sposobnost učiniti mnogo višu razinu stvari 33 00:01:41,280 --> 00:01:44,710 nego C ne, ne da je mnogo prepreka, 34 00:01:44,710 --> 00:01:48,230 jer već imaju Osnovna ideja sintakse. 35 00:01:48,230 --> 00:01:50,590 C je bio oko za gotovo 45 godina u ovom trenutku. 36 00:01:50,590 --> 00:01:52,780 PHP je bio oko za oko 20 godina. 37 00:01:52,780 --> 00:01:57,080 A da je 25 godina U međuvremenu, programera 38 00:01:57,080 --> 00:02:01,540 utvrđuje se da neće mnogo a imaju više razine sposobnosti, 39 00:02:01,540 --> 00:02:04,970 i pogreške i borbe od 20 godina između 40 00:02:04,970 --> 00:02:08,210 dovelo do PHP i druge suvremene jezike. 41 00:02:08,210 --> 00:02:11,039 >> PHP je veliki izbor jezik za softver 42 00:02:11,039 --> 00:02:14,042 da allow-- za Softver that-- gdje vas 43 00:02:14,042 --> 00:02:16,250 trebate učiniti ono što je u C su zapravo komplicirano. 44 00:02:16,250 --> 00:02:18,480 Tako, na primjer, rade sa žicama u C 45 00:02:18,480 --> 00:02:21,709 je vrlo komplicirano, jer kao što znamo, žice u C 46 00:02:21,709 --> 00:02:23,250 su stvarno samo nizovi znakova. 47 00:02:23,250 --> 00:02:25,230 To nije ugrađeni tip podataka. 48 00:02:25,230 --> 00:02:28,220 Ili možda važnije, nešto što nije ni pokriti u C, 49 00:02:28,220 --> 00:02:30,360 što ako je potrebno učiniti Neki umrežavanje računala? 50 00:02:30,360 --> 00:02:30,860 U redu? 51 00:02:30,860 --> 00:02:34,920 >> C ima sposobnost za to, ali to je tako arcane i tako teško zapravo učiniti. 52 00:02:34,920 --> 00:02:37,580 Zar ne bi bilo lijepo ako je Jezik je imao izgrađen-in, jednostavan način 53 00:02:37,580 --> 00:02:38,910 provesti umrežavanje? 54 00:02:38,910 --> 00:02:43,420 I PHP je jezik koji omogućuje da se, ili olakšava da, vrlo malo. 55 00:02:43,420 --> 00:02:47,740 Kao što sam rekao, PHP je vrlo teško nadahnuta C. Sintaksa je vrlo sličan. 56 00:02:47,740 --> 00:02:51,760 I tako bi trebalo nadamo napraviti Prijelaz iz jednog u drugi 57 00:02:51,760 --> 00:02:54,710 malo mekši od nekih drugi jezici mogu biti. 58 00:02:54,710 --> 00:02:58,800 >> Za početak pisanja PHP, samo otvori datoteka s datotečnim nastavkom .php. 59 00:02:58,800 --> 00:03:00,670 Tehnički to nije zapravo je potrebno, 60 00:03:00,670 --> 00:03:04,495 ali ako želite stvari poput sintakse isticanje u IDE, pa taj tip 61 00:03:04,495 --> 00:03:07,620 imena ili promjenjive imena, funkcije, znate, ključne riječi iz jezika 62 00:03:07,620 --> 00:03:10,090 su istaknute u specifična boja, općenito 63 00:03:10,090 --> 00:03:14,020 želim naziv datoteke s određena ekstenzija datoteke. 64 00:03:14,020 --> 00:03:18,430 Tako smo nazvali našu datoteku s php produžetak, ali onda i sa PHP, 65 00:03:18,430 --> 00:03:23,310 sve PHP kod pišemo u tome Datoteka mora biti zatvoren u tim PHP 66 00:03:23,310 --> 00:03:25,190 razdvojnike koje vidimo ovdje na zaslonu. 67 00:03:25,190 --> 00:03:27,910 Kut nosač? Php za početak. 68 00:03:27,910 --> 00:03:30,860 Zatim pišemo sve naše PHP kod koje želimo između. 69 00:03:30,860 --> 00:03:32,260 I onda ? 70 00:03:32,260 --> 00:03:34,710 kut nosača zatvoriti. 71 00:03:34,710 --> 00:03:37,170 >> Ako to ne učinite, onda što će se dogoditi? 72 00:03:37,170 --> 00:03:38,170 To se neće srušiti. 73 00:03:38,170 --> 00:03:39,410 To neće stvarno uništiti naš program. 74 00:03:39,410 --> 00:03:41,440 Ali to neće imati učinak koji želimo. 75 00:03:41,440 --> 00:03:44,540 Što će se dogoditi, stvarno je da kad smo probati i pokrenuti ovaj program, 76 00:03:44,540 --> 00:03:50,330 sve što nije između onih razdvojnike će se ispisati doslovno. 77 00:03:50,330 --> 00:03:52,210 To neće zapravo izvršavanje koda, 78 00:03:52,210 --> 00:03:56,010 to će samo isprintajte ju doslovno. 79 00:03:56,010 --> 00:03:57,320 >> Sad zašto je tako? 80 00:03:57,320 --> 00:04:00,416 Dakle C je ono što je poznato kao sastavio jeziku. 81 00:04:00,416 --> 00:04:03,040 Vjerojatno ste upoznati s korak izrade svoje programe, 82 00:04:03,040 --> 00:04:07,820 okrećući .c datoteka i .h datoteke u jednu izvršnu s make, 83 00:04:07,820 --> 00:04:11,130 posebno primjenom Zveket kao naš prevodilac. 84 00:04:11,130 --> 00:04:13,030 PHP, ipak, ne ima tu ekvivalent. 85 00:04:13,030 --> 00:04:15,600 PHP je ono što se naziva tumači jezikom. 86 00:04:15,600 --> 00:04:16,760 A što to znači? 87 00:04:16,760 --> 00:04:20,680 >> Pa, to znači da ne moramo pretvoriti naš izvorni kod nula i jedinica 88 00:04:20,680 --> 00:04:21,470 unaprijed. 89 00:04:21,470 --> 00:04:23,900 Umjesto toga, tu je program, koji se također zove 90 00:04:23,900 --> 00:04:29,771 PHP, koji razumije PHP i može nekako bi ga na letjeti. 91 00:04:29,771 --> 00:04:32,520 To zapravo nije točno točno, ali to je prilično dobra analogija 92 00:04:32,520 --> 00:04:33,760 onoga što se događa. 93 00:04:33,760 --> 00:04:37,230 To je tumačenje onih nula i one na letu. 94 00:04:37,230 --> 00:04:40,160 I tako, ako se ne zna kako obraditi nešto, 95 00:04:40,160 --> 00:04:42,800 Ako ne znate kako Proces PHP, vjerojatno 96 00:04:42,800 --> 00:04:44,680 htio staviti taj tekst tamo, zar ne? 97 00:04:44,680 --> 00:04:48,960 >> Vjerojatno je htio staviti kod u tamo, čak i ako to nije između PHP-- 98 00:04:48,960 --> 00:04:50,035 PHP razdvojnike. 99 00:04:50,035 --> 00:04:51,910 But-- pa to neće da ga izbrisati za vas, 100 00:04:51,910 --> 00:04:53,576 to je samo idući u osnovi ga odbaciti. 101 00:04:53,576 --> 00:04:55,550 Dakle, to će ispisati je na zaslonu. 102 00:04:55,550 --> 00:04:57,150 >> To se čini kao da je to loša stvar, ali zapravo je to 103 00:04:57,150 --> 00:04:58,220 će biti jako dobra stvar, kao što ćemo 104 00:04:58,220 --> 00:05:00,390 vidjeti kada govorimo o PHP web development, 105 00:05:00,390 --> 00:05:04,010 jer to znači da možemo poprskati PHP i HTML. 106 00:05:04,010 --> 00:05:06,640 Možemo ih koristiti zajedno stvoriti više dinamičke web stranice. 107 00:05:06,640 --> 00:05:10,650 No, više o tome u Video o PHP web development. 108 00:05:10,650 --> 00:05:12,021 >> Dakle, ono što je sintaksa PHP? 109 00:05:12,021 --> 00:05:13,520 To je ono što ovaj video je sve o tome. 110 00:05:13,520 --> 00:05:14,850 Razgovarajmo o tome. 111 00:05:14,850 --> 00:05:16,490 >> Dakle, za početak se, varijable. 112 00:05:16,490 --> 00:05:18,030 PHP varijable postoje. 113 00:05:18,030 --> 00:05:20,067 Postoje samo dva velika razlike od C. 114 00:05:20,067 --> 00:05:21,900 Prvi je da postoji Nema kategorije specifikator. 115 00:05:21,900 --> 00:05:24,245 Nemamo reći int, char, float, sve to. 116 00:05:24,245 --> 00:05:25,620 Mi ne moramo učiniti više. 117 00:05:25,620 --> 00:05:26,810 PHP je moderna jezik. 118 00:05:26,810 --> 00:05:28,910 To mogu shvatiti što si pokušava učiniti ili napraviti najbolji 119 00:05:28,910 --> 00:05:30,451 Pretpostavljam da ono što pokušavate učiniti. 120 00:05:30,451 --> 00:05:31,700 Dakle, to je prilično lijepo. 121 00:05:31,700 --> 00:05:35,330 >> Druga stvar je da sve varijable imena moraju početi s znak za dolar. 122 00:05:35,330 --> 00:05:36,940 To je samo nešto što se naviknuti. 123 00:05:36,940 --> 00:05:39,496 To je malo čudno, jer to je tako da se može razumjeti PHP 124 00:05:39,496 --> 00:05:40,870 Što je varijabla, a što nije. 125 00:05:40,870 --> 00:05:43,340 Tako je svaki naziv varijable počinje s znak za dolar. 126 00:05:43,340 --> 00:05:46,884 Tako je u C, mogli bismo reći nešto ovako, int x = 54. 127 00:05:46,884 --> 00:05:48,550 Ne morate to učiniti više u PHP. 128 00:05:48,550 --> 00:05:52,540 Mi samo možemo reći $ x = 54. 129 00:05:52,540 --> 00:05:55,920 A moglo bi se reći, na primjer, u C, ako smo pound-uključen CS50 .h 130 00:05:55,920 --> 00:06:00,314 zaglavlje datoteke, mogli bismo reći niz fraza = "Ovo je CS50." 131 00:06:00,314 --> 00:06:01,980 Ne morate to učiniti u PHP-u, iako. 132 00:06:01,980 --> 00:06:04,865 Mi samo možemo reći $ izraz = "Ovo je CS50." 133 00:06:04,865 --> 00:06:08,760 A u stvari, niz je sada ugrađeni vrsta podataka u PHP, 134 00:06:08,760 --> 00:06:10,950 odnosno PHP razumije što je string. 135 00:06:10,950 --> 00:06:15,612 To je odvojeno od niza likova kao što je to u C. 136 00:06:15,612 --> 00:06:17,570 Sve vaše omiljene uvjetne izjave C 137 00:06:17,570 --> 00:06:19,520 su još uvijek dostupni za uporabu. 138 00:06:19,520 --> 00:06:21,140 Dakle, nije velika tranzicija tamo. 139 00:06:21,140 --> 00:06:23,400 Možemo say-- možemo imati ako je izjava kao što je ovaj. 140 00:06:23,400 --> 00:06:28,210 ako je $ y 43 ili $ z = 15. 141 00:06:28,210 --> 00:06:29,690 Dakle, to je prilično jednostavan. 142 00:06:29,690 --> 00:06:31,980 Možemo li i drugo. 143 00:06:31,980 --> 00:06:34,210 Možemo li i drugi, ako. 144 00:06:34,210 --> 00:06:36,430 >> I primijetite nešto prilično lijepo ovdje, a to 145 00:06:36,430 --> 00:06:39,620 je vrsta jedna od onih Prednosti PHP odnosu C, najave 146 00:06:39,620 --> 00:06:41,510 što je funkcija da ne koristite ovdje? 147 00:06:41,510 --> 00:06:47,737 Mi smo pomoću == za usporedbu promjenjiva, $ ime, u nizu. 148 00:06:47,737 --> 00:06:49,070 Nismo mogli to učiniti u C, zar ne? 149 00:06:49,070 --> 00:06:53,200 Morali smo koristiti funkciju pod nazivom StrComp ili StrEndComp ili bilo 150 00:06:53,200 --> 00:06:54,840 njegovih povezanih rođaka. 151 00:06:54,840 --> 00:06:56,980 >> I tako već vidimo ove prednosti. 152 00:06:56,980 --> 00:07:00,930 Ne morate učiniti nešto kao blesav ili možda unintuitive 153 00:07:00,930 --> 00:07:03,540 kao poziv funkciju pod nazivom StrComp ako samo želite testirati 154 00:07:03,540 --> 00:07:05,237 da li je vrijednost jednaka niz. 155 00:07:05,237 --> 00:07:07,820 Mogao sam samo koristiti jednako jednakima, kao što sam mogao učiniti bilo što drugo. 156 00:07:07,820 --> 00:07:09,560 Dakle, tu je prednost. 157 00:07:09,560 --> 00:07:13,350 >> Ponekad, usput, možda vidim drugo ako je kao jednu riječ, elseif. 158 00:07:13,350 --> 00:07:14,910 I to je u redu u PHP kao dobro. 159 00:07:14,910 --> 00:07:17,020 Dakle, ponekad ćete možda vidjeti. 160 00:07:17,020 --> 00:07:17,790 To nije pogreška pri upisu. 161 00:07:17,790 --> 00:07:21,830 PHP zapravo razumije elseif. 162 00:07:21,830 --> 00:07:23,980 Ne znam zašto su odlučio provesti da, 163 00:07:23,980 --> 00:07:28,220 ali kao što smo vidjeli mnogo puta tijekom našeg videa do sada, 164 00:07:28,220 --> 00:07:30,460 mi programeri to ljubav ako možemo raditi stvari brzo, 165 00:07:30,460 --> 00:07:33,660 tako uzimajući osloboditi od taj prostor je očito velika prednost. 166 00:07:33,660 --> 00:07:34,800 >> Tako da ako i elseif. 167 00:07:34,800 --> 00:07:37,540 Također smo ternarnog operatera, Podsjetimo upitnik debelog crijeva, 168 00:07:37,540 --> 00:07:43,262 za jako kratko obliku ako drugi ili uvjetno grananje. 169 00:07:43,262 --> 00:07:45,470 I očito, u tome, ono što mi pokušavamo učiniti ovdje 170 00:07:45,470 --> 00:07:49,720 se dodijeliti varijablu $ pismo bilo istinito ili lažno, 171 00:07:49,720 --> 00:07:54,110 ovisno o tome je li $ var je slovo abecede. 172 00:07:54,110 --> 00:07:57,320 Dakle, to je prilično sličan isalpha da smo upoznati s iz C. 173 00:07:57,320 --> 00:07:59,010 To je vrsta protuvrijednosti u PHP. 174 00:07:59,010 --> 00:08:01,550 Funkcija je očito zove ctype_alpha, 175 00:08:01,550 --> 00:08:03,450 ali to je kako ćemo to učiniti u PHP. 176 00:08:03,450 --> 00:08:08,560 Dakle, sve ovo će biti je, ako $ var je pismo, $ pismo je istinito. 177 00:08:08,560 --> 00:08:13,820 Ako $ var nije pismo, $ pismo je lažna. 178 00:08:13,820 --> 00:08:15,820 >> Također imamo prekidač izjave dalje. 179 00:08:15,820 --> 00:08:17,870 Podsjećamo one iz C, kao dobro. 180 00:08:17,870 --> 00:08:22,480 Na samom vrhu tamo, to je kako radimo nešto poput GET int ili dobiti niz. 181 00:08:22,480 --> 00:08:23,845 Dakle, PHP ima da izgrađen u. 182 00:08:23,845 --> 00:08:25,470 Ne treba CS50 knjižnicu više. 183 00:08:25,470 --> 00:08:27,237 Mi samo možemo koristiti funkciju readline. 184 00:08:27,237 --> 00:08:29,820 Što to će učiniti je ispisati iz poruke "Vaše stanje, 185 00:08:29,820 --> 00:08:33,820 molim ", a zatim treperi upit čekajući korisnika za unos 186 00:08:33,820 --> 00:08:34,739 neke informacije. 187 00:08:34,739 --> 00:08:36,530 Sada primijetiti što drugo možemo učiniti s prekidačem. 188 00:08:36,530 --> 00:08:39,105 Ako ste ga koristili prije, Vi svibanj podsjetiti da prekidač 189 00:08:39,105 --> 00:08:44,960 ograničena prilično mnogo brojeva i likovi, ali sada možemo koristiti nizove. 190 00:08:44,960 --> 00:08:50,190 A u stvari, izjava prekidač u PHP je vrlo malo fleksibilniji 191 00:08:50,190 --> 00:08:54,880 od svog bratića iz C. 192 00:08:54,880 --> 00:08:55,380 Petlje. 193 00:08:55,380 --> 00:08:58,130 Baš kao kondicional, sve Vaši stari favoriti su još uvijek tu. 194 00:08:58,130 --> 00:09:00,740 Imamo while petlje koje se računaju od 1 do 100 u ovom slučaju. 195 00:09:00,740 --> 00:09:03,940 Mi smo učiniti dok petlje koji strani od 1 do 100, 196 00:09:03,940 --> 00:09:06,200 i imamo za petlje kako brojati od 1 do 100. 197 00:09:06,200 --> 00:09:07,220 Dakle, ne postoji veliki skok. 198 00:09:07,220 --> 00:09:09,360 Sintaksa je lijepa više isti, 199 00:09:09,360 --> 00:09:11,760 osim sada smo pomoću Dolar znak varijabla umjesto 200 00:09:11,760 --> 00:09:17,260 proglašavanja cjelobrojne varijable ili nešto slično našim šalterima. 201 00:09:17,260 --> 00:09:20,090 >> Evo gdje se stvari dobiti puno bolje nego C, ipak. 202 00:09:20,090 --> 00:09:21,020 Nizovi. 203 00:09:21,020 --> 00:09:23,020 Dakle podsjetiti kad smo bili govori o C, kako bi 204 00:09:23,020 --> 00:09:25,560 za nas rasti i smanjiti seta podataka, 205 00:09:25,560 --> 00:09:28,310 moramo vrsta zadane ovoj ideji popisu povezane, 206 00:09:28,310 --> 00:09:30,780 jer C polja su fiksne veličine. 207 00:09:30,780 --> 00:09:31,800 Nismo ih mogli smanjiti. 208 00:09:31,800 --> 00:09:32,930 Nismo ih mogli rasti. 209 00:09:32,930 --> 00:09:36,074 Imali smo da doznači memorije i učiniti sve ovo ludilo 210 00:09:36,074 --> 00:09:38,490 ili koristiti povezane liste, koje zauzimaju vrlo malo prostora. 211 00:09:38,490 --> 00:09:41,590 Ali u PHP-u, nizovi su Ne fiksne veličine više. 212 00:09:41,590 --> 00:09:43,240 Oni mogu narasti i oni mogu smanjiti. 213 00:09:43,240 --> 00:09:46,660 Pa opet, ti 20 godina da je postojala između prvog objavljivanja C 214 00:09:46,660 --> 00:09:49,440 a prvo izdanje PHP, odlučili smo da, znate, 215 00:09:49,440 --> 00:09:51,670 bilo bi stvarno super ako smo mogli učiniti. 216 00:09:51,670 --> 00:09:54,100 I tako smo proveli ovo. 217 00:09:54,100 --> 00:09:58,040 >> Dakle, PHP nizovi nisu fiksne u Veličina i zato PHP ne stvarno 218 00:09:58,040 --> 00:10:03,090 imaju programer prednja pojmovi tipa, 219 00:10:03,090 --> 00:10:05,110 možemo miješati vrste podataka u našim polja, previše. 220 00:10:05,110 --> 00:10:08,100 Dakle, ne morate koristiti sve cijeli brojevi ili sve plutajuće točke, 221 00:10:08,100 --> 00:10:12,826 možemo imati kombinaciju svega različite vrste u jednom nizu. 222 00:10:12,826 --> 00:10:14,700 Proglašavanje niz je prilično jednostavan. 223 00:10:14,700 --> 00:10:16,116 To je baš kao i bilo koje druge varijable. 224 00:10:16,116 --> 00:10:20,020 $ Nums = array (1, 2, 3, 4), niz se funkcija 225 00:10:20,020 --> 00:10:22,760 koji je izgrađen u PHP da će stvoriti niz za vas. 226 00:10:22,760 --> 00:10:28,315 To stvara niz od četiri vrijednosti, brojevi u ovom slučaju, pozvao $ Nums. 227 00:10:28,315 --> 00:10:29,940 I tu je više nego jedan način da to učinite. 228 00:10:29,940 --> 00:10:32,420 I idemo vidjeti puno u PHP. 229 00:10:32,420 --> 00:10:36,380 PHP je razvijen od strane mnogo različitih ljudi i raste i raste i raste. 230 00:10:36,380 --> 00:10:40,050 Tu je obično nije samo dvije ili Tri načina da se nešto učini u PHP, 231 00:10:40,050 --> 00:10:42,170 tu je obično kao 10 ili 20. 232 00:10:42,170 --> 00:10:45,300 Evo samo još jedan zajednički način da se proglasi niz. 233 00:10:45,300 --> 00:10:48,310 $ Nums = uglata zagrada 1, 2, 3, 4. 234 00:10:48,310 --> 00:10:53,170 Dakle, ovo je vrsta slična kasiopejske kuta br-- kovrčavu Brace zapis, a. $ - 235 00:10:53,170 --> 00:10:58,525 ili bi bilo INT Nums kvadrat zagrade jednak kovrčave vitice 1, 2, 3, 4. 236 00:10:58,525 --> 00:11:02,710 U PHP je $ Nums = kvadrat Nosači 1, 2, 3, 4. 237 00:11:02,710 --> 00:11:08,920 No, oba ova primjera ovdje mi dati niz od četiri u ovom slučaju prirodnih brojeva. 238 00:11:08,920 --> 00:11:10,920 >> Što ako želim sklepati nešto na sada? 239 00:11:10,920 --> 00:11:14,760 Pa ja mogu samo reći Nums $ 4, koji je opet, mi smo još uvijek računajući od 0 ovdje 240 00:11:14,760 --> 00:11:17,800 u PHP-u, bio bi peta element polja. 241 00:11:17,800 --> 00:11:18,990 Ja samo mogu reći da. 242 00:11:18,990 --> 00:11:22,860 Neću trpjeti seg kvara, jer je moj polje je samo 243 00:11:22,860 --> 00:11:24,337 će rasti smjestiti taj. 244 00:11:24,337 --> 00:11:25,420 To je prilično lijepo, zar ne? 245 00:11:25,420 --> 00:11:28,400 A u stvari, ja ni ne trebaju navesti gdje želim ga staviti. 246 00:11:28,400 --> 00:11:31,220 Ja samo mogu reći ovo i samo tack to pravo na kraju, 247 00:11:31,220 --> 00:11:34,099 ili sam mogao čak samo kažu $ Nums 20 ili 1.000. 248 00:11:34,099 --> 00:11:35,140 To zapravo ne smeta. 249 00:11:35,140 --> 00:11:38,330 To je još uvijek samo će tack to pravo na kraju. 250 00:11:38,330 --> 00:11:41,490 >> Dakle, ja mogu narasti i as-- smo ne ide to pokriti ovdje, 251 00:11:41,490 --> 00:11:45,360 ali mogu pletenica ili traka elementi izvan polja te, 252 00:11:45,360 --> 00:11:50,064 a polje će se smanjiti za smještaj da je sada nedostaje ili prazan prostor. 253 00:11:50,064 --> 00:11:52,230 Postoji još jedan način da tack nešto na niz, 254 00:11:52,230 --> 00:11:54,330 koja je funkcija zove array_push. 255 00:11:54,330 --> 00:11:57,860 Pa opet, samo ta ideja da bude mogućnosti za napraviti stvari mnogo različitih načina. 256 00:11:57,860 --> 00:12:01,950 Dakle, vidjeli smo tri različita načina sada letati još jedan element na polje. 257 00:12:01,950 --> 00:12:06,900 Dakle, to dodaje još jedan element na kraju $ Nums polja. 258 00:12:06,900 --> 00:12:08,340 I možemo pomiješati naše vrste podataka. 259 00:12:08,340 --> 00:12:13,110 Tako sam mogao imati niz ne 1, 2, 3, 4, a 1, istina, 3, 4, 260 00:12:13,110 --> 00:12:16,420 gdje istina je logička, a zatim ako želim tack na drugom elementu 261 00:12:16,420 --> 00:12:20,860 na to polje, možda niz, string "pet", mogao sam to učiniti. 262 00:12:20,860 --> 00:12:26,110 A sada moj polje bih biti 1, istina, 3, 4, pet. 263 00:12:26,110 --> 00:12:28,640 Riječ pet, a ne broj 5. 264 00:12:28,640 --> 00:12:31,270 Dakle, puno fleksibilnosti tamo. 265 00:12:31,270 --> 00:12:33,290 >> Fleksibilnost dobiva čak i bolje, iako, 266 00:12:33,290 --> 00:12:37,530 jer PHP ima podršku za nečim zove asocijativni niz. 267 00:12:37,530 --> 00:12:40,660 A mi nekako neodređeno govorio O asocijativne polja u C 268 00:12:40,660 --> 00:12:44,740 u kontekstu hash tablica jer što asocijativne nizove stvarno sve 269 00:12:44,740 --> 00:12:48,950 O čine ključ Vrijednost par preslikavanja. 270 00:12:48,950 --> 00:12:53,410 I u ovom slučaju, ako keys-- mi smo upoznati s polja iz C, 271 00:12:53,410 --> 00:12:55,440 tipke su indeks brojeva. 272 00:12:55,440 --> 00:12:57,530 0, 1, 2, 3. 273 00:12:57,530 --> 00:13:03,070 A vrijednosti su ono što mislimo da je Niz 0, polje 1, polje 2, i tako dalje. 274 00:13:03,070 --> 00:13:06,310 Tako su ključevi indeksi, te vrijednosti 275 00:13:06,310 --> 00:13:10,060 što je u tom položaju polja, određeno tog indeksa. 276 00:13:10,060 --> 00:13:15,130 >> Ali u PHP-u, ne moraš to učiniti Pojam niza 0, polje 1, polje 2 277 00:13:15,130 --> 00:13:15,830 više. 278 00:13:15,830 --> 00:13:21,025 Sada možete koristiti stvarne riječi mapirati tipke na vrijednosti. 279 00:13:21,025 --> 00:13:22,650 I tako bih mogao reći nešto poput ovoga. 280 00:13:22,650 --> 00:13:26,710 Mogao bih stvoriti niz pomoću uglata zagrada sintaksu kako slijedi. 281 00:13:26,710 --> 00:13:30,685 $ pizze = uglata zagrada "sir", a zatim 282 00:13:30,685 --> 00:13:37,210 ova vrsta dvostruke strelice zapis, 8,99 ", feferoni," strelica 10.99-- 9,99, 283 00:13:37,210 --> 00:13:37,880 i tako dalje. 284 00:13:37,880 --> 00:13:39,060 I tako ono što se ovdje događa? 285 00:13:39,060 --> 00:13:41,040 Što ja zapravo radim? 286 00:13:41,040 --> 00:13:43,990 Izrađujem ključna vrijednost parova preslikavanja. 287 00:13:43,990 --> 00:13:49,060 Dakle, umjesto da se kaže, na primjer, pizze 0, komada 1, 2, pizze 288 00:13:49,060 --> 00:13:52,350 Ja sada mogu reći pizze sir, pizze feferoni, 289 00:13:52,350 --> 00:13:55,120 i odnosi se na vrijednosti povezane s njima. 290 00:13:55,120 --> 00:13:56,970 >> Dakle ovdje su naši tipke u zelenom. 291 00:13:56,970 --> 00:13:59,870 Sir, feferoni, povrća, piletina bizona. 292 00:13:59,870 --> 00:14:04,200 Ovdje je strelica koja čini Ova vrijednost ključa par mapiranje. 293 00:14:04,200 --> 00:14:07,420 A onda tu su vrijednosti na toj lokaciji polja. 294 00:14:07,420 --> 00:14:10,330 Dakle, to je kao da kažete niz 0 jednak 8,99. 295 00:14:10,330 --> 00:14:11,720 Ključ je 0. 296 00:14:11,720 --> 00:14:13,600 Vrijednost je 8,99. 297 00:14:13,600 --> 00:14:19,370 Ja sada mogu reći array sir, ili to Slučaj pizza sir, sir je ključ, 298 00:14:19,370 --> 00:14:23,340 i što ne mogu naći na pizza sir je 8,99. 299 00:14:23,340 --> 00:14:25,540 To je vrijednost koja sam tamo naći. 300 00:14:25,540 --> 00:14:28,124 >> Dakle, ja mogu reći stvari poput. $ pizza sir = 7.99. 301 00:14:28,124 --> 00:14:29,040 Recimo imam prodaju. 302 00:14:29,040 --> 00:14:31,750 Želim dis-- želim da ispadne cijena od sira pizza. 303 00:14:31,750 --> 00:14:35,620 Ili mogu koristiti povrće pizza kao dio stanja, 304 00:14:35,620 --> 00:14:39,990 ili ja mogu dodati novi element mom polje, baš kao što sam mogao učiniti prije. 305 00:14:39,990 --> 00:14:44,680 Ja mogu dodati novi element ovo asocijativni niz s ključem "slanine" 306 00:14:44,680 --> 00:14:49,250 a vrijednost 13,49. 307 00:14:49,250 --> 00:14:53,820 >> No, ova vrsta uvodi problem, Ako mislite o tome na trenutak. 308 00:14:53,820 --> 00:14:55,721 Kako bi se ponoviti kroz ovaj niz? 309 00:14:55,721 --> 00:14:56,220 Pravo? 310 00:14:56,220 --> 00:14:59,820 U C, što bi samo imati for petlja, obično, da 311 00:14:59,820 --> 00:15:03,650 će se izvoditi od 0 do veličina polja minus 1. 312 00:15:03,650 --> 00:15:08,060 Niz ima n elemenata u po je važeći indeksi 0 do n minus 1. 313 00:15:08,060 --> 00:15:11,530 Tako bismo mogli koristiti za petlju na korak kroz svaku elementa. 314 00:15:11,530 --> 00:15:13,530 >> Ali to zapravo nije slučaj više, zar ne? 315 00:15:13,530 --> 00:15:17,360 A gdje smo ključnu vrijednost par preslikavanja gdje su ključevi riječi, 316 00:15:17,360 --> 00:15:19,970 Kako ćemo ponoviti tijekom sve riječi? 317 00:15:19,970 --> 00:15:22,420 Pa, srećom, PHP ima način nositi s tim previše, 318 00:15:22,420 --> 00:15:24,580 pa ćemo skočiti natrag do petlje za sekundu 319 00:15:24,580 --> 00:15:30,780 uvesti četvrtu vrstu petlje da postoji u PHP naziva foreach petlju. 320 00:15:30,780 --> 00:15:34,430 A što foreach petlje se je to je u osnovi ista ideja. 321 00:15:34,430 --> 00:15:36,060 Možete ga koristiti za bilo koju vrstu polja. 322 00:15:36,060 --> 00:15:38,100 No, to je u osnovi ista ideja kao for petlje, 323 00:15:38,100 --> 00:15:40,750 osim umjesto korištenja indeks brojeve, samo 324 00:15:40,750 --> 00:15:45,830 ima tu čudnu sintaksu gdje vas poziva svakog pojedinog elementa 325 00:15:45,830 --> 00:15:47,550 naziv za potrebe ove petlje. 326 00:15:47,550 --> 00:15:49,258 >> Dakle, u ovom slučaju, foreach ($ polje kao $ ključ). 327 00:15:49,258 --> 00:15:52,900 328 00:15:52,900 --> 00:15:56,450 Uglavnom, kao da komentar bilješke, unutar tog foreach petlje, 329 00:15:56,450 --> 00:16:00,466 to će ići preko svaki element $ niz, što je obično 330 00:16:00,466 --> 00:16:03,340 će biti asocijativni niz, ali stvarno može biti bilo kakav niz 331 00:16:03,340 --> 00:16:05,419 što želite u PHP-u. 332 00:16:05,419 --> 00:16:07,210 I svaki put da je u for petlja vas možda 333 00:16:07,210 --> 00:16:13,780 rekao $ array četvornih zagrade $ ja, možeš samo reći $ ključ. 334 00:16:13,780 --> 00:16:22,340 Tako da $ ključ postaje pseudonim za svaki Indeks PHP asocijativni niz, 335 00:16:22,340 --> 00:16:23,710 i tako da možete ga koristiti kao što je to. 336 00:16:23,710 --> 00:16:25,897 >> Tako, na primjer, imamo Sada je dobio naše pizze niz. 337 00:16:25,897 --> 00:16:27,730 Ja sam vrsta zataknuo u kutu tamo 338 00:16:27,730 --> 00:16:31,080 tako da možemo ga koristiti za napraviti brzo primjer. 339 00:16:31,080 --> 00:16:36,420 Ako kažem foreach ($ pizze kao $ pizzu), dobro, što se događa? 340 00:16:36,420 --> 00:16:42,400 Pa, ja ću ponoviti kroz svaku Jedan element niza $ pizza, 341 00:16:42,400 --> 00:16:46,670 i na taj način, ja ću nazvati svaki element, kad sam unutra 342 00:16:46,670 --> 00:16:49,400 od tijela da za petlje, $ pizzu. 343 00:16:49,400 --> 00:16:52,440 >> Dakle, to je neka vrsta stand-u, podsjetimo, da je $ pizza 344 00:16:52,440 --> 00:16:59,140 je stand-in za rekavši $ pizze četvornih zagrade $ i 345 00:16:59,140 --> 00:17:03,370 ako su pomoću for petlje, gdje smo može ići od $ i = 0 do, u ovom slučaju, 346 00:17:03,370 --> 00:17:06,089 $ i = 3. 347 00:17:06,089 --> 00:17:09,780 Ako nismo imali ključne parova vrijednosti Ovdje, to će biti elementi 0, 1, 2, 3, 348 00:17:09,780 --> 00:17:16,390 a mi bi koristiti za petlje ići $ pizze 0, $ pizze 1, $ 2, pizze 349 00:17:16,390 --> 00:17:17,750 $ pizze 3. 350 00:17:17,750 --> 00:17:23,130 Tako sada samo $ pizza zamjenom za tu ključem. 351 00:17:23,130 --> 00:17:25,630 >> Pa što se to događa na ispis? 352 00:17:25,630 --> 00:17:29,030 Ja sam ispis $ pizzu. 353 00:17:29,030 --> 00:17:35,270 Što ću naći at-- ako sam isprintati $ pizze, $ ja? 354 00:17:35,270 --> 00:17:35,770 Pravo? 355 00:17:35,770 --> 00:17:38,680 Ako ću ispisati i-tog elementa pizza, 356 00:17:38,680 --> 00:17:40,070 što ću ispisati? 357 00:17:40,070 --> 00:17:42,580 Idem ispisati Vrijednosti na tom mjestu, zar ne? 358 00:17:42,580 --> 00:17:45,370 Kao da smo radili to u kontekstu C, 359 00:17:45,370 --> 00:17:49,786 mi obično ne koriste naše iteratora promjenjiva, int i = 0, ja je manji od 3, 360 00:17:49,786 --> 00:17:52,900 i ++, otisnuti 0, 1, 2, 3. 361 00:17:52,900 --> 00:17:57,500 Mi ispis niza 0, polje 1, polje 2, polje 3. 362 00:17:57,500 --> 00:17:59,580 I što to ispisuje je to. 363 00:17:59,580 --> 00:18:01,150 To je popis cijena. 364 00:18:01,150 --> 00:18:05,750 8,99, 9,99, 10,99, 11,99. 365 00:18:05,750 --> 00:18:06,900 >> Sada brzo bilješku ovdje. 366 00:18:06,900 --> 00:18:10,900 Foreach petlje ne mora nužno ispisati stvari u red. 367 00:18:10,900 --> 00:18:12,770 To nije zajamčena. 368 00:18:12,770 --> 00:18:13,550 To obično radi. 369 00:18:13,550 --> 00:18:17,667 Obično se temelji na red u koji elementi dodaju u nizu, 370 00:18:17,667 --> 00:18:18,750 pa samo imati to na umu. 371 00:18:18,750 --> 00:18:20,830 To ne može biti u redu. 372 00:18:20,830 --> 00:18:23,930 Ali foreach petlje će ponoviti preko svakog pojedinog elementa 373 00:18:23,930 --> 00:18:25,060 niza u pitanju. 374 00:18:25,060 --> 00:18:27,980 U tom slučaju, jednom, to polje je $ pizze. 375 00:18:27,980 --> 00:18:32,920 >> Ja mogu promijeniti sintaksu, iako, ako Želim oba ključ i vrijednost. 376 00:18:32,920 --> 00:18:37,179 Umjesto govoreći $ pizze kao $ pizzu, ja mogu reći. 377 00:18:37,179 --> 00:18:39,470 A ako pogledate što sam označen zelenom bojom ovdje 378 00:18:39,470 --> 00:18:42,130 to izgleda kao ključnog vrijednost par mapiranje. 379 00:18:42,130 --> 00:18:45,980 I tako, ako you--, čak i ako niste posve sigurni što će učiniti, 380 00:18:45,980 --> 00:18:49,300 vjerojatno možete pogoditi da $ preljev ide 381 00:18:49,300 --> 00:18:53,800 biti ključno u ovom slučaju i $ cijena će biti vrijednost. 382 00:18:53,800 --> 00:18:59,200 Tako sam zamjenom sada svaki element od $ pizze kao ključnog vrijednost para, 383 00:18:59,200 --> 00:19:03,900 i sad ja mogu odnositi na ključ i vrijednost, što bi moglo u ruci, 384 00:19:03,900 --> 00:19:05,590 na primjer, kao što slijedi. 385 00:19:05,590 --> 00:19:10,170 >> "Cijela" - to je puno tisak događa here-- "u cjelini" 386 00:19:10,170 --> 00:19:17,300 arogantan "pizza košta $" cijenu, a zatim Ja ispisati razdoblje i kose crtice n. 387 00:19:17,300 --> 00:19:23,420 Tako sada, obavijest opet imam pristup ključ, $ arogantan i vrijednost, $ cijena. 388 00:19:23,420 --> 00:19:26,647 Dakle, možete li pogoditi što je ovo će ispisati? 389 00:19:26,647 --> 00:19:29,480 Postoji mnogo ispis izvještaja, ali postoji samo jedan backslash nje, 390 00:19:29,480 --> 00:19:33,410 tako da će ispisati nešto na entire-- na jednu liniju koda. 391 00:19:33,410 --> 00:19:36,965 >> Ako mogu odnositi na ključ a vrijednost, tada i sada, 392 00:19:36,965 --> 00:19:39,090 umjesto da samo bude u mogućnosti za ispis cijene, 393 00:19:39,090 --> 00:19:41,330 Ja mogu isprintati nešto ovako. 394 00:19:41,330 --> 00:19:43,780 "Cijela sir pizza košta 8,99 $." 395 00:19:43,780 --> 00:19:47,150 I sada sam koristeći sve keys-- sir, feferoni, povrća, 396 00:19:47,150 --> 00:19:49,640 Buffalo chicken-- i vrijednosti. 397 00:19:49,640 --> 00:19:53,980 8.99, 9.99, 10.99, 11.99 Pa to je samo drugačiji način 398 00:19:53,980 --> 00:19:57,840 napraviti foreach petlju da umjesto Samo što vam daje pristup vrijednostima, 399 00:19:57,840 --> 00:20:02,950 ona samo daje you-- vam daje pristup tipkama i vrijednosti. 400 00:20:02,950 --> 00:20:04,411 >> Dakle, ispis podataka. 401 00:20:04,411 --> 00:20:07,410 Već sam to učinio nekoliko različitih načina, možda ste primjetili. 402 00:20:07,410 --> 00:20:11,080 Dvije funkcije imamo svega vidi se ispis i odjek. 403 00:20:11,080 --> 00:20:14,380 A za gotovo sve namjere i svrhe, oni su potpuno isti. 404 00:20:14,380 --> 00:20:17,130 They're-- postoji vrlo suptilna razlika koja nije ni vrijedna 405 00:20:17,130 --> 00:20:21,130 uzimajući u, ali u osnovi svugdje možete koristiti print vjerojatno možete koristiti 406 00:20:21,130 --> 00:20:22,370 jeka, kao dobro. 407 00:20:22,370 --> 00:20:23,610 >> I to ne samo dvije. 408 00:20:23,610 --> 00:20:26,970 PHP ima puno drugačije načini za ispis stvari, 409 00:20:26,970 --> 00:20:30,520 i ona također ima načina da se integriraju varijable u sredini niza. 410 00:20:30,520 --> 00:20:32,860 Pa sjećam iz C, zar ne Sjeti se što je funkcija 411 00:20:32,860 --> 00:20:37,580 možemo koristiti za zamijeniti varijable u stvari želimo ispisati? 412 00:20:37,580 --> 00:20:40,160 Vjerojatno koristiti ovaj funkcionira dosta. 413 00:20:40,160 --> 00:20:42,290 printf, zar ne? 414 00:20:42,290 --> 00:20:45,290 Dakle, to je ono što smo imali prije iznutra konteksta naše foreach petlje. 415 00:20:45,290 --> 00:20:48,000 Imali smo ovih pet odvojena ispis izvješća, 416 00:20:48,000 --> 00:20:50,330 jer je to bio jedini Način na koji sam nije znao na vrijeme 417 00:20:50,330 --> 00:20:52,450 Kako ispisati poruke. 418 00:20:52,450 --> 00:20:59,560 Nisam znala kako da se integriraju varijabla $ preljev u mom PHP koda. 419 00:20:59,560 --> 00:21:03,700 Pa, ako sam samo uzeti divlje pogoditi, printf, to bi zapravo radili. 420 00:21:03,700 --> 00:21:08,980 printf je funkcija koje mogu koristiti u PHP-u, baš kao i ja mogu ga koristiti u C. 421 00:21:08,980 --> 00:21:11,880 >> I tako nešto kao što je ovaj, printf, opet, mi smo upoznati s tim. 422 00:21:11,880 --> 00:21:16,420 Prvi% s je zamijenjen u vrijednosti od $ preljevom. 423 00:21:16,420 --> 00:21:19,700 Drugi% s zamjenjuje u vrijednosti od $ cijenu. 424 00:21:19,700 --> 00:21:22,630 I tako sam interpellating, koji je samo fancy način 425 00:21:22,630 --> 00:21:25,400 govoreći sam lijepljenje varijable u tom mjestu. 426 00:21:25,400 --> 00:21:31,000 Tako sam priključivanja $ preljev gdje crvena% s je i $ cijena gdje je plava% s 427 00:21:31,000 --> 00:21:36,060 je, a onda bih dobiti poruku, "Cijela sir pizza košta 8,99 $." 428 00:21:36,060 --> 00:21:37,750 >> Nije jedini način na koji ja mogu to učiniti, iako. 429 00:21:37,750 --> 00:21:39,760 Možda bih želite koristiti ovu metodu. 430 00:21:39,760 --> 00:21:44,890 To je zapravo ono što je najčešće zove varijabla interpelacije. 431 00:21:44,890 --> 00:21:45,690 Mogu koristiti jeku. 432 00:21:45,690 --> 00:21:47,737 Mogao sam koristiti print previše, kao što ćemo vidjeti. 433 00:21:47,737 --> 00:21:48,820 No, što se događa ovdje? 434 00:21:48,820 --> 00:21:51,520 >> Prije svega, moram pobjeći znak za dolar. 435 00:21:51,520 --> 00:21:55,140 Jer zapamtite, kad smo bili zapravo ispis cijena pizza, 436 00:21:55,140 --> 00:21:59,370 Zapravo sam ih formatiranja kao novčana figure s znak za dolar. 437 00:21:59,370 --> 00:22:05,635 Ali mi smo pomoću dolar znakovi da predstavljaju varijabilne imena u PHP-u, 438 00:22:05,635 --> 00:22:08,010 a osobito kad sam koristite ovu metodu vitičasta 439 00:22:08,010 --> 00:22:10,040 braće varijabla Metoda interpelaciju, moram 440 00:22:10,040 --> 00:22:13,490 pobjeći moj znak za dolar tako da ne mislim Govorim o varijablu. 441 00:22:13,490 --> 00:22:16,920 To će zapravo, doslovno ispisati znak za dolar. 442 00:22:16,920 --> 00:22:19,530 >> Pa kakve to analogize se ono što vidite na kraju tamo. 443 00:22:19,530 --> 00:22:22,832 To zapravo ne Ispis backslash nje, zar ne? 444 00:22:22,832 --> 00:22:24,290 Ona ispisuje novi red karakter. 445 00:22:24,290 --> 00:22:26,750 To is-- to neće Ispis backslash dolar znak, 446 00:22:26,750 --> 00:22:30,130 to će ispisati samo jedan dolar znak znak. 447 00:22:30,130 --> 00:22:30,640 Ista ideja. 448 00:22:30,640 --> 00:22:32,760 Escape sekvence, što te stvari su pozvani. 449 00:22:32,760 --> 00:22:37,080 >> Ali primijetite da ja ne radim bilo kakve% s supstitucija, 450 00:22:37,080 --> 00:22:40,050 Ja sam samo doslovno plugging u tim varijablama. 451 00:22:40,050 --> 00:22:45,110 I tako u this-- što će se dogoditi ovdje je da je vrijednost topping-- $ opet, 452 00:22:45,110 --> 00:22:48,390 Samo skladu s onim što smo bili govori o tako far-- sir će dobiti 453 00:22:48,390 --> 00:22:49,720 priključen tamo. 454 00:22:49,720 --> 00:22:54,780 A $ cijena bi bila ono što je vrijednost na pizze, uglatim zagradama, sir, 455 00:22:54,780 --> 00:22:56,270 što je 8,99. 456 00:22:56,270 --> 00:23:01,860 I tako to bi također ispisati "Cijela sir pizza košta 8,99 $." 457 00:23:01,860 --> 00:23:05,160 I kao što sam rekao, mogao sam koristiti ispisati ovdje umjesto jeke, 458 00:23:05,160 --> 00:23:08,040 i funkcionalnost se prilično točno isti. 459 00:23:08,040 --> 00:23:09,660 Bilo bi ispisati istu stvar. 460 00:23:09,660 --> 00:23:12,680 >> Postoji još jedan način da to učinite, i to je još jedna prednost 461 00:23:12,680 --> 00:23:14,710 PHP raditi sa žicama. 462 00:23:14,710 --> 00:23:17,130 Mi možemo učiniti niz ulančavanje. 463 00:23:17,130 --> 00:23:19,660 Mogli bismo to učiniti u C, također, koristite funkciju pod nazivom strcat, 464 00:23:19,660 --> 00:23:21,180 ali opet, morali smo pozvati zasebne funkcije. 465 00:23:21,180 --> 00:23:22,640 To je cijela ova zbrka učiniti. 466 00:23:22,640 --> 00:23:24,590 Morali smo funta-su string.h. 467 00:23:24,590 --> 00:23:25,780 Bio je to proizvodnja, zar ne? 468 00:23:25,780 --> 00:23:30,070 Ali sada ja mogu samo koristiti ovaj dot operator da spojite žice zajedno. 469 00:23:30,070 --> 00:23:34,910 >> Tako sam nadovezivanjem "cjelini" i tada bez obzira na vrijednost $ arogantan je, 470 00:23:34,910 --> 00:23:38,860 a zatim još jedan string "troškovi pizza $" 471 00:23:38,860 --> 00:23:42,340 a zatim nadovezivanjem god vrijednost $ cijena je, 472 00:23:42,340 --> 00:23:45,670 a onda na samom kraju sam letanja na razdoblje obrnute kose crte n. 473 00:23:45,670 --> 00:23:47,926 I tako to bi također ispisati "u cjelini" - opet, 474 00:23:47,926 --> 00:23:50,550 Ako govorimo o prvi element tog pizza array-- 475 00:23:50,550 --> 00:23:54,710 "Cijela sir pizza košta 8,99 $." 476 00:23:54,710 --> 00:24:01,260 Razdoblje, backslash nje, opet, s od $ arogantan i $ cijena Zamjenski 477 00:24:01,260 --> 00:24:06,580 za ono što je navedeno u našem foreach petlje kao ključna vrijednost par mapiranje. 478 00:24:06,580 --> 00:24:08,050 >> PHP se može nositi funkcije. 479 00:24:08,050 --> 00:24:11,250 Funkcije su vrsta sastavni C, kao što smo vidjeli. 480 00:24:11,250 --> 00:24:14,870 Kao varijable, mi ne trebaju navesti vrstu funkciji povratka, 481 00:24:14,870 --> 00:24:16,350 jer zapravo ne smeta. 482 00:24:16,350 --> 00:24:18,660 A mi ne navesti vrste podataka o svim parametrima, 483 00:24:18,660 --> 00:24:21,410 jer oni ne stvarno ma, kao što smo vidjeli u PHP. 484 00:24:21,410 --> 00:24:24,510 Svaka funkcija je uveden s funkcijom ključnu riječ. 485 00:24:24,510 --> 00:24:27,920 Tako smo ukazati da PHP ono što mi govorimo o je funkcija. 486 00:24:27,920 --> 00:24:29,720 >> I nemamo se bave glavna uopće, 487 00:24:29,720 --> 00:24:33,690 jer tumača, PHP prevoditeljica, djeluje od vrha do dna, 488 00:24:33,690 --> 00:24:34,190 bez obzira. 489 00:24:34,190 --> 00:24:35,640 Ako se vidi možete napraviti funkcija poziva, to će 490 00:24:35,640 --> 00:24:37,850 ići pronaći funkciju poziv, čak i ako je riječ kasnije. 491 00:24:37,850 --> 00:24:40,360 Ali to će se čitati od vrha do dno, tako da ne morate navesti, 492 00:24:40,360 --> 00:24:41,500 ovdje gdje početi. 493 00:24:41,500 --> 00:24:46,700 Možete početi na liniji 1 od Vaše PHP i rad dolje od tamo. 494 00:24:46,700 --> 00:24:49,690 >> Dakle ovdje je kako bi stvorili funkcija zove hard_square. 495 00:24:49,690 --> 00:24:54,100 To očito traje jedan parametar koji Zovem $ x. 496 00:24:54,100 --> 00:24:58,424 Ova funkcija je komplicirano samo ilustrirati različite stvari. 497 00:24:58,424 --> 00:24:59,590 Mi još uvijek imamo vrijednosti povratka. 498 00:24:59,590 --> 00:25:00,870 Ja sam koristeći for petlje ovdje. 499 00:25:00,870 --> 00:25:04,970 Ali to je zapravo samo, što je to iznosi se samo $ x $ x puta. 500 00:25:04,970 --> 00:25:10,520 Ono što sam zapravo radi se samo dodavanje x 0 x puta ili $ x $ x nula puta. 501 00:25:10,520 --> 00:25:15,850 No, to je učinkovito točno isto kao i množenjem $ x $ x puta. 502 00:25:15,850 --> 00:25:18,700 Ja još uvijek mogu vratiti vrijednost, u ovom slučaju $ rezultat, 503 00:25:18,700 --> 00:25:22,060 a ja sam napravio funkciju u PHP-u. 504 00:25:22,060 --> 00:25:24,160 >> Evo kako možete ga koristiti u kontekstu. 505 00:25:24,160 --> 00:25:26,020 Dakle, možda sam u neke PHP datoteke. 506 00:25:26,020 --> 00:25:29,240 Obavijest u plavom tamo Ja sam se moje PHP razdvojnike, 507 00:25:29,240 --> 00:25:31,010 kut nosača upitnika php. 508 00:25:31,010 --> 00:25:35,180 Između onih koji su sve PHP da želim pisati. 509 00:25:35,180 --> 00:25:37,840 Dakle, ja sam očito će get-- Idem brz korisnik 510 00:25:37,840 --> 00:25:41,550 da će mi dati broj, dućan koji promjenjiva, pohraniti u varijablu $ x, 511 00:25:41,550 --> 00:25:43,320 sve što su mi dali. 512 00:25:43,320 --> 00:25:48,590 Onda ću jeka hard_square te vrijednosti, 513 00:25:48,590 --> 00:25:50,370 i očito ide letati na novoj liniji 514 00:25:50,370 --> 00:25:53,590 kao i, a onda kasnije ću definirati funkcije hard_square tako 515 00:25:53,590 --> 00:25:55,550 da kada sam napraviti poziv na hard_square, 516 00:25:55,550 --> 00:25:58,160 ona zna što sam pričaju. 517 00:25:58,160 --> 00:26:00,705 >> Sada, ja mogu učiniti nešto kao ovo. 518 00:26:00,705 --> 00:26:02,050 To je malo drugačiji. 519 00:26:02,050 --> 00:26:04,190 To je gotovo točno isto kao što smo vidjeli prije, 520 00:26:04,190 --> 00:26:08,400 osim umjesto rekavši samo $ x postoji kao parametar hard_square, 521 00:26:08,400 --> 00:26:11,730 Govorim $ x = 10. 522 00:26:11,730 --> 00:26:14,330 Dakle, ovo je primjer obrambeni programiranje, 523 00:26:14,330 --> 00:26:17,070 čuvajući svoje programe od zlonamjernih korisnika. 524 00:26:17,070 --> 00:26:20,020 >> To je jedan od načina da učinite nešto pogrešku provjeru da mi zapravo nije 525 00:26:20,020 --> 00:26:24,670 imaju kao opciju u C. Mi nikada ne bi mogao odredite zadanu vrijednost nečega. 526 00:26:24,670 --> 00:26:27,010 Uvijek smo morali provjeriti li, na primjer, 527 00:26:27,010 --> 00:26:30,820 ako smo napravili poziv GetString, bilo je najispravnije ako se odmah nakon što smo 528 00:26:30,820 --> 00:26:33,300 provjeriti da ćemo provjeriti je li string 529 00:26:33,300 --> 00:26:35,504 da korisnik nam je dao nije jednako null, 530 00:26:35,504 --> 00:26:37,920 jer ne želite pokrenuti rad s null string. 531 00:26:37,920 --> 00:26:39,670 >> Evo, ovo je način kako bi zaštitio protiv toga. 532 00:26:39,670 --> 00:26:43,480 Ako korisnik ne pruža nam nešto nekako, što ćemo učiniti? 533 00:26:43,480 --> 00:26:46,080 Pa, samo ćemo reći što god nisu nam daju, 534 00:26:46,080 --> 00:26:47,705 samo ćemo se priključiti 10 umjesto. 535 00:26:47,705 --> 00:26:52,030 Dakle, ako su nam ne daju vrijednost, samo koristiti 10 po defaultu. I tako ovdje, 536 00:26:52,030 --> 00:26:53,940 primijetiti da sam izradu poziv na hard_square, 537 00:26:53,940 --> 00:26:55,980 ali nema upit korisniku, zar ne? 538 00:26:55,980 --> 00:26:57,540 Ja sam samo što praznu poziv. 539 00:26:57,540 --> 00:27:00,860 >> Ali moj funkcija hard_square očekuje parametar. 540 00:27:00,860 --> 00:27:02,222 Što se to događa na ispis? 541 00:27:02,222 --> 00:27:03,680 To će ispisati 100, zar ne? 542 00:27:03,680 --> 00:27:05,720 Jer korisnik nije daj mi ništa. 543 00:27:05,720 --> 00:27:08,970 I tako ja samo ću pretpostaviti da 10-- 10 je zadana vrijednost. 544 00:27:08,970 --> 00:27:13,760 I tako bi to ispisati iz 100 u svojem redu. 545 00:27:13,760 --> 00:27:16,390 >> PHP datoteke ne morate biti samo jedna datoteka. 546 00:27:16,390 --> 00:27:19,480 Možete kombinirati više datoteka zajedno, baš kao što možete u C. put 547 00:27:19,480 --> 00:27:24,330 smo da je u C bio obično se učiniti #include dobiti zaglavlje datoteke izdvajali u. 548 00:27:24,330 --> 00:27:26,180 Mi to ne radimo u PHP. 549 00:27:26,180 --> 00:27:29,110 Mi radimo nešto što se zove require_once. 550 00:27:29,110 --> 00:27:33,360 A tu je i cijela ova stvar, što je ovo __dir__? 551 00:27:33,360 --> 00:27:36,510 To je samo poseban promjenjiva ili posebna konstantna, 552 00:27:36,510 --> 00:27:39,030 stvarno, koji specificira što Vaš trenutni katalog je. 553 00:27:39,030 --> 00:27:41,320 I tako to ide gledati u trenutnoj imenik 554 00:27:41,320 --> 00:27:44,900 za datoteke zove cs50.php Ovdje ovom primjeru, 555 00:27:44,900 --> 00:27:50,490 i to će ostati tu datoteku na vrhu vašeg PHP program, 556 00:27:50,490 --> 00:27:56,980 uz pretpostavku da ste stavili zahtijevaju Jednom linije na vrhu vašeg PHP datoteke. 557 00:27:56,980 --> 00:28:01,474 >> Dakle, PHP se prvenstveno koristi, ali ne isključivo koristi, 558 00:28:01,474 --> 00:28:03,140 kao jezik za web-based programiranje. 559 00:28:03,140 --> 00:28:05,270 To je stvarno kako je došao da bude. 560 00:28:05,270 --> 00:28:06,980 Ali, to je pun jezik, kao što smo vidjeli. 561 00:28:06,980 --> 00:28:10,105 Vidjeli smo prilično mnogo sve stvari da se može učiniti da su slične C, 562 00:28:10,105 --> 00:28:13,290 i to može napraviti pakao od puno više od toga. 563 00:28:13,290 --> 00:28:16,950 >> No, budući da je puna jezik i mi Možete napraviti naredbenog retka programiranje u njoj. 564 00:28:16,950 --> 00:28:18,630 Možemo pokrenuti naredbenog retka programa. 565 00:28:18,630 --> 00:28:22,580 Sve što je potrebno pokrenuti naredbu crta program koji je napisan u PHP 566 00:28:22,580 --> 00:28:24,260 je da imate PHP interpreter. 567 00:28:24,260 --> 00:28:27,460 Dakle, to je vrsta analogne ima prevodilac na vašem sustavu 568 00:28:27,460 --> 00:28:31,100 ako želite sastaviti svoj C kod da se to pretvorilo u izvršne datoteke. 569 00:28:31,100 --> 00:28:33,810 Morate imati PHP tumača koji postoji na vašem sustavu 570 00:28:33,810 --> 00:28:37,330 tako da može protumačiti PHP datoteke. 571 00:28:37,330 --> 00:28:40,370 >> Pod pretpostavkom da ne, i obično ovaj prevoditelj zove PHP, 572 00:28:40,370 --> 00:28:44,300 i to je obično u paketu s najviše preuzimanja ili instalacije PHP 573 00:28:44,300 --> 00:28:47,430 da možete dobiti on-line, a svakako naziv PHP tumača 574 00:28:47,430 --> 00:28:49,550 imamo u CS50, IDE. 575 00:28:49,550 --> 00:28:51,819 Sve što trebate učiniti je upisati PHP datoteke. 576 00:28:51,819 --> 00:28:53,610 A što je vaš program je će učiniti je da je 577 00:28:53,610 --> 00:28:55,360 će se izvoditi kroz tumač, to je 578 00:28:55,360 --> 00:28:58,040 će zanemariti sve što je ne između pitanje mark-- 579 00:28:58,040 --> 00:29:03,160 ili, kut nosač upitnik php, PHP razdvojnike i print it out, 580 00:29:03,160 --> 00:29:07,660 i to će protumačiti i izvršiti broj unutar vaše PHP razdvojnike. 581 00:29:07,660 --> 00:29:12,850 >> Tako ćemo pop preko CS50 IDE i imaju pogled na nekoliko PHP datoteke, 582 00:29:12,850 --> 00:29:19,850 trčanje par PHP datoteke u komandna linija sučelje CS50 IDE. 583 00:29:19,850 --> 00:29:22,100 Dakle ovdje smo u CS50 IDE, i ja sam uzeo slobodu 584 00:29:22,100 --> 00:29:25,800 otvaranja datoteku pod nazivom hello1.php. 585 00:29:25,800 --> 00:29:29,920 I očito, sadržaj ovog Datoteka su samo PHP razdvojnike tamo, 586 00:29:29,920 --> 00:29:32,220 i između, echo ("Hello, World"). 587 00:29:32,220 --> 00:29:34,710 To je prilično jednostavan PHP programa. 588 00:29:34,710 --> 00:29:37,670 Samo ću se pomaknite prema dolje na moj prozor terminala ovdje 589 00:29:37,670 --> 00:29:44,320 a ja ću upisati php hello1.php, pritisnite Enter. 590 00:29:44,320 --> 00:29:44,950 Bok svijete. 591 00:29:44,950 --> 00:29:48,110 To je vjerojatno ono što smo bili očekujući to učiniti, zar ne? 592 00:29:48,110 --> 00:29:51,140 >> Idemo i uzeti još jedan pogled na programu. 593 00:29:51,140 --> 00:29:52,924 hello2.php. 594 00:29:52,924 --> 00:29:55,090 Manje-više ista stvar, Nije mnogo događa ovdje. 595 00:29:55,090 --> 00:29:57,190 Ovaj put, međutim, ja ću zatražiti korisniku da mi daju njihova imena. 596 00:29:57,190 --> 00:29:59,290 Ja sam ponovo na tu funkciju readline. 597 00:29:59,290 --> 00:30:01,340 Ime $ = readline. 598 00:30:01,340 --> 00:30:03,070 To je brz, "Kako ti je ime?" 599 00:30:03,070 --> 00:30:04,880 >> Očito sam tisak je u svom retku. 600 00:30:04,880 --> 00:30:07,220 I onda, kako je linija ispod da će biti brz 601 00:30:07,220 --> 00:30:08,750 gdje korisnik može upisati svoje ime. 602 00:30:08,750 --> 00:30:12,030 A onda sam koristeći malo varijabla interpelaciju ovdje na liniji 3 603 00:30:12,030 --> 00:30:14,780 za ispis "Hello" i bez obzira na vrstu korisnika. 604 00:30:14,780 --> 00:30:22,040 Dakle, to je slično govorio, Pozdrav, zarez,% s, ako smo koristili printf u C. 605 00:30:22,040 --> 00:30:24,910 >> Dakle, idemo i protumačiti ovaj program. 606 00:30:24,910 --> 00:30:27,400 Pa opet, ja ću se pomaknite prema dolje na moj prozor terminala. 607 00:30:27,400 --> 00:30:29,070 php hello2.php. 608 00:30:29,070 --> 00:30:31,920 609 00:30:31,920 --> 00:30:33,820 Kako se zoveš? 610 00:30:33,820 --> 00:30:35,490 Doug. 611 00:30:35,490 --> 00:30:36,526 Pozdrav, Doug. 612 00:30:36,526 --> 00:30:39,440 Imam još jedan Datoteka naziva hello3.php. 613 00:30:39,440 --> 00:30:42,850 Idem da razbistrim Zaslon s kontrolom L, 614 00:30:42,850 --> 00:30:46,210 i ja ću izvršiti kako. 615 00:30:46,210 --> 00:30:47,640 Kako se zoveš? 616 00:30:47,640 --> 00:30:49,020 Doug. 617 00:30:49,020 --> 00:30:49,780 Pozdrav, Doug. 618 00:30:49,780 --> 00:30:56,540 Dakle, ponašanje je identično hello2.php, ali zašto je to hello3.php? 619 00:30:56,540 --> 00:30:58,040 >> Pa, ovdje je razlika. 620 00:30:58,040 --> 00:31:00,620 U tom slučaju, obavijest da je na liniji 1 ovdje, 621 00:31:00,620 --> 00:31:04,270 Imam nešto što nije između PHP razdvojnike. 622 00:31:04,270 --> 00:31:07,760 Ja sam samo ispis out-- ili ja Samo upisali "Kako ti je ime?" 623 00:31:07,760 --> 00:31:12,060 Kada PHP tumač vidi ovo, to nema pojma kako to tumače kao PHP, 624 00:31:12,060 --> 00:31:15,060 pa umjesto da u nedostatku, to je samo ide da ga ispljune. 625 00:31:15,060 --> 00:31:19,010 >> Dakle, primijetite na liniji 3 sada, moj poziv readline, nema redak više. 626 00:31:19,010 --> 00:31:21,750 Ja sam samo zapravo događa kada to-- PHP tumač vidi ovo, 627 00:31:21,750 --> 00:31:23,400 to će ispisati "Kako se zoveš?" 628 00:31:23,400 --> 00:31:25,941 Tada se vidi, oh, u redu, here's-- sve ostalo će biti 629 00:31:25,941 --> 00:31:29,970 tumačiti kao PHP, tako to je razlog zašto se to radi. 630 00:31:29,970 --> 00:31:34,990 Ne moraju nužno potaknuti korisnik to-- unutar readline, 631 00:31:34,990 --> 00:31:37,490 Ja samo mogu ga vani od PHP razdvojnike 632 00:31:37,490 --> 00:31:41,490 i dopustiti tumača samo ga ispisati za mene. 633 00:31:41,490 --> 00:31:45,364 >> Tako da zapravo ne samo imati jedan set PHP razdvojnike 634 00:31:45,364 --> 00:31:46,030 u svom programu. 635 00:31:46,030 --> 00:31:49,887 Vi zapravo možete imati nekoliko njih, otvaranje i zatvaranje ih po potrebi. 636 00:31:49,887 --> 00:31:51,720 Tako ćemo pogledati na par programa 637 00:31:51,720 --> 00:31:55,070 u CS50 IDE gdje smo ilustrirali ovu ideju s 638 00:31:55,070 --> 00:31:58,376 više kompleta razgraničena PHP. 639 00:31:58,376 --> 00:32:02,010 >> U redu, pa sam otvorio datoteku Ovdje zove add1.php. 640 00:32:02,010 --> 00:32:03,390 A primijetiti što se ovdje događa. 641 00:32:03,390 --> 00:32:08,077 Baš kao i prije, imam Jedan PHP skup razdvojnike. 642 00:32:08,077 --> 00:32:10,660 Idem ispisati Poruka: "Dajte mi broj." 643 00:32:10,660 --> 00:32:13,394 Onda ću čitati crtu i pohraniti ga u varijablu $ num1. 644 00:32:13,394 --> 00:32:14,810 Onda ću ispisati ponovo. 645 00:32:14,810 --> 00:32:16,310 Daj mi drugi broj. 646 00:32:16,310 --> 00:32:20,450 Pročitajte liniju od korisnika, trgovine što god oni upisali u u $ num2. 647 00:32:20,450 --> 00:32:23,980 Dodajte ih zajedno i spremite da dovesti varijablu pod nazivom $ suma, 648 00:32:23,980 --> 00:32:26,180 a zatim ispisati, "The zbroj tih dvaju brojeva 649 00:32:26,180 --> 00:32:29,254 je ", a zatim interpelirati postoji varijabla $ zbroj. 650 00:32:29,254 --> 00:32:31,170 Pa neka je samo pokrenuti ovo preko tumača 651 00:32:31,170 --> 00:32:33,720 potvrditi da je to ono što očekujemo. 652 00:32:33,720 --> 00:32:37,540 php add1.php. 653 00:32:37,540 --> 00:32:38,665 Molim Vas, dajte mi broj, 3. 654 00:32:38,665 --> 00:32:40,410 Molim Vas, dajte mi drugi broj, 4. 655 00:32:40,410 --> 00:32:43,370 Zbroj ta dva broja je 7. 656 00:32:43,370 --> 00:32:45,030 To je 3 + 4. 657 00:32:45,030 --> 00:32:45,530 U REDU? 658 00:32:45,530 --> 00:32:47,770 Dakle, ništa strašno sviđa tamo. 659 00:32:47,770 --> 00:32:51,080 >> A sada ćemo otvoriti add2.php. 660 00:32:51,080 --> 00:32:54,460 Evo, imam par PHP razgraničena setovi tamo, zar ne? 661 00:32:54,460 --> 00:32:59,107 Linije 1, 3-- linije 1 i 3 Nemate PHP razdvojnike. 662 00:32:59,107 --> 00:33:00,940 Dakle, kada je tumač vidi ih, to je samo 663 00:33:00,940 --> 00:33:03,220 ide pljuvati točno što sam upisali tamo. 664 00:33:03,220 --> 00:33:05,011 Dakle, to je gdje sam radi sve moje pitajući. 665 00:33:05,011 --> 00:33:11,220 Na linijama 2 i 4, vidimo vrlo upoznati $? php vrsta razdvojnike, 666 00:33:11,220 --> 00:33:15,210 tako da te dvije linije su će izvršiti što je PHP. 667 00:33:15,210 --> 00:33:18,270 A onda na liniji 5, moram to čudno ovdje, zar ne? 668 00:33:18,270 --> 00:33:20,480 Ovaj kut nosač upitnik znak jednakosti. 669 00:33:20,480 --> 00:33:22,660 Čak ću povećavanje malo dalje. 670 00:33:22,660 --> 00:33:29,270 Možete vidjeti to je ono što sam govori o upravo tamo, ovo $? =. 671 00:33:29,270 --> 00:33:33,420 >> Ispada da je tako uobičajeno da razlog da smo otvoriti skup PHP 672 00:33:33,420 --> 00:33:36,055 razdvojnike je ispisati vrijednost. 673 00:33:36,055 --> 00:33:37,430 I to je sve što ćemo učiniti. 674 00:33:37,430 --> 00:33:39,220 No, tu je i skraćenica za to. 675 00:33:39,220 --> 00:33:46,490 $? = Je PHP skraćenica za rekavši nešto kao $? php echo zbroj 676 00:33:46,490 --> 00:33:48,350 od num1 i num2. 677 00:33:48,350 --> 00:33:51,900 Dakle, ovo je samo još jedan stenogram za to. 678 00:33:51,900 --> 00:33:55,550 >> Dakle, ako sam pokrenuti ovaj program, php add2.php. 679 00:33:55,550 --> 00:33:57,530 Ja ću se zumirati malo. 680 00:33:57,530 --> 00:33:59,000 Molim Vas, dajte mi broj, 4. 681 00:33:59,000 --> 00:34:00,350 Molim Vas, dajte mi drugi broj. 682 00:34:00,350 --> 00:34:04,650 A budući da ja ne stvarno stalo vrste podataka u PHP-u, mogu reći 4.8. 683 00:34:04,650 --> 00:34:07,160 Zbroj ta dva broja je 8,8. 684 00:34:07,160 --> 00:34:10,179 To je funkcija ponaša prilično mnogo točno isto kao što bismo očekivali, 685 00:34:10,179 --> 00:34:10,989 kao. 686 00:34:10,989 --> 00:34:13,114 I imam još jedno otvoreno ovdje zove dice.php. 687 00:34:13,114 --> 00:34:25,625 688 00:34:25,625 --> 00:34:26,250 Pokušajte to opet. 689 00:34:26,250 --> 00:34:29,429 690 00:34:29,429 --> 00:34:33,280 Imam još jedan ovdje naziva dice1.php, koji također, vidi, 691 00:34:33,280 --> 00:34:37,440 ima tu kut nosača pitanje označiti znak jednakosti zapis u njemu, 692 00:34:37,440 --> 00:34:40,659 ali primijetiti da je u ovom slučaju sam pozivanje funkcije randa, koji kao i vi 693 00:34:40,659 --> 00:34:42,790 mogli očekivati ​​generira slučajni broj. 694 00:34:42,790 --> 00:34:46,889 "Valjane si", a to će izračunati neki slučajni broj, MORH 6 + 695 00:34:46,889 --> 00:34:47,389 1. 696 00:34:47,389 --> 00:34:49,989 Tako da će mi dati broj u rasponu od 1 do 6. 697 00:34:49,989 --> 00:34:53,040 >> Zapamtite da mod 6 će mi dati broj u rasponu od 0 do 5, 698 00:34:53,040 --> 00:34:56,630 ali ako sam simulacijom kocke role, što je ono što ja radim ovdje, 699 00:34:56,630 --> 00:35:00,040 Ne želim ove kockice ići od 0 do 5, želim kocke koje idu od 1 do 6. 700 00:35:00,040 --> 00:35:02,800 I tako je to način da se ja u rasponu od 1 do 6. 701 00:35:02,800 --> 00:35:04,720 Ovo radim dva puta. 702 00:35:04,720 --> 00:35:08,630 Dakle, očito sam valjanje Dvije kockice u ovom programu. 703 00:35:08,630 --> 00:35:15,210 >> Tako ću razbistriti zaslon, i ja ću učiniti php dice1.php. 704 00:35:15,210 --> 00:35:16,640 Valjane si 4 i 2. 705 00:35:16,640 --> 00:35:19,156 I ako sam pokrenuti program opet, valjane vam je 5 i 5. 706 00:35:19,156 --> 00:35:21,780 Dakle, svaki put sam pokrenuti program, Ja sam uzimajući različite brojeve, 707 00:35:21,780 --> 00:35:24,280 jer svaki put radim Dakle, to je počevši ispočetka. 708 00:35:24,280 --> 00:35:27,250 To će generirati nova skup slučajnih brojeva za mene. 709 00:35:27,250 --> 00:35:29,790 >> Dakle, ako smo nekad pokretanje programa iz C, 710 00:35:29,790 --> 00:35:32,520 smo navikli na gumb ./ naziv programa, zar ne? 711 00:35:32,520 --> 00:35:35,090 Tako smo učinili sve naših programa u C do sada. 712 00:35:35,090 --> 00:35:37,555 Možemo to učiniti u PHP i dodavanjem nešto što se zove 713 00:35:37,555 --> 00:35:40,026 stvar na vrhu naše PHP datoteke. 714 00:35:40,026 --> 00:35:41,400 Znam da je poput glupog riječi. 715 00:35:41,400 --> 00:35:44,540 To je kratica za hash prasak. 716 00:35:44,540 --> 00:35:46,300 To je prva dva znaka postoji. 717 00:35:46,300 --> 00:35:50,030 Zapamti zovemo uskličnik Često prasak u računalnoj znanosti. 718 00:35:50,030 --> 00:35:51,690 To također može biti za oštar prasak. 719 00:35:51,690 --> 00:35:53,273 Postoji par načina kako to protumačiti. 720 00:35:53,273 --> 00:35:57,320 No, to je u osnovi posebna vrsta zapovjedni da PHP tumač 721 00:35:57,320 --> 00:36:00,160 razumije što je, oh, ja želim izvršavanje ovog programa, 722 00:36:00,160 --> 00:36:05,250 što je očito / user / bin / php, koji zapravo gdje PHP tumač 723 00:36:05,250 --> 00:36:08,590 posebno živi na našem sustavu. 724 00:36:08,590 --> 00:36:12,530 Dakle it's-- što se događa ovdje tumač razumije, o, 725 00:36:12,530 --> 00:36:17,270 Ja sam očito trebala koristiti u ovom programu pokrenuti ovu datoteku. 726 00:36:17,270 --> 00:36:20,010 I tako to vam omogućuje preskočiti korak 727 00:36:20,010 --> 00:36:22,979 vlasništvo reći php something.php. 728 00:36:22,979 --> 00:36:25,020 Postoji jedna kvaka ovdje, a to je da ako smo 729 00:36:25,020 --> 00:36:27,320 Želite naše programe raditi kao što se očekuje, mi 730 00:36:27,320 --> 00:36:30,220 trebate učiniti nešto što se zove promjena datoteka dozvolu. 731 00:36:30,220 --> 00:36:33,380 A mi ćemo go-- i razgovaramo malo malo više o datotečnim promjene dopuštenja 732 00:36:33,380 --> 00:36:37,550 u našem video na MVC, ali ga dovoljno je kažu da je to ono što trebate učiniti 733 00:36:37,550 --> 00:36:42,760 kako bi svoje .php datoteka izvršna. 734 00:36:42,760 --> 00:36:49,330 Tako ćemo pogledati što je to naš konačni primjer više u CS50 IDE. 735 00:36:49,330 --> 00:36:53,910 >> Dakle, ovdje u IDE Imam dvije datoteke u ovoj PHP katalog koji se pojavljuju da se ne 736 00:36:53,910 --> 00:36:55,310 zove .php. 737 00:36:55,310 --> 00:36:58,170 Imam funkcija zove add-- Imam datoteku pod nazivom add3 738 00:36:58,170 --> 00:37:00,650 i datoteka zove dice2. 739 00:37:00,650 --> 00:37:03,680 Tako ćemo uzeti brzo izgleda i otvoriti add3. 740 00:37:03,680 --> 00:37:08,300 I kao što možete vidjeti, na početku moje datoteke Imam tu stvar, zar ne? 741 00:37:08,300 --> 00:37:11,420 To hash uskličnik točka. 742 00:37:11,420 --> 00:37:15,115 Sada, također ćete se možda primijetiti da iz nekog razloga, 743 00:37:15,115 --> 00:37:16,990 Nemam nikakvu sintaksu naglašavajući više, 744 00:37:16,990 --> 00:37:20,198 i to je ono što sam aludirao na ranije, što je da je, ako ne nazovem svoju sliku 745 00:37:20,198 --> 00:37:23,040 Php, nemam korist sintakse isticanje više. 746 00:37:23,040 --> 00:37:26,220 Ova datoteka jednostavno zove add3. 747 00:37:26,220 --> 00:37:30,960 Tako da ja mogu ga pokrenuti kasnije s ./ add3 a ne ./ add3.php. 748 00:37:30,960 --> 00:37:33,680 >> Dakle, to je još uvijek reason-- u redu, to je još uvijek važeći PHP, 749 00:37:33,680 --> 00:37:37,000 ali to nije Sintaksa istaknuo, jer Ova datoteka ne zove something.php. 750 00:37:37,000 --> 00:37:41,580 To je jedina prava razlika Ovdje, plus stvar. 751 00:37:41,580 --> 00:37:45,170 Dakle, neka je vidjeti što se događa kada Pokušavam i pokrenuti ovaj program. 752 00:37:45,170 --> 00:37:50,780 ./ Add3, baš kao što bih s C. Bash. 753 00:37:50,780 --> 00:37:53,190 ./ Add3 dozvolu odbijen. 754 00:37:53,190 --> 00:37:55,390 To je ono što se događa vidjeti ako ste zaboravili 755 00:37:55,390 --> 00:37:59,280 koristiti chmod naredbu za promjenu dopuštenja datoteke. 756 00:37:59,280 --> 00:38:03,845 >> Kako se ispostavlja, redovito PHP datoteka ne može samo izvršiti. 757 00:38:03,845 --> 00:38:06,970 Oni se mogu tumačiti, ali smo radi nešto malo drugačije ovdje. 758 00:38:06,970 --> 00:38:07,761 Mi smo njezina izvršenja. 759 00:38:07,761 --> 00:38:12,970 I tako moram dodati dozvolu izvršenja, chmod + x je na add3. 760 00:38:12,970 --> 00:38:15,680 Tada mogu reći ./ add3. 761 00:38:15,680 --> 00:38:16,860 Molim Vas, dajte mi broj. 762 00:38:16,860 --> 00:38:18,060 5, 6. 763 00:38:18,060 --> 00:38:20,490 Zbroj ta dva broja je 11. 764 00:38:20,490 --> 00:38:26,530 >> Isto tako, već sam chmoded dice2, tako da ja mogu samo upisati ./ dice2, 765 00:38:26,530 --> 00:38:31,260 što dokotrlja 1 i 1, što valjane 5 i 4, i tako dalje. 766 00:38:31,260 --> 00:38:33,680 >> Dakle, to je prilično mnogo Ideja o PHP sintaksa, zar ne? 767 00:38:33,680 --> 00:38:35,221 Postoji puno da se kroz, znam. 768 00:38:35,221 --> 00:38:39,160 Ali nadam se da ste vidjeli da sada PHP nije stvarno da je različit od C 769 00:38:39,160 --> 00:38:43,670 i stvarno nam daje mogućnost da se stvari gore zarezati ili dva. 770 00:38:43,670 --> 00:38:48,230 Mi stvarno ne morate brinuti previše about-- mi ne stvarno 771 00:38:48,230 --> 00:38:51,605 morate brinuti previše o Pojedinosti smo niske razine 772 00:38:51,605 --> 00:38:52,980 morao brinuti s C, zar ne? 773 00:38:52,980 --> 00:38:56,170 Možemo se usredotočiti na viši Razina stvari koje PHP 774 00:38:56,170 --> 00:39:01,090 omogućuje nam da napraviti i da se za gotovo da će raditi za nas. 775 00:39:01,090 --> 00:39:04,350 Dakle, to nam daje mogućnost sada, prelazaka iz C u PHP, 776 00:39:04,350 --> 00:39:08,280 napraviti programe koji su puno više složen i možda mnogo više robustan. 777 00:39:08,280 --> 00:39:13,070 >> Dakle, nadam se da ćete se zabaviti rad s PHP, i ja sam Doug Lloyd. 778 00:39:13,070 --> 00:39:15,050 Ovo je CS50. 779 00:39:15,050 --> 00:39:17,637