1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Artikel 8] [Minder Gerieflik] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvard Universiteit] 3 00:00:04,000 --> 00:00:08,000 [Hierdie is CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Welkom by ons tweede laaste gedeelte. 5 00:00:11,000 --> 00:00:13,000 In hierdie week gaan ons om te praat oor PHP, en dan volgende week 6 00:00:13,000 --> 00:00:17,000 sal ons doen 'n bietjie hersiening vir Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Ons gaan om te begin op bladsy 3 van die probleem stel pak, 8 00:00:20,000 --> 00:00:28,000 en ons sal werk deur middel van die afdeling van die vrae redelik vinnig. 9 00:00:28,000 --> 00:00:34,000 Op bladsy 3, begin ons praat oor die verskil tussen C en PHP 10 00:00:34,000 --> 00:00:38,000 in die sin dat PHP is 'n dinamiese getikte taal, 11 00:00:38,000 --> 00:00:42,000 dat C staties getik, 12 00:00:42,000 --> 00:00:46,000 en het regtig vinnig iemand enige kodering in iets soos PHP gedoen 13 00:00:46,000 --> 00:00:51,000 of Python of Ruby voor, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Heeltemal nuut? Okay. 15 00:00:53,000 --> 00:00:56,000 >> Al hierdie tale wat ek nou net genoem 16 00:00:56,000 --> 00:01:01,000 baie verskillende tale soos C en C + + en Java 17 00:01:01,000 --> 00:01:04,000 in die sin dat wanneer jy 'n veranderlike verklaar jy nie te verklaar 18 00:01:04,000 --> 00:01:09,000 watter soort van 'n veranderlike is dit, sodat ons in C vasgekeer was om te sê altyd 19 00:01:09,000 --> 00:01:13,000 dit gaan om 'n int veranderlike wees, of dit gaan om 'n char * veranderlike, 20 00:01:13,000 --> 00:01:16,000 terwyl met PHP, Python, Ruby, 21 00:01:16,000 --> 00:01:20,000 met 'n baie van hierdie meer moderne tale wat jy het nie om dit te doen op alle. 22 00:01:20,000 --> 00:01:24,000 Jy moet net jou veranderlike verklaar, en in die geval van PHP 23 00:01:24,000 --> 00:01:28,000 jy verklaar dat dit is 'n veranderlike deur dit met 'n $ teken te prefixing, 24 00:01:28,000 --> 00:01:35,000 en dan die tipe van die veranderlike word bepaal deur watter waarde dit hou, 25 00:01:35,000 --> 00:01:38,000 wat is 'n soort van cool. 26 00:01:38,000 --> 00:01:44,000 Om te speel met dit 'n bietjie, het ons monster PHP-kode hier 27 00:01:44,000 --> 00:01:47,000 tussen die begin en einde tags. 28 00:01:47,000 --> 00:01:53,000 Ons gebruik hierdie soort van soos HTML in die sin dat 29 00:01:53,000 --> 00:01:56,000 ons het hierdie hoek tussen hakies hier om oop te maak en te sluit. 30 00:01:56,000 --> 00:01:58,000 Jy sal sien dit met HTML. 31 00:01:58,000 --> 00:02:03,000 Jy dieselfde soort van die sintaksis met XML te sien. 32 00:02:03,000 --> 00:02:06,000 >> Dit dui op die begin van 'n PHP-blok. 33 00:02:06,000 --> 00:02:09,000 Dit? Php is spesifiek vir PHP. 34 00:02:09,000 --> 00:02:16,000 Ons is alles met a> as goed nie?. 35 00:02:16,000 --> 00:02:22,000 Kom ons open 'n lêer in ons apparaat gebruik te maak van alles wat jy wil. 36 00:02:22,000 --> 00:02:25,000 In hierdie pakkie sê te roep dynamic.php. 37 00:02:25,000 --> 00:02:29,000 Om die waarheid te sê, kan jy noem dit wat jy wil, maar die lêer naam sal kom 38 00:02:29,000 --> 00:02:34,000 en belangrik wees later, sodat net onthou alles wat jy noem dit. 39 00:02:34,000 --> 00:02:36,000 Ek gaan oor te skakel na die toestel, 40 00:02:36,000 --> 00:02:43,000 en ek gaan om 'n gids te maak vir 41 00:02:43,000 --> 00:02:48,000 artikel 9 Ek glo ons is nou. 42 00:02:48,000 --> 00:02:51,000 En ons gaan in artikel 9, 43 00:02:51,000 --> 00:02:54,000 en ek gaan gedit te gebruik. 44 00:02:54,000 --> 00:02:59,000 Kom ons kyk, gedit, en ek gaan my dynamic.php te roep. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Binne dynamic.php, want dit is 'n PHP-lêer 47 00:03:06,000 --> 00:03:09,000 en ek wil dit uit te voer deur middel van die PHP-interpreter 48 00:03:09,000 --> 00:03:12,000 Ek nodig het om alles te begin met dié oop tags, 49 00:03:12,000 --> 00:03:17,000 so ek gaan daardie reg om weg te begin, 50 00:03:17,000 --> 00:03:23,000 gee myself 'n bietjie ruimte in tussen die tags, 51 00:03:23,000 --> 00:03:26,000 en dan die punt van hierdie oefening is om te speel met 52 00:03:26,000 --> 00:03:34,000 hierdie funksie genoem getSoort, so getSoort, hierdie funksie reg hier. 53 00:03:34,000 --> 00:03:38,000 >> Let daarop dat daar is geen onderstreep of ruimte of koppelteken of iets soos dit 54 00:03:38,000 --> 00:03:42,000 skei van die 2 woorde, en tik, net een woord heeltemal. 55 00:03:42,000 --> 00:03:46,000 Maar wat dit sal doen as ek in 'n veranderlike getSoort, 56 00:03:46,000 --> 00:03:51,000 sê $ var of $ x, 57 00:03:51,000 --> 00:03:55,000 Dit sal vir my soort van in 'n debugging format 58 00:03:55,000 --> 00:03:59,000 wat die naam van daardie soort is. 59 00:03:59,000 --> 00:04:03,000 Ons gaan om hier te eksperimenteer. 60 00:04:03,000 --> 00:04:07,000 In die besonder, as jy kyk terug by die pset spec 61 00:04:07,000 --> 00:04:11,000 ons het 'n paar verskillende lyne van die kode hier. 62 00:04:11,000 --> 00:04:16,000 In die eerste reël van die kode wat ons hierdie veranderlike, $ var inisialiseer, 63 00:04:16,000 --> 00:04:21,000 gelyk wees tot 7, en dan het ons hierdie printf lyn 64 00:04:21,000 --> 00:04:25,000 wat sê hey, printf var is leeg. 65 00:04:25,000 --> 00:04:29,000 Printf is een van die talle maniere waarop ons kan druk dinge in PHP. 66 00:04:29,000 --> 00:04:33,000 Dikwels sal jy sien die eggo funksie gebruik in plaas van printf, 67 00:04:33,000 --> 00:04:40,000 maar printf ons almal vertroud is met is kodering in C vir 'n rukkie. 68 00:04:40,000 --> 00:04:42,000 Wat jy eintlik kan doen laat ons sien of kopieer en plak werk. 69 00:04:42,000 --> 00:04:46,000 Ek gaan om te gee dit 'n probeer. 70 00:04:46,000 --> 00:04:52,000 Ons sal terug te gaan oor na die toestel. 71 00:04:52,000 --> 00:05:00,000 Okay, en daar gaan ons. 72 00:05:00,000 --> 00:05:05,000 En spasiëring is 'n bietjie funky, maar hier gaan ons. 73 00:05:05,000 --> 00:05:08,000 Ons het hierdie kode hier. 74 00:05:08,000 --> 00:05:11,000 >> [Studente] Is dit nie goeie styl blad dit? 75 00:05:11,000 --> 00:05:13,000 Jammer? 76 00:05:13,000 --> 00:05:15,000 [Studente] Is dit konvensionele na tab dit? 77 00:05:15,000 --> 00:05:21,000 Reg, sodat Sam vra of dit se Konvensie tab of nie. 78 00:05:21,000 --> 00:05:23,000 Tipies ja. 79 00:05:23,000 --> 00:05:26,000 In hierdie geval het ek gekies het om dit nie te doen nie. 80 00:05:26,000 --> 00:05:33,000 Honestly, sal jy sien verskillende dinge tussen verskillende programmeerders. 81 00:05:33,000 --> 00:05:40,000 PHP is tipies gebruik word dikwels in kombinasie met HTML 82 00:05:40,000 --> 00:05:45,000 en ander tale, en so die druk soms sal kyk 'n bietjie funky 83 00:05:45,000 --> 00:05:50,000 as jy streepje binne PHP begin en einde tags. 84 00:05:50,000 --> 00:05:53,000 Dit hang af. 85 00:05:53,000 --> 00:05:56,000 In hierdie geval is die kopieer en plak nie plak die tabs in vir my, 86 00:05:56,000 --> 00:06:02,000 maar dit is beslis nie, soos jy sê, maak dit duidelik. 87 00:06:02,000 --> 00:06:06,000 Alles reg, as jy nie stoor hierdie kode in dynamic.php 88 00:06:06,000 --> 00:06:10,000 dan wat jy kan doen is kom neer op jou terminale venster waar ek is reg hier onder 89 00:06:10,000 --> 00:06:17,000 in gedit, en die ekwivalent van die opstel te doen 90 00:06:17,000 --> 00:06:20,000 die gebruik van maak en dan loop jou kode in C 91 00:06:20,000 --> 00:06:25,000 al wat jy hoef te doen met die PHP-lêer is begin die PHP-interpreter, 92 00:06:25,000 --> 00:06:30,000 wat is 'n klein program genaamd PHP, 93 00:06:30,000 --> 00:06:35,000 en die argument wat jy gee aan die tolk is die lêer wat jy wil om te interpreteer. 94 00:06:35,000 --> 00:06:40,000 In hierdie geval, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Oeps, waar het ek dit weer aantrek? 96 00:06:43,000 --> 00:06:52,000 O, ek het dit in artikel 9, en hier is ek. Dis hoekom. 97 00:06:52,000 --> 00:06:57,000 >> Maar as ek loop dit weer 98 00:06:57,000 --> 00:07:02,000 sien ons dat in my eerste getSoort funksie oproep 99 00:07:02,000 --> 00:07:04,000 var 'n heelgetal is. 100 00:07:04,000 --> 00:07:12,000 In die volgende een var is 'n tou, en dan in die derde een var is 'n boolean. 101 00:07:12,000 --> 00:07:15,000 Wat is interessant is oor hierdie, is as ons blaai terug sien ons dat 102 00:07:15,000 --> 00:07:18,000 Dit is tipes soortgelyk aan die een wat ons gehad het in C. 103 00:07:18,000 --> 00:07:22,000 Ons het ints in C. 104 00:07:22,000 --> 00:07:26,000 Ons soort van snare in C, 105 00:07:26,000 --> 00:07:31,000 so snare was nie 'n heeltemal wettig tipe in die sin dat 106 00:07:31,000 --> 00:07:37,000 ons CS50 string was regtig wat? 107 00:07:37,000 --> 00:07:39,000 Jammer? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Ja, dit was hierdie char * wat ons gebruik. 110 00:07:43,000 --> 00:07:47,000 Aan die begin van die semester het ons deur gebruik te maak van die string tipe, 111 00:07:47,000 --> 00:07:52,000 maar dit was regtig 'n char * onder die kap. 112 00:07:52,000 --> 00:07:58,000 Ons het net gedefinieer tik dit, terwyl in PHP hierdie stringe is 'n werklike tipe. 113 00:07:58,000 --> 00:08:07,000 Daar is nie meer van hierdie tipe char * stuff. 114 00:08:07,000 --> 00:08:10,000 >> Jy sal sien dat ons baie meer dinge kan doen met stringe 115 00:08:10,000 --> 00:08:14,000 baie meer maklik in PHP as wat ons kon in C, 116 00:08:14,000 --> 00:08:17,000 en dan uiteindelik, ons het hierdie boolean tipe, en die groot verskil hier is dat 117 00:08:17,000 --> 00:08:21,000 as ons blaai terug sien ons dat die naam van hierdie tipes 118 00:08:21,000 --> 00:08:28,000 is nou heelgetal is, string, en Boolese in plaas van int en Bool, 119 00:08:28,000 --> 00:08:31,000 en as jy haal verskillende programmeertale, 120 00:08:31,000 --> 00:08:36,000 die veronderstelling dat op 'n sekere punt in jou lewe, sal jy in aanraking kom met 121 00:08:36,000 --> 00:08:40,000 verskillende mense wat jy sal sien klein eienaardighede soos hierdie 122 00:08:40,000 --> 00:08:44,000 waar C heelgetalle ints noem. 123 00:08:44,000 --> 00:08:46,000 Sommige noem dit die heelgetalle. 124 00:08:46,000 --> 00:08:51,000 Daar is ander terme wat jy loop in. 125 00:08:51,000 --> 00:08:55,000 Big int ons gesien het vandag in SQL. 126 00:08:55,000 --> 00:08:59,000 Daar is ook nommer en dan Bool, boolean, 127 00:08:59,000 --> 00:09:03,000 alle vorme van verskille daar. 128 00:09:03,000 --> 00:09:07,000 >> Dit is nie baie interessant, maar nou is ek gaan gee jou 'n bietjie van die tyd- 129 00:09:07,000 --> 00:09:13,000 as ons terug zoom uit om te werk deur middel van hierdie oefening aan die onderkant van die bladsy 3 130 00:09:13,000 --> 00:09:20,000 waar dit vra watter tipe stem ooreen met hierdie waardes hier aan die onderkant. 131 00:09:20,000 --> 00:09:24,000 Ons het 3,50. 132 00:09:24,000 --> 00:09:28,000 Ons het hierdie ding reg hier, wat is interessant. 133 00:09:28,000 --> 00:09:32,000 Ons het nie gesien dat voor, maar as jy volg saam in lesingsale 134 00:09:32,000 --> 00:09:35,000 jy waarskynlik reeds weet wat dit is. 135 00:09:35,000 --> 00:09:40,000 Dan het ons dit, wat dit is 'n soort van funky. 136 00:09:40,000 --> 00:09:42,000 Jy herken dit. 137 00:09:42,000 --> 00:09:46,000 Wat is dit in C? 138 00:09:46,000 --> 00:09:50,000 Sam? Wat sou dit gee jou in C? 139 00:09:50,000 --> 00:09:54,000 Dit sou 'n lêer genaamd dynamic.php oop en maak dit leesbaar is. 140 00:09:54,000 --> 00:09:58,000 Ja, en wat die tipe van die veranderlike wat ons dit sou toewys aan >> File? Ster sou wees. 141 00:09:58,000 --> 00:10:02,000 Presies, sou ons ken hierdie na 'n lêer ster. 142 00:10:02,000 --> 00:10:08,000 Dit is 'n wettige PHP. 143 00:10:08,000 --> 00:10:12,000 Begin. Kyk wat gebeur wanneer jy dit in getSoort. 144 00:10:12,000 --> 00:10:19,000 En dan ook check wat null is, wat dit kan wees in PHP. 145 00:10:19,000 --> 00:10:21,000 Ek gee jou 'n paar minute. 146 00:10:21,000 --> 00:10:24,000 Jy kan letterlik kopieer en plak hierdie waardes in, 147 00:10:24,000 --> 00:10:29,000 en dan sal ons 'n bietjie random oproep doen op jou 148 00:10:29,000 --> 00:10:34,000 en kyk wat jy kry. 149 00:10:34,000 --> 00:10:36,000 >> [Studente] Ek het 'n vraag. << Ja. 150 00:10:36,000 --> 00:10:40,000 In een van die lesings Dawid het gesê daar is iets wat jy kan sit op die top van jou lêer 151 00:10:40,000 --> 00:10:43,000 sodat jy nie elke keer hoef in te tik in PHP. 152 00:10:43,000 --> 00:10:45,000 Wat was dit? 153 00:10:45,000 --> 00:10:50,000 Hy is waarskynlik praat oor die pond bang, die hash bang. 154 00:10:50,000 --> 00:10:57,000 Dit is 'n richtlijn dat as jy merk jou lêer as uitvoerbaar 155 00:10:57,000 --> 00:11:01,000 dan wat dit doen, is wanneer jy die lêer uitvoer 156 00:11:01,000 --> 00:11:06,000 Dit sal jou vertel die dop 157 00:11:06,000 --> 00:11:12,000 die PHP-interpreter te gebruik om die inhoud van die lêer te interpreteer. 158 00:11:12,000 --> 00:11:16,000 Die vraag wat hierdie spesiale lyn 159 00:11:16,000 --> 00:11:20,000 dat ons by die top van ons PHP lêers kan insluit om nie in te sluit 160 00:11:20,000 --> 00:11:26,000 hierdie PHP-lyn of hierdie PHP opdrag wanneer ons wil die lêer uit te voer? 161 00:11:26,000 --> 00:11:31,000 En jy kan eintlik doen dit met 'n klomp van die verskillende lêers. 162 00:11:31,000 --> 00:11:37,000 Ek dink dit hang af van waar die PHP binêre gestoor word, 163 00:11:37,000 --> 00:11:43,000 maar dikwels usr / bin / PHP is 'n goeie plek om te begin. 164 00:11:43,000 --> 00:11:45,000 Jy kan uitvind presies gaan terug na jou toestel 165 00:11:45,000 --> 00:11:50,000 en tik wat php. 166 00:11:50,000 --> 00:11:55,000 Waarin opdrag figure uit wanneer jy die uitvoering van binêre 167 00:11:55,000 --> 00:12:01,000 of 'n opdrag waar die ooreenstemmende lêer is. 168 00:12:01,000 --> 00:12:06,000 Dit sê vir my dat die PHP is regtig aliasing hierdie binêre lêer 169 00:12:06,000 --> 00:12:13,000 wat is gestoor in usr / bin, en dit is waar 'n baie van die stelsel binaries is geïnstalleer. 170 00:12:13,000 --> 00:12:21,000 Byvoorbeeld, as ek blaai na die top, nou dat ek dit geplaas #! lyn hier 171 00:12:21,000 --> 00:12:27,000 Ek kan blaai, en ek kan probeer om te hardloop 172 00:12:27,000 --> 00:12:35,000 dynamic.php, maar ek kry hierdie fout oor toestemming ontsê word, 173 00:12:35,000 --> 00:12:42,000 en wat dit beteken, is dat hierdie lêer is nie uitvoerbaar permissions. 174 00:12:42,000 --> 00:12:46,000 Dit is nie gemerk as 'n lêer wat iemand kan hardloop. 175 00:12:46,000 --> 00:12:52,000 >> Wanneer jy maak of kletteren gehardloop en jy het 'n uitvoerbare 176 00:12:52,000 --> 00:12:56,000 die opsteller was slim genoeg om te weet dat hey, ek is die bou van 'n uitvoerbare. 177 00:12:56,000 --> 00:13:00,000 Jy het waarskynlik wil om dit uit te voer, so dit sal outomaties instel 178 00:13:00,000 --> 00:13:02,000 die toestemmings vir jou. 179 00:13:02,000 --> 00:13:06,000 Dit is nie die geval nie, al is, wanneer jy 'n gewone lêer van nuuts af, 180 00:13:06,000 --> 00:13:13,000 die rede waarom jy wat tipies wil nie 'n lêer op jou stelsel uitvoerbaar is, 181 00:13:13,000 --> 00:13:15,000 sodat jy werklik het om in te gaan en dit handmatig doen. 182 00:13:15,000 --> 00:13:22,000 Die maklikste manier om dit te doen is met die chmod opdrag, 183 00:13:22,000 --> 00:13:28,000 en chmod + x sê voeg die uitvoerbare bietjie 184 00:13:28,000 --> 00:13:31,000 want daar is die lees bietjie die skryf bietjie en die uitvoerbare bietjie, 185 00:13:31,000 --> 00:13:35,000 r, w en x, 186 00:13:35,000 --> 00:13:39,000 en gesê: chmod + x sal op sy beurt op die uitvoerbare bietjie 187 00:13:39,000 --> 00:13:46,000 dan is die lêer wat ons spesifiseer, wat in hierdie geval sal wees dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Studente] Is dit het vir almal? 189 00:13:49,000 --> 00:13:52,000 Kom ons kyk dit uit, so hoe sou ek die regte nagaan om te sien? 190 00:13:52,000 --> 00:13:54,000 Weet jy hoe ek wil kyk om die regte van 'n lêer te sien? 191 00:13:54,000 --> 00:13:56,000 [Onhoorbaar student reaksie] 192 00:13:56,000 --> 00:13:58,000 Jammer >> [Studente]? XSD. 193 00:13:58,000 --> 00:14:03,000 XSD gee ons die lêer in hacks. 194 00:14:03,000 --> 00:14:09,000 Lys van al die lêers,-l, sal wys my al die lêers in my directory 195 00:14:09,000 --> 00:14:13,000 soort van in hul lang, verbose lys, en hier sien ons dat 196 00:14:13,000 --> 00:14:17,000 hierdie dynamic.php lêer 197 00:14:17,000 --> 00:14:23,000 Laaste wysiging op November 5de op 16:21. 198 00:14:23,000 --> 00:14:26,000 Die eienaar van hierdie lêer jharvard. 199 00:14:26,000 --> 00:14:28,000 Dit is die gebruiker wat in geteken nie. 200 00:14:28,000 --> 00:14:31,000 Dit is die gebruiker wat ek as die werk, 201 00:14:31,000 --> 00:14:36,000 en as jy ook in die toestel jy ook werk as gebruiker jharvard. 202 00:14:36,000 --> 00:14:38,000 Jy is in die studente-groep, 203 00:14:38,000 --> 00:14:44,000 en dit is dinge wat jy sal sien dikwels genoeg. 204 00:14:44,000 --> 00:14:47,000 >> Ons kan gaan in 'n baie van die detail hier, 205 00:14:47,000 --> 00:14:50,000 maar vir die grootste deel wat jy wil om te kyk na wanneer jy soek om te sien 206 00:14:50,000 --> 00:14:55,000 of 'n lêer is uitvoerbaar is hoofsaaklik 207 00:14:55,000 --> 00:14:58,000 die gebruiker wat die lêer besit, die eienaar, 208 00:14:58,000 --> 00:15:03,000 so hierdie jharvard, en dan het ons 209 00:15:03,000 --> 00:15:07,000 die regte stukkies hier aan die linkerkant, 210 00:15:07,000 --> 00:15:13,000 en die manier om dit te lees, is dat die laaste bietjie 211 00:15:13,000 --> 00:15:18,000 tipies gebruik word vir die nasien of nie-ten minste in hierdie geval 212 00:15:18,000 --> 00:15:21,000 hierdie laaste bietjie sal dikwels gestel word om die advertensie aan te dui 213 00:15:21,000 --> 00:15:24,000 dat die lêer is 'n gids en nie net 'n gewone lêer nie. 214 00:15:24,000 --> 00:15:28,000 Toe het die volgende 3 stukkies hier 215 00:15:28,000 --> 00:15:34,000 die toestemmings bepaal dat die eienaar van die lêer het, 216 00:15:34,000 --> 00:15:38,000 so in hierdie geval jharvard, as die eienaar van die lêer, kan lees en skryf hierdie lêer, 217 00:15:38,000 --> 00:15:42,000 maar daar is 'n bietjie wat sê dat jharvard kan nie hierdie lêer uitvoer. 218 00:15:42,000 --> 00:15:46,000 Die volgende 3 stukkies is vir die groep, so dit is die studente-groep, 219 00:15:46,000 --> 00:15:49,000 so as daar is verskeie gebruikers op my toestel, 220 00:15:49,000 --> 00:15:52,000 en ons het verskeie gebruikers as deel van die studente-groep, 221 00:15:52,000 --> 00:15:55,000 dan kan hulle almal lees hierdie lêer, maar hulle kan dit nie skryf nie, 222 00:15:55,000 --> 00:15:59,000 en so ook iemand anders, die wêreld 223 00:15:59,000 --> 00:16:01,000 kan net lees hierdie lêer as well. 224 00:16:01,000 --> 00:16:03,000 Daar is 'n goeie, lang writeup oor hierdie, 225 00:16:03,000 --> 00:16:05,000 sodat jy aanlyn kan lees. 226 00:16:05,000 --> 00:16:10,000 In die probleem stel spec ons gaan in hierdie in meer detail. 227 00:16:10,000 --> 00:16:12,000 >> [Studente] is die 218 verwys na die hele wêreld? 228 00:16:12,000 --> 00:16:17,000 Die 218 is van die top van my kop af ek vergeet, 229 00:16:17,000 --> 00:16:20,000 maar nee. 230 00:16:20,000 --> 00:16:29,000 Kom ons kyk. Ek uitwissing op daardie reg nou. 231 00:16:29,000 --> 00:16:32,000 Terug na wat ons was om te doen met hierdie chmod + x 232 00:16:32,000 --> 00:16:37,000 waar ons wou dynamic.php uitvoerbare toestemmings om uit te gee, 233 00:16:37,000 --> 00:16:40,000 en die vraag is of dit nie uitvoerbare regte sal gee vir almal 234 00:16:40,000 --> 00:16:44,000 of om net jharvard, en ons kan sien dit deur 235 00:16:44,000 --> 00:16:48,000 die uitvoer van die opdragte en die tik van ls-l, 236 00:16:48,000 --> 00:16:51,000 en nou sien ons dat dit is gemerk as uitvoerbare. 237 00:16:51,000 --> 00:16:54,000 Jy sien dat daar 'n kleurverandering. 238 00:16:54,000 --> 00:16:57,000 Nou dynamic.php is gelys in die groen, 239 00:16:57,000 --> 00:17:01,000 en dit lyk soos die antwoord op die vraag is wat, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Net jharvard. >> Slegs jharvard, ja. 241 00:17:04,000 --> 00:17:08,000 >> As ons wou die uitvoerbare bietjie vir almal om te draai op 242 00:17:08,000 --> 00:17:10,000 Hoe kan ons dit doen? 243 00:17:10,000 --> 00:17:13,000 Enige gedagtes >> A? + X? 244 00:17:13,000 --> 00:17:15,000 Ja, presies. 245 00:17:15,000 --> 00:17:23,000 Charlotte het gesê ons chmod kan doen van 'n + x dynamic.php, 246 00:17:23,000 --> 00:17:26,000 en nou as ons hardloop ls-l, sien ons dat die uitvoerbare stukkies 247 00:17:26,000 --> 00:17:30,000 word inderdaad vir almal gedraai. 248 00:17:30,000 --> 00:17:37,000 En jy kan eintlik doen die teenoorgestelde van hierdie, sodat jy kan draai dit af vir almal 249 00:17:37,000 --> 00:17:41,000 met behulp van minus. 250 00:17:41,000 --> 00:17:46,000 Nou is dit afgeskakel, en nou kan ons draai dit terug vir jharvard 251 00:17:46,000 --> 00:17:52,000 sodat ons kan eintlik loop dit nou, 252 00:17:52,000 --> 00:17:58,000 en nou wat jy sien wanneer loop ons die kode hierdie spesiale #! lyn aan die bokant, 253 00:17:58,000 --> 00:18:04,000 #! lyn, vertel die dop, 254 00:18:04,000 --> 00:18:08,000 vertel ons terminale hey, wanneer hierdie lêer uitgevoer word, 255 00:18:08,000 --> 00:18:14,000 / usr / bin / PHP gebruik om hierdie lêer te interpreteer 256 00:18:14,000 --> 00:18:20,000 en druk dan die uitset. 257 00:18:20,000 --> 00:18:22,000 [Onhoorbaar student vraag] 258 00:18:22,000 --> 00:18:25,000 Sure, laat my terug Scroll up. Net soos hierdie. 259 00:18:25,000 --> 00:18:36,000 Jy sal sien al van hierdie riglyne met hierdie pond begin en dan die uitroepteken, 260 00:18:36,000 --> 00:18:39,000 soms genoem 'n kaboedel, hash bang. 261 00:18:39,000 --> 00:18:48,000 >> [Studente] Hoe kan ons loop dit met php dynamic.php voor ons dit uitvoerbaar te maak? 262 00:18:48,000 --> 00:18:55,000 Die vraag is hoe kan ons die uitvoering van hierdie met behulp van die PHP-binêre 263 00:18:55,000 --> 00:18:58,000 terwyl dynamic.php is nie uitvoerbaar nie? 264 00:18:58,000 --> 00:19:01,000 Dit is super belangrik, want dit is presies hoe 265 00:19:01,000 --> 00:19:06,000 dit gaan werk wanneer jy skryf probleem stel 7. 266 00:19:06,000 --> 00:19:09,000 Die meeste van die tyd PHP lêers is nie direk uitvoerbare. 267 00:19:09,000 --> 00:19:14,000 Die manier wat werk is, want dit is die PHP binêre wat uitvoerbaar is. 268 00:19:14,000 --> 00:19:16,000 Die tolk is die ding wat uitgevoer word, 269 00:19:16,000 --> 00:19:20,000 en so wat dit doen is letterlik slurp in die hele inhoud 270 00:19:20,000 --> 00:19:25,000 van ons dynamic.php lêer en gaan reël vir reël 271 00:19:25,000 --> 00:19:29,000 en die uitvoering van daardie opdragte, so dit is die gebruik van ons PHP lêer 272 00:19:29,000 --> 00:19:31,000 as 'n lys van instruksies. 273 00:19:31,000 --> 00:19:36,000 Dit is nie direk die uitvoering van dit. 274 00:19:36,000 --> 00:19:40,000 Dit is waar ons sê dat hierdie lêers te hardloop tyd geïnterpreteer. 275 00:19:40,000 --> 00:19:46,000 Dit is 'n run time taal in plaas van iets wat tydens kompilering bepaal, 276 00:19:46,000 --> 00:19:49,000 nie 'n saamgestel taal soos C. 277 00:19:49,000 --> 00:19:54,000 >> Is daar 'n manier om 'n run taal te kry om op te tree asof dit 'n kompilering taal, 278 00:19:54,000 --> 00:19:58,000 graag as jy het al die gang op die bediener 279 00:19:58,000 --> 00:20:00,000 eerder as jy weet wat ek bedoel? 280 00:20:00,000 --> 00:20:04,000 Ja, die vraag is 281 00:20:04,000 --> 00:20:11,000 is daar 'n manier om looptyd tale te kry om op te tree meer soos kompilering tipes van tale? 282 00:20:11,000 --> 00:20:18,000 En daar is, ek bedoel, dit is 'n aktiewe gebied van navorsing vir 'n baie van hierdie maatskappye. 283 00:20:18,000 --> 00:20:22,000 Ek glo dat Facebook 'n baie van die werk gedoen het met PHP 284 00:20:22,000 --> 00:20:25,000 en die opstel van dit af, maak dit vinniger, die optimalisering van dit 285 00:20:25,000 --> 00:20:29,000 sedert hul webwerf is gebou op PHP. 286 00:20:29,000 --> 00:20:34,000 As jy is volgende node.js at all, 287 00:20:34,000 --> 00:20:40,000 wat is 'n soort van 'n JavaScript-tolk 288 00:20:40,000 --> 00:20:44,000 in staat te wees om JavaScript uit te voer buite die leser, buite jou webblaaier, 289 00:20:44,000 --> 00:20:47,000 want tradisioneel JavaScript wil net hardloop binnekant van Firefox of Chrome, 290 00:20:47,000 --> 00:20:52,000 en dit sal gebruik word om te koel animasies gebeur op 'n webblad 291 00:20:52,000 --> 00:20:55,000 en maak jou web bladsy dinamiese. 292 00:20:55,000 --> 00:20:59,000 Dit is gebou op 'n baie van die werk wat Google gedoen het 293 00:20:59,000 --> 00:21:03,000 JavaScript en C te maak + + 294 00:21:03,000 --> 00:21:09,000 bind, so daar is 'n baie aktiewe navorsing te 295 00:21:09,000 --> 00:21:13,000 hierdie tale in interaksie te tree en te optimaliseer, 296 00:21:13,000 --> 00:21:17,000 hoofsaaklik omdat so baie mense kan kode in PHP en JavaScript 297 00:21:17,000 --> 00:21:19,000 want dit is 'n baie makliker. 298 00:21:19,000 --> 00:21:21,000 Dit is 'n baie mooier. Jy hoef nie wysers. 299 00:21:21,000 --> 00:21:27,000 Jy hoef nie tipes rondsweef. 300 00:21:27,000 --> 00:21:31,000 Hulle wou die voordele van hierdie kompilering tale te kry 301 00:21:31,000 --> 00:21:36,000 met al die tipe kontrole en die spoed en die laer geheue gebruik en alle van daardie 302 00:21:36,000 --> 00:21:42,000 terwyl hy nog die handhawing van die buigsaamheid en gemak van die gebruik van hierdie nuwer kinders. 303 00:21:42,000 --> 00:21:46,000 >> Terug na ons oorspronklike plan van aanval. 304 00:21:46,000 --> 00:21:50,000 Ons het 'n paar van hierdie vrae hier in ons probleem stel spec. 305 00:21:50,000 --> 00:21:54,000 Kom ons gaan deur hulle regtig vinnig, en ons gaan in die kamer rond. 306 00:21:54,000 --> 00:21:59,000 Charlotte, watter tipe is 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Dit is 'n dubbel. >> Dit is 'n dubbel. 308 00:22:01,000 --> 00:22:03,000 Jimmy, wat is die volgende een? >> 'N skikking. 309 00:22:03,000 --> 00:22:09,000 'N skikking, awesome, en Jared, wat is die fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Dit is 'n hulpbron >> Dit is 'n hulpbron. 311 00:22:11,000 --> 00:22:15,000 Dit is soort van 'n nuwe een, nie 'n lêer ster, nie 'n lêer. 312 00:22:15,000 --> 00:22:19,000 Dit is 'n hulpbron is die tipe in PHP, 313 00:22:19,000 --> 00:22:24,000 en ek is jammer, Ella, die laaste null is wat? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, hoe is dit in PHP gespel? >> Dieselfde manier. 316 00:22:28,000 --> 00:22:30,000 Op dieselfde manier, hoofletters >> Ja. 317 00:22:30,000 --> 00:22:33,000 Ja, alles reg. 318 00:22:33,000 --> 00:22:35,000 Hier gaan ons, ons het 'n dubbel, ons het 'n skikking, 319 00:22:35,000 --> 00:22:41,000 ons het 'n hulpbron, en dan het ons null. 320 00:22:41,000 --> 00:22:48,000 Kom ons kyk nou het jy al gesien- 321 00:22:48,000 --> 00:22:51,000 laat ons sien, so nou is ek dink wat ek ook wil doen is trek 322 00:22:51,000 --> 00:22:56,000 hierdie webblad reg hier, hierdie php.net / handleiding, 323 00:22:56,000 --> 00:23:01,000 so as jy ouens kopieer en oop te maak 'n webblaaier. 324 00:23:01,000 --> 00:23:07,000 Ek gaan om te trek Chrome, sit dit. 325 00:23:07,000 --> 00:23:10,000 Ek wil om jou te wys dat dit nie net omdat 326 00:23:10,000 --> 00:23:13,000 ons kan die hele dag praat oor die tipes en alles wat fun stuff 327 00:23:13,000 --> 00:23:19,000 maar eerder omdat dit die PHP handleiding, 328 00:23:19,000 --> 00:23:23,000 en daar is 'n baie PHP programmeerders daar buite. 329 00:23:23,000 --> 00:23:26,000 Daar is 'n baie van PHP webtuistes daar buite, 330 00:23:26,000 --> 00:23:31,000 en as 'n resultaat, is daar 'n baie van die dokumentasie oor PHP, 331 00:23:31,000 --> 00:23:36,000 en die handleiding, hierdie php.net, is 'n baie goeie plek om te gaan 332 00:23:36,000 --> 00:23:43,000 wanneer jy met vrae oor wat is die beste manier om X te doen in PHP 333 00:23:43,000 --> 00:23:45,000 of wat nie 'n funksie te laat lyk? 334 00:23:45,000 --> 00:23:49,000 Net soort van kry vertroud is met wat dit lyk, want 335 00:23:49,000 --> 00:23:54,000 jy hier kom 'n bietjie vir die probleem wat dikwels 7. 336 00:23:54,000 --> 00:23:57,000 >> As jy uiteindelik besig met 'n finale projek wat gebruik maak van PHP 337 00:23:57,000 --> 00:24:04,000 dit sal 'n plek waar jy baie goed vertroud is met. 338 00:24:04,000 --> 00:24:09,000 Dikwels is die manier waarop mense dit doen, is hulle gebruik Google om te soek vir die webwerf, 339 00:24:09,000 --> 00:24:16,000 en hulle gebruik nie die soekkassie wat is hier in die top reg, wat is 'n soort van klein. 340 00:24:16,000 --> 00:24:19,000 As jy rondom Googlen vir iets wat te doen het met PHP en jy sien 341 00:24:19,000 --> 00:24:24,000 een van die handleiding skakels pop-up kan jy gewoonlik staatmaak op 342 00:24:24,000 --> 00:24:31,000 as 'n redelik goeie hulpbron. 343 00:24:31,000 --> 00:24:34,000 Awesome, so uit van hierdie tipes, net uit nuuskierigheid, 344 00:24:34,000 --> 00:24:37,000 wat ons nie gesien het nie? 345 00:24:37,000 --> 00:24:40,000 Enigiets wat ons nie gesien het nie hier? 346 00:24:40,000 --> 00:24:44,000 [Studente] Resource. >> Ons het gesien hulpbron met die fopen oproep. 347 00:24:44,000 --> 00:24:48,000 [Studente] Objects >> voorwerpe wat ons nie gesien het nie vir seker. 348 00:24:48,000 --> 00:24:51,000 Verifikasie ons nie gesien het nie. 349 00:24:51,000 --> 00:24:54,000 Daar is 'n paar van hierdie pseudo-tipes. 350 00:24:54,000 --> 00:24:57,000 Ons het beslis net sien integer en dubbel. 351 00:24:57,000 --> 00:25:01,000 Ons nie sien 'n paar van die ander, so as ons op heelgetalle 352 00:25:01,000 --> 00:25:08,000 ons kan sien is daar enige ander heelgetalle dat hulle hier? 353 00:25:08,000 --> 00:25:11,000 Is hulle almal so integer, heelgetal, integer. 354 00:25:11,000 --> 00:25:14,000 Sommige tale het groter heelgetal tipes, 355 00:25:14,000 --> 00:25:23,000 soos ons gesien het op MySQL vandag was daar int en dan groot int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> So, PHP handleiding. 358 00:25:28,000 --> 00:25:37,000 Kom ons gaan terug na ons probleem stel spec, en ons sal nou scroll af na bladsy 4. 359 00:25:37,000 --> 00:25:41,000 Een van die dinge wat gebeur wanneer jy hierdie tale 360 00:25:41,000 --> 00:25:49,000 wat nie hierdie statiese tik, sodat hierdie tale waar jy hê om te verklaar 361 00:25:49,000 --> 00:25:52,000 die tipe van 'n veranderlike aan die voorkant 362 00:25:52,000 --> 00:26:00,000 is jy gevalle waar jy kan begin met veranderlikes van die verskillende tipes 363 00:26:00,000 --> 00:26:04,000 interaksie met mekaar, 364 00:26:04,000 --> 00:26:09,000 en PHP doen hierdie ding waar dit probeer om te doen 365 00:26:09,000 --> 00:26:13,000 wat dit oorweeg om die mees sinvolle ding om te doen 366 00:26:13,000 --> 00:26:18,000 wanneer jy 2 verskillende tipes interaksie met mekaar. 367 00:26:18,000 --> 00:26:24,000 Byvoorbeeld, as ons kyk na hierdie reëls van die kode hier 368 00:26:24,000 --> 00:26:29,000 jy sien dat ons het wat gebeur wanneer 369 00:26:29,000 --> 00:26:38,000 ons probeer en voeg die string 1 vir die heeltallige 2. 370 00:26:38,000 --> 00:26:41,000 Wat gebeur as ons probeer en voeg 'n string wat nie 'n numeriese waarde 371 00:26:41,000 --> 00:26:48,000 maar eerder werklike karakters, CS na die nommer 50? 372 00:26:48,000 --> 00:26:51,000 Dan sal ons sien daar is iets anders wat gebeur waar 373 00:26:51,000 --> 00:26:56,000 in plaas van die toevoeging van 'n tou aan 'n aantal wat ons die toevoeging van 'n getal na 'n string, 374 00:26:56,000 --> 00:27:00,000 en so aan en so voort tot op die punt waar ons om 375 00:27:00,000 --> 00:27:05,000 'n soort van vreemde dinge hier waar ons het 7 + waar. 376 00:27:05,000 --> 00:27:09,000 What the heck beteken dit? 377 00:27:09,000 --> 00:27:19,000 >> As jy ouens gaan voort en plak sommige van hierdie kode in jou toestel. 378 00:27:19,000 --> 00:27:27,000 Jy kan hou dit in dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Ons sal sien wat gebeur. 380 00:27:41,000 --> 00:27:43,000 [Studente] Net druk, nie printf gebruik? 381 00:27:43,000 --> 00:27:52,000 Ja, so jy sal vind dat druk is ook 'n geldige funksie vir die druk in PHP. 382 00:27:52,000 --> 00:27:54,000 Daar is baie verskillende maniere om dit te doen. 383 00:27:54,000 --> 00:27:58,000 Ons sal sien later wanneer ons begin praat met 'n paar van die voorbeelde 384 00:27:58,000 --> 00:28:02,000 oor die unieke probleem dat ons gaan om te skryf 385 00:28:02,000 --> 00:28:06,000 en dan die konsentrasies probleem dat ons gaan om te skryf 386 00:28:06,000 --> 00:28:09,000 dat, selfs al het ons fopen en fclose 387 00:28:09,000 --> 00:28:15,000 dit is dikwels nie die eenvoudigste manier om in die inhoud van 'n lêer te lees. 388 00:28:15,000 --> 00:28:21,000 PHP het 'n baie van hierdie C-agtige holdovers. 389 00:28:21,000 --> 00:28:28,000 [Studente] Toe ek in al 6 van die dinge wat ek net een nommer as 'n uitset kry. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Wanneer jy in al 6 van hierdie dinge. 391 00:28:36,000 --> 00:28:39,000 Kom ons kyk is dit, want dit is moontlik 392 00:28:39,000 --> 00:28:46,000 een ding is dat hierdie print oproepe word nie aan die einde met 'n nuwe lyne beëindig. 393 00:28:46,000 --> 00:28:49,000 Daar is geen nuwe lyn tussen elk van hierdie gedrukte oproepe, 394 00:28:49,000 --> 00:28:51,000 so miskien is jy kry 'n groot aantal, 395 00:28:51,000 --> 00:28:58,000 en dit is regtig net 'n amalgaam van nuwe lyn karakters. 396 00:28:58,000 --> 00:29:00,000 [Studente] Okay, hoe maak ek seker- 397 00:29:00,000 --> 00:29:03,000 Wel, daar is 'n klomp verskillende maniere. 398 00:29:03,000 --> 00:29:06,000 Jy kan met die hand in 'n afdruk van 'n nuwe lyn karakter, 399 00:29:06,000 --> 00:29:09,000 'n eggo van 'n nuwe lyn karakter, 400 00:29:09,000 --> 00:29:12,000 druk van die nuwe lyn. 401 00:29:12,000 --> 00:29:16,000 [Studente] So echo is die dieselfde ding as printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf is soos C printf 403 00:29:21,000 --> 00:29:24,000 waar jy die druk van 'n geformateerde string. 404 00:29:24,000 --> 00:29:32,000 Jy is die verskaffing van die formaat string en dan sal al die plaatsaanduiding veranderlikes. 405 00:29:32,000 --> 00:29:39,000 Dit is dikwels iets wat nie gebruik word nie- 406 00:29:39,000 --> 00:29:42,000 laat ons sien, as 'n disclaimer, 407 00:29:42,000 --> 00:29:48,000 Ek is minder vertroud is met PHP as ek met 'n ander web tale, 408 00:29:48,000 --> 00:29:53,000 en toe ek geprogrammeerd in PHP ek gewoonlik nie printf gebruik 409 00:29:53,000 --> 00:29:59,000 want ek vind dit vinniger om te gebruik om die string interpolasie vermoëns wat dit het, 410 00:29:59,000 --> 00:30:04,000 wat ons gaan in, en ek sal jou wys wat jy in net 'n tweede, 411 00:30:04,000 --> 00:30:08,000 terwyl dit in C ons soort van hierdie mag nou wel ding om te doen te kry om dit behoorlik uit te druk. 412 00:30:08,000 --> 00:30:16,000 Kan jy eintlik sit veranderlikes direk in stringe in PHP. 413 00:30:16,000 --> 00:30:22,000 Printf is 'n soort van té lank vir wat ek gewoonlik doen. Ja, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] algemeen as jy parseerfout beteken dit- 415 00:30:25,000 --> 00:30:30,000 soos op C dit nie vertel presies waar die fout is en wat dit is, 416 00:30:30,000 --> 00:30:34,000 so beteken dit kyk deur jou hele kode en figuur dit uit? 417 00:30:34,000 --> 00:30:39,000 Dit is tipies meer geteikende as dit. 418 00:30:39,000 --> 00:30:48,000 Ek dink in hierdie geval was dit 'n bietjie af, 419 00:30:48,000 --> 00:30:51,000 so ek dink in hierdie geval het ons 'n kommapunt vermis. 420 00:30:51,000 --> 00:30:54,000 Dit is probeer om sin te maak van alles, 421 00:30:54,000 --> 00:30:57,000 so soos hierdie geïnterpreteerde tale, word die tolk gaan om te probeer 422 00:30:57,000 --> 00:31:01,000 en doen sy bes om alles werk om toepaslik te maak. 423 00:31:01,000 --> 00:31:04,000 >> Jy sal sien, byvoorbeeld, in JavaScript 424 00:31:04,000 --> 00:31:10,000 Jy sal dikwels-line state einde met 'n kommapunt net soos hulle doen in PHP, 425 00:31:10,000 --> 00:31:13,000 net soos hulle doen in C. 426 00:31:13,000 --> 00:31:15,000 In JavaScript sommige van die JavaScript tolke 427 00:31:15,000 --> 00:31:20,000 in 'n baie van die blaaiers sal in kommapunte vir jou 428 00:31:20,000 --> 00:31:23,000 as jy gebeur om ontbreek hulle. 429 00:31:23,000 --> 00:31:29,000 Hulle sal probeer akkommodeer vir 'n paar sloppiness op jou deel. 430 00:31:29,000 --> 00:31:34,000 Dit is waar dit dalk probeer en probeer en probeer om dinge werk te maak, 431 00:31:34,000 --> 00:31:36,000 en dan uiteindelik sal dit kry op 'n punt waar dit sê okay, 432 00:31:36,000 --> 00:31:38,000 Ek kan nie maak dinge werk op redding, en dit is waar jy 'n lyn nommer kry 433 00:31:38,000 --> 00:31:44,000 wat dalk 'n bietjie af van die presiese plek lyk. 434 00:31:44,000 --> 00:31:47,000 Okay, so laat ons gaan deur middel van hierdie regtig vinnig. 435 00:31:47,000 --> 00:31:50,000 Ons opgehou het om met Ella, so laat ons gaan oor na Missy, 436 00:31:50,000 --> 00:31:54,000 en Missy, wat druk van string 1 plus die nommer 2 gee jou? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3 >> 3. 438 00:31:56,000 --> 00:31:59,000 Maak dit sin? Sorteer? 439 00:31:59,000 --> 00:32:02,000 Gee dit jou 'n nommer? Gee dit jou 'n string? 440 00:32:02,000 --> 00:32:05,000 [Missy] 'n aantal >> Dit is 'n getal. 441 00:32:05,000 --> 00:32:09,000 Maar dit is druk dit, so dit gaan te gee jy 'n soort van tou. 442 00:32:09,000 --> 00:32:12,000 >> Een ding wat ons kan doen om dit uit te keur 443 00:32:12,000 --> 00:32:21,000 is as wat ons doen $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 en dan sê ons eggo van getSoort, 445 00:32:28,000 --> 00:32:33,000 sodat ons met behulp van 1/3 soort druk hier. 446 00:32:33,000 --> 00:32:39,000 Nou kan ons sien wat hier gebeur. 447 00:32:39,000 --> 00:32:42,000 Hier is wat ons het, is ons het 'n heelgetal uit hierdie. 448 00:32:42,000 --> 00:32:45,000 Selfs al was ons die toevoeging van hierdie string na 'n nommer, 449 00:32:45,000 --> 00:32:48,000 ons het nie 'n string van dit, net soos Missy gesê. 450 00:32:48,000 --> 00:32:52,000 Ons kry 'n heelgetal. 451 00:32:52,000 --> 00:32:57,000 Okay, so laat ons sien, langs, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50 >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Maak dit sin? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Ja. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Hoekom? Waarom maak dit sin vir jou? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Omdat dit net met die string, met getalwaarde nul. 457 00:33:11,000 --> 00:33:16,000 Ja, groot. 458 00:33:16,000 --> 00:33:20,000 Soort van dubbelsinnige situasies, maar dit is goed om te weet wat gebeur. 459 00:33:20,000 --> 00:33:25,000 Stella, wat volgende gaan gebeur met die getal 1 + string 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3 >> 3 weer. 461 00:33:27,000 --> 00:33:30,000 En in hierdie geval, kry ons 'n tou of 'n nommer? 462 00:33:30,000 --> 00:33:36,000 >> Kom ons gee dit 'n probeer. 463 00:33:36,000 --> 00:33:43,000 Iemand vinniger as ek die antwoord kry? Charlotte? 464 00:33:43,000 --> 00:33:46,000 O, ek didn't-okay, laat ons sien, ons gaan dieselfde soort van ding te doen 465 00:33:46,000 --> 00:33:49,000 waar ons het 'n getal plus 'n string, en ons gaan die soort eggo, 466 00:33:49,000 --> 00:33:51,000 kyk wat ons kry. 467 00:33:51,000 --> 00:33:55,000 Ons kry ook 'n heelgetal. 468 00:33:55,000 --> 00:33:58,000 Dit maak nie saak watter een is die string, watter een is die getal. 469 00:33:58,000 --> 00:34:00,000 Ons is nog aan die gang te kry 'n heelgetal. 470 00:34:00,000 --> 00:34:04,000 Dit is nog steeds gaan om te doen wat ons kan verwag. 471 00:34:04,000 --> 00:34:09,000 Alle reg, sodat Sam, wat oor 90 + 9 bottels van bier op die muur? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99 >> 99. 473 00:34:12,000 --> 00:34:15,000 Geen bottels van bier op die muur, though. 474 00:34:15,000 --> 00:34:17,000 Dit gee ons 'n bietjie meer inligting oor wat gebeur. 475 00:34:17,000 --> 00:34:21,000 [Sam] As jy geskryf het 9 in letters 476 00:34:21,000 --> 00:34:23,000 dan sou jy 90, reg? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Ja. 478 00:34:26,000 --> 00:34:30,000 Die vraag was as ons geskryf het 9 uit as N-I-N-E 479 00:34:30,000 --> 00:34:34,000 sou ons gekry het 99 of 90? 480 00:34:34,000 --> 00:34:38,000 Ons wil 90. 481 00:34:38,000 --> 00:34:42,000 Dit is net letterlik op soek vir syfer karakters. 482 00:34:42,000 --> 00:34:46,000 Dit is nie slim genoeg aantal woorde en daardie dinge te erken. Ja. 483 00:34:46,000 --> 00:34:48,000 >> [Studente] Is daar so 'n ding soos typecasting in PHP? 484 00:34:48,000 --> 00:34:54,000 Daar is, en dit is presies die manier waarop jy dit sou doen in C. 485 00:34:54,000 --> 00:34:56,000 Wat oor 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.] Ja, so wat kan vreemd wees oor hierdie? 488 00:35:01,000 --> 00:35:04,000 Wat sou gebeur as jy het dit dieselfde soort van ding in C, 489 00:35:04,000 --> 00:35:06,000 as jy het 10/7 in C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Dit sou net gee jy, afhangende van hoe jy typecasted ek dink 491 00:35:08,000 --> 00:35:12,000 sal dit gee jou net 'n beperkte aantal van syfers na die desimale. 492 00:35:12,000 --> 00:35:16,000 Ja, so 'n beperkte aantal van syfers na die desimale. 493 00:35:16,000 --> 00:35:21,000 Wat anders kan wees-sal dit gee jou enige syfers na die desimale? 494 00:35:21,000 --> 00:35:28,000 Dikwels nie, so weer, afhangende van hoe jy typecasting dit 495 00:35:28,000 --> 00:35:31,000 Dit mag of mag nie skakel dit na 'n drywende punt. 496 00:35:31,000 --> 00:35:35,000 Hier was dit soort van mooi wat dit gedoen het. 497 00:35:35,000 --> 00:35:40,000 Het ons gewys jy dit terug toe ons begin doen hierdie soort dinge in C 498 00:35:40,000 --> 00:35:44,000 dit sal waarskynlik 'n bietjie meer sin gemaak het 499 00:35:44,000 --> 00:35:48,000 dat dit nie net gaan tot 1. 500 00:35:48,000 --> 00:35:51,000 En dan uiteindelik, Jamie, wat ongeveer 7 + waar? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Wat beteken dit? 503 00:35:56,000 --> 00:35:58,000 Ek dink dit gee net waar die waarde van 1. 504 00:35:58,000 --> 00:36:01,000 Ja. Wat gebeur as ons verander dat vals? 505 00:36:01,000 --> 00:36:04,000 [Studente] 7. 506 00:36:04,000 --> 00:36:09,000 Ja, so onthou waar ons praat oor hierdie binêre waardes, 507 00:36:09,000 --> 00:36:12,000 1 wat op, 0 af? 508 00:36:12,000 --> 00:36:17,000 Nou het ons 'waar is, is 1, 0 is vals, 509 00:36:17,000 --> 00:36:21,000 en jy mag dalk nie gesien het in die C-voorbeelde wat ons die afgelope semester gedoen het, 510 00:36:21,000 --> 00:36:27,000 maar histories die Bool soort in C is nie 'n ware tipe, 511 00:36:27,000 --> 00:36:32,000 sodat mense gebruik het 0 en 1 in die plek van die ware en valse. 512 00:36:32,000 --> 00:36:35,000 Dit is 'n manifestasie van daardie. 513 00:36:35,000 --> 00:36:39,000 >> Goed, so die een belangrike deel oor al hierdie 514 00:36:39,000 --> 00:36:41,000 is dat ons hierdie verskillende tipes. 515 00:36:41,000 --> 00:36:43,000 Hulle kan interaksie met mekaar. 516 00:36:43,000 --> 00:36:49,000 Hulle kan dikwels in wisselwerking met mekaar op maniere wat is mooi, as ons hier gesien het. 517 00:36:49,000 --> 00:36:53,000 Dit is lekker om in staat wees om string 1 en die getal 2 te hê, om hulle bymekaar en 3 kry. 518 00:36:53,000 --> 00:36:55,000 Dit maak sin. 519 00:36:55,000 --> 00:36:59,000 Maar, wanneer jy 'n webwerf wil skryf, en veral wanneer jy die verwerking van 520 00:36:59,000 --> 00:37:04,000 toevoer van die gebruiker, so sê jy het 'n web vorm geskryf het 521 00:37:04,000 --> 00:37:09,000 wat versamel inligting van die gebruiker en dan gaan dit te verwerk 522 00:37:09,000 --> 00:37:13,000 op die agterkant op die bediener kant in jou PHP-kode 523 00:37:13,000 --> 00:37:18,000 as jy verwag dat die waarde wat die gebruiker ingetik en ingedien 524 00:37:18,000 --> 00:37:23,000 aan jou vorm 'n heelgetal te wees of om 'n drywende punt nommer of iets soos dit 525 00:37:23,000 --> 00:37:29,000 wat jy nodig het om dit uitdruklik te gooi dit 526 00:37:29,000 --> 00:37:34,000 en doen dan 'n soort kontrole. 527 00:37:34,000 --> 00:37:41,000 >> Jy wil nie net staatmaak op hierdie tipe jongleren stelsel om dinge te laat uitwerk, 528 00:37:41,000 --> 00:37:48,000 veral vir sekuriteit redes en net vir die robuustheid van jou webwerf. 529 00:37:48,000 --> 00:37:51,000 Net iets om in gedagte te hou dat wanneer jy vorm data te hanteer, 530 00:37:51,000 --> 00:37:57,000 enigiets wat kom in die pos of die AOO-superglobals 531 00:37:57,000 --> 00:38:01,000 maak seker dat jy altyd bekragtig dit en sit dit en dit typeren. 532 00:38:01,000 --> 00:38:04,000 En net soos ons praat oor 'n oomblik gelede dat typecasting 533 00:38:04,000 --> 00:38:08,000 in PHP is presies dieselfde as in C waar jy die hakies 534 00:38:08,000 --> 00:38:14,000 en dan die tipe. 535 00:38:14,000 --> 00:38:16,000 Hou dit in gedagte. 536 00:38:16,000 --> 00:38:19,000 'N funksie wat sal handig te pas kom wanneer jy om dit te doen 537 00:38:19,000 --> 00:38:22,000 ons het al met behulp van en dit is soort van soos 'n eenkant- 538 00:38:22,000 --> 00:38:27,000 ons het al met behulp van hierdie getSoort funksie hier 539 00:38:27,000 --> 00:38:30,000 om uit te vind die tipe van 'n veranderlike, 540 00:38:30,000 --> 00:38:37,000 en terwyl dit is handig vir ontfouting en om te sien wat se soort van 'n veranderlike is 541 00:38:37,000 --> 00:38:42,000 jy nie wil hê om dit te gebruik, byvoorbeeld, in 'n toestand waar 542 00:38:42,000 --> 00:38:57,000 jy nagaan om te sien of getSoort van $ var = integer iets doen. 543 00:38:57,000 --> 00:39:01,000 Dit is sleg, sleg, sleg. 544 00:39:01,000 --> 00:39:09,000 In plaas daarvan is daar hierdie funksies genoem is integer, string, 545 00:39:09,000 --> 00:39:14,000 skikking wat jy wil plaas, so in hierdie geval 546 00:39:14,000 --> 00:39:18,000 wat ek wil doen in plaas van hierdie man hier 547 00:39:18,000 --> 00:39:31,000 word gebruik die heelgetal var. 548 00:39:31,000 --> 00:39:37,000 En hulle is dikwels na verwys is is_ * in die sin dat jy kan die * vervang met integer, 549 00:39:37,000 --> 00:39:43,000 string, ensovoorts, en net om seker te maak regtig vinnig 550 00:39:43,000 --> 00:39:50,000 hierdie is int php. 551 00:39:50,000 --> 00:39:59,000 Lyk soos wat jy kan doen, is óf int of daar is 'n heelgetal sowel? 552 00:39:59,000 --> 00:40:06,000 Ja, alias, so int integer aliasse. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Hoe gaan ons doen? 555 00:40:17,000 --> 00:40:20,000 Kom ons haal die tempo 'n bietjie. 556 00:40:20,000 --> 00:40:24,000 Nou het ons gaan om te praat oor skikkings, so soos jy kan sien 557 00:40:24,000 --> 00:40:28,000 in die volgende deel van die spec ons praat oor hoe skikkings in PHP 558 00:40:28,000 --> 00:40:31,000 is effens anders as hulle is in C. 559 00:40:31,000 --> 00:40:34,000 Om die waarheid te sê, hulle is soort van 'n amalgaam van 560 00:40:34,000 --> 00:40:36,000 die skikkings wat jy gekom het om te weet en liefde in C 561 00:40:36,000 --> 00:40:40,000 waar alles is van dieselfde soort 562 00:40:40,000 --> 00:40:43,000 opeenvolgend gestoor en contiguously in die geheue, 563 00:40:43,000 --> 00:40:46,000 en jy het hierdie numeriese indekse. 564 00:40:46,000 --> 00:40:49,000 Jy het index 0, indeks 1, 2 indeks, 565 00:40:49,000 --> 00:40:53,000 en jy slaan waardes by daardie indekse. 566 00:40:53,000 --> 00:40:57,000 Jy moet ook in C, toe jy geskryf het Speller, baie van julle 567 00:40:57,000 --> 00:41:00,000 het die hash tafel-benadering, en jy sien dat ons moes daar 568 00:41:00,000 --> 00:41:03,000 'n ander soort van die stoor waar ons kartering 569 00:41:03,000 --> 00:41:07,000 'n sleutel tot 'n waarde, so wanneer jy probeer om iets te slaan in die hash tafel 570 00:41:07,000 --> 00:41:11,000 jy het om te spesifiseer dat jy wou dit op te slaan met 'n spesifieke sleutel, 571 00:41:11,000 --> 00:41:17,000 en dat die sleutel bepaal die plek van die waarde en waar dit geberg word. 572 00:41:17,000 --> 00:41:22,000 Jy het soort van het beide hierdie konsepte gebeur op dieselfde tyd in 'n PHP array, 573 00:41:22,000 --> 00:41:27,000 en as 'n resultaat, het ons dikwels noem hierdie assosiatiewe skikkings 574 00:41:27,000 --> 00:41:33,000 waar ons assosieer 'n sleutel in 'n waarde. 575 00:41:33,000 --> 00:41:39,000 In die volgende gedeelte ons praat oor 'n eenvoudige PHP array 576 00:41:39,000 --> 00:41:45,000 waar ons sleutels a, b, en c, 577 00:41:45,000 --> 00:41:53,000 alle stringe, kartering van die heelgetalle 1, 2, en 3. 578 00:41:53,000 --> 00:41:57,000 En jy kan die sleutels van die verskillende tipes. 579 00:41:57,000 --> 00:42:00,000 >> Jy kan 'n paar sleutels wat snare, 'n paar sleutels wat heelgetalle is. 580 00:42:00,000 --> 00:42:03,000 Jy kan waardes van die verskillende tipes. 581 00:42:03,000 --> 00:42:06,000 Jy kan 'n waarde wat 'n string is, 'n waarde wat 'n heelgetal is, 582 00:42:06,000 --> 00:42:11,000 'n waarde wat 'n voorwerp of 'n skikking is, byvoorbeeld, 583 00:42:11,000 --> 00:42:16,000 almal in dieselfde skikking voorwerp, wat is 'n soort van weird. 584 00:42:16,000 --> 00:42:20,000 Jy hoef nie om 'n skikking te hê wat net 'n tipe van 'n element het in dit. 585 00:42:20,000 --> 00:42:26,000 Jy kan baie verskillende dinge gaan daar in. 586 00:42:26,000 --> 00:42:33,000 Die ander ding om daarop te let, is dat wanneer jy sien iets soos hierdie in jou kode, 587 00:42:33,000 --> 00:42:38,000 wat is 'n geldige PHP te verklaar van 'n verskeidenheid net soos hierdie, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 wat sal verklaar geïnisialiseer $ arr om hierdie skikking te wees. 589 00:42:43,000 --> 00:42:48,000 Maar wat jy eintlik onder die enjinkap is hierdie soort van implisiete 590 00:42:48,000 --> 00:42:55,000 generasie van sleutels waar ons het 0 tot 0, 1 tot 1, 2 tot 2, 3 tot 3. 591 00:42:55,000 --> 00:42:59,000 En dit blyk dat selfs as jy het 'n skikking soos hierdie man hier 592 00:42:59,000 --> 00:43:03,000 waar jy 'n, b en c as die sleutels 593 00:43:03,000 --> 00:43:09,000 en dan kan jy begin met behulp van die skikking push metode om te begin met die gebruik van hierdie elemente van 'n skikking soos 'n stapel, 594 00:43:09,000 --> 00:43:12,000 sodat jy kan sien dat hierdie skikking voorwerp, hierdie verskeidenheid is regtig overbelast raak. 595 00:43:12,000 --> 00:43:15,000 Ons kan dit gebruik as 'n skikking. Ons kan dit gebruik as 'n hash tafel. 596 00:43:15,000 --> 00:43:19,000 Ons kan dit gebruik as 'n stapel. 597 00:43:19,000 --> 00:43:22,000 Wanneer jy begin stoot dinge op hierdie skikking 598 00:43:22,000 --> 00:43:30,000 sal die eerste ding wat jy druk op hierdie indeks 0 en dan indeks 1 en indeks 2. 599 00:43:30,000 --> 00:43:33,000 Wat jy kan kry hierdie soort van implisiete generasie van sleutels 600 00:43:33,000 --> 00:43:38,000 tensy jy hulle uitdruklik spesifiseer. 601 00:43:38,000 --> 00:43:43,000 Die manier waarop jy sleutels uitdruklik spesifiseer, natuurlik, is deur gebruik te maak van hierdie hakienotasie, 602 00:43:43,000 --> 00:43:48,000 wat is soortgelyk aan skikkings behalwe in plaas van net sodat 603 00:43:48,000 --> 00:43:54,000 heeltallige indekse hier, nou is ons toelaat dat enige iets. 604 00:43:54,000 --> 00:43:57,000 As jy wil om jou sleutel tot 'n string wees, sou jy spesifiseer dit soos hierdie. 605 00:43:57,000 --> 00:44:06,000 As jy wil dit na 'n int, gee jy dit met die int wat jy wil gebruik. 606 00:44:06,000 --> 00:44:13,000 >> Vrae oor dat daar so ver? 607 00:44:13,000 --> 00:44:18,000 Een van die lekker dinge oor hierdie idee 608 00:44:18,000 --> 00:44:26,000 is dat jy kan altyd net een waarde wat met 'n spesifieke sleutel gestoor. 609 00:44:26,000 --> 00:44:32,000 As ons terug gaan oor ons toestel laat my verwyder sommige van hierdie dinge. 610 00:44:32,000 --> 00:44:47,000 En laat ons sê ek inisialiseer 'n skikking te wees 0, 1, 2, gedoen. 611 00:44:47,000 --> 00:44:55,000 As ek nou weet dat, byvoorbeeld, as ek echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Ek gaan om te kry die waarde 0 gedruk, 613 00:44:59,000 --> 00:45:05,000 en aangesien daar ooit kan slegs een waarde gestoor word vir 'n spesifieke sleutel 614 00:45:05,000 --> 00:45:11,000 as ek iets teen $ arr stoor [0], sê 'n 615 00:45:11,000 --> 00:45:16,000 dan sal ek weet wanneer ek echo $ arr [0] weer 616 00:45:16,000 --> 00:45:19,000 Ek gaan nie 0 uitgedruk as voorheen te kry. 617 00:45:19,000 --> 00:45:24,000 Ek gaan net 'n te kry. 618 00:45:24,000 --> 00:45:30,000 So dit is basies sê dat ek nie kan $ arr [0] stoor 2 verskillende waardes. 619 00:45:30,000 --> 00:45:34,000 Dit kan nie beide 0 en die tou 'n stoor, soos dit letterlik vervang 620 00:45:34,000 --> 00:45:38,000 wat was op $ arr [0] voorheen. 621 00:45:38,000 --> 00:45:43,000 Die rede waarom ek bring dit op loop, sien wat gebeur. 622 00:45:43,000 --> 00:45:47,000 Kyk hier wat ek gekry het 0 uitgedruk en dan 'n hier neer. 623 00:45:47,000 --> 00:45:51,000 Daar is geen nuwe lyn daar, want ek was lui en het nie in sit 624 00:45:51,000 --> 00:45:54,000 Wat is koel oor hierdie is dat ons dit kan gebruik as 'n manier 625 00:45:54,000 --> 00:46:00,000 hierdie idee van 'n stel te vang 626 00:46:00,000 --> 00:46:07,000 waar ons nie kan verskeie sleutels binne 'n skikking. 627 00:46:07,000 --> 00:46:10,000 Ons kan nie identies sleutels binne 'n skikking. 628 00:46:10,000 --> 00:46:17,000 Ek kan nie die sleutel 0 en waarde 1 en sleutel 0 en waarde van 'n 629 00:46:17,000 --> 00:46:21,000 of sleutel 0 en waarde waar. 630 00:46:21,000 --> 00:46:27,000 Die sleutels is almal daar is slegs 1 sleutel in die skikking. 631 00:46:27,000 --> 00:46:32,000 Selfs al is jy kan dieselfde waarde gestoor 632 00:46:32,000 --> 00:46:35,000 verskeie kere in die skikking onder verskillende sleutels 633 00:46:35,000 --> 00:46:42,000 dit is nie moontlik om 'n identiese sleutels verskeie kere in jou PHP array. 634 00:46:42,000 --> 00:46:47,000 >> As ons kyk na hierdie volgende probleem, unique.php, 635 00:46:47,000 --> 00:46:51,000 waar ons 'n PHP-lêer wil oopmaak 636 00:46:51,000 --> 00:46:54,000 met 'n lys van stringe, een string per lyn, 637 00:46:54,000 --> 00:47:01,000 en ons wil al van die unieke stringe in daardie lêer te vind 638 00:47:01,000 --> 00:47:06,000 al wat ons hoef te doen is een van hierdie PHP skikkings 639 00:47:06,000 --> 00:47:12,000 en gebruik die snare in die lêer as die sleutels tot hierdie skikking 640 00:47:12,000 --> 00:47:17,000 en hou die opdatering van ons verskeidenheid as ons hierdie nuwe sleutels stoor. 641 00:47:17,000 --> 00:47:22,000 Soos ons lees elke reël van die lêer kan stoor dit in die skikking, 642 00:47:22,000 --> 00:47:28,000 en aan die einde sal ons hê as ons sleutels in ons verskeidenheid 643 00:47:28,000 --> 00:47:34,000 al die unieke stringe in die lêer. 644 00:47:34,000 --> 00:47:37,000 Maak dit sin? 645 00:47:37,000 --> 00:47:41,000 Kom ons kyk hoe dit werk. 646 00:47:41,000 --> 00:47:49,000 Ons gaan om oop te maak, volgens die spec, 'n nuwe lêer met die naam unique.php. 647 00:47:49,000 --> 00:47:58,000 Oop te maak. Oeps, jammer, nuwe lêer. 648 00:47:58,000 --> 00:48:03,000 Ons gaan dit aan die gang met die begin en die einde tags. 649 00:48:03,000 --> 00:48:17,000 Ons gaan dit in artikel 9 te red, en ons gaan om dit te noem unique.php. 650 00:48:17,000 --> 00:48:25,000 Okay, nou zoom. 651 00:48:25,000 --> 00:48:32,000 Die idee hier is om 'n lêer oopmaak, 652 00:48:32,000 --> 00:48:38,000 lees in die lêer lyn deur die lyn. 653 00:48:38,000 --> 00:48:46,000 Vir elke reël in die lêer 654 00:48:46,000 --> 00:48:51,000 ons sal 'n skikking waar ons 655 00:48:51,000 --> 00:49:03,000  die lyn as ons sleutel. 656 00:49:03,000 --> 00:49:09,000 En dan wanneer kry ons tot die einde toe hier 657 00:49:09,000 --> 00:49:17,000 $ Arr se sleutels is die unieke lyne 658 00:49:17,000 --> 00:49:25,000 uit die lêer aangesien ons weet dat as ek lyn in hierdie skikking 659 00:49:25,000 --> 00:49:33,000 verskeie kere sal dit hou net die ou waarde te oorheers, 660 00:49:33,000 --> 00:49:46,000 en ons kan eintlik 'array lyn in as homself net soos wat. 661 00:49:46,000 --> 00:49:48,000 >> Dit is nogal vreemd. 662 00:49:48,000 --> 00:49:52,000 Ons is die stoor van die dieselfde sleutel waarde paar oor en oor en oor weer, 663 00:49:52,000 --> 00:50:00,000 maar omdat ons daarvan oortuig is dat daar slegs 1 sleutel genoem lyn wees 664 00:50:00,000 --> 00:50:05,000 so as ons 'n lêer wat sê 'n lêer van diere geluide en dit het inslag inslag, 665 00:50:05,000 --> 00:50:11,000 miauw, miauw, moo, moo, en elke keer lees ons 'n dier geraas uit 666 00:50:11,000 --> 00:50:15,000 soos inslag en ons bêre dit in ons verskeidenheid ons kry inslag, en dan die tweede keer 667 00:50:15,000 --> 00:50:20,000 ons stoor inslag sal dit die eerste keer dat ons dit gestoor oorskryf. 668 00:50:20,000 --> 00:50:25,000 Op die ou end sal ons net een inskrywing in die skikking 669 00:50:25,000 --> 00:50:33,000 vir elk van die dieregeluide in ons lêer dieregeluide. 670 00:50:33,000 --> 00:50:41,000 Moenie julle ouens voel vol vertroue dat jy die opening van 'n lêer in PHP te pak? 671 00:50:41,000 --> 00:50:45,000 Een manier om dit te doen laat ons gaan oor hierdie vinnig-een manier om dit te doen 672 00:50:45,000 --> 00:50:50,000 is met die fopen, soos ons vroeër gesien het. 673 00:50:50,000 --> 00:50:55,000 Jy kan fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Jy kan dit in die lees af, net soos in C. 675 00:50:59,000 --> 00:51:02,000 Dit is 'n goeie manier om dit te doen. 676 00:51:02,000 --> 00:51:05,000 Jy het dan ook vir die lees in die lêer lyn deur die lyn 677 00:51:05,000 --> 00:51:12,000 het dieselfde funksies, baie van hulle, wat jy gedoen het in C. 678 00:51:12,000 --> 00:51:14,000 Jy het fgets. 679 00:51:14,000 --> 00:51:17,000 Jy het feof, hoewel ons nie hou nie met behulp van die 680 00:51:17,000 --> 00:51:22,000 want, onthou, dit was nie groot in C. 681 00:51:22,000 --> 00:51:25,000 Jy kan dit doen op dieselfde manier, 682 00:51:25,000 --> 00:51:34,000 maar hier is 'n baie cool ding. 683 00:51:34,000 --> 00:51:41,000 Jammer, ek wil nie $ lêer doen nie, maar daar is 'n funksie genoem lêer in PHP, 684 00:51:41,000 --> 00:51:47,000 en hierdie funksie reg hier is koel, want dit lees die hele inhoud 685 00:51:47,000 --> 00:51:52,000 van die lêer wat u spesifiseer, so some_file.txt, 686 00:51:52,000 --> 00:51:56,000 lees die hele inhoud van hierdie lêer in 'n skikking 687 00:51:56,000 --> 00:52:03,000 en laat dan moet jy itereer oor dit, wat is redelik nifty. 688 00:52:03,000 --> 00:52:07,000 >> As ons gaan, byvoorbeeld, aan ons web browser 689 00:52:07,000 --> 00:52:14,000 en ons kyk na Google vir PHP-lêer 690 00:52:14,000 --> 00:52:23,000 jy hier kan sien dat ons handleiding sê dat die lêer lees hele lêer in 'n skikking, 691 00:52:23,000 --> 00:52:27,000 en ons kan die inhoud van 'n lêer file_get_contents om terug te keer as 'n string, 692 00:52:27,000 --> 00:52:30,000 maar tipies net om dit as 'n skikking is regtig mooi, want wat dit doen nie 693 00:52:30,000 --> 00:52:33,000 is dit breek dit op sodat elke element 694 00:52:33,000 --> 00:52:37,000 in die skikking is 'n reël van die lêer, 695 00:52:37,000 --> 00:52:41,000 so as ons kyk na lêer 0, dit is die eerste reël van die lêer. 696 00:52:41,000 --> 00:52:46,000 File 1, tweede lyn, lêer 2, derde lyn, en so aan en so aan. 697 00:52:46,000 --> 00:52:50,000 Sou dit nie lekker wees as dit is al wat jy het om te doen in C? 698 00:52:50,000 --> 00:52:53,000 Pretty nifty. 699 00:52:53,000 --> 00:52:59,000 Dawid het hierdie lesing, en die idioom wat hy getoon het was 700 00:52:59,000 --> 00:53:03,000 wat in bykomend tot ons standaard vir loop-in PHP ons het dat 701 00:53:03,000 --> 00:53:09,000 ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 en jy dit kan doen in PHP, dieselfde ding- 703 00:53:16,000 --> 00:53:27,000 ons het ook hierdie cool konstruk genoem foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach is regtig handig wanneer iterating oor skikkings of hierdie datastrukture 705 00:53:32,000 --> 00:53:36,000 want dit laat jou toe om te trek uit elke element van die skikking 706 00:53:36,000 --> 00:53:42,000 sonder om met die hand te doen om die indeksering jouself, 707 00:53:42,000 --> 00:53:46,000 sonder om met die hand te skep 'n indeks veranderlike inkrementeer, 708 00:53:46,000 --> 00:53:51,000 trek uit die waarde in die skikking op daardie punt, want dit is 'n baie algemene ding om te doen. 709 00:53:51,000 --> 00:53:54,000 >> Jy het waarskynlik gedoen het ton van die tye wanneer jy C dinge doen 710 00:53:54,000 --> 00:54:00,000 oor die semester, so met hierdie foreach 711 00:54:00,000 --> 00:54:06,000 ons kan loop oor hierdie lêer skikking, 712 00:54:06,000 --> 00:54:12,000 en die sintaksis is dat ons wil nou lus oor hierdie skikking 713 00:54:12,000 --> 00:54:18,000 en spesifiseer dat die veranderlike wat ons gaan gebruik om te stoor 714 00:54:18,000 --> 00:54:27,000 die element van hierdie verskeidenheid plaaslik, plaaslike tot die omvang van hierdie foreach lus, 715 00:54:27,000 --> 00:54:32,000 is dat ons gaan om dit in lyn te bel. 716 00:54:32,000 --> 00:54:38,000 As dit is 'n lêer van net woorde en daar is 'n woord in 'n lyn 717 00:54:38,000 --> 00:54:43,000 ons kan dit noem woord so goed, eintlik net jy gee dit 'n naam, 718 00:54:43,000 --> 00:54:49,000 alles wat jy wil om dit te noem, 719 00:54:49,000 --> 00:55:02,000 en dan die binnekant van die loop wat jy kan doen wat jy wil met hierdie veranderlike lyn. 720 00:55:02,000 --> 00:55:08,000 As dit is nie genoeg om die waarde van die skikking te kry en jy wil te kry 721 00:55:08,000 --> 00:55:17,000 die indeks saam met dit wat jy kan spesifiseer 'n naam vir die indeks 722 00:55:17,000 --> 00:55:22,000 sowel as die waarde, en nou het jy toegang tot die 2 veranderlikes. 723 00:55:22,000 --> 00:55:26,000 Jy het $ i en lyn 724 00:55:26,000 --> 00:55:30,000 waar $ i is die indeks in die skikking, 725 00:55:30,000 --> 00:55:38,000 en die lyn is die lyn wat jy opgespoor van die lêer. 726 00:55:38,000 --> 00:55:49,000 Byvoorbeeld, as ons wou echo lyn 0 van die lêer soos hierdie uit te druk, 727 00:55:49,000 --> 00:55:57,000 ons kan dit doen net soos hierdie, "Line $ i van die lêer is $ lyn," 728 00:55:57,000 --> 00:56:02,000 en hier is iets wat ons ook nog nie gesien het nie óf 729 00:56:02,000 --> 00:56:13,000 waar ek net heeltemal oorgeslaan oor hierdie hele% s% d besigheid 730 00:56:13,000 --> 00:56:16,000 wat ons gehad het om te hanteer in C, en in plaas daarvan het ek reguit weg te 731 00:56:16,000 --> 00:56:19,000 die skryf van die veranderlikes in die lyn in my string. 732 00:56:19,000 --> 00:56:23,000 >> Dit is die sogenaamde veranderlike interpolasie, string interpolasie 733 00:56:23,000 --> 00:56:26,000 waar jy vulsel die veranderlikes in, en die PHP-interpreter 734 00:56:26,000 --> 00:56:31,000 is slim genoeg om wanneer dit lees deur middel van 'n string wat begin met dubbele aanhalingstekens 735 00:56:31,000 --> 00:56:34,000 nie aanhalingstekens nie, met 'n enkele aangehaal snare jy kan nie dit doen- 736 00:56:34,000 --> 00:56:38,000 maar met 'n dubbele aangehaal snare as dit lees deur dit soek vir veranderlikes. 737 00:56:38,000 --> 00:56:42,000 Dit se jag hulle neer, en as dit sien veranderlikes sal dit die waarde van die veranderlike 738 00:56:42,000 --> 00:56:47,000 en stop dit in die tou as dit kan dit omskep in 'n string voorstelling, 739 00:56:47,000 --> 00:56:51,000 wat is redelik nifty. 740 00:56:51,000 --> 00:56:56,000 Vir nou, laat se kommentaar uit die res van alles, 741 00:56:56,000 --> 00:57:00,000 behalwe hierdie, en wat ons nou kan doen is dat ons kan 'n lêer oop te maak 742 00:57:00,000 --> 00:57:06,000 wat ons kan noem some_file.txt-laat ons skep 'n nuwe lêer- 743 00:57:06,000 --> 00:57:15,000 en ons kan sit in 'n klomp nonsens dinge hier net alles uit te toets, 744 00:57:15,000 --> 00:57:25,000 stoor dit, bel dit some_file.txt, as ek doen hier aan die bokant, 745 00:57:25,000 --> 00:57:33,000 As ek dan nou uitzoomen net om seker te maak alles is in dieselfde directory 746 00:57:33,000 --> 00:57:36,000 dit lyk soos ek unique.php en some_file.txt in dieselfde gids. 747 00:57:36,000 --> 00:57:42,000 As ek loop php unique.php 748 00:57:42,000 --> 00:57:51,000 sien hoe dit druk elke lyn in my lêer en wat die lyn is? 749 00:57:51,000 --> 00:57:56,000 >> Dit is redelik sterk, reg? 750 00:57:56,000 --> 00:58:03,000 Kyk, dit het 3 reëls van die kode 'n lêer oop te maak. 751 00:58:03,000 --> 00:58:08,000 Wel, 4 reëls van die kode. Ek kan nie tel vandag duidelik. 752 00:58:08,000 --> 00:58:13,000 Maar regtig net 2 interessante lyne van kode, want die ander 2 was die kode tussen krulhakies, 753 00:58:13,000 --> 00:58:17,000 maar in hierdie veel-kode ons was in staat om 'n lêer oop te maak, itereer deur dit, 754 00:58:17,000 --> 00:58:20,000 trek uit die lyn en die lyn self 755 00:58:20,000 --> 00:58:24,000 en druk dit uit. 756 00:58:24,000 --> 00:58:26,000 Cool stuff. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Ek het 'n vraag oor die sintaksis. 758 00:58:28,000 --> 00:58:33,000 So foreach handel met elke enkele reël van die lêer wat jy oopmaak, 759 00:58:33,000 --> 00:58:37,000 en dan wanneer jy wil dinge om te doen met elke enkele reël jy net dit doen as 760 00:58:37,000 --> 00:58:39,000 en dan die waarde assosieer. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Wat kan jy reg te doen hier-die vraag is 762 00:58:41,000 --> 00:58:46,000 die foreach het te doen met die skikking, sodat die foreach sintaksis 763 00:58:46,000 --> 00:58:51,000 is regtig foreach, en kennis dat daar geen ruimte 764 00:58:51,000 --> 00:58:53,000 of enigiets tussen die en die elk. 765 00:58:53,000 --> 00:58:56,000 Hulle het reg langs mekaar, 766 00:58:56,000 --> 00:59:00,000 en dan neem dit in 'n skikking, 767 00:59:00,000 --> 00:59:05,000 en dan moet jy hierdie ander sleutelwoord genoem as wat het om daar te wees, 768 00:59:05,000 --> 00:59:11,000 en dan na die as wat jy kan sit een veranderlike naam, 769 00:59:11,000 --> 00:59:14,000 in welke geval jy gaan om te trek uit die waardes van die skikking, 770 00:59:14,000 --> 00:59:20,000 die indekse nie, of as jy dit doen as ons het geskryf onder 771 00:59:20,000 --> 00:59:24,000 jy die sleutels en die waardes. 772 00:59:24,000 --> 00:59:33,000 Jy moet die foreach element van die skikking of paar van die skikking soos ingesleutel om die waarde van 773 00:59:33,000 --> 00:59:38,000 of net so waarde. 774 00:59:38,000 --> 00:59:40,000 Afhangende van wat jy nodig het, as jy nie die sleutels nodig, 775 00:59:40,000 --> 00:59:42,000 dan kan jy met die waarde. 776 00:59:42,000 --> 00:59:45,000 As jy wil die sleutels wat jy kan gaan met hulle ook. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Ek het ook besef dat ons nooit die i of lyn verklaar. 778 00:59:48,000 --> 00:59:51,000 Hoe dit nie eens weet wat dit is? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Wat bedoel jy deur verklaar? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Ons het nooit vir hulle gesê wat i of lyn middel. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Ons het nooit gesê die rekenaar wat ek of lyn beteken in terme van 782 01:00:01,000 --> 01:00:05,000 [Charlotte] Dat hulle geïndekseer of dat they're- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Ons het nooit gesê dat dit veronderstel is om na die indeks of die sleutel en die waarde te wees, 784 01:00:09,000 --> 01:00:13,000 en dit is omdat dit is die PHP-interpreter. 785 01:00:13,000 --> 01:00:17,000 Dit dien as die verklaring en sê okay, is die sleutel gaan wees 786 01:00:17,000 --> 01:00:20,000 'n veranderlike genaamd i gestoor word in 'n veranderlike genaamd i. 787 01:00:20,000 --> 01:00:24,000 Die waarde gaan word gestoor in 'n veranderlike genoem lyn, 788 01:00:24,000 --> 01:00:28,000 so dit dien as die verklaring van hierdie veranderlikes 789 01:00:28,000 --> 01:00:35,000 en sê $ i is 'n sleutel, en $ lyn is 'n waarde. 790 01:00:35,000 --> 01:00:37,000 Ja, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] As die sleutels is nie gedoen nie numeries 792 01:00:41,000 --> 01:00:44,000 hoe dit besluit watter volgorde dit gaan om alles te druk? 793 01:00:44,000 --> 01:00:47,000 Is dit net graag die orde is dit in ingeskryf is? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Kom ons gee dit 'n probeer. 795 01:00:51,000 --> 01:00:57,000 Kom ons skep 'n veranderlike genaamd arr, 796 01:00:57,000 --> 01:01:06,000 en ons kan doen 'n gaan na 7. 797 01:01:06,000 --> 01:01:19,000 Kom ons sê 0 gaan na 'n ander skikking met 1, 2, of appel. 798 01:01:19,000 --> 01:01:30,000 Kom ons sê 7 gaan na 1, b gaan na 2, 799 01:01:30,000 --> 01:01:39,000 en 3 gaan tot 4. 800 01:01:39,000 --> 01:01:44,000 Dit is 'n soort van 'n gek soek voorbeeld omdat ons meng 801 01:01:44,000 --> 01:01:47,000 snare en heelgetalle oor die hele plek. 802 01:01:47,000 --> 01:01:50,000 Daar is geen werklike einde aan hierdie skikking. 803 01:01:50,000 --> 01:01:55,000 Ek bedoel, kan ons om alles in alfabetiese volgorde met die sleutels. 804 01:01:55,000 --> 01:01:57,000 Ons kan bestel alles alfabeties volgens die waarde. 805 01:01:57,000 --> 01:02:00,000 >> Ons kan probeer en neem in ag dat sommige stringe, sommige is ints, 806 01:02:00,000 --> 01:02:03,000 en ons kan probeer en sit hulle almal aan dieselfde soort en kyk wat gebeur, 807 01:02:03,000 --> 01:02:09,000 of ons kan oorweeg om hulle in die waarde wat ons reeds het hulle ingeskryf 808 01:02:09,000 --> 01:02:14,000 waar ons hierdie man in die eerste, hierdie man in die tweede, hierdie man in die derde, 809 01:02:14,000 --> 01:02:19,000 hierdie man in vierde, ensovoorts. 810 01:02:19,000 --> 01:02:23,000 Kom ons kyk wat gebeur wanneer ons gebruik hierdie kode. 811 01:02:23,000 --> 01:02:29,000 As ons scroll down en die dieselfde soort van ding te doen, 812 01:02:29,000 --> 01:02:31,000 en hier is dit is nie uit te druk om die nuwe lyne. 813 01:02:31,000 --> 01:02:35,000 Wanneer dit lees dinge uit van die lêer met inbegrip van die nuwe lyne in die waardes, 814 01:02:35,000 --> 01:02:38,000 wat is waarom dit uitgedruk mooi, terwyl dit hier het nie, 815 01:02:38,000 --> 01:02:40,000 so dit is waarom alles saam smushed. 816 01:02:40,000 --> 01:02:44,000 Kom ons voeg by dat die nuwe lyn net om dinge te laat mooi. 817 01:02:44,000 --> 01:02:51,000 Laat ons dit weer uit te voer, en so hier 818 01:02:51,000 --> 01:02:54,000 kyk na wat gebeur het. 819 01:02:54,000 --> 01:03:00,000 Druk dit alles uit in die volgorde waarin ons sit dit in die skikking. 820 01:03:00,000 --> 01:03:10,000 Dit beteken bewaar bevel in daardie sin. 821 01:03:10,000 --> 01:03:15,000 >> Terug te gaan na die probleem van die unieke 822 01:03:15,000 --> 01:03:20,000 waar ons wil in staat wees om oor 'n lêer te itereer, 823 01:03:20,000 --> 01:03:24,000 en ons sal dit gee some_file.txt, 824 01:03:24,000 --> 01:03:27,000 en ons gaan oor dit so itereer. 825 01:03:27,000 --> 01:03:31,000 Ons het gesê dat ons wou 'n skikking te gebruik om seker te maak dat ons almal van die wil het 826 01:03:31,000 --> 01:03:36,000 unieke lyne uit daar, en ons kon dit regtig maklik doen 827 01:03:36,000 --> 01:03:49,000 deur net te stoor in 'n skikking wat ons natuurlik buite die omvang van 'n lus verklaar, 828 01:03:49,000 --> 01:03:55,000 en ons het gesê dat indien ons die lyne in die lêer gebruik as die sleutels in ons verskeidenheid 829 01:03:55,000 --> 01:03:59,000 as ons in 'n dubbele lyn, ons wil oorheersende die vorige waarde. 830 01:03:59,000 --> 01:04:08,000 Dit is nooit moontlik om 2 sleutels wat is identies in dieselfde skikking te hê. 831 01:04:08,000 --> 01:04:13,000 Ons kan doen net dat. 832 01:04:13,000 --> 01:04:17,000 Ons sal ontslae te raak van hierdie eggo erken hier. 833 01:04:17,000 --> 01:04:24,000 Hier het ons die stoor van die reël in die lêer in ons verskeidenheid 834 01:04:24,000 --> 01:04:28,000 gebruik as die sleutel. 835 01:04:28,000 --> 01:04:32,000 Niks om te, en dit blyk dat ons selfs nie nodig vir hierdie sleutel. 836 01:04:32,000 --> 01:04:38,000 Ons hoef nie dat ek veranderlike. 837 01:04:38,000 --> 01:04:43,000 Op hierdie punt, as ons ander foreach lus was om te doen 838 01:04:43,000 --> 01:04:48,000 en ons was lus oor elke arr 839 01:04:48,000 --> 01:04:56,000 en lyn as ons nou eggo-oops, sorry. 840 01:04:56,000 --> 01:05:00,000 Ons kan nie die komma. Ons het om dit te gebruik as navraag. 841 01:05:00,000 --> 01:05:05,000 Nou as ons eggo lyn wat ons moet kry al die unieke woorde in die lêer. 842 01:05:05,000 --> 01:05:10,000 As ons gaan op na some_file.txt, 843 01:05:10,000 --> 01:05:19,000 en laat ons sê wat ons doen appel, piesang, appel, appel, piesang, 844 01:05:19,000 --> 01:05:22,000 as ons uit te druk van die unieke woorde in hierdie lêer moet ons net 845 01:05:22,000 --> 01:05:30,000 appel en piesang uit te druk. 846 01:05:30,000 --> 01:05:36,000 As ons red, nou hier ons sal zoom terug in, 847 01:05:36,000 --> 01:05:44,000 php unique.php, en ta-da. 848 01:05:44,000 --> 01:05:51,000 Ons het suksesvol uniqued die lêer. 849 01:05:51,000 --> 01:05:55,000 >> Die laaste deel van hierdie probleem vra jou om die skikking te sorteer voordat jy druk dit uit 850 01:05:55,000 --> 01:05:58,000 want in hierdie eenvoudige voorbeeld wat ons het nou net gedoen 851 01:05:58,000 --> 01:06:04,000 Ons was gelukkig in die sin dat die file- 852 01:06:04,000 --> 01:06:06,000 Ons het dit slinks voorbeeld met appels en piesangs. 853 01:06:06,000 --> 01:06:08,000 Dit is reeds gesorteer. 854 01:06:08,000 --> 01:06:19,000 Maar met behulp van die eenvoudige soort funksie kan jy 'n skikking, wat is redelik nifty sorteer. 855 01:06:19,000 --> 01:06:24,000 Die laaste ding wat ek wou om te praat met julle ouens regtig vinnig 856 01:06:24,000 --> 01:06:31,000 is dat hierdie soort van PHP is alles goed en wel, en dit is super handig 857 01:06:31,000 --> 01:06:43,000 weet hoe om te doen as jy ooit nodig het klein, vinnige dinge te programmaties te doen. 858 01:06:43,000 --> 01:06:48,000 Byvoorbeeld, as ek nodig het om 'n program te skryf dat, sê, 859 01:06:48,000 --> 01:06:53,000 sit almal in afdelings Ek gaan nie om te gaan en skryf dit in C. 860 01:06:53,000 --> 01:06:55,000 Dit gaan lank wees. 861 01:06:55,000 --> 01:06:57,000 Dit is soort van 'n pyn te wees, veral as daar lêers betrokke is, 862 01:06:57,000 --> 01:07:00,000 net soos julle gesien het. 863 01:07:00,000 --> 01:07:05,000 Dis so lekker dat met net hierdie baie kode hier 864 01:07:05,000 --> 01:07:08,000 ons was in staat om deur middel van 'n lêer te rip, trek uit al die unieke waardes 865 01:07:08,000 --> 01:07:11,000 en druk hulle weer uit. 866 01:07:11,000 --> 01:07:16,000 >> Egter vir jou opdragte vir jou projekte, 867 01:07:16,000 --> 01:07:20,000 as jy bou van webwerwe met PHP, die krag is wat 868 01:07:20,000 --> 01:07:25,000 ons loop ons PHP lêers deur hierdie tolk, 869 01:07:25,000 --> 01:07:29,000 en die tolk die verwerking van alles binne die PHP-tags, 870 01:07:29,000 --> 01:07:34,000 alles verlaat onaangeraak en spoeg uit die resultate. 871 01:07:34,000 --> 01:07:40,000 Ons dit kan doen HTML om programmaties te bou. 872 01:07:40,000 --> 01:07:46,000 Nou, as ons gaan terug na die spec, die laaste probleem in die spec 873 01:07:46,000 --> 01:07:56,000 gesprekke oor hierdie idee van konsentrasies 874 01:07:56,000 --> 01:08:01,000 en die skep van 'n drop-down menu, 875 01:08:01,000 --> 01:08:06,000 wat jy mag of nie mag nie wil hê om dit te doen, afhangende van wat jou finale projek doen, 876 01:08:06,000 --> 01:08:13,000 wat die gebruiker toelaat om te kies uit 'n lys van alle moontlike konsentrasies 877 01:08:13,000 --> 01:08:15,000 hulle een konsentrasie. 878 01:08:15,000 --> 01:08:21,000 Nou, hierdie is 'n soort van 'n pyn om dit uit te tik 879 01:08:21,000 --> 01:08:25,000 en het al hierdie met die hand te doen, veral as jy om seker te maak 880 01:08:25,000 --> 01:08:28,000 dat jy al die hoek tussen hakies in die regte plek en al die aanhalings in die regte plek, 881 01:08:28,000 --> 01:08:34,000 so met PHP jy kan dit doen programmaties, en jy kan dit doen regtig vinnig. 882 01:08:34,000 --> 01:08:36,000 >> Kom ons kyk hoe om dit te doen. 883 01:08:36,000 --> 01:08:42,000 Ons gaan 'n nuwe lêer oop te maak. 884 01:08:42,000 --> 01:08:46,000 Ons gaan in ons PHP tags te sit. 885 01:08:46,000 --> 01:08:53,000 Ons gaan om te noem dit concentrations.php, 886 01:08:53,000 --> 01:08:58,000 en nou wanneer jy dit doen, om te dink soort van 'n goeie ding oor 887 01:08:58,000 --> 01:09:02,000 wanneer jy probeer om te meng en pas jou PHP en jou HTML 888 01:09:02,000 --> 01:09:08,000 is uitzoeken, okay, wat is die deel wat ek wil programmaties te genereer? 889 01:09:08,000 --> 01:09:11,000 Wat is die deel wat ek programmaties kan genereer? 890 01:09:11,000 --> 01:09:17,000 Dit is waar dat jy al jou HTML kan doen 891 01:09:17,000 --> 01:09:19,000 binnekant van PHP-blokke insleutel. 892 01:09:19,000 --> 01:09:24,000 Jy kan eggo van die HTML as stringe. 893 01:09:24,000 --> 01:09:30,000 Byvoorbeeld, as ek wil om te begin om die kies tags binnekant van PHP 894 01:09:30,000 --> 01:09:46,000 Ek eggo kan sê, sê kies name = konsentrasie, 895 01:09:46,000 --> 01:09:49,000 en dan hieronder neer ek kon 'n ander echo tag 896 01:09:49,000 --> 01:09:57,000 of 'n ander eggo genoem naby die kies. 897 01:09:57,000 --> 01:10:00,000 Dit is een manier om dit te doen nie, want wat dit is letterlik gaan om dit te doen 898 01:10:00,000 --> 01:10:09,000 druk hierdie string wanneer dit loop deur die PHP-interpreter, 899 01:10:09,000 --> 01:10:12,000 so sal die gevolg wees HTML. 900 01:10:12,000 --> 01:10:18,000 As ek nie stoor hierdie lêer as dit is reg nou 901 01:10:18,000 --> 01:10:24,000 en ek hardloop php concentrations.php 902 01:10:24,000 --> 01:10:26,000 kyk na wat ek gekry het. 903 01:10:26,000 --> 01:10:30,000 Ek het hierdie oop naby kies tag. 904 01:10:30,000 --> 01:10:36,000 >> As ek was om dit te doen, en ek was die resultaat na 'n lêer op te slaan, 905 01:10:36,000 --> 01:10:45,000 sê, concentrations.html-wag, dit lyk soos die l oorgevaar het na die ander kant- 906 01:10:45,000 --> 01:11:02,000 As ek dan nou oop hier concentrations.html jy sien ek het 'n geldige HTML-lêer. 907 01:11:02,000 --> 01:11:05,000 Is daardie soort van weird? 908 01:11:05,000 --> 01:11:09,000 Ons is met behulp van PHP HTML te skep, geldige HTML te skep. 909 01:11:09,000 --> 01:11:13,000 Die manier waarop ons dit doen is ons net met die PHP-print 910 01:11:13,000 --> 01:11:16,000 die HTML-kode wat ons wil hê om dit te druk. 911 01:11:16,000 --> 01:11:20,000 Dit is letterlik hoe PHP webtuistes werk. 912 01:11:20,000 --> 01:11:24,000 Wanneer jy 'n webtuiste besoek wat jy stuur na iets soos 913 01:11:24,000 --> 01:11:30,000 iets, iets, iets dot com slash artikels 914 01:11:30,000 --> 01:11:33,000 die rekenaar is letterlik oproep index.php, 915 01:11:33,000 --> 01:11:38,000 loop dit deur die PHP-interpreter, en alles wat junk kom uit 916 01:11:38,000 --> 01:11:49,000 dit terug te stuur na die leser en sê hey, die leser, interpreteer dit as HTML. 917 01:11:49,000 --> 01:11:54,000 Die nice ding is dat dit kan 'n pyn wees om voortdurend te skryf eggo, eggo, echo echo 918 01:11:54,000 --> 01:11:59,000 en sluit alles in aanhalingstekens soos hierdie, so as jy wil skryf 919 01:11:59,000 --> 01:12:04,000 die HTML-kode wat gaan om staties te wees jouself jy dit kan doen soos hierdie, 920 01:12:04,000 --> 01:12:16,000 sit dit buite, sluit dit, 921 01:12:16,000 --> 01:12:21,000 en dan hier jy net binne die PHP tags wat jy weet 922 01:12:21,000 --> 01:12:26,000 jy wil programmaties genereer, en in hierdie geval is daardie opsie tags 923 01:12:26,000 --> 01:12:31,000 wat is 'n pyn te genereer. 924 01:12:31,000 --> 01:12:37,000 >> Byvoorbeeld, ons kan genereer 'n duisend opsie tags 925 01:12:37,000 --> 01:12:48,000 deur die doen van iets soos hierdie, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 en sê eggo opsie waarde = $-Oeps, kan ek nie doen nie. 927 01:13:00,000 --> 01:13:03,000 Wel, laat ons gee dit 'n probeer en kyk wat gebeur. 928 01:13:03,000 --> 01:13:22,000 $ I en dan sê $ i 01:13:27,000 Eerder as om te tik dat die opsie-tag van 'n duisend verskillende tye 930 01:13:27,000 --> 01:13:33,000 Ek gebruik PHP-kode om dit outomaties te genereer, programmaties. 931 01:13:33,000 --> 01:13:38,000 Soort van nifty. Ja. 932 01:13:38,000 --> 01:13:41,000 Ek onthou dit genoem word in die lesing of die instruksies, 933 01:13:41,000 --> 01:13:43,000 maar wat is die verskil tussen die aanhalingstekens, 934 01:13:43,000 --> 01:13:45,000 die gewone mense en hierdie enkele dinge? 935 01:13:45,000 --> 01:13:49,000 Dit is eintlik iets wat ek verkeerd hier gedoen dat ek gaan om jou te wys. 936 01:13:49,000 --> 01:13:52,000 Die aanhalingstekens Moenie toelaat dat enige spesiale karakters, 937 01:13:52,000 --> 01:13:57,000 sodat alles binne 'n enkele aangehaal string is letterlik geïnterpreteer word. 938 01:13:57,000 --> 01:14:02,000 As ek 'n \ n binnekant van aanhalingstekens en Ek julle verlos, byvoorbeeld, 939 01:14:02,000 --> 01:14:07,000 en nou is ek gaan hier neer en hardloop- 940 01:14:07,000 --> 01:14:12,000 Oeps, waar ek gaan? 941 01:14:12,000 --> 01:14:19,000 Ag, dit is omdat ek vergeet die $. 942 01:14:19,000 --> 01:14:25,000 >> As ek dan nou up-eintlik oop, hier, sal ons ontslae te raak van die tik dit na 'n lêer. 943 01:14:25,000 --> 01:14:27,000 Ons sal net lees dit. 944 01:14:27,000 --> 01:14:34,000 Hier kan jy sien dat ek hierdie letterlike \ n het in die tou, soos nie 'n werklike nuwe lyn, 945 01:14:34,000 --> 01:14:38,000 en so ook, eerder as om werklik te interpol die waarde van hierdie veranderlike 946 01:14:38,000 --> 01:14:42,000 dit het my die $ i self, wat is 'n soort van 'n pyn. 947 01:14:42,000 --> 01:14:46,000 Die manier om hierdie is die dubbele aanhalingstekens te gebruik, 948 01:14:46,000 --> 01:14:52,000 en dan wanneer jy dubbele aanhalingstekens dit sal eintlik gebruik 949 01:14:52,000 --> 01:14:56,000 behoorlik interpoleer die waardes van al hierdie veranderlikes hier 950 01:14:56,000 --> 01:14:59,000 en ook erken dat hierdie \ n die nuwe lyn wat dit is 951 01:14:59,000 --> 01:15:02,000 en nie \ n. 952 01:15:02,000 --> 01:15:07,000 Die gebruik van die enkele mense is lekker wanneer jy 953 01:15:07,000 --> 01:15:10,000 karakters wat as spesiale karakters vertolk word, want dan het jy nie hoef te 954 01:15:10,000 --> 01:15:15,000 ontsnap hulle voortdurend. 955 01:15:15,000 --> 01:15:18,000 Dinge kan kry morsige, en dikwels die manier wat ek dit doen, 956 01:15:18,000 --> 01:15:24,000 net om te maak dinge maklik, is dat as ek gaan om iets te hê 957 01:15:24,000 --> 01:15:31,000 HTML wil ek in my kode edit sal insluit binne aanhalingstekens 958 01:15:31,000 --> 01:15:36,000 en dan gebruik van hierdie aaneenskakellling operateur 959 01:15:36,000 --> 01:15:43,000 die veranderlikes te koppel. 960 01:15:43,000 --> 01:15:47,000 Dit is 'n ander manier om dit te doen 961 01:15:47,000 --> 01:15:52,000 waar ons die dot dit gaan om aan te sluit het dit is 'n string 962 01:15:52,000 --> 01:15:56,000 met hierdie met hierdie met hierdie, 963 01:15:56,000 --> 01:15:59,000 en nou het ek nie hierdie dubbele aanhalingstekens om te ontsnap. 964 01:15:59,000 --> 01:16:02,000 Ek het nie hierdie man te gebruik om te ontsnap. 965 01:16:02,000 --> 01:16:08,000 Hulle sal letterlik gedruk word as dubbele aanhalingstekens en dan is hierdie man hier. 966 01:16:08,000 --> 01:16:11,000 Dit is 'n ander manier te meng alles saam. 967 01:16:11,000 --> 01:16:14,000 >> [Studente] Ook, wanneer jy eggo getSoort was daar geen aanhalingstekens nie. 968 01:16:14,000 --> 01:16:22,000 Reg, sodat eggo is 'n soort van spesiale in die sin dat jy nie nodig het hakies. 969 01:16:22,000 --> 01:16:29,000 Jy hoef nie te hê om die kwotasie noodwendig punte rondom veranderlikes, 970 01:16:29,000 --> 01:16:37,000 soos dit geldig om te sê $ i eggo, en dit gaan om dit te interpreteer as 'n string. 971 01:16:37,000 --> 01:16:44,000 Dit gaan die cast om te doen, sodat ons dit kan doen, en dit is geldig, maar ons het dit nie nodig nie. 972 01:16:44,000 --> 01:16:48,000 Dit is opsioneel. 973 01:16:48,000 --> 01:16:53,000 In hierdie week se gestelde probleem op die uitkyk vir 'n baie van hierdie soort van dinge 974 01:16:53,000 --> 01:16:58,000 waar jy vermenging en wat ooreenstem met HTML met PHP 975 01:16:58,000 --> 01:17:08,000 net soos hierdie, en nou as ons blaai terug en loop ons hierdie 976 01:17:08,000 --> 01:17:13,000 kan ons sien dat ons het 'n hele klomp van die opsie waardes 977 01:17:13,000 --> 01:17:15,000 wat net uitgedruk word. 978 01:17:15,000 --> 01:17:20,000 Ons het al hierdie HTML wat het regtig vinnig gegenereer vir ons. 979 01:17:20,000 --> 01:17:22,000 Ek sal laat dit as 'n oefening. 980 01:17:22,000 --> 01:17:24,000 Dit is baie soortgelyk aan die lêer lees wat ons vroeër gedoen het. 981 01:17:24,000 --> 01:17:31,000 >> Daar is 'n concentrations.txt lêer wat jy kan trek uit die CDN, 982 01:17:31,000 --> 01:17:34,000 en jy kan dit oop te maak deur gebruik te maak van die dieselfde foreach trick wat ons vroeër gedoen het, 983 01:17:34,000 --> 01:17:39,000 en foreach jy net 'n opsie en plug in te eggo 984 01:17:39,000 --> 01:17:44,000 die toepaslike waardes, die korrekte sleutels en indekse, 985 01:17:44,000 --> 01:17:49,000 en dan kry jy 'n druppel af wat letterlik skep 986 01:17:49,000 --> 01:17:54,000 programmaties vir julle almal van die verskillende konsentrasies by Harvard. 987 01:17:54,000 --> 01:17:57,000 'N handige ding om te hê. 988 01:17:57,000 --> 01:18:02,000 Daar is 'n baie van die konfigurasie dinge vir hierdie opdrag. 989 01:18:02,000 --> 01:18:07,000 As jy dit nog nie gedoen het dit reeds die volgende halfuur, uur, 990 01:18:07,000 --> 01:18:10,000 geruime tyd vanaand beslis vir seker, 991 01:18:10,000 --> 01:18:14,000 loop deur die probleem stel spec, 992 01:18:14,000 --> 01:18:20,000 sien wat gaan aan met die opstel van die vhosts, die plaaslike host, al daardie dinge. 993 01:18:20,000 --> 01:18:24,000 Een ding om te wys op die oomblik is dat 994 01:18:24,000 --> 01:18:30,000 ons het in die meeste probleem stelle is aan die gang in jou Dropbox gids 995 01:18:30,000 --> 01:18:34,000 en dan die probleem stel zip-lêer te laai en pak dit. 996 01:18:34,000 --> 01:18:36,000 Vir hierdie probleem stel jy wil nie. 997 01:18:36,000 --> 01:18:40,000 Jy wil gaan in hierdie vhosts directory. 998 01:18:40,000 --> 01:18:45,000 Jy sal wil hê om te gaan in vhosts en gaan in die plaaslike gasheer directory binne, 999 01:18:45,000 --> 01:18:50,000 en dit is waar jy die zip-lêer af te trek, 1000 01:18:50,000 --> 01:18:55,000 Pak dit, en kry gereed om te gaan. 1001 01:18:55,000 --> 01:18:57,000 Jy sal die stappe op die voet volg. 1002 01:18:57,000 --> 01:19:02,000 >> As jy enige vrae het, stuur e-pos, post dit op Bespreek, kom na kantoorure. 1003 01:19:02,000 --> 01:19:08,000 Dankie ouens. Volgende week gaan ons 'n resensie sessie te hê vir die quiz. 1004 01:19:08,000 --> 01:19:12,000 Geniet jou laaste probleem stel. Ek hoop dat dit alles gaan baie goed. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]