1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Odjeljak 8] [Manje Ugodno] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Sveučilište Harvard] 3 00:00:04,000 --> 00:00:08,000 [Ovo je CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Dobro došli u naš drugi na zadnjem dijelu. 5 00:00:11,000 --> 00:00:13,000 U ovom tjednu ćemo pričati o PHP, a zatim sljedeći tjedan 6 00:00:13,000 --> 00:00:17,000 ćemo učiniti malo recenziju za kviz jedan. 7 00:00:17,000 --> 00:00:20,000 Mi ćemo početi na stranici 3 od problema postavlja paket, 8 00:00:20,000 --> 00:00:28,000 a mi ćemo raditi kroz dio pitanja prilično brzo. 9 00:00:28,000 --> 00:00:34,000 Na 3. stranici smo počeli govoriti o tom razlikom između C i PHP 10 00:00:34,000 --> 00:00:38,000 u smislu da je PHP dinamički upisali jezik, 11 00:00:38,000 --> 00:00:42,000 dok C statički je upisali, 12 00:00:42,000 --> 00:00:46,000 i je li tko stvarno brzo obaviti nikakve kodiranje u nešto poput PHP 13 00:00:46,000 --> 00:00:51,000 ili Python ili Ruby prije, JavaScriptu? 14 00:00:51,000 --> 00:00:53,000 Totalno novo? Ok. 15 00:00:53,000 --> 00:00:56,000 >> Sve od tih jezika koje sam spomenuo 16 00:00:56,000 --> 00:01:01,000 su vrlo različit od jezika kao što su C i C + + i Java 17 00:01:01,000 --> 00:01:04,000 u smislu da kada proglasiti varijable ne moraju deklarirati 18 00:01:04,000 --> 00:01:09,000 kakav varijable je, pa je tako u C smo zapeli da se uvijek reći 19 00:01:09,000 --> 00:01:13,000 ovo će biti int varijabla, ili će to biti char * varijabla, 20 00:01:13,000 --> 00:01:16,000 dok s PHP, s Python, Ruby, s 21 00:01:16,000 --> 00:01:20,000 s puno više ovih modernih jezika nemate učiniti da na sve. 22 00:01:20,000 --> 00:01:24,000 Vi samo deklarirati svoju varijablu, te u slučaju PHP 23 00:01:24,000 --> 00:01:28,000 izjavljujete da je varijabla ga prefiksa s $ znakom, 24 00:01:28,000 --> 00:01:35,000 a zatim tip varijable određuje bez obzira na vrijednost to drži, 25 00:01:35,000 --> 00:01:38,000 koja je vrsta cool. 26 00:01:38,000 --> 00:01:44,000 Da se poigrati s ovim malo, imamo primjere PHP kod ovdje 27 00:01:44,000 --> 00:01:47,000 između početka i završetka tagova. 28 00:01:47,000 --> 00:01:53,000 Mi koristimo ovu vrstu kao HTML u smislu da 29 00:01:53,000 --> 00:01:56,000 mi imamo ove kutnika ovdje za otvaranje i zatvaranje. 30 00:01:56,000 --> 00:01:58,000 Vidjet ćete ovo sa HTML. 31 00:01:58,000 --> 00:02:03,000 Vidjet ćete istu vrstu sintakse s XML previše. 32 00:02:03,000 --> 00:02:06,000 >> To ukazuje na početak PHP bloku. 33 00:02:06,000 --> 00:02:09,000 Ovo? Php je specifična za PHP. 34 00:02:09,000 --> 00:02:16,000 Mi zatvoriti sve s?> Kao dobro. 35 00:02:16,000 --> 00:02:22,000 Ajmo otvoriti datoteku u našem aparatu pomoću god želite. 36 00:02:22,000 --> 00:02:25,000 U ovom paketu kaže nazvati dynamic.php. 37 00:02:25,000 --> 00:02:29,000 U istinu, možete ga nazvati kako god želite, ali ime datoteke će doći do 38 00:02:29,000 --> 00:02:34,000 i biti važna kasnije, pa samo se sjeti što god ga zovu. 39 00:02:34,000 --> 00:02:36,000 Idem prebaciti na aparatu, 40 00:02:36,000 --> 00:02:43,000 i ja ću napraviti imenik za 41 00:02:43,000 --> 00:02:48,000 poglavlje 9 Vjerujem da smo na sada. 42 00:02:48,000 --> 00:02:51,000 A mi ćemo ići u odjeljku 9, 43 00:02:51,000 --> 00:02:54,000 a ja ću koristiti gedit. 44 00:02:54,000 --> 00:02:59,000 Hajdemo vidjeti, gedit, a ja ću nazvati mina dynamic.php. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Unutar dynamic.php, budući da je to PHP datoteka 47 00:03:06,000 --> 00:03:09,000 i želim pokrenuti ovaj kroz PHP tumača 48 00:03:09,000 --> 00:03:12,000 Moram početi sve off s tim otvorenim oznakama, 49 00:03:12,000 --> 00:03:17,000 pa ću za početak te odmah, 50 00:03:17,000 --> 00:03:23,000 dati sebi malo prostora u između tagova, 51 00:03:23,000 --> 00:03:26,000 , a zatim je točka ove vježbe je bio da se poigrati s 52 00:03:26,000 --> 00:03:34,000 ova funkcija zove gettype, tako gettype, ovu funkciju ovdje. 53 00:03:34,000 --> 00:03:38,000 >> Primijetit ćete da nema je podvlačenje ili prostor ili crticu ili bilo što slično 54 00:03:38,000 --> 00:03:42,000 Odvajanje dvije riječi, dobiti i upišite, samo jednu riječ uopce. 55 00:03:42,000 --> 00:03:46,000 No, što će to učiniti je ako sam proći u varijable gettype, 56 00:03:46,000 --> 00:03:51,000 recimo $ var ili $ x, 57 00:03:51,000 --> 00:03:55,000 ovo će mi reći kakve u debugging formatu 58 00:03:55,000 --> 00:03:59,000 što je ime tog tipa je. 59 00:03:59,000 --> 00:04:03,000 Mi ćemo eksperimentirati ovdje. 60 00:04:03,000 --> 00:04:07,000 Konkretno, ako se osvrnuti na pset spec. 61 00:04:07,000 --> 00:04:11,000 imamo nekoliko različitih linija koda ovdje. 62 00:04:11,000 --> 00:04:16,000 U prvoj liniji koda smo inicijalizirati ovu varijablu $ var, 63 00:04:16,000 --> 00:04:21,000 biti jednak 7, a zatim smo ovaj printf liniju 64 00:04:21,000 --> 00:04:25,000 koji kaže hej, printf var je prazan. 65 00:04:25,000 --> 00:04:29,000 Printf je jedan od mnogo načina možemo ispisati stvari u PHP. 66 00:04:29,000 --> 00:04:33,000 Često ćete vidjeti echo funkciju koristi umjesto printf, 67 00:04:33,000 --> 00:04:40,000 ali printf svi smo upoznati sa što je kodiranje u C za neko vrijeme. 68 00:04:40,000 --> 00:04:42,000 Ono što zapravo može učiniti je da vidimo ako preslikati djela. 69 00:04:42,000 --> 00:04:46,000 Ja ću dati ovo probati. 70 00:04:46,000 --> 00:04:52,000 Mi ćemo se vratiti preko aparata. 71 00:04:52,000 --> 00:05:00,000 Ok, i tamo ćemo ići. 72 00:05:00,000 --> 00:05:05,000 I razmak je malo funky, ali ovdje mi ići. 73 00:05:05,000 --> 00:05:08,000 Imamo ovaj kod ovdje. 74 00:05:08,000 --> 00:05:11,000 >> [Studentski] Nije li to dobar stil da ga karticu? 75 00:05:11,000 --> 00:05:13,000 Molim? 76 00:05:13,000 --> 00:05:15,000 [Studentski] Je li to konvencionalni da ga kartici? 77 00:05:15,000 --> 00:05:21,000 Točno, pa Sam pita ako je konvencija da ga kartici ili ne. 78 00:05:21,000 --> 00:05:23,000 Obično da. 79 00:05:23,000 --> 00:05:26,000 U ovom slučaju sam izabrao da ne. 80 00:05:26,000 --> 00:05:33,000 Iskreno, vidjet ćete različite stvari među različitim programera. 81 00:05:33,000 --> 00:05:40,000 PHP se obično koristi često u kombinaciji s HTML 82 00:05:40,000 --> 00:05:45,000 i drugim jezicima, pa ponekad ispis će izgledati malo funky 83 00:05:45,000 --> 00:05:50,000 ako alineje unutar PHP početak i kraj oznake. 84 00:05:50,000 --> 00:05:53,000 To stvarno ovisi. 85 00:05:53,000 --> 00:05:56,000 U tom slučaju kopiranje i lijepljenje nije zalijepite kartice u za mene, 86 00:05:56,000 --> 00:06:02,000 ali to definitivno ne, kao što ste rekli, da je jasnije. 87 00:06:02,000 --> 00:06:06,000 U redu, ako spremite ovaj kod u dynamic.php 88 00:06:06,000 --> 00:06:10,000 onda ono što možete učiniti je doći do svog prozora terminala gdje sam upravo ovdje dolje 89 00:06:10,000 --> 00:06:17,000 u gedit, i to u protuvrijednosti od sastaviti 90 00:06:17,000 --> 00:06:20,000 pomoću napraviti i onda trčanje koda u C 91 00:06:20,000 --> 00:06:25,000 sve što morate učiniti s PHP datoteka je pokrenuti PHP tumača, 92 00:06:25,000 --> 00:06:30,000 što je mali program pod nazivom PHP, 93 00:06:30,000 --> 00:06:35,000 a argument koji mu tumača je datoteka koju želite interpretirati. 94 00:06:35,000 --> 00:06:40,000 U ovom slučaju, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Joj, gdje sam ga stavio? 96 00:06:43,000 --> 00:06:52,000 Oh, ja sam ga stavio u poglavlju 9, a ovdje sam. To je razlog zašto. 97 00:06:52,000 --> 00:06:57,000 >> Sada, ako sam pokrenuti da ponovno 98 00:06:57,000 --> 00:07:02,000 vidimo da je u mom prvom gettype funkcija poziva 99 00:07:02,000 --> 00:07:04,000 var je cijeli broj. 100 00:07:04,000 --> 00:07:12,000 U sljedećem jednom var je string, a zatim u trećem jednom var je boolean. 101 00:07:12,000 --> 00:07:15,000 Što je zanimljivo o tome je li mi dođite natrag gore vidimo da 102 00:07:15,000 --> 00:07:18,000 To su vrste slične onima koje smo imali u C. 103 00:07:18,000 --> 00:07:22,000 Imali smo Ints u C. 104 00:07:22,000 --> 00:07:26,000 Mi vrsta imala konce u C, 105 00:07:26,000 --> 00:07:31,000 tako da žice nisu bile potpuno čitljiv putovanja u smislu da 106 00:07:31,000 --> 00:07:37,000 naša CS50 niz je stvarno ono? 107 00:07:37,000 --> 00:07:39,000 Molim? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Da, bilo je to char * smo koristili. 110 00:07:43,000 --> 00:07:47,000 Na samom početku semestra smo pomoću string tipa, 111 00:07:47,000 --> 00:07:52,000 ali to je stvarno char * ispod haube. 112 00:07:52,000 --> 00:07:58,000 Mi smo samo upišite ga definirati, dok je u PHP ove žice su stvarni tip. 113 00:07:58,000 --> 00:08:07,000 Nema više ovog char * Tip stvari. 114 00:08:07,000 --> 00:08:10,000 >> Vidjet ćete da možemo učiniti mnogo više stvari sa žice 115 00:08:10,000 --> 00:08:14,000 puno lakše u PHP nego što smo mogli u C, 116 00:08:14,000 --> 00:08:17,000 i onda na kraju, imamo ovaj boolean tipa, a velika je razlika ovdje je da 117 00:08:17,000 --> 00:08:21,000 ako mi pomicanje natrag dolje vidimo da je ime ove vrste 118 00:08:21,000 --> 00:08:28,000 sada su cijeli, gudački, a boolean umjesto int i bool, 119 00:08:28,000 --> 00:08:31,000 i kao što ste pokupiti različite programske jezike, 120 00:08:31,000 --> 00:08:36,000 uz pretpostavku da u nekom trenutku u vašem životu ćete doći u dodir s 121 00:08:36,000 --> 00:08:40,000 različiti one koje ćete primijetiti male Igra riječima kao što je ovaj 122 00:08:40,000 --> 00:08:44,000 gdje je C zove prirodna broja Ints. 123 00:08:44,000 --> 00:08:46,000 Neki ga zovu cijeli brojevi. 124 00:08:46,000 --> 00:08:51,000 Postoje i drugi uvjeti koje ćete izvoditi u. 125 00:08:51,000 --> 00:08:55,000 Big int smo vidjeli danas u SQL. 126 00:08:55,000 --> 00:08:59,000 Tu su i broj i onda bool, boolean, 127 00:08:59,000 --> 00:09:03,000 sve vrste razlika postoji. 128 00:09:03,000 --> 00:09:07,000 >> To nije strašno zanimljivo, ali sada ću vam dati malo vremena- 129 00:09:07,000 --> 00:09:13,000 ako smo povećali natrag van raditi kroz ove vježbe na dnu stranice 3 130 00:09:13,000 --> 00:09:20,000 gdje se pita što vrste odgovaraju tim vrijednostima ovdje na dnu. 131 00:09:20,000 --> 00:09:24,000 Imamo 3,50. 132 00:09:24,000 --> 00:09:28,000 Imamo ovu stvar ovdje, što je zanimljivo. 133 00:09:28,000 --> 00:09:32,000 Nismo vidjeli da je prije, ali ako ste pratili zajedno u predavanju 134 00:09:32,000 --> 00:09:35,000 što vjerojatno već znate što je to. 135 00:09:35,000 --> 00:09:40,000 Onda imamo ovo, koja je ovo vrsta funky. 136 00:09:40,000 --> 00:09:42,000 Vi prepoznati. 137 00:09:42,000 --> 00:09:46,000 Što je to u C? 138 00:09:46,000 --> 00:09:50,000 Sam? Što bi vam to dati u C? 139 00:09:50,000 --> 00:09:54,000 To će otvoriti datoteku pod nazivom dynamic.php i učiniti ga čitati. 140 00:09:54,000 --> 00:09:58,000 Da, i što će biti tip varijable koje bi mi dodijelili to? >> File zvijezde. 141 00:09:58,000 --> 00:10:02,000 Točno, mi bi dodijeliti ovo datoteke zvijezde. 142 00:10:02,000 --> 00:10:08,000 To je legitimno PHP previše. 143 00:10:08,000 --> 00:10:12,000 Run to. Pogledajte što se događa kada prođe da u gettype. 144 00:10:12,000 --> 00:10:19,000 A onda je također provjeriti što je nulta, što bi to moglo biti u PHP. 145 00:10:19,000 --> 00:10:21,000 Ja ću vam dati par minuta. 146 00:10:21,000 --> 00:10:24,000 Vi doslovno možete kopirati i zalijepiti ove vrijednosti u, 147 00:10:24,000 --> 00:10:29,000 a onda ćemo napraviti malo slučajan poziv na vas 148 00:10:29,000 --> 00:10:34,000 i vidjeti ono što je dobio. 149 00:10:34,000 --> 00:10:36,000 >> [Studentski] imam pitanje. << Da. 150 00:10:36,000 --> 00:10:40,000 U jednom od predavanja David je rekao da postoji nešto što se može staviti na vrhu svoje datoteke 151 00:10:40,000 --> 00:10:43,000 tako da ne morate upisati u PHP svaki put. 152 00:10:43,000 --> 00:10:45,000 Što je to? 153 00:10:45,000 --> 00:10:50,000 On je vjerojatno riječ o funta praskom, mljeveno meso praska. 154 00:10:50,000 --> 00:10:57,000 To je direktiva da ako označite datoteku kao izvršnu 155 00:10:57,000 --> 00:11:01,000 onda ono što čini je kada izvršiti datoteku 156 00:11:01,000 --> 00:11:06,000 to će reći program ljuska 157 00:11:06,000 --> 00:11:12,000 koristiti PHP tumača interpretirati sadržaj datoteke. 158 00:11:12,000 --> 00:11:16,000 Pitanje se što je to posebna linija 159 00:11:16,000 --> 00:11:20,000 da bismo mogli uključiti na vrhu naših PHP datoteka ne moraju uključivati 160 00:11:20,000 --> 00:11:26,000 ovo PHP linija ili ovo PHP naredba kad god želimo izvršiti datoteku? 161 00:11:26,000 --> 00:11:31,000 A što zapravo može to učiniti s hrpom različitih datoteka. 162 00:11:31,000 --> 00:11:37,000 Vjerujem da to ovisi o tome gdje PHP binarni je pohranjena, 163 00:11:37,000 --> 00:11:43,000 ali često usr / bin / php je dobro mjesto za početak. 164 00:11:43,000 --> 00:11:45,000 Možete shvatiti to točno tako da odete natrag dolje na vaš uređaj 165 00:11:45,000 --> 00:11:50,000 i upisivanjem koji php. 166 00:11:50,000 --> 00:11:55,000 Koje naredbe figure out kada ste izvršenja binarni 167 00:11:55,000 --> 00:12:01,000 ili naredba gdje je odgovarajuća datoteka. 168 00:12:01,000 --> 00:12:06,000 To mi govori da je PHP je stvarno aliasing to binarna datoteka 169 00:12:06,000 --> 00:12:13,000 koji je pohranjen u usr / bin, što je, gdje puno od binarne datoteke sustava su instalirani. 170 00:12:13,000 --> 00:12:21,000 Na primjer, ako sam dođite do vrha, sad da sam stavio ovo #! linija ovdje 171 00:12:21,000 --> 00:12:27,000 Ja mogu pomicati prema dolje, a ja mogu pokušati pokrenuti 172 00:12:27,000 --> 00:12:35,000 dynamic.php, ali ja dobiti ovu pogrešku o dopuštenje se odbija, 173 00:12:35,000 --> 00:12:42,000 i što to znači je da ovaj dokument nije trenutno daje izvršne ovlasti. 174 00:12:42,000 --> 00:12:46,000 To nije označena kao datoteku da netko može pokrenuti. 175 00:12:46,000 --> 00:12:52,000 >> Kada je vodio napraviti ili zveka i imaš izvršnu od njega 176 00:12:52,000 --> 00:12:56,000 prevodilac je dovoljno pametan da zna da hej, ja sam izgradnju izvršnu. 177 00:12:56,000 --> 00:13:00,000 Vi vjerojatno želite izvršiti ga, tako da bi automatski konfigurirati 178 00:13:00,000 --> 00:13:02,000 dozvole za vas. 179 00:13:02,000 --> 00:13:06,000 To nije slučaj, međutim, kada se stvoriti normalnu sliku od nule, 180 00:13:06,000 --> 00:13:13,000 razlog obično se vi ne želite imati bilo koju datoteku na vašem sustavu biti izvršna, 181 00:13:13,000 --> 00:13:15,000 tako da zapravo morati ići i ručno ga napraviti. 182 00:13:15,000 --> 00:13:22,000 Najlakši način da to učinite je sa chmod naredba, 183 00:13:22,000 --> 00:13:28,000 i chmod + x kaže dodali izvršnu malo 184 00:13:28,000 --> 00:13:31,000 jer je čitanje malo, umanjenje malo i izvršna malo, 185 00:13:31,000 --> 00:13:35,000 r, W i X, 186 00:13:35,000 --> 00:13:39,000 i govoreći chmod + x će se okrenuti na izvršnu malo 187 00:13:39,000 --> 00:13:46,000 za tadašnje datoteke koje smo naveli, koja je u ovom slučaju će biti dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Studentski] Je li to uključen za sve? 189 00:13:49,000 --> 00:13:52,000 Idemo provjeriti ovaj vanjska, pa kako bih provjeriti dozvole? 190 00:13:52,000 --> 00:13:54,000 Znate li kako bih provjeriti dozvole datoteke? 191 00:13:54,000 --> 00:13:56,000 [Nečujno učenik odgovor] 192 00:13:56,000 --> 00:13:58,000 Žao? >> [Studentski] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD nam daje sliku u hack. 194 00:14:03,000 --> 00:14:09,000 Oglas sve datoteke,-l, pokazat će mi sve datoteke u mom imeniku 195 00:14:09,000 --> 00:14:13,000 vrsta u svojoj dugoj, opširnog popisa, pa ovdje vidimo da 196 00:14:13,000 --> 00:14:17,000 ovo dynamic.php sliku 197 00:14:17,000 --> 00:14:23,000 zadnji put je promijenjen 5. studenog u 16:21. 198 00:14:23,000 --> 00:14:26,000 Vlasnik ove datoteke je jharvard. 199 00:14:26,000 --> 00:14:28,000 To je korisnik koji je prijavljeni 200 00:14:28,000 --> 00:14:31,000 To je korisnik radim kao, 201 00:14:31,000 --> 00:14:36,000 a ako ste također u aparatu ste također radi kao korisnika jharvard. 202 00:14:36,000 --> 00:14:38,000 Ti si u skupini studenata, 203 00:14:38,000 --> 00:14:44,000 a to su stvari koje ćete vidjeti dovoljno često. 204 00:14:44,000 --> 00:14:47,000 >> Možemo ići u puno detalja ovdje, 205 00:14:47,000 --> 00:14:50,000 ali za najveći dio onoga što želite pogledati kada ste u potrazi za vidjeti 206 00:14:50,000 --> 00:14:55,000 hoće li ili ne datoteka izvršna je prvenstveno 207 00:14:55,000 --> 00:14:58,000 korisnik koji posjeduje datoteku, vlasnik, 208 00:14:58,000 --> 00:15:03,000 tako da je ovo jharvard, a zatim smo 209 00:15:03,000 --> 00:15:07,000 dozvole bita ovdje na lijevoj strani, 210 00:15:07,000 --> 00:15:13,000 i način da pročitate to je da je posljednji zalogaj 211 00:15:13,000 --> 00:15:18,000 se obično koristi za označavanje da li ili ne, barem u ovom slučaju 212 00:15:18,000 --> 00:15:21,000 ovaj posljednji zalogaj često će biti postavljen na oglas za označavanje 213 00:15:21,000 --> 00:15:24,000 da je datoteka direktorij, a ne samo normalna datoteka. 214 00:15:24,000 --> 00:15:28,000 Onda sljedeće tri bita pravo ovdje 215 00:15:28,000 --> 00:15:34,000 odrediti dozvole koje je vlasnik datoteke ima, 216 00:15:34,000 --> 00:15:38,000 tako da u ovom slučaju jharvard, kao vlasnik datoteke, može čitati i pisati ovu sliku, 217 00:15:38,000 --> 00:15:42,000 ali tu je crtica rekavši da jharvard ne može izvršiti ovu datoteku. 218 00:15:42,000 --> 00:15:46,000 Sljedećih 3 bita su za skupinu, pa ovo je grupa studenata, 219 00:15:46,000 --> 00:15:49,000 pa ako je bilo više korisnika na mom aparatu, 220 00:15:49,000 --> 00:15:52,000 i imali smo više korisnika, kao dio studenata grupe, 221 00:15:52,000 --> 00:15:55,000 onda svi oni mogu čitati ovu sliku, ali ne mogu ga napisati, 222 00:15:55,000 --> 00:15:59,000 a isto tako bilo tko drugi, svijet 223 00:15:59,000 --> 00:16:01,000 mogu samo čitati ovu sliku kao dobro. 224 00:16:01,000 --> 00:16:03,000 Tu je dobar, dugo writeup o tome, 225 00:16:03,000 --> 00:16:05,000 tako da možete čitati online. 226 00:16:05,000 --> 00:16:10,000 U spec. problema skup idemo u to u više detalja. 227 00:16:10,000 --> 00:16:12,000 >> [Studentski] Je 218 koji se odnosi na svijet? 228 00:16:12,000 --> 00:16:17,000 218 je off vrhu moje glave sam zaboravljajući, 229 00:16:17,000 --> 00:16:20,000 ali ne. 230 00:16:20,000 --> 00:16:29,000 Idemo vidjeti. Ja sam zatamnjenja na to pravo sada. 231 00:16:29,000 --> 00:16:32,000 Povratak na ono što smo bili oko napraviti s ovom chmod + x 232 00:16:32,000 --> 00:16:37,000 gdje smo htjeli dati dynamic.php izvršne ovlasti, 233 00:16:37,000 --> 00:16:40,000 a pitanje je da li ili ne to će dati izvršne ovlasti svima 234 00:16:40,000 --> 00:16:44,000 ili samo da jharvard, a možemo vidjeti to 235 00:16:44,000 --> 00:16:48,000 trčanje naredbe i upišite ls-l, 236 00:16:48,000 --> 00:16:51,000 a sada vidimo da je označena kao izvršna. 237 00:16:51,000 --> 00:16:54,000 Možete vidjeti da je došlo do promjene boje. 238 00:16:54,000 --> 00:16:57,000 Sada dynamic.php je navedena u zelenom, 239 00:16:57,000 --> 00:17:01,000 i to izgleda kao odgovor na pitanje je što, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Samo jharvard. >> Samo jharvard, da. 241 00:17:04,000 --> 00:17:08,000 >> Ako smo željeli skrenuti izvršnu malo na za svakoga 242 00:17:08,000 --> 00:17:10,000 kako bismo mogli to učiniti? 243 00:17:10,000 --> 00:17:13,000 Bilo misli? >> + X? 244 00:17:13,000 --> 00:17:15,000 Da, točno. 245 00:17:15,000 --> 00:17:23,000 Charlotte je rekao da možemo napraviti chmod od + X dynamic.php, 246 00:17:23,000 --> 00:17:26,000 i sada, ako smo pokrenuti ls-l vidimo da su izvršne bita 247 00:17:26,000 --> 00:17:30,000 su doista uključen za svakoga. 248 00:17:30,000 --> 00:17:37,000 A što zapravo može učiniti suprotno od toga, tako da možete ga isključiti za svakoga 249 00:17:37,000 --> 00:17:41,000 pomoću minusa. 250 00:17:41,000 --> 00:17:46,000 Sada je isključen, a sada možemo okrenuti ga na leđa za jharvard 251 00:17:46,000 --> 00:17:52,000 tako da zapravo možemo ga pokrenuti, 252 00:17:52,000 --> 00:17:58,000 , a sada možete vidjeti kada smo pokrenuli ovu posebnu šifru #! linija na vrhu, 253 00:17:58,000 --> 00:18:04,000 #! linija, rekao je ljuska, 254 00:18:04,000 --> 00:18:08,000 rekao naš terminal hej, kada je ova datoteka se pokrenuti, 255 00:18:08,000 --> 00:18:14,000 koristite / usr / bin / php protumačiti ovu sliku 256 00:18:14,000 --> 00:18:20,000 , a zatim ispisati izlaz. 257 00:18:20,000 --> 00:18:22,000 [Nečujno učenik pitanje] 258 00:18:22,000 --> 00:18:25,000 Naravno, neka me pomicanje natrag gore. Baš kao što je ovaj. 259 00:18:25,000 --> 00:18:36,000 Vidjet ćete sve od ovih direktiva početi s ovim funta, a zatim uskličnik, 260 00:18:36,000 --> 00:18:39,000 ponekad zvan shebang, ljestve prasak. 261 00:18:39,000 --> 00:18:48,000 >> [Studentski] Kako možemo ga pokrenuti s php dynamic.php prije nego što bi ga izvediv? 262 00:18:48,000 --> 00:18:55,000 Pitanje je bilo kako možemo pokrenuti ovaj korištenjem PHP binarni 263 00:18:55,000 --> 00:18:58,000 dok dynamic.php nije izvršna? 264 00:18:58,000 --> 00:19:01,000 To je super važno jer je to točno kako 265 00:19:01,000 --> 00:19:06,000 to će raditi kada pišete problema set sedam. 266 00:19:06,000 --> 00:19:09,000 Većinu vremena PHP datoteke nisu izravno izvršna. 267 00:19:09,000 --> 00:19:14,000 Način na koji funkcionira, jer to je PHP binarni da je izvršna. 268 00:19:14,000 --> 00:19:16,000 Tumač je stvar koja se izvršava, 269 00:19:16,000 --> 00:19:20,000 i tako ono što radi doslovno slurping u cjelokupni sadržaj 270 00:19:20,000 --> 00:19:25,000 našeg dynamic.php datoteke i ide redak po redak 271 00:19:25,000 --> 00:19:29,000 i izvršavanje tih naredbi, tako da je pomoću naše PHP datoteku 272 00:19:29,000 --> 00:19:31,000 kao popis uputa. 273 00:19:31,000 --> 00:19:36,000 To nije izravno njezina izvršenja. 274 00:19:36,000 --> 00:19:40,000 To je mjesto gdje možemo reći da su te datoteke tumačiti u vrijeme izvođenja. 275 00:19:40,000 --> 00:19:46,000 To je mali vremenski jezik umjesto nečega što je određeno vrijeme prevođenja, 276 00:19:46,000 --> 00:19:49,000 nije sastavio jezik poput C. 277 00:19:49,000 --> 00:19:54,000 >> Postoji način da se jezik run vrijeme djelovati kao da je jezik sastaviti vrijeme, 278 00:19:54,000 --> 00:19:58,000 kao i ako imate sve trčanje učinjeno na poslužitelju 279 00:19:58,000 --> 00:20:00,000 nego-znate na što mislim? 280 00:20:00,000 --> 00:20:04,000 Da, tako je pitanje 281 00:20:04,000 --> 00:20:11,000 postoji način da se vrijeme izvođenja jezike djelovati više kao vrijeme prevođenja vrsta jezika? 282 00:20:11,000 --> 00:20:18,000 I tu su, mislim, da je aktivno područje istraživanja za puno tih tvrtki. 283 00:20:18,000 --> 00:20:22,000 Vjerujem Facebook je učinio mnogo rada s PHP 284 00:20:22,000 --> 00:20:25,000 i sastavljanje dolje, čineći ga brže, to optimizirati 285 00:20:25,000 --> 00:20:29,000 budući da je njihova stranica je izgrađena na PHP. 286 00:20:29,000 --> 00:20:34,000 Ako ste nakon node.js uopće, 287 00:20:34,000 --> 00:20:40,000 koja je vrsta JavaScript tumača 288 00:20:40,000 --> 00:20:44,000 biti u mogućnosti to trčanje JavaScript izvan preglednika, izvan svog web preglednika, 289 00:20:44,000 --> 00:20:47,000 jer tradicionalno JavaScripta bi samo pokrenuti unutar Firefox ili Chrome, 290 00:20:47,000 --> 00:20:52,000 i to bi se koriste kako bi super animacije dogoditi na web stranici 291 00:20:52,000 --> 00:20:55,000 i napraviti svoju web stranicu dinamičan. 292 00:20:55,000 --> 00:20:59,000 To je bio izgrađen na puno posla da je Google učinio 293 00:20:59,000 --> 00:21:03,000 da JavaScript i C + + 294 00:21:03,000 --> 00:21:09,000 vezati zajedno, tako da je puno aktivnog istraživanja na 295 00:21:09,000 --> 00:21:13,000 dobiti ti jezici za interakciju i optimizirati ih, 296 00:21:13,000 --> 00:21:17,000 prije svega zato što toliko ljudi mogu kodirati u PHP i JavaScript 297 00:21:17,000 --> 00:21:19,000 jer je puno lakše. 298 00:21:19,000 --> 00:21:21,000 To je puno ljepše. Vi nemate naputke. 299 00:21:21,000 --> 00:21:27,000 Vi nemate vrste plutajuæi okolo. 300 00:21:27,000 --> 00:21:31,000 Oni su htjeli steći koristi od tih vrijeme prevođenja jezika 301 00:21:31,000 --> 00:21:36,000 sa svim tipa provjeri i brzinu i donjeg korištenje memorije i svih koji 302 00:21:36,000 --> 00:21:42,000 dok je još uvijek održava fleksibilnost i jednostavnost korištenja tih novijima. 303 00:21:42,000 --> 00:21:46,000 >> Povratak na našem izvornom planu napada. 304 00:21:46,000 --> 00:21:50,000 Imamo neke od tih pitanja ovdje u našoj spec. problema skup. 305 00:21:50,000 --> 00:21:54,000 Idemo kroz njih jako brzo, a mi ćemo ići po sobi. 306 00:21:54,000 --> 00:21:59,000 Charlotte, ono tip je 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] To je dvostruka. >> To je dvostruko. 308 00:22:01,000 --> 00:22:03,000 Jimmy, što je to sljedeći? >> Niz. 309 00:22:03,000 --> 00:22:09,000 Polje, strašan, a Jared, ono što je fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] To je izvor. >> To je resurs. 311 00:22:11,000 --> 00:22:15,000 To je vrsta novog jednom, ne file zvijezda, a ne datoteke. 312 00:22:15,000 --> 00:22:19,000 To je resurs je tip u PHP-u, 313 00:22:19,000 --> 00:22:24,000 i žao mi je, Ella, posljednji null je ono? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Nula, kako je to napisano u PHP? >> Isti način. 316 00:22:28,000 --> 00:22:30,000 Na isti način, kapiteli? >> Da. 317 00:22:30,000 --> 00:22:33,000 Da, u redu. 318 00:22:33,000 --> 00:22:35,000 Ovdje ćemo ići, imamo dvostruko, imamo niz, 319 00:22:35,000 --> 00:22:41,000 imamo resurse, a onda smo dobili null. 320 00:22:41,000 --> 00:22:48,000 Pogledajmo sada ste vidjeli- 321 00:22:48,000 --> 00:22:51,000 neka se vidi, tako da sada mislim ono što sam također žele učiniti je podići 322 00:22:51,000 --> 00:22:56,000 ova web stranica upravo ovdje, ovo php.net / priručnik, 323 00:22:56,000 --> 00:23:01,000 pa ako vi kopirati da i otvoriti web preglednik. 324 00:23:01,000 --> 00:23:07,000 Idem podići Chrome, staviti da u. 325 00:23:07,000 --> 00:23:10,000 Želim vam pokazati to ne samo zato 326 00:23:10,000 --> 00:23:13,000 možemo razgovarati cijeli dan o vrstama i sve to zabavno 327 00:23:13,000 --> 00:23:19,000 nego zato što je to PHP priručnik, 328 00:23:19,000 --> 00:23:23,000 a tu su i puno PHP programera vani. 329 00:23:23,000 --> 00:23:26,000 Postoji mnogo PHP web stranice vani, 330 00:23:26,000 --> 00:23:31,000 i kao rezultat toga, tu je mnogo dokumentacije na PHP, 331 00:23:31,000 --> 00:23:36,000 i upotrebu, ovaj php.net, je stvarno dobro mjesto za izlazak 332 00:23:36,000 --> 00:23:43,000 kad god imate pitanja o tome što je najbolji način da to X u PHP 333 00:23:43,000 --> 00:23:45,000 ili što ne funkcija izgledati? 334 00:23:45,000 --> 00:23:49,000 Samo vrsta upoznati sa kako to izgleda, jer 335 00:23:49,000 --> 00:23:54,000 ćete biti dolazak ovdje često, malo za problema postaviti sedam. 336 00:23:54,000 --> 00:23:57,000 >> Ako ste završili radiš konačni projekt koji koristi PHP 337 00:23:57,000 --> 00:24:04,000 to će biti mjesto koje ćete postati vrlo dobro poznavao. 338 00:24:04,000 --> 00:24:09,000 Često način na koji ljudi to učinite je da koristite Google za pretraživanje za web stranice, 339 00:24:09,000 --> 00:24:16,000 i oni ne koristiti okvir za pretraživanje koji je ovdje u gornjem desnom, koja je vrsta maleni. 340 00:24:16,000 --> 00:24:19,000 Ako ste Googling oko za nešto napraviti sa PHP i vidite 341 00:24:19,000 --> 00:24:24,000 jedan od ručnih linkove pop-up obično možete se osloniti na to 342 00:24:24,000 --> 00:24:31,000 kao prilično dobar resurs. 343 00:24:31,000 --> 00:24:34,000 Strašan, tako da od tih tipova, samo iz znatiželje, 344 00:24:34,000 --> 00:24:37,000 one koje nismo vidjeli? 345 00:24:37,000 --> 00:24:40,000 Sve nismo vidjeli ovdje? 346 00:24:40,000 --> 00:24:44,000 [Studentski] resursima. >> Vidjeli smo resurs s fopen poziva. 347 00:24:44,000 --> 00:24:48,000 [Studentski] objekata. >> Objekti nismo vidjeli sigurno. 348 00:24:48,000 --> 00:24:51,000 Callbacks nismo vidjeli. 349 00:24:51,000 --> 00:24:54,000 Postoje neke od tih pseudo-vrste. 350 00:24:54,000 --> 00:24:57,000 Mi definitivno vidio samo broj i dvostruko. 351 00:24:57,000 --> 00:25:01,000 Nismo vidjeli neke od drugih, pa ako mi kliknite na integers 352 00:25:01,000 --> 00:25:08,000 možemo vidjeti postoje li druge integeri da oni imaju ovdje? 353 00:25:08,000 --> 00:25:11,000 Jesu li sve tako cijeli broj, cijeli broj, cijeli broj. 354 00:25:11,000 --> 00:25:14,000 Neki jezici imaju veće cjelobrojne tipove, 355 00:25:14,000 --> 00:25:23,000 kao što smo vidjeli na MySQL danas nije bilo int a zatim velika int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Dakle, PHP upotrebu. 358 00:25:28,000 --> 00:25:37,000 Vratimo se na naš spec. problema skup, a mi sada ćete pomaknite se dolje na 4. stranici. 359 00:25:37,000 --> 00:25:41,000 Jedna od stvari koja se događa kada ste dobili te jezike 360 00:25:41,000 --> 00:25:49,000 koji nemaju taj statički tipkanje, tako da ti jezici gdje morate prijaviti 361 00:25:49,000 --> 00:25:52,000 tip je ispred varijable do 362 00:25:52,000 --> 00:26:00,000 je li dobiti slučajeve gdje možete početi s varijable različitih tipova 363 00:26:00,000 --> 00:26:04,000 interakciji jedni s drugima, 364 00:26:04,000 --> 00:26:09,000 i PHP čini ovu stvar gdje se pokušava učiniti 365 00:26:09,000 --> 00:26:13,000 ono što smatra da je najrazumniji stvar za učiniti 366 00:26:13,000 --> 00:26:18,000 kada imate dvije različite vrste međusobno. 367 00:26:18,000 --> 00:26:24,000 Na primjer, ako gledamo ovih linija koda ovdje 368 00:26:24,000 --> 00:26:29,000 vidite da imamo ono što se događa kada 369 00:26:29,000 --> 00:26:38,000 ćemo pokušati i dodajte string 1 do 2 integer. 370 00:26:38,000 --> 00:26:41,000 Što će se dogoditi ako ćemo pokušati i dodati niz koji nije brojčana vrijednost 371 00:26:41,000 --> 00:26:48,000 nego stvarni likovi, CS broju 50? 372 00:26:48,000 --> 00:26:51,000 Onda ćemo vidjeti je li se išta drugačije da se događa tamo gdje 373 00:26:51,000 --> 00:26:56,000 umjesto dodajući niz na broju smo dodajući niz na žici, 374 00:26:56,000 --> 00:27:00,000 i tako dalje i tako dalje do točke gdje smo uzimajući 375 00:27:00,000 --> 00:27:05,000 nekakav čudan stvari ovdje gdje imamo 7 + istina. 376 00:27:05,000 --> 00:27:09,000 Što ispitati kritički to znači? 377 00:27:09,000 --> 00:27:19,000 >> Ako vi ići naprijed i zalijepiti neke od ovog koda u svoj uređaj. 378 00:27:19,000 --> 00:27:27,000 Možete ga zadržati u dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Vidjet ćemo što će se dogoditi. 380 00:27:41,000 --> 00:27:43,000 [Studentski] Samo koristite otisak, a ne printf? 381 00:27:43,000 --> 00:27:52,000 Da, pa ćete naći da ispis je također vrijedi funkcija za ispis u PHP. 382 00:27:52,000 --> 00:27:54,000 Postoji mnogo različitih načina radi. 383 00:27:54,000 --> 00:27:58,000 Vidjet ćemo s nekoliko primjera kasnije kad smo počeli govoriti 384 00:27:58,000 --> 00:28:02,000 o jedinstvenom problemu koji ćemo pisati 385 00:28:02,000 --> 00:28:06,000 i onda je koncentracija problem koji ćemo pisati 386 00:28:06,000 --> 00:28:09,000 da, iako imamo fopen i fclose 387 00:28:09,000 --> 00:28:15,000 to često nije najjednostavniji način da pročitati u sadržaju datoteke. 388 00:28:15,000 --> 00:28:21,000 PHP ima puno tih C-poput holdovers. 389 00:28:21,000 --> 00:28:28,000 [Studentski] Kad sam stavio u svim 6 od onih stvari koje sam samo dobiti jedan broj kao izlaz. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Kada ste stavili u svim šest od tih stvari. 391 00:28:36,000 --> 00:28:39,000 Hajdemo vidjeti je li to zato što je eventualno- 392 00:28:39,000 --> 00:28:46,000 jedna stvar je da su ti pozivi nisu print prestaje na kraju s novim linijama. 393 00:28:46,000 --> 00:28:49,000 Nema nova linija razdvajanja svaki od tih ispis poziva, 394 00:28:49,000 --> 00:28:51,000 pa možda ste uzimajući jedan veliki broj, 395 00:28:51,000 --> 00:28:58,000 i to je zapravo samo amalgam nove linije znakova. 396 00:28:58,000 --> 00:29:00,000 [Studentski] Dobro, kako ću napraviti sigurni- 397 00:29:00,000 --> 00:29:03,000 Pa, postoje hrpa različitih načina. 398 00:29:03,000 --> 00:29:06,000 Možete ručno mogao staviti u tiskanom novog retka karaktera, 399 00:29:06,000 --> 00:29:09,000 odjek nove linije lika, 400 00:29:09,000 --> 00:29:12,000 ispisati nove linije. 401 00:29:12,000 --> 00:29:16,000 [Studentski] Dakle, odjek je ista stvar kao i printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf je poput C printf 403 00:29:21,000 --> 00:29:24,000 gdje ste tiskanje formatiran string. 404 00:29:24,000 --> 00:29:32,000 Vi ste dobavu mu format string i onda sve rezerviranih mjesta varijabli. 405 00:29:32,000 --> 00:29:39,000 To je često nešto što se ne koristi- 406 00:29:39,000 --> 00:29:42,000 neka se vidi, kao demantiju 407 00:29:42,000 --> 00:29:48,000 Ja sam manje upoznati s PHP nego sam s drugim web jezicima, 408 00:29:48,000 --> 00:29:53,000 i kad sam programiran u PHP Ja obično ne koriste printf 409 00:29:53,000 --> 00:29:59,000 jer sam ga pronaći brže koristite niz interpolacija sposobnosti koje ima, 410 00:29:59,000 --> 00:30:04,000 koje ćemo ići u, a ja ću vam pokazati u samo sekundu, 411 00:30:04,000 --> 00:30:08,000 dok je u C mi nekako morati učiniti ovu Hacky stvar da bi ga ispisati ispravno. 412 00:30:08,000 --> 00:30:16,000 Vi zapravo možete staviti varijable izravno u nizovima u PHP. 413 00:30:16,000 --> 00:30:22,000 Printf je vrsta pretjerano dugo za ono što se obično učiniti. Da, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] Općenito, ako dobijete Pogreška raščlambe to znači- 415 00:30:25,000 --> 00:30:30,000 kao i na C ne ti reći točno gdje je zabluda, a ono što je, 416 00:30:30,000 --> 00:30:34,000 pa to znači pogled kroz cijeli kod i to shvatiti? 417 00:30:34,000 --> 00:30:39,000 To je obično više ciljanih od toga. 418 00:30:39,000 --> 00:30:48,000 Mislim da je u tom slučaju to je malo off, 419 00:30:48,000 --> 00:30:51,000 tako da mislim da bi u tom slučaju bili smo nedostaje zarez. 420 00:30:51,000 --> 00:30:54,000 To je bio pokušaj da se smisao svega, 421 00:30:54,000 --> 00:30:57,000 tako poput ovih interpretirane jezika, tumač će pokušati 422 00:30:57,000 --> 00:31:01,000 i učiniti svoje najbolje da sve radove na odgovarajući način. 423 00:31:01,000 --> 00:31:04,000 >> Vidjet ćete, na primjer, u JavaScriptu 424 00:31:04,000 --> 00:31:10,000 vi ćete često-line izvještaji kraj sa zarezom baš kao što to rade u PHP-u, 425 00:31:10,000 --> 00:31:13,000 baš kao što to rade u C. 426 00:31:13,000 --> 00:31:15,000 U JavaScriptu neke od JavaScripta tumača 427 00:31:15,000 --> 00:31:20,000 u puno preglednicima će staviti u zarezom za vas 428 00:31:20,000 --> 00:31:23,000 ako vam se dogoditi da im nedostaje. 429 00:31:23,000 --> 00:31:29,000 Oni će pokušati smjestiti u neki aljkavost s vaše strane. 430 00:31:29,000 --> 00:31:34,000 To je mjesto gdje bi to moglo biti težak i pokušava i pokušava napraviti stvari rad, 431 00:31:34,000 --> 00:31:36,000 i onda na kraju će doći do točke u kojoj se kaže: ok, 432 00:31:36,000 --> 00:31:38,000 Ja ne mogu napraviti da stvari rade na spašavanje, a to je mjesto gdje ćete dobiti broj retka 433 00:31:38,000 --> 00:31:44,000 da može činiti malo off od točnom mjestu. 434 00:31:44,000 --> 00:31:47,000 Ok, pa idemo kroz to jako brzo. 435 00:31:47,000 --> 00:31:50,000 Mi stali sa Ella, pa idemo preko Missy, 436 00:31:50,000 --> 00:31:54,000 i gospođica, što znači ispis stringa jedan plus broj 2 vam dati? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Ima li to smisla? Vrsta? 439 00:31:59,000 --> 00:32:02,000 Da li vam dati broj? Da li vam dati niz? 440 00:32:02,000 --> 00:32:05,000 [Missy] broj. >> To je broj. 441 00:32:05,000 --> 00:32:09,000 No, to je to tiskanje, tako da će vam dati nekakvu niza. 442 00:32:09,000 --> 00:32:12,000 >> Jedna stvar koju možemo učiniti za check this out 443 00:32:12,000 --> 00:32:21,000 je, ako ćemo učiniti $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 a onda ćemo reći odjek gettype, 445 00:32:28,000 --> 00:32:33,000 tako da smo pomoću trećine vrstu ispis ovdje. 446 00:32:33,000 --> 00:32:39,000 Sada možemo vidjeti što se ovdje događa. 447 00:32:39,000 --> 00:32:42,000 Evo što imamo je da je dobio cijeli od ovoga. 448 00:32:42,000 --> 00:32:45,000 Iako smo bili dodavanjem ovaj niz na broju, 449 00:32:45,000 --> 00:32:48,000 nismo dobili niz od toga, baš kao što je gospođica rekao. 450 00:32:48,000 --> 00:32:52,000 Mi smo se cijeli broj. 451 00:32:52,000 --> 00:32:57,000 Ok, pa ćemo vidjeti, pored gore, Kevina. 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. Ima li to smisla? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Aha. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Zašto? Zašto uopće smisla za vas? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Jer to je samo ima niz, ima nula brojčanu vrijednost. 457 00:33:11,000 --> 00:33:16,000 Da, super. 458 00:33:16,000 --> 00:33:20,000 Vrsta dvojbenim situacijama, ali to je dobro znati što se događa. 459 00:33:20,000 --> 00:33:25,000 Stella, što će se dogoditi sljedeći s brojem 1 + struna 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 opet. 461 00:33:27,000 --> 00:33:30,000 I u ovom slučaju, ne možemo dobiti niz ili broj? 462 00:33:30,000 --> 00:33:36,000 >> Idemo dati ovo probati. 463 00:33:36,000 --> 00:33:43,000 Svatko brže od mene dobiti odgovor? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, ja didn't-ok, ajmo vidjet, idemo napraviti istu vrstu stvari 465 00:33:46,000 --> 00:33:49,000 gdje imamo niz plus string, a mi ćemo jeka tip, 466 00:33:49,000 --> 00:33:51,000 vidjeti što smo dobili. 467 00:33:51,000 --> 00:33:55,000 Također smo dobili cijeli broj. 468 00:33:55,000 --> 00:33:58,000 To ne smeta što je jedan string, kojih je jedan broj. 469 00:33:58,000 --> 00:34:00,000 Mi smo još uvijek ćete dobiti cijeli broj. 470 00:34:00,000 --> 00:34:04,000 To je još uvijek će učiniti ono što smo mogli očekivati. 471 00:34:04,000 --> 00:34:09,000 U redu, tako da Sam, što je 90 + 9 boca piva na zidu? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Nema boce piva na zidu, iako. 474 00:34:15,000 --> 00:34:17,000 To nam daje malo više informacija o tome što se događa. 475 00:34:17,000 --> 00:34:21,000 [Sam] Ako je napisao devet slovima 476 00:34:21,000 --> 00:34:23,000 onda će imati 90, zar ne? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Aha. 478 00:34:26,000 --> 00:34:30,000 Pitanje je, ako ćemo napisano 9 se kao N-i-n-E 479 00:34:30,000 --> 00:34:34,000 bi smo dobili 99 ili 90? 480 00:34:34,000 --> 00:34:38,000 Mi bismo dobili 90. 481 00:34:38,000 --> 00:34:42,000 To doslovno samo u potrazi za znamenkastim znakova. 482 00:34:42,000 --> 00:34:46,000 To je dovoljno pametan da prepozna broj riječi i te stvari. Da. 483 00:34:46,000 --> 00:34:48,000 >> [Studentski] Ima li takva stvar kao typecasting u PHP-u? 484 00:34:48,000 --> 00:34:54,000 Tu je, i to je upravo način na koji će to učiniti u C. 485 00:34:54,000 --> 00:34:56,000 Što o 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, pa što bi moglo biti čudno o tome? 488 00:35:01,000 --> 00:35:04,000 Što će se dogoditi ako je taj isti takve stvari u C, 489 00:35:04,000 --> 00:35:06,000 ako je 10/7 u C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] To bi samo vam dati, ovisno o tome koliko ste typecasted pretpostavljam 491 00:35:08,000 --> 00:35:12,000 to će vam dati samo ograničeni broj znamenki nakon decimalnog. 492 00:35:12,000 --> 00:35:16,000 Da, tako ograničeni broj znamenki nakon decimalnog. 493 00:35:16,000 --> 00:35:21,000 Što drugo bi moglo biti-to će vam dati nikakve znamenke nakon decimalne? 494 00:35:21,000 --> 00:35:28,000 Često ne, pa opet, ovisno o tome koliko ste ga typecasting 495 00:35:28,000 --> 00:35:31,000 to može ili ne može ga pretvoriti u decimalni broj. 496 00:35:31,000 --> 00:35:35,000 Evo to je vrsta lijepo da je to učinio. 497 00:35:35,000 --> 00:35:40,000 Da smo pokazali vam ovo leđa kad smo počeli raditi tu vrstu stvari u C 498 00:35:40,000 --> 00:35:44,000 vjerojatno bi napravio malo više smisla 499 00:35:44,000 --> 00:35:48,000 da ne samo ići na jedan. 500 00:35:48,000 --> 00:35:51,000 I onda napokon, Jamie, što je 7 + istina? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Što to znači? 503 00:35:56,000 --> 00:35:58,000 Pretpostavljam da je to samo daje pravi vrijednost jedne. 504 00:35:58,000 --> 00:36:01,000 Da. Što će se dogoditi ako se to promijeniti na lažne? 505 00:36:01,000 --> 00:36:04,000 [Studentski] 7. 506 00:36:04,000 --> 00:36:09,000 Da, tako se sjetiti gdje smo razgovarati o tim binarne vrijednosti, 507 00:36:09,000 --> 00:36:12,000 1 je na, 0 biti isključen? 508 00:36:12,000 --> 00:36:17,000 Sada imamo pravi je 1, 0 je lažna, 509 00:36:17,000 --> 00:36:21,000 a možda niste vidjeli ovo u C primjera da smo učinili prošlog semestar, 510 00:36:21,000 --> 00:36:27,000 ali povijesno bool tip u C nije bio pravi tip, 511 00:36:27,000 --> 00:36:32,000 pa ljudi su koristili 0 i 1 u mjestu istinito i lažno. 512 00:36:32,000 --> 00:36:35,000 To je manifestacija koja. 513 00:36:35,000 --> 00:36:39,000 >> Ok, tako da jedan važan dio u svemu ovome 514 00:36:39,000 --> 00:36:41,000 je da smo ove različite vrste. 515 00:36:41,000 --> 00:36:43,000 Oni mogu komunicirati jedni s drugima. 516 00:36:43,000 --> 00:36:49,000 Oni često mogu komunicirati jedni s drugima na načine koji su lijepo, kao što smo vidjeli ovdje. 517 00:36:49,000 --> 00:36:53,000 To je lijepo biti u mogućnosti da imaju niz jedan i broj dva, dodajte ih zajedno i dobiti tri. 518 00:36:53,000 --> 00:36:55,000 To ima smisla. 519 00:36:55,000 --> 00:36:59,000 Međutim, kada pišete web stranice, a pogotovo kada ste obrade 520 00:36:59,000 --> 00:37:04,000 korisnički unos, pa reći da ste napisali web obrazac 521 00:37:04,000 --> 00:37:09,000 koja prikuplja informacije od korisnika, a zatim odlazi da ga obrađuje 522 00:37:09,000 --> 00:37:13,000 na stražnjem kraju, na strani poslužitelja u vašem PHP kodu 523 00:37:13,000 --> 00:37:18,000 ako ste očekivali da vrijednosti koje korisnik upisali u i podnijeti 524 00:37:18,000 --> 00:37:23,000 na obrascu biti cijeli broj ili da se s pomičnim zarezom broj ili nešto slično 525 00:37:23,000 --> 00:37:29,000 morate eksplicitno baci 526 00:37:29,000 --> 00:37:34,000 i onda napraviti neke provjere tipa. 527 00:37:34,000 --> 00:37:41,000 >> Vi ne želite da se samo osloniti na ovom sustavu tipa žongliranja kako bi stvari raditi, 528 00:37:41,000 --> 00:37:48,000 pogotovo zbog sigurnosnih razloga i samo za robusnost vaše web stranice. 529 00:37:48,000 --> 00:37:51,000 Samo nešto treba imati na umu da kad god rukovanje podatke obrasca, 530 00:37:51,000 --> 00:37:57,000 sve što dolazi u post ili get superglobals 531 00:37:57,000 --> 00:38:01,000 pobrinite se da uvijek ga potvrditi i pretvoriti ga i typecast. 532 00:38:01,000 --> 00:38:04,000 I baš kao što smo pričali o trenutku prije tog typecasting 533 00:38:04,000 --> 00:38:08,000 u PHP je potpuno isti kao u C gdje imate zagrade 534 00:38:08,000 --> 00:38:14,000 a zatim putovanja. 535 00:38:14,000 --> 00:38:16,000 Imajte to na umu. 536 00:38:16,000 --> 00:38:19,000 Jedna funkcija koja će doći u ruci kada radite to 537 00:38:19,000 --> 00:38:22,000 je da smo koristili, a to je vrsta kao stranu- 538 00:38:22,000 --> 00:38:27,000 smo koristeći ovu funkciju gettype ovdje 539 00:38:27,000 --> 00:38:30,000 shvatiti tip varijable, 540 00:38:30,000 --> 00:38:37,000 i dok je to zgodan za ispravljanje pogrešaka i da se vidi što je varijabla je vrsta 541 00:38:37,000 --> 00:38:42,000 ne želite koristiti ovaj, na primjer, u stanju u kojem 542 00:38:42,000 --> 00:38:57,000 ste ček vidjeti ako gettype od $ var = INTEGER nešto učiniti. 543 00:38:57,000 --> 00:39:01,000 To je loše, loše, loše. 544 00:39:01,000 --> 00:39:09,000 Umjesto toga postoje ove funkcije nazivaju se cijeli je niz, 545 00:39:09,000 --> 00:39:14,000 je niz koji želite koristiti umjesto toga, tako da u ovom slučaju 546 00:39:14,000 --> 00:39:18,000 ono što sam htjela učiniti umjesto ovog momka ovdje 547 00:39:18,000 --> 00:39:31,000 se koristiti je cijeli var. 548 00:39:31,000 --> 00:39:37,000 I oni često ste nazivaju je is_ * u smislu da li mogu zamijeniti * s cjelobrojnom, 549 00:39:37,000 --> 00:39:43,000 string, et cetera, a samo kako bi bili sigurni stvarno brzo 550 00:39:43,000 --> 00:39:50,000 je ovo je int php. 551 00:39:50,000 --> 00:39:59,000 Izgleda kao da možete učiniti bilo je int ili je tu je cijeli kao i? 552 00:39:59,000 --> 00:40:06,000 Da, alias, tako int cjelobrojni nadimci. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Kako stojimo? 555 00:40:17,000 --> 00:40:20,000 Ajmo podići tempo malo. 556 00:40:20,000 --> 00:40:24,000 Sada ćemo govoriti o poljima, tako da možete vidjeti 557 00:40:24,000 --> 00:40:28,000 u sljedećem dijelu spec. govorimo o tome kako polja u PHP 558 00:40:28,000 --> 00:40:31,000 su nešto drugačije nego što su oni u C. 559 00:40:31,000 --> 00:40:34,000 U istinu, oni su svojevrsni amalgama 560 00:40:34,000 --> 00:40:36,000 su polja koje ste upoznali i ljubav u C 561 00:40:36,000 --> 00:40:40,000 gdje je sve od iste vrste 562 00:40:40,000 --> 00:40:43,000 pohranjeni uzastopno i contiguously u memoriju, 563 00:40:43,000 --> 00:40:46,000 i imate ove brojčane pokazatelje. 564 00:40:46,000 --> 00:40:49,000 Imate indeks 0, indeks 1, indeks 2, 565 00:40:49,000 --> 00:40:53,000 i pohraniti vrijednosti na tih indeksa. 566 00:40:53,000 --> 00:40:57,000 Također u C, kada je napisao Speller, puno vas 567 00:40:57,000 --> 00:41:00,000 učinio ljestve stol pristup, a vidjeli ste da smo imali 568 00:41:00,000 --> 00:41:03,000 Drugačija pohranu gdje smo bili mapiranje 569 00:41:03,000 --> 00:41:07,000 Ključ za vrijednosti, pa kad ste pokušali spremiti nešto u hash tablicu 570 00:41:07,000 --> 00:41:11,000 morali ste naveli da ste htjeli da ga pohraniti s određenom ključu, 571 00:41:11,000 --> 00:41:17,000 i da ključ određuje lokaciju vrijednosti i gdje će biti pohranjen. 572 00:41:17,000 --> 00:41:22,000 Vi ste vrsta dobio oba od tih pojmova događa u isto vrijeme u PHP polje, 573 00:41:22,000 --> 00:41:27,000 i kao rezultat toga, mi često zovu te asocijativne polja 574 00:41:27,000 --> 00:41:33,000 gdje smo udruživanje ključ u vrijednosti. 575 00:41:33,000 --> 00:41:39,000 U sljedećem dijelu govorimo o jednostavnim PHP niz 576 00:41:39,000 --> 00:41:45,000 gdje imamo tipke A, B i C, 577 00:41:45,000 --> 00:41:53,000 svi nizovi, mapiranje za cijeli brojevi 1, 2, i 3. 578 00:41:53,000 --> 00:41:57,000 I vi možete imati ključeve različitih tipova. 579 00:41:57,000 --> 00:42:00,000 >> Možete imati neke tipke koje su žice, neke tipke koje su cijeli brojevi. 580 00:42:00,000 --> 00:42:03,000 Možete imati vrijednosti različitih tipova. 581 00:42:03,000 --> 00:42:06,000 Možete imati vrijednost koja je niz, vrijednost koja je cijeli, 582 00:42:06,000 --> 00:42:11,000 vrijednost koja je predmet ili drugo polje, na primjer, 583 00:42:11,000 --> 00:42:16,000 sve u istom array objekt, koji je vrsta čudno. 584 00:42:16,000 --> 00:42:20,000 Ne morate imati niz koji je samo dobio jednu vrstu elementa u njemu. 585 00:42:20,000 --> 00:42:26,000 Možete imati mnogo različitih stvari događa tamo. 586 00:42:26,000 --> 00:42:33,000 Druga stvar je imati na umu da kada vidim ovako nešto u svom kodu, 587 00:42:33,000 --> 00:42:38,000 koja vrijedi PHP proglasiti niz baš kao što je ovaj, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 da će proglasiti inicijaliziran $ arr se ovo polje. 589 00:42:43,000 --> 00:42:48,000 No, ono što ste zapravo uzimajući ispod haube je ova vrsta implicitne 590 00:42:48,000 --> 00:42:55,000 generacija tipki gdje smo dobili 0-0, 1-1, 2-2, 3-3. 591 00:42:55,000 --> 00:42:59,000 I ispada da čak i ako imate niz poput ovog momka ovdje 592 00:42:59,000 --> 00:43:03,000 gdje imate, B i C, kao i tipke 593 00:43:03,000 --> 00:43:09,000 i onda početi koristiti metodu polje potisnu početi koristiti ovaj niz kao stog, 594 00:43:09,000 --> 00:43:12,000 tako da možete vidjeti da je ovo polje objekt, ovo polje je stvarno postaje preopterećen. 595 00:43:12,000 --> 00:43:15,000 Možemo ga koristiti kao polje. Možemo ga koristiti kao hash tablice. 596 00:43:15,000 --> 00:43:19,000 Možemo ga koristiti kao stog. 597 00:43:19,000 --> 00:43:22,000 Kada pokrenete gura stvari na ovom polju 598 00:43:22,000 --> 00:43:30,000 Prva stvar koju gurnuti na to će biti indeks 0, a zatim indeks 1 i 2 indeks. 599 00:43:30,000 --> 00:43:33,000 Možete dobiti ovu vrstu implicitne generacije ključeva 600 00:43:33,000 --> 00:43:38,000 osim ako ih navedete. 601 00:43:38,000 --> 00:43:43,000 Način na koji ste naveli ključeve eksplicitno, naravno, pomoću ovog nosača zapis, 602 00:43:43,000 --> 00:43:48,000 koji je sličan polja osim umjesto samo dopuštajući 603 00:43:48,000 --> 00:43:54,000 cjelobrojne indeksi u ovdje, sada mi dopustite ništa. 604 00:43:54,000 --> 00:43:57,000 Ako želite da vaš ključ da se string, da bih ga navesti kao što je ovaj. 605 00:43:57,000 --> 00:44:06,000 Ako želite da bude int, možete ga odrediti s int želite koristiti. 606 00:44:06,000 --> 00:44:13,000 >> Pitanja na koja do sada? 607 00:44:13,000 --> 00:44:18,000 Jedna od lijepih stvari o ovoj ideji 608 00:44:18,000 --> 00:44:26,000 je da možete uvijek imaju samo jednu vrijednost pohranjena s određenom ključu. 609 00:44:26,000 --> 00:44:32,000 Ako se vratimo na to naše aparata-neka me izbrisati neke od tih stvari. 610 00:44:32,000 --> 00:44:47,000 A recimo ja inicijalizirati niz biti 0, 1, 2, učinjeno. 611 00:44:47,000 --> 00:44:55,000 Ako ja sada znam da je, na primjer, ako sam echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Ja ću dobiti vrijednost 0 ispisati, 613 00:44:59,000 --> 00:45:05,000 a budući da može postojati samo ikada biti jedna vrijednost pohranjena za određeni ključ 614 00:45:05,000 --> 00:45:11,000 ako sam nešto pohraniti na $ arr [0], kažu, 615 00:45:11,000 --> 00:45:16,000 onda znam kad sam echo $ arr [0] opet 616 00:45:16,000 --> 00:45:19,000 Neću dobiti 0 tiskan kao i prije. 617 00:45:19,000 --> 00:45:24,000 Ja sam samo idući u dobiti. 618 00:45:24,000 --> 00:45:30,000 Dakle, ovo je u osnovi kaže da ja ne mogu imati $ arr [0] spremanja dvije različite vrijednosti. 619 00:45:30,000 --> 00:45:34,000 To se ne može pohraniti i 0 i stringa je, kao što je ovaj doslovno zamjenjuje 620 00:45:34,000 --> 00:45:38,000 ono što je bio na $ arr [0] ranije. 621 00:45:38,000 --> 00:45:43,000 Razlog zbog kojeg sam donijeti ovo gore je pokrenuti ga, vidjeti što se događa. 622 00:45:43,000 --> 00:45:47,000 Vidi da sam ovdje dobio 0 isprintati i onda ovdje dolje. 623 00:45:47,000 --> 00:45:51,000 Nema nova linija postoji, jer sam bio lijen i nije da se stavi u. 624 00:45:51,000 --> 00:45:54,000 Što je cool o tome možemo koristiti kao način 625 00:45:54,000 --> 00:46:00,000 uhvatiti ovu ideju skupa 626 00:46:00,000 --> 00:46:07,000 gdje ne možemo imati više ključeva unutar niza. 627 00:46:07,000 --> 00:46:10,000 Mi ne možemo imati identične tipke unutar polja. 628 00:46:10,000 --> 00:46:17,000 Ja ne mogu imati ključnu 0 i vrijednost 1 i ključnu 0 i vrijednost za 629 00:46:17,000 --> 00:46:21,000 ili tipku 0 i vrijednost istina. 630 00:46:21,000 --> 00:46:27,000 Tipke su sve postoji samo jedan ključ u polju. 631 00:46:27,000 --> 00:46:32,000 Iako možete imati istu vrijednost spremljenu 632 00:46:32,000 --> 00:46:35,000 više puta u polju pod različitim ključevima 633 00:46:35,000 --> 00:46:42,000 to nije moguće imati identične tipke više puta u svom PHP niz. 634 00:46:42,000 --> 00:46:47,000 >> Ako gledamo na sljedećem problemu, unique.php, 635 00:46:47,000 --> 00:46:51,000 gdje želimo otvoriti PHP datoteku 636 00:46:51,000 --> 00:46:54,000 sadrži popis nizova, jedan gudački po liniji, 637 00:46:54,000 --> 00:47:01,000 i želimo pronaći sve jedinstvene gudače u toj datoteci 638 00:47:01,000 --> 00:47:06,000 sve što morate učiniti je koristiti jedan od tih PHP polja 639 00:47:06,000 --> 00:47:12,000 i koristiti konce u spisu kao tipke na ovom polju 640 00:47:12,000 --> 00:47:17,000 i držati ažuriranju naše lepezu kao što smo pohraniti ove nove ključeve. 641 00:47:17,000 --> 00:47:22,000 Kao što smo pročitali svaku liniju iz datoteke možemo ga pohraniti u polju, 642 00:47:22,000 --> 00:47:28,000 i na kraju ćemo imati naše ključeva u našem polju 643 00:47:28,000 --> 00:47:34,000 sve jedinstvene žice unutar datoteke. 644 00:47:34,000 --> 00:47:37,000 Ima li to smisla? 645 00:47:37,000 --> 00:47:41,000 Idemo vidjeti kako to funkcionira. 646 00:47:41,000 --> 00:47:49,000 Mi ćemo otvoriti, prema spec., nova datoteka zove unique.php. 647 00:47:49,000 --> 00:47:58,000 Otvorite. Ups, ispričavam se, nova datoteka. 648 00:47:58,000 --> 00:48:03,000 Mi ćemo ga krenuti s iste početne i krajnje tagova. 649 00:48:03,000 --> 00:48:17,000 Mi ćemo ga spremiti u poglavlju 9, a mi ćemo ga zovu unique.php. 650 00:48:17,000 --> 00:48:25,000 Ok, sada uvećanje u. 651 00:48:25,000 --> 00:48:32,000 Ideja je otvoriti datoteku, 652 00:48:32,000 --> 00:48:38,000 pročitajte u datoteci redak po redak. 653 00:48:38,000 --> 00:48:46,000 Za svaku liniju u datoteci 654 00:48:46,000 --> 00:48:51,000 imat ćemo niz gdje smo 655 00:48:51,000 --> 00:49:03,000  linija kao naš ključ. 656 00:49:03,000 --> 00:49:09,000 I onda kada smo dobili na kraju ovdje 657 00:49:09,000 --> 00:49:17,000 $ Arr je tipke su jedinstvene linije 658 00:49:17,000 --> 00:49:25,000 iz spisa jer znamo da ako sam stavio liniju u ovom polju 659 00:49:25,000 --> 00:49:33,000 više puta to će samo zadržati preskakanja staru vrijednost, 660 00:49:33,000 --> 00:49:46,000 i zapravo možemo staviti polje liniju kao i sama tek tako. 661 00:49:46,000 --> 00:49:48,000 >> To je vrsta čudno. 662 00:49:48,000 --> 00:49:52,000 Mi pohranu istu ključnu vrijednost par iznova i iznova i iznova, 663 00:49:52,000 --> 00:50:00,000 ali budući da smo zajamčeno da će biti samo jedan ključ zove linija 664 00:50:00,000 --> 00:50:05,000 pa ako imamo datoteku koja kaže-file životinjskih zvukova i ima Vau, Vau, 665 00:50:05,000 --> 00:50:11,000 mijau, mijau, Moo, Moo, i svaki put čitamo životinja buku out 666 00:50:11,000 --> 00:50:15,000 kao potki, a mi ga pohraniti u našem polju smo dobili Vau, a zatim drugi put 667 00:50:15,000 --> 00:50:20,000 mi pohraniti Vau će prebrisati prvi put da smo ga pohranjen. 668 00:50:20,000 --> 00:50:25,000 Na kraju ćemo samo imati jedan ulazak u niz 669 00:50:25,000 --> 00:50:33,000 za svaki od životinjskih zvukova u našoj životinjskog zvukove datoteku. 670 00:50:33,000 --> 00:50:41,000 Nemojte vi osjećate sigurni da možete uhvatiti u koštac otvaranje datoteke u PHP-u? 671 00:50:41,000 --> 00:50:45,000 Jedan od načina da to učinite, idemo preko ovog brzo-jedan način da to učinite 672 00:50:45,000 --> 00:50:50,000 je s fopen, kao što smo vidjeli ranije. 673 00:50:50,000 --> 00:50:55,000 Možete fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Možete ga otvoriti u načinu čitanja, baš kao u C. 675 00:50:59,000 --> 00:51:02,000 To je jedan savršeno dobar način da to učinite. 676 00:51:02,000 --> 00:51:05,000 Također zatim za čitanje u datoteci redak po redak 677 00:51:05,000 --> 00:51:12,000 imaju iste funkcije, mnoge od njih, da ste radili u C. 678 00:51:12,000 --> 00:51:14,000 Imate fgets. 679 00:51:14,000 --> 00:51:17,000 Imate feof, iako mi se ne sviđa pomoću koje 680 00:51:17,000 --> 00:51:22,000 jer, ne zaboravite, da nije bio velik u C. 681 00:51:22,000 --> 00:51:25,000 Možete to učiniti na isti način, 682 00:51:25,000 --> 00:51:34,000 ali ovdje je stvarno super stvar. 683 00:51:34,000 --> 00:51:41,000 Žao nam je, ne želim to učiniti $ file, ali tu je funkcija zove datoteke u PHP-u, 684 00:51:41,000 --> 00:51:47,000 i ova funkcija ovdje je super jer čita cijeli sadržaj 685 00:51:47,000 --> 00:51:52,000 spisa koje ste naveli, tako some_file.txt, 686 00:51:52,000 --> 00:51:56,000 čita cijeli sadržaj te datoteke u niz 687 00:51:56,000 --> 00:52:03,000 i onda vam omogućuje da ponove preko njega, što je prilično divan. 688 00:52:03,000 --> 00:52:07,000 >> Ako idemo, primjerice, na našim web pregledniku 689 00:52:07,000 --> 00:52:14,000 i mi gledamo na Googleu za PHP datoteku 690 00:52:14,000 --> 00:52:23,000 možete vidjeti ovdje da naš priručnik kaže da je datoteka čita cijelu datoteku u niz, 691 00:52:23,000 --> 00:52:27,000 i možemo file_get_contents vratiti sadržaj datoteke kao niza, 692 00:52:27,000 --> 00:52:30,000 ali obično samo uzimajući ga kao polje je stvarno lijepo, jer ono što čini 693 00:52:30,000 --> 00:52:33,000 je to ga razbija tako da je svaki element 694 00:52:33,000 --> 00:52:37,000 u nizu jedan redak datoteke, 695 00:52:37,000 --> 00:52:41,000 pa ako gledamo datoteci 0, to je prva linija datoteke. 696 00:52:41,000 --> 00:52:46,000 Datoteka 1, druga linija, datoteke 2, treći red, i tako dalje i tako dalje. 697 00:52:46,000 --> 00:52:50,000 Zar ne bi bilo lijepo da je to bilo sve što je morao učiniti u C? 698 00:52:50,000 --> 00:52:53,000 Prilično divan. 699 00:52:53,000 --> 00:52:59,000 David je pokazao to u predavanju, a idiom pokazao je 700 00:52:59,000 --> 00:53:03,000 da uz naš standard za petlja-u PHP smo imali da 701 00:53:03,000 --> 00:53:09,000 za ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 i možete to učiniti u PHP previše, ista stvar- 703 00:53:16,000 --> 00:53:27,000 Također imamo ovu super konstrukt zvan foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach je stvarno zgodan kada Ponavljanje preko polja ili ovih struktura podataka 705 00:53:32,000 --> 00:53:36,000 jer vam omogućuje da izvući svaki element niza 706 00:53:36,000 --> 00:53:42,000 bez potrebe da ručno napraviti indeksne sebe, 707 00:53:42,000 --> 00:53:46,000 bez potrebe da ručno pridijeliti varijablu, to povećavati, 708 00:53:46,000 --> 00:53:51,000 izvucite vrijednost u polju u tom trenutku, jer to je vrlo uobičajena stvar za napraviti. 709 00:53:51,000 --> 00:53:54,000 >> Vjerojatno ste to učinili tona vremena kada ste radili C stvari 710 00:53:54,000 --> 00:54:00,000 tijekom semestra, tako da s ovim foreach 711 00:54:00,000 --> 00:54:06,000 možemo petlja preko ove datoteke niz, 712 00:54:06,000 --> 00:54:12,000 a sintaksa je da želimo sada petlju nad ovom polju 713 00:54:12,000 --> 00:54:18,000 i odrediti da varijabla ćemo koristiti za pohranu 714 00:54:18,000 --> 00:54:27,000 element ovog niza lokalno, lokalno na opseg ovog foreach petlji, 715 00:54:27,000 --> 00:54:32,000 se da ćemo to nazvati linija. 716 00:54:32,000 --> 00:54:38,000 Ako je datoteka samo riječima, a tu je jedna riječ u nizu 717 00:54:38,000 --> 00:54:43,000 mogli bismo ga nazvati riječ kao dobro, stvarno samo dati to ime, 718 00:54:43,000 --> 00:54:49,000 što god želite to nazvati, 719 00:54:49,000 --> 00:55:02,000 i onda unutar petlje možete raditi što god želite s ovim promjenjivim liniji. 720 00:55:02,000 --> 00:55:08,000 Ako to nije dovoljno da se vrijednost polja i vi želite dobiti 721 00:55:08,000 --> 00:55:17,000 indeks zajedno s njim možete odrediti naziv indeksa 722 00:55:17,000 --> 00:55:22,000 kao i vrijednost, i sada imate pristup dviju varijabli. 723 00:55:22,000 --> 00:55:26,000 Imate $ ja i linija 724 00:55:26,000 --> 00:55:30,000 gdje $ i je indeks u polju, 725 00:55:30,000 --> 00:55:38,000 a linija je linija koju dobiva iz spisa. 726 00:55:38,000 --> 00:55:49,000 Na primjer, ako smo htjeli isprintati echo linije 0 spisa kao ova, 727 00:55:49,000 --> 00:55:57,000 bismo mogli to učiniti upravo ovako, "Line $ ja u spis je $ redak" 728 00:55:57,000 --> 00:56:02,000 i ovdje je nešto što također nisu vidjeli još ni 729 00:56:02,000 --> 00:56:13,000 gdje Upravo sam potpuno preskočili cijelu ovu% s% d poslovanja 730 00:56:13,000 --> 00:56:16,000 da smo se morali baviti u C, a umjesto toga sam otišao ravno do 731 00:56:16,000 --> 00:56:19,000 pisanje varijable u redu u mom nizu. 732 00:56:19,000 --> 00:56:23,000 >> To se zove varijabla interpolacija, niz interpolacija 733 00:56:23,000 --> 00:56:26,000 gdje ste nadjev varijable u pravu, a PHP tumač 734 00:56:26,000 --> 00:56:31,000 je dovoljno pametan kad je čitanje kroz niz koji počinje s navodnicima- 735 00:56:31,000 --> 00:56:34,000 ne jednostruke navodnike, s jednim kotiraju žice ne možete to učiniti- 736 00:56:34,000 --> 00:56:38,000 ali s dvostrukim kotiraju žice kao što čita kroz to tražite varijabli. 737 00:56:38,000 --> 00:56:42,000 To je njima lov dolje, a ako to vidi varijable će se vrijednost varijable 738 00:56:42,000 --> 00:56:47,000 i stvari u nizu ako se može pretvoriti ga u string reprezentacije, 739 00:56:47,000 --> 00:56:51,000 što je prilično divan. 740 00:56:51,000 --> 00:56:56,000 Za sada, hajdemo komentirati iz ostatka svemu, 741 00:56:56,000 --> 00:57:00,000 spremiti ovo, i što možemo učiniti sada je možemo otvoriti datoteku 742 00:57:00,000 --> 00:57:06,000 koje možemo nazvati some_file.txt-let 's stvoriti novi file- 743 00:57:06,000 --> 00:57:15,000 i možemo staviti u hrpa gluposti stvari ovdje samo testirati sve, 744 00:57:15,000 --> 00:57:25,000 spasiti ga, to nazvati some_file.txt, kao što sam radiš ovdje na vrhu, 745 00:57:25,000 --> 00:57:33,000 i sad ako sam zumiranje samo kako bi bili sigurni da je sve u istom direktoriju- 746 00:57:33,000 --> 00:57:36,000 to izgleda kao da imam unique.php i some_file.txt u istom direktoriju. 747 00:57:36,000 --> 00:57:42,000 Ako sam pokrenuti php unique.php 748 00:57:42,000 --> 00:57:51,000 vidjeti kako to ispisuje svaku liniju u mojoj datoteci i ono što je linija? 749 00:57:51,000 --> 00:57:56,000 >> To je prilično snažan, zar ne? 750 00:57:56,000 --> 00:58:03,000 Gledajte, to je tri linije koda otvoriti datoteku. 751 00:58:03,000 --> 00:58:08,000 Pa, 4 linije koda. Ja ne mogu računati danas, jasno. 752 00:58:08,000 --> 00:58:13,000 Ali stvarno samo dva zanimljiva linija koda, jer druga dva su vitičastim zagradama, 753 00:58:13,000 --> 00:58:17,000 ali u ovom puno koda smo bili u mogućnosti otvoriti datoteku, iteraciju kroz njega, 754 00:58:17,000 --> 00:58:20,000 izvucite linije broj i liniju sama 755 00:58:20,000 --> 00:58:24,000 i isprintati. 756 00:58:24,000 --> 00:58:26,000 Cool stvari. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Imam pitanje o sintaksi. 758 00:58:28,000 --> 00:58:33,000 Dakle foreach ponude sa svakog liniji datoteku koju otvori, 759 00:58:33,000 --> 00:58:37,000 i onda kada želite napraviti stvari sa svakom pojedinom retku ste upravo to učiniti kao 760 00:58:37,000 --> 00:58:39,000 a zatim povezati vrijednost. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Što možete učiniti upravo ovdje-pitanje je 762 00:58:41,000 --> 00:58:46,000 the foreach ima veze s polja, pa foreach sintaksa 763 00:58:46,000 --> 00:58:51,000 stvarno foreach, i obavijest da nema prostora 764 00:58:51,000 --> 00:58:53,000 ili nešto između za i svaki. 765 00:58:53,000 --> 00:58:56,000 Oni moraju ići desno jedni pored drugih, 766 00:58:56,000 --> 00:59:00,000 a onda treba u niz, 767 00:59:00,000 --> 00:59:05,000 i onda imate ovu drugu ključnu riječ zove kao da mora biti tamo, 768 00:59:05,000 --> 00:59:11,000 i onda nakon što možete ili staviti jedan naziv varijable, 769 00:59:11,000 --> 00:59:14,000 u kojem slučaju ćeš biti čupanje vrijednosti niza, 770 00:59:14,000 --> 00:59:20,000 nisu indeksi, ili ako to učiniti kao što smo napisana u nastavku 771 00:59:20,000 --> 00:59:24,000 dobijete ključeve i vrijednosti. 772 00:59:24,000 --> 00:59:33,000 Imate foreach element niza ili par polja kao ključem u vrijednosti 773 00:59:33,000 --> 00:59:38,000 ili kao samo vrijednost. 774 00:59:38,000 --> 00:59:40,000 Ovisno o tome što vam je potrebno, ako ne trebaju tipke, 775 00:59:40,000 --> 00:59:42,000 onda možete ići s vrijednosti. 776 00:59:42,000 --> 00:59:45,000 Ako želite tipke možete ići s njima previše. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Također sam shvatio da nikad proglašen ja ili liniju. 778 00:59:48,000 --> 00:59:51,000 Kakav je to čak i znam što su oni? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Što misliš proglasiti? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Mi nikada im je rekao ono što sam ili crta znači. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Mi nikada rekla računalo ono što ja ili crta znači u smislu- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] To su oni indeksirane ili da they're- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Mi nikada rekao da je to trebala biti indeks ili ključ i vrijednost, 784 01:00:09,000 --> 01:00:13,000 a to je zato što je PHP tumač. 785 01:00:13,000 --> 01:00:17,000 Ovo služi kao deklaracije i kaže ok, ključ će biti 786 01:00:17,000 --> 01:00:20,000 varijabla zove i pohranjen u varijablu zove ja. 787 01:00:20,000 --> 01:00:24,000 Vrijednost će biti pohranjen u varijablu liniji, 788 01:00:24,000 --> 01:00:28,000 pa to služi kao deklaraciji tih varijabli 789 01:00:28,000 --> 01:00:35,000 i kaže $ ja je ključ, i $ linija je vrijednost. 790 01:00:35,000 --> 01:00:37,000 Da, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Ako se tipke ne radi se brojčano 792 01:00:41,000 --> 01:00:44,000 kako se to odlučiti što bi ona će ispisati sve? 793 01:00:44,000 --> 01:00:47,000 Je li to baš kao nalog da se upisao u? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Ajmo dati ga probati. 795 01:00:51,000 --> 01:00:57,000 Idemo stvoriti varijablu pod nazivom arr, 796 01:00:57,000 --> 01:01:06,000 i mi možemo učiniti ide na sedam. 797 01:01:06,000 --> 01:01:19,000 Recimo 0 do drugog niza sa 1, 2, ili jabuka. 798 01:01:19,000 --> 01:01:30,000 Recimo 7 ide na jedan, b ide na dva, 799 01:01:30,000 --> 01:01:39,000 i 3 ide do 4. 800 01:01:39,000 --> 01:01:44,000 To je vrsta luda potrazi primjer jer si mi pobrkala 801 01:01:44,000 --> 01:01:47,000 žice i prirodna broja posvuda. 802 01:01:47,000 --> 01:01:50,000 Nema stvarne kako bi se ovaj niz. 803 01:01:50,000 --> 01:01:55,000 Mislim, mogli bismo naručiti sve abecednim redom po tipkama. 804 01:01:55,000 --> 01:01:57,000 Mi smo mogli naručiti sve po abecednom redu vrijednosti. 805 01:01:57,000 --> 01:02:00,000 >> Mogli bismo pokušati i uzeti u obzir da su neki nizovi, neki su Ints, 806 01:02:00,000 --> 01:02:03,000 i da bismo mogli probati i pretvoriti ih sve na istu vrstu i vidjeti što se događa, 807 01:02:03,000 --> 01:02:09,000 ili bismo ih mogli uzeti u obzir u vrijednosti u kojoj smo ih već upisana 808 01:02:09,000 --> 01:02:14,000 gdje smo stavili ovog tipa u prvi, ovaj tip u drugi, ovaj tip u treći, 809 01:02:14,000 --> 01:02:19,000 ovaj tip u četvrti, et cetera. 810 01:02:19,000 --> 01:02:23,000 Idemo vidjeti što se događa kada smo pokrenuti ovaj kod. 811 01:02:23,000 --> 01:02:29,000 Ako mi se pomaknite prema dolje i učiniti istu vrstu stvari, 812 01:02:29,000 --> 01:02:31,000 a ovdje to nije ispisuje nove linije. 813 01:02:31,000 --> 01:02:35,000 Kad je pročitao stvari iz spisa je, uključujući nove linije u vrijednosti, 814 01:02:35,000 --> 01:02:38,000 koji je razlog zašto ga isprintati lijepo, a ovdje to nije, 815 01:02:38,000 --> 01:02:40,000 tako da je razlog zašto je sve smushed zajedno. 816 01:02:40,000 --> 01:02:44,000 Dodajmo u toj novoj liniji samo da bi se stvari lijepo. 817 01:02:44,000 --> 01:02:51,000 Neka je to repriza, pa ovdje 818 01:02:51,000 --> 01:02:54,000 pogled na ono što se dogodilo. 819 01:02:54,000 --> 01:03:00,000 To ispisati sve u redu u kojem smo ga staviti u nizu. 820 01:03:00,000 --> 01:03:10,000 To uključuje očuvanje reda u tom smislu. 821 01:03:10,000 --> 01:03:15,000 >> Vraćajući se na ovaj problem uniques 822 01:03:15,000 --> 01:03:20,000 gdje želimo biti u mogućnosti ponoviti više datoteka, 823 01:03:20,000 --> 01:03:24,000 a mi ćemo mu dati some_file.txt, 824 01:03:24,000 --> 01:03:27,000 i da ćemo ponoviti preko njega kao što je ovaj. 825 01:03:27,000 --> 01:03:31,000 Mi smo rekli da smo htjeli koristiti niz kako bi bili sigurni da ćemo je dobio sve 826 01:03:31,000 --> 01:03:36,000 jedinstvene linije od tamo, i da bismo mogli učiniti da stvarno lako 827 01:03:36,000 --> 01:03:49,000 po samo spremanje u niz koji smo naravno proglasi izvan opsega petlju, 828 01:03:49,000 --> 01:03:55,000 a mi je rekao da ako smo koristili linije u datoteci kao tipke u našem polju 829 01:03:55,000 --> 01:03:59,000 ako smo ušli duplikat liniju ćemo biti preskakanja prethodnu vrijednost. 830 01:03:59,000 --> 01:04:08,000 To nije uvijek moguće imati dvije tipke koje su identične u istom polju. 831 01:04:08,000 --> 01:04:13,000 Mi možemo učiniti upravo to. 832 01:04:13,000 --> 01:04:17,000 Mi ćemo se riješiti ove jeke izjavi ovdje. 833 01:04:17,000 --> 01:04:24,000 Ovdje smo pohranu liniju u datoteci u našem polju 834 01:04:24,000 --> 01:04:28,000 se koriste kao ključ. 835 01:04:28,000 --> 01:04:32,000 Ništa na njega, i ispada da mi ni ne treba taj ključ. 836 01:04:32,000 --> 01:04:38,000 Mi ne trebamo da sam promjenjiva. 837 01:04:38,000 --> 01:04:43,000 U ovom trenutku, ako smo napraviti još jedan foreach petlju 838 01:04:43,000 --> 01:04:48,000 i bili smo na petlji preko svake ARR 839 01:04:48,000 --> 01:04:56,000 i linija sada ako mi odjekuju-Ups, ispričavam se. 840 01:04:56,000 --> 01:05:00,000 Mi ne možemo koristiti zarez. Moramo koristiti kao ključnu riječ. 841 01:05:00,000 --> 01:05:05,000 Sada ako mi odzvanjaju liniju bismo trebali dobiti sve jedinstvene riječi u datoteci. 842 01:05:05,000 --> 01:05:10,000 Ako idemo do some_file.txt, 843 01:05:10,000 --> 01:05:19,000 i recimo radimo jabuka, banana, jabuka, jabuke, banane, 844 01:05:19,000 --> 01:05:22,000 ako ćemo ispis sve jedinstvene riječi u ovoj datoteci smo samo trebali dobiti 845 01:05:22,000 --> 01:05:30,000 jabuka i banana za ispis. 846 01:05:30,000 --> 01:05:36,000 Ako ćemo spasiti ovaj, sada ovdje ćemo sliku natrag u, 847 01:05:36,000 --> 01:05:44,000 php unique.php, i ta-da. 848 01:05:44,000 --> 01:05:51,000 Uspješno smo uniqued datoteku. 849 01:05:51,000 --> 01:05:55,000 >> Završni dio ovog problema je vas traži da sortirati ovaj niz prije nego što ga ispisati 850 01:05:55,000 --> 01:05:58,000 jer u ovom jednostavnom primjeru da smo upravo učinili 851 01:05:58,000 --> 01:06:04,000 bili smo sretni u smislu da je datoteka 852 01:06:04,000 --> 01:06:06,000 jesmo ovo neprirodan primjer s jabukama i bananama. 853 01:06:06,000 --> 01:06:08,000 To je već riješeno. 854 01:06:08,000 --> 01:06:19,000 No, pomoću jednostavnog sortiranja funkciju možete sortirati niz, što je prilično divan. 855 01:06:19,000 --> 01:06:24,000 Konačna stvar koju sam želio razgovarati s vama o stvarno brzo 856 01:06:24,000 --> 01:06:31,000 je da je ova vrsta PHP je sve dobro i dobro, i to je super zgodan 857 01:06:31,000 --> 01:06:43,000 znati kako to učiniti ako ikad trebate učiniti malo, brze stvari programski. 858 01:06:43,000 --> 01:06:48,000 Na primjer, ako moram napisati program koji, kažu, 859 01:06:48,000 --> 01:06:53,000 stavlja svima na dijelove ne idem ići i pisati ga u C. 860 01:06:53,000 --> 01:06:55,000 To će biti duga. 861 01:06:55,000 --> 01:06:57,000 To će biti vrsta boli, osobito ako postoje datoteke uključene, 862 01:06:57,000 --> 01:07:00,000 baš kao što ste vi vidjeli. 863 01:07:00,000 --> 01:07:05,000 To je tako lijepo da sa samo ovaj puno koda upravo ovdje 864 01:07:05,000 --> 01:07:08,000 bili smo u mogućnosti da parati kroz datoteku, izvadi sve jedinstvene vrijednosti 865 01:07:08,000 --> 01:07:11,000 i ispisati ih natrag. 866 01:07:11,000 --> 01:07:16,000 >> Međutim, za svoje zadatke, za svoje projekte, 867 01:07:16,000 --> 01:07:20,000 ako ste izgradnji web stranice s PHP moć da 868 01:07:20,000 --> 01:07:25,000 vodimo naše PHP datoteke putem ovog prevoditelja, 869 01:07:25,000 --> 01:07:29,000 i tumač obrađuje sve unutar PHP oznake, 870 01:07:29,000 --> 01:07:34,000 ostavljajući sve ostalo netaknuto i pljuvanje iz rezultata. 871 01:07:34,000 --> 01:07:40,000 Možemo to učiniti za izgradnju HTML programski. 872 01:07:40,000 --> 01:07:46,000 Sada, ako se vratimo na spec., posljednji problem u spec. 873 01:07:46,000 --> 01:07:56,000 govori o ovoj ideji koncentracija 874 01:07:56,000 --> 01:08:01,000 i stvaranje padajući izbornik, 875 01:08:01,000 --> 01:08:06,000 koji ste svibanj ili svibanj ne želite učiniti, ovisno o tome što vaš konačni projekt radi, 876 01:08:06,000 --> 01:08:13,000 koji omogućuje korisniku odabir iz popisa svih mogućih koncentracija 877 01:08:13,000 --> 01:08:15,000 Njihov jedan koncentracija. 878 01:08:15,000 --> 01:08:21,000 Sada, to je vrsta boli upisati ovo 879 01:08:21,000 --> 01:08:25,000 i moramo učiniti sve to ručno, pogotovo kada ste da biste bili sigurni 880 01:08:25,000 --> 01:08:28,000 da imate sve kutnika na pravom mjestu i sve citati na pravom mjestu, 881 01:08:28,000 --> 01:08:34,000 pa s PHP možete to učiniti programatski, a možete to učiniti vrlo brzo. 882 01:08:34,000 --> 01:08:36,000 >> Idemo vidjeti kako to učiniti. 883 01:08:36,000 --> 01:08:42,000 Mi ćemo otvoriti novu datoteku. 884 01:08:42,000 --> 01:08:46,000 Mi ćemo staviti u našim PHP tagova. 885 01:08:46,000 --> 01:08:53,000 Mi ćemo ga nazvati concentrations.php, 886 01:08:53,000 --> 01:08:58,000 i sada kada radite to, vrsta dobra stvar razmišljati o tome 887 01:08:58,000 --> 01:09:02,000 kada pokušavate miješati i odgovaraju vašem PHP i svoj HTML 888 01:09:02,000 --> 01:09:08,000 je figuring out, ok, što je dio koji želim programski generirati? 889 01:09:08,000 --> 01:09:11,000 Što je dio koji sam programatski može generirati? 890 01:09:11,000 --> 01:09:17,000 Istina je da možete učiniti sve vaše HTML 891 01:09:17,000 --> 01:09:19,000 unutar PHP blokova. 892 01:09:19,000 --> 01:09:24,000 Možete jeka sve HTML kao žice. 893 01:09:24,000 --> 01:09:30,000 Na primjer, ako želim početi raditi Select oznake unutar PHP 894 01:09:30,000 --> 01:09:46,000 Ja mogu reći odjek, kažu odaberite ime = koncentraciju, 895 01:09:46,000 --> 01:09:49,000 i onda dolje sam mogao imati još oznaku echo 896 01:09:49,000 --> 01:09:57,000 ili drugi eho zove blizak odabir. 897 01:09:57,000 --> 01:10:00,000 Ovo je jedan od načina da to učini, jer ono to doslovno će učiniti 898 01:10:00,000 --> 01:10:09,000 je isprintati ovaj niz kad je prolazila kroz PHP tumača, 899 01:10:09,000 --> 01:10:12,000 tako da rezultat će biti HTML. 900 01:10:12,000 --> 01:10:18,000 Ako sam spremiti ovu datoteku kao što je upravo sada 901 01:10:18,000 --> 01:10:24,000 i ja pokrenuti php concentrations.php 902 01:10:24,000 --> 01:10:26,000 pogled na ono što sam dobio. 903 01:10:26,000 --> 01:10:30,000 Dobio sam ovu otvorenu bliski odaberite oznaku. 904 01:10:30,000 --> 01:10:36,000 >> Ako mi je to učiniti i ja bili spasiti ovaj rezultat u datoteku, 905 01:10:36,000 --> 01:10:45,000 recimo, concentrations.html-čekati, to izgleda kao l je otišao na drugu stranu- 906 01:10:45,000 --> 01:11:02,000 sada, ako sam otvoriti ovdje concentrations.html vidite imam valjanu HTML datoteku. 907 01:11:02,000 --> 01:11:05,000 Je li to vrsta čudno? 908 01:11:05,000 --> 01:11:09,000 Mi smo koristeći PHP za stvaranje HTML, stvoriti valjanu HTML. 909 01:11:09,000 --> 01:11:13,000 Način na koji smo to radite je samo smo da PHP ispis 910 01:11:13,000 --> 01:11:16,000 HTML koji želimo da ispisati. 911 01:11:16,000 --> 01:11:20,000 Ovo je doslovno kako PHP web stranice rade. 912 01:11:20,000 --> 01:11:24,000 Kada posjetite web stranice koje vam šalje da nešto poput 913 01:11:24,000 --> 01:11:30,000 nešto, nešto, nešto dot com udarac index.php 914 01:11:30,000 --> 01:11:33,000 Računalo je doslovno pozivanje index.php, 915 01:11:33,000 --> 01:11:38,000 ga voditi kroz PHP prevoditelja, i što god junk izlazi 916 01:11:38,000 --> 01:11:49,000 to je slanje natrag na pregledniku i rekao hej, preglednik, to tumači kao HTML. 917 01:11:49,000 --> 01:11:54,000 Lijepa stvar je da to može biti bol stalno pisati odjek, eho, jeka, jeka 918 01:11:54,000 --> 01:11:59,000 i priložiti sve u navodnike kao što je ovaj, pa ako želite pisati 919 01:11:59,000 --> 01:12:04,000 HTML koji će biti statična sami možete to učiniti ovako, 920 01:12:04,000 --> 01:12:16,000 staviti ga van, zatvorite ga, 921 01:12:16,000 --> 01:12:21,000 i onda ovdje samo staviti unutar PHP oznake što znate 922 01:12:21,000 --> 01:12:26,000 Želite li programski generirati, au ovom slučaju to je ta opcija tagove 923 01:12:26,000 --> 01:12:31,000 da su bol za generiranje. 924 01:12:31,000 --> 01:12:37,000 >> Na primjer, možemo generirati tisuću oznake opcija 925 01:12:37,000 --> 01:12:48,000 radeći nešto ovako, $ I <1000, ja + + 926 01:12:48,000 --> 01:13:00,000 i govoreći vrijednost echo opciju = $-ups, ja to ne mogu učiniti. 927 01:13:00,000 --> 01:13:03,000 Pa, neka je dati ga probati i vidjeti što se događa. 928 01:13:03,000 --> 01:13:22,000 $ Ja i onda kaže $ i 01:13:27,000 Umjesto da se tip iz tog opciju oznaku tisuću različitih puta 930 01:13:27,000 --> 01:13:33,000 Ja sam koristeći PHP kod da ga generirati automatski, programski. 931 01:13:33,000 --> 01:13:38,000 Vrsta divan. Da. 932 01:13:38,000 --> 01:13:41,000 Sjećam se to spominje u bilo predavanju ili prohod, 933 01:13:41,000 --> 01:13:43,000 ali ono što je razlika između navodnicima, 934 01:13:43,000 --> 01:13:45,000 normalne i one su ti pojedinačni stvari? 935 01:13:45,000 --> 01:13:49,000 To je zapravo nešto što sam učinio krivo da se ovdje ću vam pokazati. 936 01:13:49,000 --> 01:13:52,000 Pojedine citati ne dopuštaju nikakve posebne znakove, 937 01:13:52,000 --> 01:13:57,000 tako da je sve unutar jednog citiranog niza se tumačiti doslovno. 938 01:13:57,000 --> 01:14:02,000 Ako sam imao \ n unutrašnjost jednostruke navodnike i ja spremili to, na primjer, 939 01:14:02,000 --> 01:14:07,000 a sada idem dolje i pokrenuti ga- 940 01:14:07,000 --> 01:14:12,000 Ups, gdje idem? 941 01:14:12,000 --> 01:14:19,000 Oh, to je zato što sam zaboravio $. 942 01:14:19,000 --> 01:14:25,000 >> Sada, ako sam otvoriti-zapravo, ovdje, mi ćemo riješiti ga upišete u datoteku. 943 01:14:25,000 --> 01:14:27,000 Samo ćemo ga pročitati. 944 01:14:27,000 --> 01:14:34,000 Ovdje možete vidjeti da sam dobio ovaj doslovni \ n u nizu, kao što nije stvarna nove linije, 945 01:14:34,000 --> 01:14:38,000 i isto tako, umjesto da zapravo interpolirati vrijednost ove varijable 946 01:14:38,000 --> 01:14:42,000 to mi je dao $ ja sama, što je vrsta boli. 947 01:14:42,000 --> 01:14:46,000 Obrnuto je koristiti dvostruke navodnike, 948 01:14:46,000 --> 01:14:52,000 i onda kada koristite dvostruke navodnike To će zapravo 949 01:14:52,000 --> 01:14:56,000 ispravno interpolirati vrijednosti svih tih varijabli ovdje 950 01:14:56,000 --> 01:14:59,000 i prepoznati n \ da se novi linija koja je 951 01:14:59,000 --> 01:15:02,000 a ne \ n. 952 01:15:02,000 --> 01:15:07,000 Koristeći jednu one je lijepo kad imate 953 01:15:07,000 --> 01:15:10,000 likovi koji bi se mogli protumačiti kao posebnih znakova jer onda ne moraju 954 01:15:10,000 --> 01:15:15,000 im pobjeći stalno. 955 01:15:15,000 --> 01:15:18,000 Stvari se mogu dobiti messy, a često i način na koji sam to učiniti, 956 01:15:18,000 --> 01:15:24,000 samo da bi se stvari lako, da ako ću imati ništa 957 01:15:24,000 --> 01:15:31,000 HTML sviđa u mom kodu ću uključiti edit roku jednostruke navodnike 958 01:15:31,000 --> 01:15:36,000 , a zatim koristiti ovaj operator ulančavanja 959 01:15:36,000 --> 01:15:43,000 da spojite varijable u. 960 01:15:43,000 --> 01:15:47,000 Ovo je još jedan način to radiš 961 01:15:47,000 --> 01:15:52,000 gdje smo dobili točku koja će povezati to je niz 962 01:15:52,000 --> 01:15:56,000 s tim s s ovim, 963 01:15:56,000 --> 01:15:59,000 i sad nemam pobjeći ove dvostruke navodnike. 964 01:15:59,000 --> 01:16:02,000 Ja ne moram koristiti ovaj momak pobjeći. 965 01:16:02,000 --> 01:16:08,000 Oni su doslovno će biti tiskan kao navodnicima i onda ovaj momak ovdje. 966 01:16:08,000 --> 01:16:11,000 Ovo je još jedan način miješanje sve zajedno. 967 01:16:11,000 --> 01:16:14,000 >> [Studentski] Također, kada odjek gettype nema navodnici uopće. 968 01:16:14,000 --> 01:16:22,000 Točno, tako odjek je vrsta posebno u smislu da vam ne trebaju zagrade. 969 01:16:22,000 --> 01:16:29,000 Vi ne trebate imati navodnike nužno oko varijabli, 970 01:16:29,000 --> 01:16:37,000 kao da je vrijedi reći echo $ ja, i to se događa da se to tumači kao niz. 971 01:16:37,000 --> 01:16:44,000 To će učiniti ekipi, tako da smo mogli to učiniti, a to je valjan previše, ali mi to ne treba. 972 01:16:44,000 --> 01:16:48,000 To je opcija. 973 01:16:48,000 --> 01:16:53,000 U ovotjednom problema setu paziti na puno ove vrste stvari 974 01:16:53,000 --> 01:16:58,000 gdje ste kombinirajući HTML sa PHP 975 01:16:58,000 --> 01:17:08,000 baš kao što je to, a sada ako mi pomicanje natrag i trčimo ovaj 976 01:17:08,000 --> 01:17:13,000 možemo vidjeti da imamo hrpu opcija vrijednosti 977 01:17:13,000 --> 01:17:15,000 samo da je dobio isprintati. 978 01:17:15,000 --> 01:17:20,000 Imamo sve ovo HTML koji je dobio generirana jako brzo za nas. 979 01:17:20,000 --> 01:17:22,000 Ja ću ga ostaviti kao vježba. 980 01:17:22,000 --> 01:17:24,000 To je vrlo sličan file čitanju koje smo napravili ranije. 981 01:17:24,000 --> 01:17:31,000 >> Tu je concentrations.txt datoteka koje možete povući prema dolje od CDN, 982 01:17:31,000 --> 01:17:34,000 , a možete ga otvoriti koristeći istu foreach trik koji smo radili ranije, 983 01:17:34,000 --> 01:17:39,000 i foreach imate samo jeka opciju i priključite 984 01:17:39,000 --> 01:17:44,000 odgovarajuće vrijednosti, odgovarajuće tipke i indeksi, 985 01:17:44,000 --> 01:17:49,000 i onda ćete dobiti padajući koji doslovno stvara 986 01:17:49,000 --> 01:17:54,000 programatski za sve vas od različitih koncentracija na Harvardu. 987 01:17:54,000 --> 01:17:57,000 Zgodan stvar za imati. 988 01:17:57,000 --> 01:18:02,000 Tu je puno konfiguracijske stvari za ovaj zadatak. 989 01:18:02,000 --> 01:18:07,000 Ako niste učinili već poduzeti sljedeći pola sata, sat, 990 01:18:07,000 --> 01:18:10,000 neko vrijeme večeras definitivno sigurno, 991 01:18:10,000 --> 01:18:14,000 šetati spec. problema skup, 992 01:18:14,000 --> 01:18:20,000 vidjeti što se događa s postavljanju vhosts, lokalni domaćin, sve te stvari. 993 01:18:20,000 --> 01:18:24,000 Jedna stvar za naglasiti sada je pravo da 994 01:18:24,000 --> 01:18:30,000 u većini problematičnih setovima smo bili događa u vašem Dropbox mapu 995 01:18:30,000 --> 01:18:34,000 a zatim preuzimanje zip datoteku problema set i to unzipping. 996 01:18:34,000 --> 01:18:36,000 Za ove problematike setu ne žele. 997 01:18:36,000 --> 01:18:40,000 Želite li ići u tom vhosts direktorij. 998 01:18:40,000 --> 01:18:45,000 Vi ćete želite ići u vhosts i otići u lokalnu domaćina direktorij unutar njega, 999 01:18:45,000 --> 01:18:50,000 i to je mjesto gdje ćete želite srušiti zip datoteku, 1000 01:18:50,000 --> 01:18:55,000 ga unzip, i dobiti spremna ići. 1001 01:18:55,000 --> 01:18:57,000 Morat ćete slijediti korake usko. 1002 01:18:57,000 --> 01:19:02,000 >> Ako imate bilo kakvih pitanja, pošaljite e-mail, objaviti ga na razgovarali, doći do uredovnog vremena. 1003 01:19:02,000 --> 01:19:08,000 Hvala momci. Sljedeći tjedan ćemo imati sjednicu gostiju za kviz. 1004 01:19:08,000 --> 01:19:12,000 Uživajte u svoj zadnji set problema. Nadam se da sve ide jako dobro. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]