1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Deel 8] [minder comfortabel] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Dit is CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Welkom op onze voorlaatste hoofdstuk. 5 00:00:11,000 --> 00:00:13,000 In deze week gaan we praten over PHP, en dan volgende week 6 00:00:13,000 --> 00:00:17,000 we doen een beetje beoordeling voor Quiz 1. 7 00:00:17,000 --> 00:00:20,000 We gaan om te beginnen op pagina 3 van het probleem stelt pack, 8 00:00:20,000 --> 00:00:28,000 en wij werken via de rubriek van vragen vrij snel. 9 00:00:28,000 --> 00:00:34,000 Op pagina 3, beginnen we het over dit verschil tussen C en PHP 10 00:00:34,000 --> 00:00:38,000 in die zin dat PHP een dynamisch getypeerde taal 11 00:00:38,000 --> 00:00:42,000 terwijl C is statisch getypt, 12 00:00:42,000 --> 00:00:46,000 en heeft iemand echt snel gedaan een codering in iets als PHP 13 00:00:46,000 --> 00:00:51,000 of Python of Ruby eerder JavaScript? 14 00:00:51,000 --> 00:00:53,000 Totaal nieuw? Oke. 15 00:00:53,000 --> 00:00:56,000 >> Al deze talen die ik net noemde 16 00:00:56,000 --> 00:01:01,000 zijn zeer verschillend van talen zoals C en C + + en Java 17 00:01:01,000 --> 00:01:04,000 in de zin dat wanneer u een variabele declareren je hoeft niet te verklaren 18 00:01:04,000 --> 00:01:09,000 wat voor soort variabele het is, dus in C we hadden pech hebt dat u altijd zeggen 19 00:01:09,000 --> 00:01:13,000 dit gaat om een ​​int variabele te zijn, of dit gaat om een ​​char * variabele, 20 00:01:13,000 --> 00:01:16,000 terwijl met PHP, met Python, met Ruby, 21 00:01:16,000 --> 00:01:20,000 met veel van de volgende moderne talen die u niet hoeft te dat te doen. 22 00:01:20,000 --> 00:01:24,000 U zojuist verklaart de variabele en in het geval van PHP 23 00:01:24,000 --> 00:01:28,000 je dat het een variabele declareren door voor aan het met een $-teken, 24 00:01:28,000 --> 00:01:35,000 en het type van de variabele wordt bepaald door welke waarde het belemmert, 25 00:01:35,000 --> 00:01:38,000 dat is wel cool. 26 00:01:38,000 --> 00:01:44,000 Om te spelen met deze een beetje, we hebben monster PHP-code hier 27 00:01:44,000 --> 00:01:47,000 tussen begin en eind tags. 28 00:01:47,000 --> 00:01:53,000 We gebruiken dit soort van HTML in de zin dat 29 00:01:53,000 --> 00:01:56,000 we hebben deze punthaken hier om te openen en te sluiten. 30 00:01:56,000 --> 00:01:58,000 Je ziet dit met HTML. 31 00:01:58,000 --> 00:02:03,000 Je ziet dezelfde soort syntax met XML ook. 32 00:02:03,000 --> 00:02:06,000 >> Dit geeft het begin van een blok PHP. 33 00:02:06,000 --> 00:02:09,000 Dit? Php is specifiek voor PHP. 34 00:02:09,000 --> 00:02:16,000 We sluiten alles met een?> Ook. 35 00:02:16,000 --> 00:02:22,000 Laten we het openen van een bestand in onze apparaat met behulp van wat je wilt. 36 00:02:22,000 --> 00:02:25,000 In dit pakket het zegt te bellen dynamic.php. 37 00:02:25,000 --> 00:02:29,000 In werkelijkheid kun je het noemen wat je wilt, maar de bestandsnaam zal komen 38 00:02:29,000 --> 00:02:34,000 en later van belang zijn, dus vergeet hoe je het noemen. 39 00:02:34,000 --> 00:02:36,000 Ik ga om over te schakelen van het apparaat, 40 00:02:36,000 --> 00:02:43,000 en ik ga naar een map te maken voor 41 00:02:43,000 --> 00:02:48,000 hoofdstuk 9 Ik geloof dat we op nu. 42 00:02:48,000 --> 00:02:51,000 En we gaan in artikel 9, 43 00:02:51,000 --> 00:02:54,000 en ik ga gedit gebruiken. 44 00:02:54,000 --> 00:02:59,000 Laten we eens kijken, gedit, en ik ga de mijne dynamic.php bellen. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Binnen dynamic.php, want dit is een PHP-bestand 47 00:03:06,000 --> 00:03:09,000 en ik wil deze lopen door de PHP-interpreter 48 00:03:09,000 --> 00:03:12,000 Ik moet alles beginnen met die open-tags, 49 00:03:12,000 --> 00:03:17,000 dus ik ga aan die direct aan de slag, 50 00:03:17,000 --> 00:03:23,000 geef mezelf een beetje ruimte tussen de tags, 51 00:03:23,000 --> 00:03:26,000 en dan de punt van deze oefening was om te rotzooien met 52 00:03:26,000 --> 00:03:34,000 deze functie genaamd gettype, dus gettype, deze functie hier. 53 00:03:34,000 --> 00:03:38,000 >> Merk op dat er geen is of ruimte of koppelteken of iets dergelijks underscore 54 00:03:38,000 --> 00:03:42,000 het scheiden van de 2 woorden, te krijgen en te typen, slechts een woord helemaal. 55 00:03:42,000 --> 00:03:46,000 Maar wat dit zal doen, is als ik langs in een variabele te gettype, 56 00:03:46,000 --> 00:03:51,000 zeggen $ var of $ x, 57 00:03:51,000 --> 00:03:55,000 dit zal mij vertellen soort in een debugging-formaat 58 00:03:55,000 --> 00:03:59,000 wat de naam van dat type is. 59 00:03:59,000 --> 00:04:03,000 We gaan hier experimenteren. 60 00:04:03,000 --> 00:04:07,000 In het bijzonder, als je kijkt terug op de PSET spec 61 00:04:07,000 --> 00:04:11,000 we hebben een paar verschillende regels code hier. 62 00:04:11,000 --> 00:04:16,000 In de eerste regel van de code initialiseren we deze variabele, $ var, 63 00:04:16,000 --> 00:04:21,000 gelijk aan 7, en dan hebben we dit printf lijn 64 00:04:21,000 --> 00:04:25,000 dat hey zegt: printf var leeg. 65 00:04:25,000 --> 00:04:29,000 Printf is een van de vele manieren waarop we dingen kunnen afdrukken in PHP. 66 00:04:29,000 --> 00:04:33,000 Vaak zie je de echo functie in plaats van printf gebruikt, 67 00:04:33,000 --> 00:04:40,000 maar printf we zijn allemaal bekend met te zijn codering in C voor een tijdje. 68 00:04:40,000 --> 00:04:42,000 Wat kun je eigenlijk doen is laten we eens kijken of kopiëren en plakken werkt. 69 00:04:42,000 --> 00:04:46,000 Ik ga dit eens te proberen. 70 00:04:46,000 --> 00:04:52,000 We zullen terug te gaan naar het apparaat. 71 00:04:52,000 --> 00:05:00,000 Oke, en daar gaan we. 72 00:05:00,000 --> 00:05:05,000 En afstand is een beetje funky, maar hier gaan we. 73 00:05:05,000 --> 00:05:08,000 We hebben deze code hier. 74 00:05:08,000 --> 00:05:11,000 >> [Student] Is het niet een goede stijl naar het tabblad het? 75 00:05:11,000 --> 00:05:13,000 Sorry? 76 00:05:13,000 --> 00:05:15,000 [Student] Is het gebruikelijk om het tabblad het? 77 00:05:15,000 --> 00:05:21,000 Juist, dus Sam vraagt ​​of het verdrag tabblad of niet. 78 00:05:21,000 --> 00:05:23,000 Typisch ja. 79 00:05:23,000 --> 00:05:26,000 In dit geval heb ik ervoor gekozen niet te doen. 80 00:05:26,000 --> 00:05:33,000 Eerlijk gezegd, zie je verschillende dingen tussen verschillende programmeurs. 81 00:05:33,000 --> 00:05:40,000 PHP wordt meestal vaak gebruikt in combinatie met HTML 82 00:05:40,000 --> 00:05:45,000 en andere talen, en dus soms het afdrukken wordt er een beetje funky 83 00:05:45,000 --> 00:05:50,000 als je streepje binnen PHP start en eind tags. 84 00:05:50,000 --> 00:05:53,000 Het hangt echt. 85 00:05:53,000 --> 00:05:56,000 In dit geval is de kopiëren en plakken niet plak de tabs in voor mij, 86 00:05:56,000 --> 00:06:02,000 maar het is zeker, zoals je zei, het duidelijker. 87 00:06:02,000 --> 00:06:06,000 Goed, als u bespaart deze code in dynamic.php 88 00:06:06,000 --> 00:06:10,000 dan wat je kunt doen is naar beneden gekomen om uw terminal venster waar ik gelijk heb hier beneden 89 00:06:10,000 --> 00:06:17,000 in gedit, en doen het equivalent van compile 90 00:06:17,000 --> 00:06:20,000 met behulp van te maken en dan het runnen van uw code in C 91 00:06:20,000 --> 00:06:25,000 alles wat je hoeft te doen met de PHP-bestand is het opstarten van de PHP-interpreter, 92 00:06:25,000 --> 00:06:30,000 dat is een klein programma genaamd PHP, 93 00:06:30,000 --> 00:06:35,000 en het argument geef je aan de interpreter is het bestand dat u wilt interpreteren. 94 00:06:35,000 --> 00:06:40,000 In dit geval dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Oeps, ik heb waar het ook alweer? 96 00:06:43,000 --> 00:06:52,000 Oh, ik zet het in artikel 9, en hier ben ik. Dat is waarom. 97 00:06:52,000 --> 00:06:57,000 >> Nu als ik zonder dat opnieuw 98 00:06:57,000 --> 00:07:02,000 zien we dat in mijn eerste gettype functie-aanroep 99 00:07:02,000 --> 00:07:04,000 var een geheel getal. 100 00:07:04,000 --> 00:07:12,000 In de volgende var een string is, en vervolgens in de derde var een boolean. 101 00:07:12,000 --> 00:07:15,000 Wat interessant aan is, is als we schuiven een back-up te zien we dat 102 00:07:15,000 --> 00:07:18,000 Dit zijn types vergelijkbaar met degenen die we hadden in C. 103 00:07:18,000 --> 00:07:22,000 We hadden ints in C. 104 00:07:22,000 --> 00:07:26,000 We hadden soort van strings in C, 105 00:07:26,000 --> 00:07:31,000 dus snaren waren niet een totaal legit type in de zin dat 106 00:07:31,000 --> 00:07:37,000 onze CS50 reeks was echt wat? 107 00:07:37,000 --> 00:07:39,000 Sorry? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Ja, het was dit char * we gebruikten. 110 00:07:43,000 --> 00:07:47,000 Helemaal aan het begin van het semester waren we met behulp van de string type, 111 00:07:47,000 --> 00:07:52,000 maar het was echt een char * onder de motorkap. 112 00:07:52,000 --> 00:07:58,000 We hebben net het type gedefinieerd is, terwijl in PHP deze snaren zijn een echte type. 113 00:07:58,000 --> 00:08:07,000 Er is niet meer van deze char * soort dingen. 114 00:08:07,000 --> 00:08:10,000 >> Je zult zien dat we nog veel meer dingen te doen met snaren 115 00:08:10,000 --> 00:08:14,000 veel gemakkelijker in PHP dan konden we in C, 116 00:08:14,000 --> 00:08:17,000 en dan eindelijk, we hebben dit boolean type, en het grote verschil hier is dat 117 00:08:17,000 --> 00:08:21,000 Als we scrollen naar beneden zien we dat de naam van deze typen 118 00:08:21,000 --> 00:08:28,000 zijn nu integer, string, en boolean in plaats van int en bool, 119 00:08:28,000 --> 00:08:31,000 en als je pick-up verschillende programmeertalen, 120 00:08:31,000 --> 00:08:36,000 in de veronderstelling dat op een bepaald punt in je leven zul je in contact komen met 121 00:08:36,000 --> 00:08:40,000 verschillende die je zult merken kleine eigenaardigheden als dit 122 00:08:40,000 --> 00:08:44,000 waarbij C gehele getallen ints noemt. 123 00:08:44,000 --> 00:08:46,000 Sommigen noemen het gehele getallen. 124 00:08:46,000 --> 00:08:51,000 Er zijn andere termen die je zult tegenkomen. 125 00:08:51,000 --> 00:08:55,000 Big int zagen we vandaag in SQL. 126 00:08:55,000 --> 00:08:59,000 Er zijn ook tal en dan bool, boolean, 127 00:08:59,000 --> 00:09:03,000 allerlei verschillen zijn. 128 00:09:03,000 --> 00:09:07,000 >> Dit is niet erg interessant, maar nu ga ik om u een beetje tijd- 129 00:09:07,000 --> 00:09:13,000 Als we weer uit te zoomen-om te werken via deze oefening aan de onderkant van de pagina 3 130 00:09:13,000 --> 00:09:20,000 waar het vraagt ​​welke soorten hier overeenkomen met deze waarden aan de onderkant. 131 00:09:20,000 --> 00:09:24,000 Wij hebben 3,50. 132 00:09:24,000 --> 00:09:28,000 We hebben dit ding hier, dat is interessant. 133 00:09:28,000 --> 00:09:32,000 Wij hebben dat niet eerder gezien, maar als je hebt gevolgd mee in lezing 134 00:09:32,000 --> 00:09:35,000 u waarschijnlijk al weet wat dat is. 135 00:09:35,000 --> 00:09:40,000 Dan hebben we dit, dat dit is een soort van funky. 136 00:09:40,000 --> 00:09:42,000 Je herkent 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 zou dit je in C? 139 00:09:50,000 --> 00:09:54,000 Het zou openen een bestand met de naam dynamic.php en leesbaar te maken. 140 00:09:54,000 --> 00:09:58,000 Ja, en wat zou het type variabele dat we deze toe te wijzen aan? >> Bestand ster te zijn. 141 00:09:58,000 --> 00:10:02,000 Precies, zouden we toewijzen aan een bestand ster. 142 00:10:02,000 --> 00:10:08,000 Dit is legitiem PHP ook. 143 00:10:08,000 --> 00:10:12,000 Run dat. Zie wat er gebeurt als je voorbij dat in gettype. 144 00:10:12,000 --> 00:10:19,000 En dan ook controleren wat null is, wat dat zou kunnen zijn in PHP. 145 00:10:19,000 --> 00:10:21,000 Ik geef je een paar minuten. 146 00:10:21,000 --> 00:10:24,000 U kunt letterlijk kopiëren en plakken deze waarden in, 147 00:10:24,000 --> 00:10:29,000 en dan zullen we wel een beetje willekeurige oproep op u 148 00:10:29,000 --> 00:10:34,000 en zien wat je hebt. 149 00:10:34,000 --> 00:10:36,000 >> [Student] Ik heb een vraag. << Ja. 150 00:10:36,000 --> 00:10:40,000 In een van de lezingen David zei dat er iets is wat je kunt zetten op de top van uw dossier 151 00:10:40,000 --> 00:10:43,000 zodat je niet hoeft te typen in PHP elke keer. 152 00:10:43,000 --> 00:10:45,000 Wat was dat? 153 00:10:45,000 --> 00:10:50,000 Hij was waarschijnlijk over het pond knal, de hash bang. 154 00:10:50,000 --> 00:10:57,000 Het is een richtlijn dat als je markeert het bestand als uitvoerbaar 155 00:10:57,000 --> 00:11:01,000 dan wat het doet is als je uit te voeren van het bestand 156 00:11:01,000 --> 00:11:06,000 het zal u vertellen de shell-programma 157 00:11:06,000 --> 00:11:12,000 de PHP interpreter gebruiken om de inhoud van het bestand te interpreteren. 158 00:11:12,000 --> 00:11:16,000 De vraag is wat was deze bijzondere lijn 159 00:11:16,000 --> 00:11:20,000 dat we ten bovenaan onze PHP bestanden niet opnemen 160 00:11:20,000 --> 00:11:26,000 dit PHP lijn of dit PHP commando wanneer we willen het bestand uit te voeren? 161 00:11:26,000 --> 00:11:31,000 En kun je eigenlijk doen met een bos van verschillende bestanden. 162 00:11:31,000 --> 00:11:37,000 Ik denk dat het hangt af van waar de PHP binary wordt opgeslagen, 163 00:11:37,000 --> 00:11:43,000 maar vaak usr / bin / php is een goede plek om te beginnen. 164 00:11:43,000 --> 00:11:45,000 U kunt dit oplossen precies door terug te gaan naar uw apparaat 165 00:11:45,000 --> 00:11:50,000 en typen welke php. 166 00:11:50,000 --> 00:11:55,000 De welke opdracht cijfers uit als je het uitvoeren van binaire 167 00:11:55,000 --> 00:12:01,000 of een opdracht waar het betreffende bestand is. 168 00:12:01,000 --> 00:12:06,000 Dit vertelt me ​​dat het PHP is echt aliasing dit binair bestand 169 00:12:06,000 --> 00:12:13,000 die is opgeslagen in usr / bin, dat is waar een groot deel van de binaire systeembestanden zijn geïnstalleerd. 170 00:12:13,000 --> 00:12:21,000 Bijvoorbeeld, als ik omhoog naar de top, nu ik dit # gezet! lijn hier 171 00:12:21,000 --> 00:12:27,000 Ik kan naar beneden scrollen, en ik kan proberen te lopen 172 00:12:27,000 --> 00:12:35,000 dynamic.php, maar krijg ik deze foutmelding over toestemming wordt geweigerd, 173 00:12:35,000 --> 00:12:42,000 en wat dat betekent is dat dit bestand op dit moment niet uitvoerbaar permissies geven. 174 00:12:42,000 --> 00:12:46,000 Het is niet gemarkeerd als een bestand dat iemand kan draaien. 175 00:12:46,000 --> 00:12:52,000 >> Wanneer u liep maken of Clang en je hebt een uitvoerbaar van het 176 00:12:52,000 --> 00:12:56,000 de compiler was slim genoeg om te weten dat he, ik ben een uitvoerbaar bouwen. 177 00:12:56,000 --> 00:13:00,000 U wilt waarschijnlijk het uit te voeren, dus het zou automatisch te configureren 178 00:13:00,000 --> 00:13:02,000 de machtigingen voor jou. 179 00:13:02,000 --> 00:13:06,000 Dit is niet het geval, echter, wanneer u een normaal bestand vanuit het niets, 180 00:13:06,000 --> 00:13:13,000 De reden hiervoor is meestal dat u niet wilt dat een bestand op uw systeem uitvoerbaar, 181 00:13:13,000 --> 00:13:15,000 zodat je eigenlijk moeten gaan en handmatig doen. 182 00:13:15,000 --> 00:13:22,000 De eenvoudigste manier om het te doen is met het chmod commando, 183 00:13:22,000 --> 00:13:28,000 en chmod + x zegt toe de uitvoerbare bit 184 00:13:28,000 --> 00:13:31,000 want er is de lees-bit, de schrijf bit en de uitvoerbare bit, 185 00:13:31,000 --> 00:13:35,000 r, w en x, 186 00:13:35,000 --> 00:13:39,000 en zeggen chmod + x gaat branden en de uitvoerbare bit 187 00:13:39,000 --> 00:13:46,000 voor het bestand dat we geven, die in dit geval dynamic.php zijn. 188 00:13:46,000 --> 00:13:49,000 >> [Student] Is dat aangezet voor iedereen? 189 00:13:49,000 --> 00:13:52,000 Laten we dit zien, dus hoe zou ik controleren om de machtigingen te zien? 190 00:13:52,000 --> 00:13:54,000 Weet je hoe ik zou controleren om de permissies van een bestand zien? 191 00:13:54,000 --> 00:13:56,000 [Onverstaanbaar student reactie] 192 00:13:56,000 --> 00:13:58,000 Sorry? >> [Student] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD geeft ons het bestand in hacks. 194 00:14:03,000 --> 00:14:09,000 Een lijst van alle bestanden,-l, maakt mij alle bestanden in mijn directory 195 00:14:09,000 --> 00:14:13,000 soort in hun lange, uitgebreide lijst, en dus even zien we dat 196 00:14:13,000 --> 00:14:17,000 dit dynamic.php bestand 197 00:14:17,000 --> 00:14:23,000 is het laatst bewerkt 5 november om 16:21. 198 00:14:23,000 --> 00:14:26,000 De eigenaar van dit bestand is jharvard. 199 00:14:26,000 --> 00:14:28,000 Dat is de gebruiker die is ingelogd 200 00:14:28,000 --> 00:14:31,000 Dat is de gebruiker Ik ben net zo werken, 201 00:14:31,000 --> 00:14:36,000 en als je ook in het apparaat dat je ook werkzaam als gebruiker jharvard. 202 00:14:36,000 --> 00:14:38,000 Je bent in de studenten-groep, 203 00:14:38,000 --> 00:14:44,000 en dit zijn dingen die je vaak genoeg zien. 204 00:14:44,000 --> 00:14:47,000 >> We kunnen hier gaan in een veel detail, 205 00:14:47,000 --> 00:14:50,000 maar voor het grootste deel wat je wilt kijken wanneer u op zoek bent om te zien 206 00:14:50,000 --> 00:14:55,000 of een uitvoerbaar bestand is voornamelijk 207 00:14:55,000 --> 00:14:58,000 de gebruiker die eigenaar van het bestand, de eigenaar, 208 00:14:58,000 --> 00:15:03,000 dus dit jharvard, en dan hebben we 209 00:15:03,000 --> 00:15:07,000 de rechten bits over hier links, 210 00:15:07,000 --> 00:15:13,000 en de manier om dit te lezen, is dat het laatste stukje 211 00:15:13,000 --> 00:15:18,000 gewoonlijk wordt gebruikt voor het markeren of, althans in dit geval 212 00:15:18,000 --> 00:15:21,000 dit laatste stukje zal vaak worden ingesteld op de ad om aan te geven 213 00:15:21,000 --> 00:15:24,000 dat het bestand is een directory en niet alleen een normaal bestand. 214 00:15:24,000 --> 00:15:28,000 Dan is de volgende 3 bits hier 215 00:15:28,000 --> 00:15:34,000 bepalen de machtigingen die de eigenaar van het bestand, 216 00:15:34,000 --> 00:15:38,000 dus in dit geval jharvard, als eigenaar van het bestand, kan lezen en schrijven dit bestand, 217 00:15:38,000 --> 00:15:42,000 maar er is een vleugje zeggen dat jharvard niet kan dit bestand uit te voeren. 218 00:15:42,000 --> 00:15:46,000 De volgende 3 bits zijn voor de groep, dus dit is de studenten-groep, 219 00:15:46,000 --> 00:15:49,000 dus als er meerdere gebruikers op mijn toestel, 220 00:15:49,000 --> 00:15:52,000 en we meerdere gebruikers hadden als onderdeel van de groep studenten, 221 00:15:52,000 --> 00:15:55,000 dan kunnen ze allemaal lezen dit bestand, maar ze kunnen niet schrijven, 222 00:15:55,000 --> 00:15:59,000 en ook iemand anders, de wereld 223 00:15:59,000 --> 00:16:01,000 kan alleen lezen dit bestand ook. 224 00:16:01,000 --> 00:16:03,000 Er is een goede, lange writeup over dit, 225 00:16:03,000 --> 00:16:05,000 zodat u kunt lezen online. 226 00:16:05,000 --> 00:16:10,000 In het probleem set spec gaan we in dit in meer detail. 227 00:16:10,000 --> 00:16:12,000 >> [Student] Is de 218 verwijst naar de wereld? 228 00:16:12,000 --> 00:16:17,000 De 218 is-uit de top van mijn hoofd ben ik vergeten, 229 00:16:17,000 --> 00:16:20,000 maar nee. 230 00:16:20,000 --> 00:16:29,000 Laten we eens kijken. Ik ben blanking op dat moment. 231 00:16:29,000 --> 00:16:32,000 Terug naar waar we stonden op het doen met dit chmod + x 232 00:16:32,000 --> 00:16:37,000 waar we wilden dynamic.php uitvoerbare permissies te geven, 233 00:16:37,000 --> 00:16:40,000 en de vraag was of dit, dat uitvoerbaar permissies te geven aan iedereen 234 00:16:40,000 --> 00:16:44,000 of om gewoon jharvard, en we kunnen dit zien door 235 00:16:44,000 --> 00:16:48,000 het uitvoeren van de opdrachten en het typen van ls-l, 236 00:16:48,000 --> 00:16:51,000 en nu zien we dat het is gemarkeerd als uitvoerbaar. 237 00:16:51,000 --> 00:16:54,000 Je ziet dat er een kleurverandering. 238 00:16:54,000 --> 00:16:57,000 Nu dynamic.php is opgenomen in groen, 239 00:16:57,000 --> 00:17:01,000 en het lijkt erop dat het antwoord op de vraag is wat, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Alleen jharvard. >> Alleen jharvard, ja. 241 00:17:04,000 --> 00:17:08,000 >> Als we wilden de uitvoerbare bit te schakelen voor iedereen 242 00:17:08,000 --> 00:17:10,000 hoe kunnen we dat doen? 243 00:17:10,000 --> 00:17:13,000 Elke gedachten? >> A + x? 244 00:17:13,000 --> 00:17:15,000 Ja, precies. 245 00:17:15,000 --> 00:17:23,000 Charlotte zei dat we kunnen chmod doen van a + x van dynamic.php, 246 00:17:23,000 --> 00:17:26,000 en nu als we lopen ls-l zien we dat de uitvoerbare bits 247 00:17:26,000 --> 00:17:30,000 zijn inderdaad ingeschakeld voor iedereen. 248 00:17:30,000 --> 00:17:37,000 En kun je eigenlijk het omgekeerde doen van dit, dus je kunt uitschakelen voor iedereen 249 00:17:37,000 --> 00:17:41,000 met behulp van min. 250 00:17:41,000 --> 00:17:46,000 Nu is het uitgeschakeld, en nu kunnen we weer aan voor jharvard 251 00:17:46,000 --> 00:17:52,000 zodat we daadwerkelijk kunnen nu draaien, 252 00:17:52,000 --> 00:17:58,000 en nu zie je wanneer we de code uitvoert deze speciale #! lijn aan de top, 253 00:17:58,000 --> 00:18:04,000 #! lijn, vertelde de schaal, 254 00:18:04,000 --> 00:18:08,000 vertelde onze terminal hey, wanneer dit bestand wordt uitgevoerd, 255 00:18:08,000 --> 00:18:14,000 Gebruik / usr / bin / php om dit bestand te interpreteren 256 00:18:14,000 --> 00:18:20,000 en druk vervolgens de uitgang. 257 00:18:20,000 --> 00:18:22,000 [Onverstaanbaar student vraag] 258 00:18:22,000 --> 00:18:25,000 Tuurlijk, laat me omhoog terug. Net als dit. 259 00:18:25,000 --> 00:18:36,000 Je ziet al deze richtlijnen te beginnen met deze pond en dan het uitroepteken, 260 00:18:36,000 --> 00:18:39,000 ook wel een keet, hash bang. 261 00:18:39,000 --> 00:18:48,000 >> [Student] Hoe kunnen we draaien met php dynamic.php voordat we het uitvoerbaar? 262 00:18:48,000 --> 00:18:55,000 De vraag was hoe kunnen we run this behulp van de PHP binary 263 00:18:55,000 --> 00:18:58,000 terwijl dynamic.php is niet uitvoerbaar? 264 00:18:58,000 --> 00:19:01,000 Dit is super belangrijk, want dit is precies hoe 265 00:19:01,000 --> 00:19:06,000 het gaat werken wanneer je schrijft probleem set 7. 266 00:19:06,000 --> 00:19:09,000 De meeste van de tijd PHP-bestanden zijn niet direct uitvoerbaar. 267 00:19:09,000 --> 00:19:14,000 De manier waarop dat werkt is omdat het de PHP binary dat is uitvoerbaar. 268 00:19:14,000 --> 00:19:16,000 De tolk is het ding dat wordt uitgevoerd, 269 00:19:16,000 --> 00:19:20,000 en dus wat het doet is letterlijk slurpen in de volledige inhoud 270 00:19:20,000 --> 00:19:25,000 van onze dynamic.php bestand en gaat regel voor regel 271 00:19:25,000 --> 00:19:29,000 en het uitvoeren van deze opdrachten, dus het is het gebruik van onze PHP-bestand 272 00:19:29,000 --> 00:19:31,000 een lijst van instructies. 273 00:19:31,000 --> 00:19:36,000 Het is niet direct uit kan voeren. 274 00:19:36,000 --> 00:19:40,000 Dat is waar we zeggen dat deze bestanden worden geïnterpreteerd tijdens runtime. 275 00:19:40,000 --> 00:19:46,000 Het is een runtime taal in plaats van iets dat bepaald tijdens het compileren, 276 00:19:46,000 --> 00:19:49,000 niet een gecompileerde taal als C 277 00:19:49,000 --> 00:19:54,000 >> Is er een manier om een ​​runtime taal te krijgen om op te treden alsof het een compilatie taal, 278 00:19:54,000 --> 00:19:58,000 graag als je alle lopende gedaan op de server 279 00:19:58,000 --> 00:20:00,000 in plaats van-je weet wat ik bedoel? 280 00:20:00,000 --> 00:20:04,000 Ja, dus de vraag is 281 00:20:04,000 --> 00:20:11,000 is er een manier om runtime talen te krijgen om op te treden meer op de compilatie vormen van talen? 282 00:20:11,000 --> 00:20:18,000 En er zijn, ik bedoel, dat is een actief gebied van onderzoek voor veel van deze bedrijven. 283 00:20:18,000 --> 00:20:22,000 Ik denk dat Facebook is veel werk gedaan met PHP 284 00:20:22,000 --> 00:20:25,000 en samenstellen van het naar beneden, waardoor het sneller, het optimaliseren van het 285 00:20:25,000 --> 00:20:29,000 omdat hun site is gebouwd op PHP. 286 00:20:29,000 --> 00:20:34,000 Als u hebt gevolgd node.js helemaal niet, 287 00:20:34,000 --> 00:20:40,000 dat is een soort van een JavaScript-interpreter 288 00:20:40,000 --> 00:20:44,000 in staat zijn om JavaScript uit te voeren buiten de browser, buiten uw web browser, 289 00:20:44,000 --> 00:20:47,000 omdat van oudsher JavaScript zou alleen nog maar de binnenkant van Firefox of Chrome, 290 00:20:47,000 --> 00:20:52,000 en het zou worden gebruikt om koele animaties gebeuren op een webpagina 291 00:20:52,000 --> 00:20:55,000 en maak uw webpagina dynamisch. 292 00:20:55,000 --> 00:20:59,000 Dat is al gebouwd op een hoop werk dat Google heeft gedaan 293 00:20:59,000 --> 00:21:03,000 je JavaScript en C maken + + 294 00:21:03,000 --> 00:21:09,000 samenbinden, dus er is veel actief onderzoek naar 295 00:21:09,000 --> 00:21:13,000 krijgen deze talen te communiceren en te optimaliseren, 296 00:21:13,000 --> 00:21:17,000 in de eerste plaats omdat er zoveel mensen kunnen coderen in PHP en JavaScript 297 00:21:17,000 --> 00:21:19,000 want het is een stuk makkelijker. 298 00:21:19,000 --> 00:21:21,000 Het is een stuk mooier. Je hoeft niet pointers. 299 00:21:21,000 --> 00:21:27,000 Je hoeft niet typen rondzweven. 300 00:21:27,000 --> 00:21:31,000 Ze wilden de voordelen van deze compilatie talen te winnen 301 00:21:31,000 --> 00:21:36,000 alle type checking en de snelheid en de onderste geheugengebruik en dat alles 302 00:21:36,000 --> 00:21:42,000 met behoud van de flexibiliteit en het gemak van het gebruik van deze nieuwere. 303 00:21:42,000 --> 00:21:46,000 >> Terug naar onze oorspronkelijke plan van aanval. 304 00:21:46,000 --> 00:21:50,000 We hebben een paar van deze vragen hier in ons probleem set spec. 305 00:21:50,000 --> 00:21:54,000 Laten we gaan door hen heel snel, en dan gaan we in de kamer. 306 00:21:54,000 --> 00:21:59,000 Charlotte, wat voor soort is 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Dat is een dubbele. >> Het is een dubbele. 308 00:22:01,000 --> 00:22:03,000 Jimmy, wat is dit volgende? >> Een array. 309 00:22:03,000 --> 00:22:09,000 Een array, geweldig, en Jared, wat is de fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Het is een bron. >> Het is een bron. 311 00:22:11,000 --> 00:22:15,000 Dat is een soort van een nieuwe, niet een bestand ster, niet een bestand. 312 00:22:15,000 --> 00:22:19,000 Het is een bron is het type in PHP, 313 00:22:19,000 --> 00:22:24,000 en het spijt me, Ella, de laatste nul is wat? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, hoe wordt het gespeld in PHP? >> Op dezelfde manier. 316 00:22:28,000 --> 00:22:30,000 Op dezelfde manier, hoofdsteden? >> Ja. 317 00:22:30,000 --> 00:22:33,000 Ja, oke. 318 00:22:33,000 --> 00:22:35,000 Daar gaan we, we hebben een dubbele, we hebben een array, 319 00:22:35,000 --> 00:22:41,000 we hebben een bron, en dan hebben we null. 320 00:22:41,000 --> 00:22:48,000 Laten we eens kijken nu heb je gezien- 321 00:22:48,000 --> 00:22:51,000 laten we eens kijken, dus nu ik denk dat wat ik ook wil doen is omhoog te trekken 322 00:22:51,000 --> 00:22:56,000 deze webpagina hier, dit php.net / handleiding, 323 00:22:56,000 --> 00:23:01,000 dus als jullie kopiëren dat en het openen van een web browser. 324 00:23:01,000 --> 00:23:07,000 Ik ga trekken Chrome, zet dat binnen 325 00:23:07,000 --> 00:23:10,000 Ik wil je laten zien dat niet alleen omdat 326 00:23:10,000 --> 00:23:13,000 kunnen we de hele dag praten over soorten en al die leuke dingen 327 00:23:13,000 --> 00:23:19,000 maar omdat dit de PHP handleiding, 328 00:23:19,000 --> 00:23:23,000 en er zijn een heleboel van PHP programmeurs die er zijn. 329 00:23:23,000 --> 00:23:26,000 Er zijn een heleboel van PHP-websites die er zijn, 330 00:23:26,000 --> 00:23:31,000 en als gevolg daarvan is er veel documentatie over PHP, 331 00:23:31,000 --> 00:23:36,000 en de handleiding, dit php.net, is echt een goede plek om te gaan 332 00:23:36,000 --> 00:23:43,000 wanneer je met vragen over wat is de beste manier om X te doen in PHP 333 00:23:43,000 --> 00:23:45,000 of hoe ziet een functie eruit? 334 00:23:45,000 --> 00:23:49,000 Gewoon een soort van kennis te maken met hoe dit eruit ziet, omdat 335 00:23:49,000 --> 00:23:54,000 je zult hier komen vaak een beetje voor te stellen probleem 7. 336 00:23:54,000 --> 00:23:57,000 >> Als je uiteindelijk het doen van een afstudeeropdracht die PHP gebruikt 337 00:23:57,000 --> 00:24:04,000 zal dit een plaats waar je je erg goed op de hoogte zijn. 338 00:24:04,000 --> 00:24:09,000 Vaak is de manier waarop mensen dit doen is dat ze gebruik maken van Google om te zoeken naar de site, 339 00:24:09,000 --> 00:24:16,000 en ze maken geen gebruik van het zoekvak dat is hier in de rechterbovenhoek, dat is een beetje klein. 340 00:24:16,000 --> 00:24:19,000 Als je rond Googlen naar iets te doen met PHP en je ziet 341 00:24:19,000 --> 00:24:24,000 een van de handmatige koppelingen pop-up kunt u meestal beroep doen op deze 342 00:24:24,000 --> 00:24:31,000 als een redelijk goede bron. 343 00:24:31,000 --> 00:24:34,000 Geweldig, dus uit deze types, gewoon uit nieuwsgierigheid, 344 00:24:34,000 --> 00:24:37,000 welke hebben we niet gezien? 345 00:24:37,000 --> 00:24:40,000 Alles wat we niet hebben gezien hier? 346 00:24:40,000 --> 00:24:44,000 [Student] Resource. >> We zagen hulpbron worden voor de fopen gesprek. 347 00:24:44,000 --> 00:24:48,000 [Student] Objecten. >> Objecten we niet gezien hebben zeker. 348 00:24:48,000 --> 00:24:51,000 Callbacks hebben we niet gezien. 349 00:24:51,000 --> 00:24:54,000 Er zijn enkele van deze pseudo-types. 350 00:24:54,000 --> 00:24:57,000 We zijn zeker zagen alleen integer en dubbele. 351 00:24:57,000 --> 00:25:01,000 We hebben niet een aantal van de anderen te zien, dus als we op gehele getallen 352 00:25:01,000 --> 00:25:08,000 we kunnen zien zijn er nog andere getallen die ze hier hebben? 353 00:25:08,000 --> 00:25:11,000 Zijn ze allemaal-zo integer, integer, integer. 354 00:25:11,000 --> 00:25:14,000 Sommige talen hebben grotere integer types, 355 00:25:14,000 --> 00:25:23,000 zoals we zagen op MySQL vandaag was er int en vervolgens grote int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Dus, PHP handleiding. 358 00:25:28,000 --> 00:25:37,000 Laten we terug gaan naar ons probleem set spec, en we zullen nu naar beneden scrollen naar pagina 4. 359 00:25:37,000 --> 00:25:41,000 Een van de dingen die er gebeurt als je de volgende talen 360 00:25:41,000 --> 00:25:49,000 dat dit niet statisch te typen, dus de volgende talen waar je moet aangeven 361 00:25:49,000 --> 00:25:52,000 het type van een variabele vooraan 362 00:25:52,000 --> 00:26:00,000 wordt krijg je wanneer je zou kunnen beginnen met variabelen van verschillende types 363 00:26:00,000 --> 00:26:04,000 interactie met elkaar, 364 00:26:04,000 --> 00:26:09,000 en PHP doet dit ding waar het probeert te doen 365 00:26:09,000 --> 00:26:13,000 wat het beschouwt als de meest verstandige om te doen 366 00:26:13,000 --> 00:26:18,000 wanneer u 2 verschillende types met elkaar. 367 00:26:18,000 --> 00:26:24,000 Bijvoorbeeld, als we kijken naar de volgende regels code hier 368 00:26:24,000 --> 00:26:29,000 zie je dat we hebben wat er gebeurt als 369 00:26:29,000 --> 00:26:38,000 we proberen en voeg de string 1 tot en met het gehele getal 2. 370 00:26:38,000 --> 00:26:41,000 Wat gebeurt er als we proberen en voeg een string die niet is een numerieke waarde 371 00:26:41,000 --> 00:26:48,000 maar eigenlijke betekenis, CS het nummer 50? 372 00:26:48,000 --> 00:26:51,000 Dan zullen we zien is er iets anders dat gebeurt waar 373 00:26:51,000 --> 00:26:56,000 in plaats van het toevoegen van een string naar een getal dat we een nummer toe te voegen aan een string, 374 00:26:56,000 --> 00:27:00,000 en zo verder en zo voort tot het punt waar we krijgen 375 00:27:00,000 --> 00:27:05,000 een soort van rare dingen hier, waar we hebben 7 + waar. 376 00:27:05,000 --> 00:27:09,000 Wat de heck betekent dat? 377 00:27:09,000 --> 00:27:19,000 >> Als jullie doorgaan en plak een deel van deze code op uw apparaat. 378 00:27:19,000 --> 00:27:27,000 U kunt houd het in dynamic.php. 379 00:27:27,000 --> 00:27:30,000 We zullen zien wat er gebeurt. 380 00:27:41,000 --> 00:27:43,000 [Student] Gewoon gebruik maken van afdrukken, niet printf? 381 00:27:43,000 --> 00:27:52,000 Ja, dus je zult zien dat print is ook een geldige functie voor het afdrukken van in PHP. 382 00:27:52,000 --> 00:27:54,000 Er zijn veel verschillende manieren om het te doen. 383 00:27:54,000 --> 00:27:58,000 We zullen zien met een paar van de voorbeelden later als we eenmaal beginnen te praten 384 00:27:58,000 --> 00:28:02,000 over de unieke probleem dat we gaan schrijven 385 00:28:02,000 --> 00:28:06,000 en dan de concentraties probleem dat we gaan schrijven 386 00:28:06,000 --> 00:28:09,000 dat ook al hebben we fopen en fclose 387 00:28:09,000 --> 00:28:15,000 dat vaak niet de eenvoudigste manier te lezen in de inhoud van een bestand. 388 00:28:15,000 --> 00:28:21,000 PHP heeft veel van deze C-achtige overblijfselen. 389 00:28:21,000 --> 00:28:28,000 [Student] Toen ik in alle 6 van die dingen die ik alleen maar een nummer als een uitgang. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Als je in alle 6 van deze dingen. 391 00:28:36,000 --> 00:28:39,000 Laten we eens kijken is het omdat het mogelijk- 392 00:28:39,000 --> 00:28:46,000 een ding is dat deze afdruk oproepen niet worden beëindigd op het einde met nieuwe lijnen. 393 00:28:46,000 --> 00:28:49,000 Er is geen nieuwe lijn tussen elk van deze afdruk oproepen, 394 00:28:49,000 --> 00:28:51,000 dus misschien dat je het krijgen van een groot aantal, 395 00:28:51,000 --> 00:28:58,000 en het is echt gewoon amalgaam van nieuwe lijn karakters. 396 00:28:58,000 --> 00:29:00,000 [Student] Oke, hoe kan ik er zeker van- 397 00:29:00,000 --> 00:29:03,000 Nou, er zijn een heleboel verschillende manieren. 398 00:29:03,000 --> 00:29:06,000 Je zou handmatig in een afdruk van een nieuwe lijn karakter, 399 00:29:06,000 --> 00:29:09,000 een echo van een nieuwe lijn karakter, 400 00:29:09,000 --> 00:29:12,000 af te drukken van de nieuwe lijn. 401 00:29:12,000 --> 00:29:16,000 [Student] Dus echo is hetzelfde als printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf is als C printf 403 00:29:21,000 --> 00:29:24,000 waar je het afdrukken van een geformatteerde string. 404 00:29:24,000 --> 00:29:32,000 Je levert het de format string en vervolgens alle tijdelijke aanduiding variabelen. 405 00:29:32,000 --> 00:29:39,000 Het is vaak iets dat niet wordt gebruikt- 406 00:29:39,000 --> 00:29:42,000 laten we eens kijken, als een disclaimer, 407 00:29:42,000 --> 00:29:48,000 Ik ben minder vertrouwd zijn met PHP dan ik ben met andere web talen, 408 00:29:48,000 --> 00:29:53,000 en toen heb ik geprogrammeerd in PHP ik meestal niet printf gebruiken 409 00:29:53,000 --> 00:29:59,000 want ik vind het sneller in het gebruik de string interpolatie mogelijkheden die het heeft, 410 00:29:59,000 --> 00:30:04,000 die gaan we in en ik zal je laten zien in slechts een seconde, 411 00:30:04,000 --> 00:30:08,000 terwijl in C hebben we soort van moeten dit hacky ding te doen om het te krijgen om goed te printen. 412 00:30:08,000 --> 00:30:16,000 Je kunt eigenlijk direct gezet variabelen in strings in PHP. 413 00:30:16,000 --> 00:30:22,000 Printf is een soort van overdreven verlangen naar wat ik meestal doe. Ja, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] In het algemeen als je parse error krijgt wil dat zeggen- 415 00:30:25,000 --> 00:30:30,000 zoals op C het niet u precies vertellen waar de fout is en wat het is, 416 00:30:30,000 --> 00:30:34,000 zodat betekent dat kijken door je hele code en figure it out? 417 00:30:34,000 --> 00:30:39,000 Het is meestal meer gericht dan dat. 418 00:30:39,000 --> 00:30:48,000 Ik denk dat in dat geval was het een beetje af, 419 00:30:48,000 --> 00:30:51,000 dus ik denk dat in dat geval waren we een puntkomma ontbreekt. 420 00:30:51,000 --> 00:30:54,000 Het was proberen te begrijpen van alles te maken, 421 00:30:54,000 --> 00:30:57,000 dus als deze geïnterpreteerde talen, wordt de tolk gaan proberen 422 00:30:57,000 --> 00:31:01,000 en doet haar best om alles werk op de juiste wijze te maken. 423 00:31:01,000 --> 00:31:04,000 >> Je zult, zie bijvoorbeeld, in JavaScript 424 00:31:04,000 --> 00:31:10,000 Je zult vaak-line verklaringen eindigen met een puntkomma, net zoals ze doen in PHP, 425 00:31:10,000 --> 00:31:13,000 net zoals ze doen in C. 426 00:31:13,000 --> 00:31:15,000 In JavaScript een aantal van de JavaScript-tolken 427 00:31:15,000 --> 00:31:20,000 in een groot deel van de browsers zal in puntkomma's voor u 428 00:31:20,000 --> 00:31:23,000 als je toevallig te ontbreken ze. 429 00:31:23,000 --> 00:31:29,000 Ze zullen proberen en geschikt voor een aantal slordigheden van uw kant. 430 00:31:29,000 --> 00:31:34,000 Dat is waar het zou kunnen worden proberen en proberen en proberen om dingen te laten werken, 431 00:31:34,000 --> 00:31:36,000 en dan eindelijk het zal tot een punt waar het zegt oke, 432 00:31:36,000 --> 00:31:38,000 Ik kan geen dingen werken op bail, en dat is waar krijg je een regelnummer 433 00:31:38,000 --> 00:31:44,000 dat misschien een beetje af van de exacte plaats lijken. 434 00:31:44,000 --> 00:31:47,000 Oke, dus laten we gaan door dit heel snel. 435 00:31:47,000 --> 00:31:50,000 We vertrokken af ​​met Ella, dus laten we over te gaan naar Missy, 436 00:31:50,000 --> 00:31:54,000 en Missy, is afdruk van string 1 plus het aantal wat 2 geven? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Is dat logisch? Sorteren van? 439 00:31:59,000 --> 00:32:02,000 Geeft het je een nummer? Geeft het je een string? 440 00:32:02,000 --> 00:32:05,000 [Missy] Een getal. >> Het is een nummer. 441 00:32:05,000 --> 00:32:09,000 Maar het is deze af te drukken, zodat het gaat om u een soort van string. 442 00:32:09,000 --> 00:32:12,000 >> Een ding dat we kunnen doen om dit uit te checken 443 00:32:12,000 --> 00:32:21,000 is als we $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 en dan zeggen we echo van gettype, 445 00:32:28,000 --> 00:32:33,000 dus we zijn met behulp van een derde soort afdrukken hier. 446 00:32:33,000 --> 00:32:39,000 Nu kunnen we zien wat er gebeurt hier. 447 00:32:39,000 --> 00:32:42,000 Hier is wat we hebben is dat we een geheel getal uit deze. 448 00:32:42,000 --> 00:32:45,000 Ook al waren we het toevoegen van deze string naar een getal, 449 00:32:45,000 --> 00:32:48,000 we hebben niet een string van te maken, net als Missy zei. 450 00:32:48,000 --> 00:32:52,000 We kregen een geheel getal. 451 00:32:52,000 --> 00:32:57,000 Oke, dus laten we eens kijken, next up, 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. Is dat logisch? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Ja. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Waarom? Waarom is het zinvol voor u? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Omdat het gewoon de string met, met getal nul. 457 00:33:11,000 --> 00:33:16,000 Ja, geweldig. 458 00:33:16,000 --> 00:33:20,000 Kind van ambigue situaties, maar het is goed om te weten wat er gebeurt. 459 00:33:20,000 --> 00:33:25,000 Stella, wat er vervolgens gebeurt met nummer 1 + string 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 opnieuw. 461 00:33:27,000 --> 00:33:30,000 En in dit geval, krijgen we een string of een nummer? 462 00:33:30,000 --> 00:33:36,000 >> Laten we dit eens te proberen. 463 00:33:36,000 --> 00:33:43,000 Iedereen sneller dan ik het antwoord te krijgen? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, ik didn't-oke, laten we eens kijken, we gaan naar dezelfde soort te doen 465 00:33:46,000 --> 00:33:49,000 waar we hebben een aantal plus een string, en we gaan het type echo, 466 00:33:49,000 --> 00:33:51,000 zien wat we krijgen. 467 00:33:51,000 --> 00:33:55,000 We krijgen ook een geheel getal. 468 00:33:55,000 --> 00:33:58,000 Het maakt niet uit welke de string, die een is het nummer. 469 00:33:58,000 --> 00:34:00,000 We zijn nog steeds gaan naar een geheel getal te krijgen. 470 00:34:00,000 --> 00:34:04,000 Het is nog steeds te doen wat we kunnen verwachten. 471 00:34:04,000 --> 00:34:09,000 Oke, dus Sam, wat ongeveer 90 + 9 flessen bier op de muur? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Geen flessen bier op de muur, dat wel. 474 00:34:15,000 --> 00:34:17,000 Het geeft ons een beetje meer informatie over wat er gebeurt. 475 00:34:17,000 --> 00:34:21,000 [Sam] Als je had geschreven 9 in brieven 476 00:34:21,000 --> 00:34:23,000 dan zou je 90, toch? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Ja. 478 00:34:26,000 --> 00:34:30,000 De vraag was of we hadden geschreven 9 op als N-I-N-E 479 00:34:30,000 --> 00:34:34,000 zouden we hebben gekregen 99 of 90? 480 00:34:34,000 --> 00:34:38,000 We zouden krijgen 90. 481 00:34:38,000 --> 00:34:42,000 Het is letterlijk gewoon op zoek naar cijfers karakters. 482 00:34:42,000 --> 00:34:46,000 Het is niet slim genoeg om het aantal woorden en dat soort dingen te herkennen. Ja. 483 00:34:46,000 --> 00:34:48,000 >> [Student] Is er zoiets als typecasting in PHP? 484 00:34:48,000 --> 00:34:54,000 Er is, en het is precies zoals u zou doen in C. 485 00:34:54,000 --> 00:34:56,000 Hoe zit het met 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, dus wat zou verrassend zijn over dit? 488 00:35:01,000 --> 00:35:04,000 Wat zou er gebeuren als je dat deed ditzelfde soort dingen in C, 489 00:35:04,000 --> 00:35:06,000 als je wel 10/7 in C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Het zou alleen geven u-afhankelijk van hoe je typecasted denk ik 491 00:35:08,000 --> 00:35:12,000 het zou geven u slechts een beperkt aantal cijfers achter de komma. 492 00:35:12,000 --> 00:35:16,000 Ja, dus een beperkt aantal cijfers achter de komma. 493 00:35:16,000 --> 00:35:21,000 Wat zou kunnen zijn, zou het geeft je de cijfers na de komma? 494 00:35:21,000 --> 00:35:28,000 Vaak niet, dus nogmaals, afhankelijk van hoe je typecasting het 495 00:35:28,000 --> 00:35:31,000 het al dan niet om te zetten in een getal met drijvende komma. 496 00:35:31,000 --> 00:35:35,000 Hier was het wel leuk dat het deed. 497 00:35:35,000 --> 00:35:40,000 Hadden we zien je dit terug toen we begonnen met dit soort dingen in C 498 00:35:40,000 --> 00:35:44,000 het waarschijnlijk zou hebben gemaakt een beetje meer gevoel 499 00:35:44,000 --> 00:35:48,000 dat het niet gewoon naar 1. 500 00:35:48,000 --> 00:35:51,000 En dan tot slot, Jamie, hoe zit het met 7 + waar? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Wat betekent dat? 503 00:35:56,000 --> 00:35:58,000 Ik denk dat het gewoon waar is geeft de waarde van 1. 504 00:35:58,000 --> 00:36:01,000 Ja. Wat gebeurt er als we dat veranderen op false? 505 00:36:01,000 --> 00:36:04,000 [Student] 7. 506 00:36:04,000 --> 00:36:09,000 Ja, dus onthouden waar we praten over deze binaire waarden, 507 00:36:09,000 --> 00:36:12,000 1 is op, 0 is uit? 508 00:36:12,000 --> 00:36:17,000 Nu hebben we waar is 1, 0 is vals, 509 00:36:17,000 --> 00:36:21,000 en je misschien niet hebben gezien dit in de C-voorbeelden die we in het afgelopen semester gedaan, 510 00:36:21,000 --> 00:36:27,000 maar historisch gezien het bool type C is niet een echte soort, 511 00:36:27,000 --> 00:36:32,000 dus mensen gebruik hebben gemaakt van 0 en 1 in de plaats van waar en onwaar. 512 00:36:32,000 --> 00:36:35,000 Dit is een manifestatie van dat. 513 00:36:35,000 --> 00:36:39,000 >> Oke, dus het een belangrijk deel over dit alles 514 00:36:39,000 --> 00:36:41,000 dat we deze verschillende types hebben. 515 00:36:41,000 --> 00:36:43,000 Ze kunnen met elkaar. 516 00:36:43,000 --> 00:36:49,000 Ze kunnen vaak met elkaar op een manier die zijn mooi, zoals we hier hebben gezien. 517 00:36:49,000 --> 00:36:53,000 Het is leuk om te kunnen snaar 1 en de nummer 2 te hebben, ze bij elkaar optellen en 3 te krijgen. 518 00:36:53,000 --> 00:36:55,000 Dat klinkt logisch. 519 00:36:55,000 --> 00:36:59,000 Echter, wanneer je websites schrijven, en vooral als je de verwerking van 520 00:36:59,000 --> 00:37:04,000 input van de gebruiker, dus dat je een webformulier schriftelijke 521 00:37:04,000 --> 00:37:09,000 die verzamelt informatie van de gebruiker en gaat dan naar verwerken 522 00:37:09,000 --> 00:37:13,000 op de back-end, op de server in uw PHP-code 523 00:37:13,000 --> 00:37:18,000 als je verwacht dat de waarde die de gebruiker heeft ingevoerd in en ingediend 524 00:37:18,000 --> 00:37:23,000 om uw formulier naar een geheel getal te zijn of om een ​​floating point getal of iets dergelijks zijn 525 00:37:23,000 --> 00:37:29,000 je nodig hebt om expliciet wierp hem 526 00:37:29,000 --> 00:37:34,000 en doe dan een soort controle. 527 00:37:34,000 --> 00:37:41,000 >> U wilt niet alleen vertrouwen op dit soort jongleren systeem om dingen uit te werken, 528 00:37:41,000 --> 00:37:48,000 vooral om redenen van veiligheid en alleen voor de robuustheid van uw website. 529 00:37:48,000 --> 00:37:51,000 Gewoon iets om in gedachten te houden dat wanneer u de behandeling formuliergegevens, 530 00:37:51,000 --> 00:37:57,000 alles wat komt in de post of de get superglobals 531 00:37:57,000 --> 00:38:01,000 Zorg ervoor dat u altijd het valideren en te converteren en typeren het. 532 00:38:01,000 --> 00:38:04,000 En net als we het over een moment geleden dat typecasting 533 00:38:04,000 --> 00:38:08,000 in PHP is precies hetzelfde als in C waar de haakjes 534 00:38:08,000 --> 00:38:14,000 en dan het type. 535 00:38:14,000 --> 00:38:16,000 Hou dat in gedachten. 536 00:38:16,000 --> 00:38:19,000 Een functie die van pas komen wanneer je dit doet 537 00:38:19,000 --> 00:38:22,000 is dat we al gebruik van-en dit is een soort van als een terzijde- 538 00:38:22,000 --> 00:38:27,000 We hebben gebruik gemaakt van deze gettype functie hier 539 00:38:27,000 --> 00:38:30,000 om erachter te komen het type van een variabele, 540 00:38:30,000 --> 00:38:37,000 en terwijl dit is handig voor het debuggen en te zien wat een variabele type is 541 00:38:37,000 --> 00:38:42,000 u niet wilt dat deze, gebruik bijvoorbeeld in een toestand waarbij 542 00:38:42,000 --> 00:38:57,000 je controleren of gettype van $ var = geheel getal iets doen. 543 00:38:57,000 --> 00:39:01,000 Dit is slecht, slecht, slecht. 544 00:39:01,000 --> 00:39:09,000 In plaats daarvan zijn er deze functies aangeroepen is integer, is string, 545 00:39:09,000 --> 00:39:14,000 is array die u wilt gebruiken in plaats, dus in dit geval 546 00:39:14,000 --> 00:39:18,000 wat ik zou willen doen in plaats van deze kerel hier 547 00:39:18,000 --> 00:39:31,000 is gebruik maken van de is integer var. 548 00:39:31,000 --> 00:39:37,000 En ze zijn vaak aangeduid is is_ * in de zin dat je de * te vervangen door geheel getal is, 549 00:39:37,000 --> 00:39:43,000 string, et cetera, en gewoon om er zeker heel snel 550 00:39:43,000 --> 00:39:50,000 Dit is int php. 551 00:39:50,000 --> 00:39:59,000 Het lijkt erop dat je kunt doen is ofwel int of wordt er geheel getal ook? 552 00:39:59,000 --> 00:40:06,000 Ja, alias, dus int geheel getal aliassen. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Hoe doen we het? 555 00:40:17,000 --> 00:40:20,000 Laten we halen het tempo een beetje. 556 00:40:20,000 --> 00:40:24,000 Nu gaan we het hebben over arrays, zodat u kunt zien 557 00:40:24,000 --> 00:40:28,000 in het volgende deel van het spec we praten over hoe arrays in PHP 558 00:40:28,000 --> 00:40:31,000 zijn iets anders dan in C. 559 00:40:31,000 --> 00:40:34,000 In werkelijkheid, ze zijn soort van een amalgaam van 560 00:40:34,000 --> 00:40:36,000 de arrays die u hebt leren kennen en liefhebben in C 561 00:40:36,000 --> 00:40:40,000 waar alles van hetzelfde type 562 00:40:40,000 --> 00:40:43,000 achtereenvolgens aaneengesloten en in het geheugen, 563 00:40:43,000 --> 00:40:46,000 en je hebt deze numerieke indices. 564 00:40:46,000 --> 00:40:49,000 U heeft index 0, index 1, index 2, 565 00:40:49,000 --> 00:40:53,000 en u de waarden opslaan op die indices. 566 00:40:53,000 --> 00:40:57,000 U kunt ook in C, als je Speller schreef, veel van je 567 00:40:57,000 --> 00:41:00,000 deed de hash-tabel benadering, en je zag dat daar hadden we 568 00:41:00,000 --> 00:41:03,000 een ander soort opslag waar we in kaart brengen 569 00:41:03,000 --> 00:41:07,000 een sleutel tot een waarde, dus als je geprobeerd om iets op te slaan in hash-tabel 570 00:41:07,000 --> 00:41:11,000 je moest opgeven dat je wilde het op te slaan met een specifieke sleutel, 571 00:41:11,000 --> 00:41:17,000 en toets bepaalt de plaats van de waarde en waar het opgeslagen. 572 00:41:17,000 --> 00:41:22,000 Je hebt soort van kreeg zowel van die begrippen gebeurt op hetzelfde moment in een PHP array, 573 00:41:22,000 --> 00:41:27,000 en als gevolg daarvan, hebben we vaak noemen deze associatieve arrays 574 00:41:27,000 --> 00:41:33,000 waar we het associëren van een sleutel in een waarde. 575 00:41:33,000 --> 00:41:39,000 In het volgende deel gaan we praten over een eenvoudige PHP array 576 00:41:39,000 --> 00:41:45,000 waar we toetsen a, b en c, 577 00:41:45,000 --> 00:41:53,000 alle snaren, het in kaart brengen van de gehele getallen 1, 2, en 3. 578 00:41:53,000 --> 00:41:57,000 En kunt u sleutels van verschillende types. 579 00:41:57,000 --> 00:42:00,000 >> U kunt een aantal toetsen die zijn snaren, een aantal toetsen die zijn gehele getallen. 580 00:42:00,000 --> 00:42:03,000 Kunt u waarden van verschillende types. 581 00:42:03,000 --> 00:42:06,000 U kunt een waarde die een string, een waarde die is een geheel getal, 582 00:42:06,000 --> 00:42:11,000 een waarde die een object of een andere array, bijvoorbeeld 583 00:42:11,000 --> 00:42:16,000 allemaal in dezelfde array object, dat is een beetje raar. 584 00:42:16,000 --> 00:42:20,000 Je hoeft niet naar een array dat is gewoon een soort element kreeg in hebben. 585 00:42:20,000 --> 00:42:26,000 U kunt veel verschillende dingen aan de hand daar. 586 00:42:26,000 --> 00:42:33,000 Het andere ding om op te merken is dat wanneer je iets als dit in uw code, 587 00:42:33,000 --> 00:42:38,000 die geldig te verklaren PHP een array zoals deze, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 dat zal verklaren een geïnitialiseerd $ arr deze array. 589 00:42:43,000 --> 00:42:48,000 Maar wat je eigenlijk krijgt onder de motorkap is dit soort van impliciete 590 00:42:48,000 --> 00:42:55,000 generatie toetsen waar we heeft 0 tot 0, moet een 1, 2 op 2, 3 en 3. 591 00:42:55,000 --> 00:42:59,000 En het blijkt dat zelfs als je een array als deze kerel hebben hier 592 00:42:59,000 --> 00:43:03,000 waar je a, b en c als de toetsen 593 00:43:03,000 --> 00:43:09,000 en dan begin je met behulp van de array push-methode om met behulp van deze array te starten als een stapel, 594 00:43:09,000 --> 00:43:12,000 zodat u kunt zien dat deze array object, deze array is echt overbelast wordt. 595 00:43:12,000 --> 00:43:15,000 We kunnen het gebruiken als een array. We kunnen het gebruiken als een hash-tabel. 596 00:43:15,000 --> 00:43:19,000 We kunnen het gebruiken als een stapel. 597 00:43:19,000 --> 00:43:22,000 Als je begint te duwen dingen op deze array 598 00:43:22,000 --> 00:43:30,000 het eerste wat je te duwen op dit index 0 en vervolgens index 1 en index 2. 599 00:43:30,000 --> 00:43:33,000 U kunt dit soort impliciete generatie van sleutels 600 00:43:33,000 --> 00:43:38,000 tenzij u expliciet specificeren. 601 00:43:38,000 --> 00:43:43,000 De manier waarop je expliciet toetsen, is natuurlijk door het gebruik van deze beugel notatie, 602 00:43:43,000 --> 00:43:48,000 die vergelijkbaar is met arrays behalve in plaats van alleen toestaan 603 00:43:48,000 --> 00:43:54,000 integer indices in hier, nu we ervoor dat er niets. 604 00:43:54,000 --> 00:43:57,000 Als u wilt dat uw sleutel tot een string te zijn, zou je opgeven als dit. 605 00:43:57,000 --> 00:44:06,000 Als je wilt dat het een int zijn, geeft u het met de int die u wilt gebruiken. 606 00:44:06,000 --> 00:44:13,000 >> Vragen over dat tot nu toe? 607 00:44:13,000 --> 00:44:18,000 Een van de leuke dingen over dit idee 608 00:44:18,000 --> 00:44:26,000 is dat je alleen maar over een waarde die is opgeslagen met een bepaalde sleutel. 609 00:44:26,000 --> 00:44:32,000 Als we terug gaan naar onze appliance-laat me verwijdert u een aantal van dit spul. 610 00:44:32,000 --> 00:44:47,000 En laten we zeggen dat ik een array initialiseren op 0, 1, 2, gedaan. 611 00:44:47,000 --> 00:44:55,000 Als ik weet nu dat, bijvoorbeeld, als ik echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Ik ga om de waarde 0 uitgeprint, 613 00:44:59,000 --> 00:45:05,000 en aangezien er altijd maar een opgeslagen waarde voor een bepaalde toets 614 00:45:05,000 --> 00:45:11,000 als ik bewaar er iets op $ arr [0], laten we zeggen een, 615 00:45:11,000 --> 00:45:16,000 dan weet ik wanneer ik echo $ arr [0] te drukken 616 00:45:16,000 --> 00:45:19,000 Ik ga niet in op 0 afgedrukt als voorheen te krijgen. 617 00:45:19,000 --> 00:45:24,000 Ik ben alleen gaan om een ​​te krijgen. 618 00:45:24,000 --> 00:45:30,000 Dus dit is eigenlijk te zeggen dat ik niet kan $ arr [0] het opslaan van 2 verschillende waarden hebben. 619 00:45:30,000 --> 00:45:34,000 Het kan niet opslaan zowel 0 als de string een, zoals deze letterlijk vervangt 620 00:45:34,000 --> 00:45:38,000 wat er op $ arr [0] eerder. 621 00:45:38,000 --> 00:45:43,000 De reden dat ik breng dit naar voren wordt het uit te voeren, zien wat er gebeurt. 622 00:45:43,000 --> 00:45:47,000 Zie hier dat ik kreeg 0 uitgeprint en dan een hier beneden. 623 00:45:47,000 --> 00:45:51,000 Er is geen nieuwe regel er, want ik was lui en niet zet dat binnen 624 00:45:51,000 --> 00:45:54,000 Wat heb je aan dit is dat we kunnen gebruiken als een manier om 625 00:45:54,000 --> 00:46:00,000 om dit idee van een set vast te leggen 626 00:46:00,000 --> 00:46:07,000 waar we niet kunnen meerdere sleutels in een array. 627 00:46:07,000 --> 00:46:10,000 We kunnen geen identieke sleutels in een array. 628 00:46:10,000 --> 00:46:17,000 Ik kan geen toets 0 en waarde 1 en toets 0 en de waarde van een 629 00:46:17,000 --> 00:46:21,000 of de toets 0 en waarde true. 630 00:46:21,000 --> 00:46:27,000 De toetsen zijn all-er is maar 1 sleutel in de array. 631 00:46:27,000 --> 00:46:32,000 Ook al kunt u de opgeslagen dezelfde waarde 632 00:46:32,000 --> 00:46:35,000 meerdere keren in de array onder verschillende sleutels 633 00:46:35,000 --> 00:46:42,000 het is niet mogelijk om identieke sleutels meerdere keren in uw PHP array. 634 00:46:42,000 --> 00:46:47,000 >> Als we kijken naar het volgende probleem, unique.php, 635 00:46:47,000 --> 00:46:51,000 waar we willen openen van een PHP-bestand 636 00:46:51,000 --> 00:46:54,000 met een lijst van strings, een snaar per regel, 637 00:46:54,000 --> 00:47:01,000 en we willen allemaal van de unieke snaren te vinden in het bestand 638 00:47:01,000 --> 00:47:06,000 alles wat we hoeven te doen is het gebruik van een van deze PHP arrays 639 00:47:06,000 --> 00:47:12,000 en het gebruik van de snaren in het bestand als de sleutels om deze array 640 00:47:12,000 --> 00:47:17,000 en zorgen voor een actualisering ons aanbod zoals we slaan deze nieuwe sleutels. 641 00:47:17,000 --> 00:47:22,000 Zoals we lezen elke regel uit het bestand kunnen we opslaan in de array, 642 00:47:22,000 --> 00:47:28,000 en aan het eind zullen hebben als sleutels in ons aanbod 643 00:47:28,000 --> 00:47:34,000 alle unieke snaren in het bestand. 644 00:47:34,000 --> 00:47:37,000 Is dat logisch? 645 00:47:37,000 --> 00:47:41,000 Laten we eens kijken hoe dit werkt. 646 00:47:41,000 --> 00:47:49,000 We gaan open te stellen, op basis van de specificaties, een nieuw bestand met de naam unique.php. 647 00:47:49,000 --> 00:47:58,000 Open. Oeps, sorry, nieuw bestand. 648 00:47:58,000 --> 00:48:03,000 We gaan het beginnen met dezelfde begin-en eind tags. 649 00:48:03,000 --> 00:48:17,000 We gaan het op te slaan in artikel 9, en we gaan om te spreken van unique.php. 650 00:48:17,000 --> 00:48:25,000 Oke, nu zoomen 651 00:48:25,000 --> 00:48:32,000 Het idee hier is het openen van een bestand, 652 00:48:32,000 --> 00:48:38,000 lezen in bestand regel voor regel. 653 00:48:38,000 --> 00:48:46,000 Voor elke regel in het bestand 654 00:48:46,000 --> 00:48:51,000 we hebben een scala waar we 655 00:48:51,000 --> 00:49:03,000  de lijn als onze belangrijkste. 656 00:49:03,000 --> 00:49:09,000 En toen we aan het einde hier 657 00:49:09,000 --> 00:49:17,000 $ Arr de sleutels zijn de unieke regels 658 00:49:17,000 --> 00:49:25,000 uit het bestand, omdat we weten dat als ik lijn in deze array 659 00:49:25,000 --> 00:49:33,000 meerdere keren het zal gewoon blijven het overschrijven van de oude waarde, 660 00:49:33,000 --> 00:49:46,000 en we kunnen scala lijn daadwerkelijk ingevoerd als zich net zo. 661 00:49:46,000 --> 00:49:48,000 >> Dit is een beetje raar. 662 00:49:48,000 --> 00:49:52,000 We slaan onder dezelfde toets bevindt waarde paar over en over en weer, 663 00:49:52,000 --> 00:50:00,000 maar omdat we hebben de garantie dat er maar 1 sleutel genaamd lijn 664 00:50:00,000 --> 00:50:05,000 dus als we een bestand dat zegt-een bestand van dierengeluiden en het heeft woof, woof, 665 00:50:05,000 --> 00:50:11,000 miauw, miauw, boe, boe, en elke keer dat we lezen een dier lawaai 666 00:50:11,000 --> 00:50:15,000 zoals inslag en we opslaan in ons aanbod krijgen we inslag, en vervolgens de tweede keer 667 00:50:15,000 --> 00:50:20,000 slaan we inslag zal het de eerste keer dat we het opgeslagen te overschrijven. 668 00:50:20,000 --> 00:50:25,000 Uiteindelijk zullen we slechts een vermelding in de array 669 00:50:25,000 --> 00:50:33,000 voor elk van de dierengeluiden in onze dierengeluiden file. 670 00:50:33,000 --> 00:50:41,000 Hebben jullie er zeker van dat u de opening van een dossier in PHP aan te pakken? 671 00:50:41,000 --> 00:50:45,000 Een manier om het te doen, laten we gaan over deze snel een manier om het te doen 672 00:50:45,000 --> 00:50:50,000 is met fopen, zoals we eerder zagen. 673 00:50:50,000 --> 00:50:55,000 U kunt fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 U kunt het openen in de leesmodus, net als in C. 675 00:50:59,000 --> 00:51:02,000 Dat is een heel goede manier om het te doen. 676 00:51:02,000 --> 00:51:05,000 Ook dan voor het lezen in het bestand regel voor regel 677 00:51:05,000 --> 00:51:12,000 hebben dezelfde functie, velen van hen, die u deed in C. 678 00:51:12,000 --> 00:51:14,000 Je hebt fgets. 679 00:51:14,000 --> 00:51:17,000 Je hebt feof, hoewel we niet graag met behulp van dat 680 00:51:17,000 --> 00:51:22,000 want, vergeet niet, dat was niet groot in C. 681 00:51:22,000 --> 00:51:25,000 Je kunt het op dezelfde manier, 682 00:51:25,000 --> 00:51:34,000 maar hier is echt een cool ding. 683 00:51:34,000 --> 00:51:41,000 Sorry, ik wil niet te $ do-bestand, maar er is een functie genaamd bestand in PHP, 684 00:51:41,000 --> 00:51:47,000 en deze functie hier is cool want het leest de volledige inhoud 685 00:51:47,000 --> 00:51:52,000 van het bestand dat u opgeeft, zo some_file.txt, 686 00:51:52,000 --> 00:51:56,000 leest de volledige inhoud van dit bestand in een array 687 00:51:56,000 --> 00:52:03,000 en dan laat je itereren over het, dat is vrij handig. 688 00:52:03,000 --> 00:52:07,000 >> Als we bijvoorbeeld naar onze web browser 689 00:52:07,000 --> 00:52:14,000 en we kijken naar Google voor PHP-bestand 690 00:52:14,000 --> 00:52:23,000 kun je hier zien dat onze handleiding zegt dat bestand leest hele bestand in een array, 691 00:52:23,000 --> 00:52:27,000 en we kunnen file_get_contents de inhoud van een bestand terug als string, 692 00:52:27,000 --> 00:52:30,000 maar meestal net als een array is echt mooi, want wat het doet 693 00:52:30,000 --> 00:52:33,000 wordt het breekt het op, zodat elk element 694 00:52:33,000 --> 00:52:37,000 in de array een regel van het bestand, 695 00:52:37,000 --> 00:52:41,000 dus als we kijken naar bestand 0, dat is de eerste regel van het bestand. 696 00:52:41,000 --> 00:52:46,000 Bestand 1, tweede regel, bestand 2, derde lijn, enzovoort, enzovoort. 697 00:52:46,000 --> 00:52:50,000 Zou het niet mooi zijn als dat was alles wat je moest doen in C? 698 00:52:50,000 --> 00:52:53,000 Mooie handige. 699 00:52:53,000 --> 00:52:59,000 David liet dit in lezing, en het idioom dat hij liet zien was 700 00:52:59,000 --> 00:53:03,000 dat in aanvulling op onze standaard voor loop-in PHP hadden we dat 701 00:53:03,000 --> 00:53:09,000 for ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 en je kunt ook dit doen in PHP, hetzelfde: 703 00:53:16,000 --> 00:53:27,000 we hebben ook deze coole constructie genaamd foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach is echt handig als itereren over arrays of deze datastructuren 705 00:53:32,000 --> 00:53:36,000 omdat het u toestaat te trekken uit elk element van de array 706 00:53:36,000 --> 00:53:42,000 zonder dat u handmatig doen het indexeren zelf, 707 00:53:42,000 --> 00:53:46,000 zonder dat u handmatig een index variabele, verhoog dit met 708 00:53:46,000 --> 00:53:51,000 trek de waarde in de array op dat moment, want dat is een veel voorkomend ding om te doen. 709 00:53:51,000 --> 00:53:54,000 >> Je hebt waarschijnlijk gedaan hebben ton van momenten waarop je C stuff doen 710 00:53:54,000 --> 00:54:00,000 over het semester, dus met deze foreach 711 00:54:00,000 --> 00:54:06,000 kunnen we lus over dit bestand array, 712 00:54:06,000 --> 00:54:12,000 en de syntaxis is dat we willen nu lus over deze array 713 00:54:12,000 --> 00:54:18,000 en aangeven dat de variabele die we gaan gebruiken om op te slaan 714 00:54:18,000 --> 00:54:27,000 het element van de matrix lokaal plaatselijke het toepassingsgebied van deze foreach lus, 715 00:54:27,000 --> 00:54:32,000 is gaan we noemen lijn. 716 00:54:32,000 --> 00:54:38,000 Als het een bestand van alleen maar woorden en er is een woord in een lijn 717 00:54:38,000 --> 00:54:43,000 konden we noemen het woord ook, eigenlijk gewoon geef je deze een naam, 718 00:54:43,000 --> 00:54:49,000 wat je ook wilt noemen, 719 00:54:49,000 --> 00:55:02,000 en dan in de lus kun je wat je wilt doen met deze variabele lijn. 720 00:55:02,000 --> 00:55:08,000 Als het niet genoeg is om de waarde van de array te krijgen en u ook wilt krijgen 721 00:55:08,000 --> 00:55:17,000 de index, samen met deze functie kunt u een naam voor de index 722 00:55:17,000 --> 00:55:22,000 alsmede de waarde, en nu heb je toegang tot 2 variabelen. 723 00:55:22,000 --> 00:55:26,000 Je hebt $ i en lijn 724 00:55:26,000 --> 00:55:30,000 waarbij $ i de index in de array, 725 00:55:30,000 --> 00:55:38,000 en lijn is de lijn die u opgehaald uit het bestand. 726 00:55:38,000 --> 00:55:49,000 Bijvoorbeeld, als we wilden om uit te printen echo regel 0 van het bestand als dit, 727 00:55:49,000 --> 00:55:57,000 we kunnen het doen net als dit, "regel $ i van het bestand is $ lijn," 728 00:55:57,000 --> 00:56:02,000 en hier is iets wat we ook nog niet gezien, hetzij 729 00:56:02,000 --> 00:56:13,000 waar ik heb gewoon helemaal overgeslagen% dit hele% s d bedrijf 730 00:56:13,000 --> 00:56:16,000 dat we te maken gehad met in C, en in plaats daarvan heb ik meteen gegaan naar 731 00:56:16,000 --> 00:56:19,000 het schrijven van de variabelen in de lijn in mijn string. 732 00:56:19,000 --> 00:56:23,000 >> Dit is de zogenaamde variabele interpolatie, string interpolatie 733 00:56:23,000 --> 00:56:26,000 waar je vulling van de variabelen rechts in, en de PHP interpreter 734 00:56:26,000 --> 00:56:31,000 is slim genoeg als het lezen door middel van een string die begint met dubbele aanhalingstekens- 735 00:56:31,000 --> 00:56:34,000 niet enkele aanhalingstekens, met enkele aanhalingstekens kunt u dit niet doen- 736 00:56:34,000 --> 00:56:38,000 maar met dubbele aanhalingstekens als het leest doorheen zoekt variabelen. 737 00:56:38,000 --> 00:56:42,000 Het jacht op ze, en als zij dat variabelen zal de waarde van de variabele nemen 738 00:56:42,000 --> 00:56:47,000 en spullen in de string als het kan omzetten in een string representatie, 739 00:56:47,000 --> 00:56:51,000 dat is vrij handig. 740 00:56:51,000 --> 00:56:56,000 Voor nu, laten we commentaar uit de rest van alles, 741 00:56:56,000 --> 00:57:00,000 sla dit, en wat we nu kunnen doen is dat we kunnen openen van een bestand 742 00:57:00,000 --> 00:57:06,000 dat we kunnen bellen some_file.txt-laten we een nieuw file- 743 00:57:06,000 --> 00:57:15,000 en we kunnen in een hoop onzin dingen hier alleen maar om alles uit te testen, 744 00:57:15,000 --> 00:57:25,000 opslaan, noem het some_file.txt, zoals ik aan het doen ben hier tot aan de top, 745 00:57:25,000 --> 00:57:33,000 en nu als ik gewoon uit te zoomen om ervoor te zorgen alles is in dezelfde directory- 746 00:57:33,000 --> 00:57:36,000 het lijkt erop dat ik heb unique.php en some_file.txt in dezelfde directory. 747 00:57:36,000 --> 00:57:42,000 Als ik zonder php unique.php 748 00:57:42,000 --> 00:57:51,000 zien hoe het drukt elke regel in mijn dossier en wat de lijn is? 749 00:57:51,000 --> 00:57:56,000 >> Dat is vrij krachtig, toch? 750 00:57:56,000 --> 00:58:03,000 Kijk, het duurde 3 regels code om het openen van een bestand. 751 00:58:03,000 --> 00:58:08,000 Nou, 4 regels code. Ik kan niet tellen vandaag de dag, duidelijk. 752 00:58:08,000 --> 00:58:13,000 Maar echt alleen maar 2 interessante lijnen van de code, omdat de andere 2 waren de accolades, 753 00:58:13,000 --> 00:58:17,000 maar in dit veel code waren we in staat om een ​​bestand te openen, door middel van het herhalen, 754 00:58:17,000 --> 00:58:20,000 trek het lijnnummer en de lijn zelf 755 00:58:20,000 --> 00:58:24,000 en print het uit. 756 00:58:24,000 --> 00:58:26,000 Cool stuff. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Ik heb een vraag over de syntaxis. 758 00:58:28,000 --> 00:58:33,000 Dus foreach deals met elke regel van het bestand dat u opent, 759 00:58:33,000 --> 00:58:37,000 en dan als je wilt om dingen te doen met elke lijn die je gewoon doen als 760 00:58:37,000 --> 00:58:39,000 en vervolgens koppelen de waarde. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Wat u kunt goed doen hier-de vraag was 762 00:58:41,000 --> 00:58:46,000 de foreach heeft te maken met het array, waardoor de foreach syntax 763 00:58:46,000 --> 00:58:51,000 is echt foreach, en merk op dat er geen ruimte 764 00:58:51,000 --> 00:58:53,000 of iets tussen de voor-en de elk. 765 00:58:53,000 --> 00:58:56,000 Ze moeten rechtsaf naast elkaar, 766 00:58:56,000 --> 00:59:00,000 en dan duurt in een array, 767 00:59:00,000 --> 00:59:05,000 en dan heb je die andere zoekwoord genoemd als dat moet er zijn, 768 00:59:05,000 --> 00:59:11,000 en dan na het als je kunt zetten een variabele naam, 769 00:59:11,000 --> 00:59:14,000 in welk geval je gaat worden het uittrekken van de waarden van de array, 770 00:59:14,000 --> 00:59:20,000 niet de indices, of als je het zoals we hebben geschreven hieronder 771 00:59:20,000 --> 00:59:24,000 krijg je de sleutels en de waarden. 772 00:59:24,000 --> 00:59:33,000 Je hebt foreach element van de array of het paar van de array als verwijzen naar waarde 773 00:59:33,000 --> 00:59:38,000 of gewoon waarde. 774 00:59:38,000 --> 00:59:40,000 Afhankelijk van wat je nodig hebt, als je het niet nodig hebt de sleutels, 775 00:59:40,000 --> 00:59:42,000 dan kan je met de waarde. 776 00:59:42,000 --> 00:59:45,000 Als u wilt dat de toetsen die u kunt ook gaan met hen. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Ik realiseerde me ook dat we nooit de i of lijn verklaard. 778 00:59:48,000 --> 00:59:51,000 Hoe werkt het eens weet wat ze zijn? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Wat bedoel je met te verklaren? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] We hebben nooit verteld wat ik of lijn middelen. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] We hebben nooit verteld de computer wat ik of lijn betekent in termen van- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] Dat ze geïndexeerd of dat Ze zijn- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Wij hebben nooit verteld dat het dat dit wordt verondersteld om de index of de sleutel en de waarde, 784 01:00:09,000 --> 01:00:13,000 en dat is, want dat is de PHP-interpreter. 785 01:00:13,000 --> 01:00:17,000 Dit dient als de verklaring en zegt oke, is de sleutel zal zijn 786 01:00:17,000 --> 01:00:20,000 een variabele genaamd i opgeslagen in een variabele genaamd i. 787 01:00:20,000 --> 01:00:24,000 De waarde zal worden opgeslagen in een variabele genaamd lijn 788 01:00:24,000 --> 01:00:28,000 dus dit dient als verklaring van deze variabelen 789 01:00:28,000 --> 01:00:35,000 en zegt $ i is een sleutel, en $ lijn is een waarde. 790 01:00:35,000 --> 01:00:37,000 Ja, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Als de toetsen niet numeriek gedaan 792 01:00:41,000 --> 01:00:44,000 hoe werkt het beslissen welke volgorde het gaat om alles af te drukken? 793 01:00:44,000 --> 01:00:47,000 Is het net als de bestelling het is ingeschreven in? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Laten we het eens proberen. 795 01:00:51,000 --> 01:00:57,000 Laten we een variabele genaamd arr, 796 01:00:57,000 --> 01:01:06,000 en wat we kunnen doen een gaat naar 7. 797 01:01:06,000 --> 01:01:19,000 Stel 0 naar een andere array met 1, 2 of appel. 798 01:01:19,000 --> 01:01:30,000 Stel 7 gaat naar 1, b gaat naar 2, 799 01:01:30,000 --> 01:01:39,000 en 3 gaat naar 4. 800 01:01:39,000 --> 01:01:44,000 Dit is een soort van een gek op zoek voorbeeld omdat we het mengen van 801 01:01:44,000 --> 01:01:47,000 strings en integers all over the place. 802 01:01:47,000 --> 01:01:50,000 Er is geen echte Om deze array. 803 01:01:50,000 --> 01:01:55,000 Ik bedoel, we kunnen alles bestellen in alfabetische volgorde op de toetsen. 804 01:01:55,000 --> 01:01:57,000 We konden alfabetisch alles bestellen door de waarde. 805 01:01:57,000 --> 01:02:00,000 >> We kunnen proberen en rekening mee houden dat sommige strings, sommige zijn ints, 806 01:02:00,000 --> 01:02:03,000 en we konden proberen om te zetten ze allemaal naar hetzelfde type en zien wat er gebeurt, 807 01:02:03,000 --> 01:02:09,000 of we kunnen overwegen ze in de waarde waarin wij reeds ingevoerde hen 808 01:02:09,000 --> 01:02:14,000 waar we deze man zet in de eerste, deze man in de tweede, deze man in de derde, 809 01:02:14,000 --> 01:02:19,000 deze man in de vierde, et cetera. 810 01:02:19,000 --> 01:02:23,000 Laten we eens kijken wat er gebeurt als we deze code uitvoert. 811 01:02:23,000 --> 01:02:29,000 Als we naar beneden scrollen en doen hetzelfde soort dingen, 812 01:02:29,000 --> 01:02:31,000 en hier is het niet afdrukken van de nieuwe lijnen. 813 01:02:31,000 --> 01:02:35,000 Wanneer dingen uitgelezen uit het bestand werd inclusief de nieuwe lijnen in de waarden, 814 01:02:35,000 --> 01:02:38,000 die werd waarom het uitgeprint mooi, terwijl het hier niet, 815 01:02:38,000 --> 01:02:40,000 dus dat is waarom alles samen is smushed. 816 01:02:40,000 --> 01:02:44,000 Laten we toevoegen in die nieuwe lijn gewoon om er leuke dingen. 817 01:02:44,000 --> 01:02:51,000 Laten we het opnieuw uit te voeren, en dus even 818 01:02:51,000 --> 01:02:54,000 kijken naar wat er gebeurde. 819 01:02:54,000 --> 01:03:00,000 Het gedrukte alles uit in de volgorde waarin we het plaatsen in de array. 820 01:03:00,000 --> 01:03:10,000 Het doet behouden om in die zin. 821 01:03:10,000 --> 01:03:15,000 >> Terug te gaan naar het probleem van de uniques 822 01:03:15,000 --> 01:03:20,000 waar we willen in staat zijn om itereren over een bestand, 823 01:03:20,000 --> 01:03:24,000 en we geven het some_file.txt, 824 01:03:24,000 --> 01:03:27,000 en we gaan over het herhalen als dit. 825 01:03:27,000 --> 01:03:31,000 We zeiden dat we wilden om een ​​array te gebruiken om ervoor te zorgen dat we allemaal van de gekregen 826 01:03:31,000 --> 01:03:36,000 unieke lijnen er uit, en we konden die echt gemakkelijk doen 827 01:03:36,000 --> 01:03:49,000 door gewoon te slaan in een matrix die we natuurlijk verklaren buiten het bestek van een lus, 828 01:03:49,000 --> 01:03:55,000 en we zeiden dat als we de regels in het bestand gebruikt als de toetsen in ons aanbod 829 01:03:55,000 --> 01:03:59,000 Als we in een dubbele lijn zouden we het overschrijven van de vorige waarde. 830 01:03:59,000 --> 01:04:08,000 Het is niet altijd mogelijk om 2 toetsen die identiek zijn in dezelfde array. 831 01:04:08,000 --> 01:04:13,000 We kunnen dat te doen. 832 01:04:13,000 --> 01:04:17,000 We zullen zich te ontdoen van deze echo statement hier. 833 01:04:17,000 --> 01:04:24,000 Hier zijn we het opslaan van de regel in het bestand in ons aanbod 834 01:04:24,000 --> 01:04:28,000 met zich als sleutel. 835 01:04:28,000 --> 01:04:32,000 Niets om het, en het blijkt dat we niet eens nodig deze sleutel. 836 01:04:32,000 --> 01:04:38,000 We hebben geen behoefte dat ik variabele. 837 01:04:38,000 --> 01:04:43,000 Op dit punt als we naar een ander foreach lus te doen 838 01:04:43,000 --> 01:04:48,000 en we moesten lus over elk arr 839 01:04:48,000 --> 01:04:56,000 en lijn nu als we-oops echo, sorry. 840 01:04:56,000 --> 01:05:00,000 We kunnen geen gebruik maken van de komma. We hebben om dit te gebruiken als zoekwoord. 841 01:05:00,000 --> 01:05:05,000 Als we nu echo lijn die we moeten krijgen alle unieke woorden in het bestand. 842 01:05:05,000 --> 01:05:10,000 Als wij gaan op naar some_file.txt, 843 01:05:10,000 --> 01:05:19,000 en laten we zeggen dat we doen appel, banaan, appel, appel, banaan, 844 01:05:19,000 --> 01:05:22,000 als we het afdrukken van alle unieke woorden in dit bestand moeten we alleen maar 845 01:05:22,000 --> 01:05:30,000 appel en banaan af te drukken. 846 01:05:30,000 --> 01:05:36,000 Als we sla dit, nu we hier weer terug in te zoomen, 847 01:05:36,000 --> 01:05:44,000 php unique.php, en ta-da. 848 01:05:44,000 --> 01:05:51,000 We hebben met succes uniqued het bestand. 849 01:05:51,000 --> 01:05:55,000 >> Het laatste deel van dit probleem is de vraag of u deze array te sorteren voordat u uitgeprint 850 01:05:55,000 --> 01:05:58,000 want in dit eenvoudige voorbeeld dat we net gedaan 851 01:05:58,000 --> 01:06:04,000 we hadden het geluk in de zin dat de file- 852 01:06:04,000 --> 01:06:06,000 we deden dit gekunstelde voorbeeld met appels en bananen. 853 01:06:06,000 --> 01:06:08,000 Het was al gesorteerd. 854 01:06:08,000 --> 01:06:19,000 Maar het gebruik van de eenvoudige soort functie u kunt sorteren een array, dat is vrij handig. 855 01:06:19,000 --> 01:06:24,000 Het laatste wat ik wilde met jullie praten over echt snel 856 01:06:24,000 --> 01:06:31,000 is dat dit soort PHP is allemaal goed en wel, en het is super handig 857 01:06:31,000 --> 01:06:43,000 om te weten hoe dat te doen als je ooit nodig hebt om programmatisch weinig doen, snelle dingen. 858 01:06:43,000 --> 01:06:48,000 Bijvoorbeeld, als ik een programma dat, laten we zeggen schrijven, 859 01:06:48,000 --> 01:06:53,000 zet alles en iedereen in secties Ik ben niet van plan om te gaan en te schrijven in C. 860 01:06:53,000 --> 01:06:55,000 Het zal lang duren. 861 01:06:55,000 --> 01:06:57,000 Het gaat om een ​​soort van pijn, vooral als er betrokken zijn bij bestanden, 862 01:06:57,000 --> 01:07:00,000 net zoals jullie gezien hebben. 863 01:07:00,000 --> 01:07:05,000 Het is zo leuk dat met slechts dit veel code hier 864 01:07:05,000 --> 01:07:08,000 waren we in staat om te rippen door middel van een bestand, trek alles uit de unieke waarden 865 01:07:08,000 --> 01:07:11,000 en print ze weer naar buiten. 866 01:07:11,000 --> 01:07:16,000 >> Echter, voor uw opdrachten, voor uw projecten, 867 01:07:16,000 --> 01:07:20,000 als je het bouwen van websites met PHP de macht is dat 868 01:07:20,000 --> 01:07:25,000 we lopen onze PHP-bestanden via deze tolk, 869 01:07:25,000 --> 01:07:29,000 en de tolk is de verwerking van alles wat binnen de PHP-tags, 870 01:07:29,000 --> 01:07:34,000 waardoor al het andere onaangeroerd en uitspugen van de resultaten. 871 01:07:34,000 --> 01:07:40,000 We kunnen dit doen om programmatisch te bouwen HTML. 872 01:07:40,000 --> 01:07:46,000 Nu, als we terug gaan naar de spec, de laatste probleem in de spec 873 01:07:46,000 --> 01:07:56,000 praat over dit idee van concentraties 874 01:07:56,000 --> 01:08:01,000 en het creëren van een drop-down menu, 875 01:08:01,000 --> 01:08:06,000 die u wel of niet te doen, willen afhankelijk van wat je uiteindelijke project aan het doen is, 876 01:08:06,000 --> 01:08:13,000 waarmee de gebruiker kiezen uit een lijst van alle mogelijke concentraties 877 01:08:13,000 --> 01:08:15,000 hun een concentratie. 878 01:08:15,000 --> 01:08:21,000 Nu, dit is een soort van een pijn om dit uit te typen 879 01:08:21,000 --> 01:08:25,000 en moet dit handmatig doen dit alles, vooral als je met om ervoor te zorgen 880 01:08:25,000 --> 01:08:28,000 dat je alle hoekbeugels op de juiste plaats en alle citaten op de juiste plaats, 881 01:08:28,000 --> 01:08:34,000 dus met PHP kunt u programmatisch doen, en je kunt dit doen heel snel. 882 01:08:34,000 --> 01:08:36,000 >> Laten we eens kijken hoe dit te doen. 883 01:08:36,000 --> 01:08:42,000 We gaan het openen van een nieuw bestand. 884 01:08:42,000 --> 01:08:46,000 We gaan in onze PHP-tags. 885 01:08:46,000 --> 01:08:53,000 We gaan noemen concentrations.php, 886 01:08:53,000 --> 01:08:58,000 en nu wanneer je dit doet, om een ​​soort van een goede zaak na te denken over 887 01:08:58,000 --> 01:09:02,000 als je probeert te mixen en matchen uw PHP en HTML 888 01:09:02,000 --> 01:09:08,000 is het uitzoeken, oke, wat is het deel dat ik wil programmatisch te genereren? 889 01:09:08,000 --> 01:09:11,000 Wat is het deel dat ik programmatisch kan genereren? 890 01:09:11,000 --> 01:09:17,000 Het is waar dat je kunt doen al uw HTML- 891 01:09:17,000 --> 01:09:19,000 binnenkant van PHP blokken. 892 01:09:19,000 --> 01:09:24,000 U kunt echo alle HTML-als strings. 893 01:09:24,000 --> 01:09:30,000 Bijvoorbeeld, als ik wil om te beginnen met het doen van de select-tags binnenkant van PHP 894 01:09:30,000 --> 01:09:46,000 Ik kan echo zeggen hebt, zeg selecteer naam = concentratie, 895 01:09:46,000 --> 01:09:49,000 en dan beneden kon ik nog een echo tag 896 01:09:49,000 --> 01:09:57,000 of een andere echo genoemd sluit de kiezen. 897 01:09:57,000 --> 01:10:00,000 Dit is een manier om het te doen, want wat dit is letterlijk gaat doen 898 01:10:00,000 --> 01:10:09,000 wordt afgedrukt deze string als het lopen door de PHP-interpreter, 899 01:10:09,000 --> 01:10:12,000 zo zal het resultaat HTML. 900 01:10:12,000 --> 01:10:18,000 Als ik sla dit bestand op als het goed is nu 901 01:10:18,000 --> 01:10:24,000 en ik run php concentrations.php 902 01:10:24,000 --> 01:10:26,000 kijken naar wat ik heb. 903 01:10:26,000 --> 01:10:30,000 Ik heb deze open dicht select tag. 904 01:10:30,000 --> 01:10:36,000 >> Als ik om dit te doen en ik waren om dit resultaat te slaan in een bestand, 905 01:10:36,000 --> 01:10:45,000 zeggen, concentrations.html-wachten, het lijkt erop dat de l is overgeschakeld op de andere zij- 906 01:10:45,000 --> 01:11:02,000 Nu, als ik open hier concentrations.html zie je ik heb een geldige HTML-bestand. 907 01:11:02,000 --> 01:11:05,000 Is dat een beetje raar? 908 01:11:05,000 --> 01:11:09,000 We gebruiken PHP naar HTML te creëren, geldige HTML te creëren. 909 01:11:09,000 --> 01:11:13,000 De manier waarop we het doen is dat we gewoon de PHP afdrukken met 910 01:11:13,000 --> 01:11:16,000 de HTML die we willen om te printen. 911 01:11:16,000 --> 01:11:20,000 Dit is letterlijk hoe PHP websites werken. 912 01:11:20,000 --> 01:11:24,000 Wanneer u een website bezoekt die u stuurt naar iets als 913 01:11:24,000 --> 01:11:30,000 iets, iets, iets dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 de computer is letterlijk het oproepen van index.php, 915 01:11:33,000 --> 01:11:38,000 het runnen van het door de PHP-interpreter, en wat rommel komt uit 916 01:11:38,000 --> 01:11:49,000 het is terug sturen naar de browser en zeggen hey, browser, interpreteren dit als HTML. 917 01:11:49,000 --> 01:11:54,000 Het leuke is dat het kan een pijn zijn om constant schrijven echo, echo, echo, echo 918 01:11:54,000 --> 01:11:59,000 en omsluiten alles in citaten als deze, dus als je wilt schrijven 919 01:11:59,000 --> 01:12:04,000 de HTML die gaat worden statische jezelf dat je het kunt als dit, 920 01:12:04,000 --> 01:12:16,000 buiten het stelde, sluit, 921 01:12:16,000 --> 01:12:21,000 en dan hier je alleen zet in de PHP-tags die waarvan je weet 922 01:12:21,000 --> 01:12:26,000 u wilt programmatisch te genereren, en in dit geval is het de optie-tags 923 01:12:26,000 --> 01:12:31,000 die lastig te genereren. 924 01:12:31,000 --> 01:12:37,000 >> Zo kunnen we genereren duizend optie labels 925 01:12:37,000 --> 01:12:48,000 door iets te doen als dit, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 en zeggen echo optie value = $-whoops, dat kan ik niet doen. 927 01:13:00,000 --> 01:13:03,000 Nou, laten we het eens proberen en zien wat er gebeurt. 928 01:13:03,000 --> 01:13:22,000 $ I en dan zeggen $ i 01:13:27,000 In plaats van te typen die optie tag duizend verschillende tijden 930 01:13:27,000 --> 01:13:33,000 Ik ben met behulp van PHP-code voor het automatisch genereren het, programmatisch. 931 01:13:33,000 --> 01:13:38,000 Soort handige. Ja. 932 01:13:38,000 --> 01:13:41,000 Ik herinner me dat dit wordt vermeld in zowel het college of de walkthrough, 933 01:13:41,000 --> 01:13:43,000 maar wat is het verschil tussen de aanhalingstekens, 934 01:13:43,000 --> 01:13:45,000 de normale cellen en deze enkele dingen? 935 01:13:45,000 --> 01:13:49,000 Dat is eigenlijk iets dat ik heb verkeerd hier gedaan dat ik ga laten zien. 936 01:13:49,000 --> 01:13:52,000 De enkele aanhalingstekens staan ​​geen speciale tekens, 937 01:13:52,000 --> 01:13:57,000 dus alles binnen een enkele tekenreeks tussen aanhalingstekens wordt letterlijk geïnterpreteerd. 938 01:13:57,000 --> 01:14:02,000 Als ik een \ n binnenkant van enkele aanhalingstekens en ik spaar deze, bijvoorbeeld, 939 01:14:02,000 --> 01:14:07,000 en nu ik hier naar beneden en voer het uit- 940 01:14:07,000 --> 01:14:12,000 oops, waar ga ik heen? 941 01:14:12,000 --> 01:14:19,000 Oh, het is omdat ik vergat de $. 942 01:14:19,000 --> 01:14:25,000 >> Nu als ik open-eigenlijk, hier zullen we te ontdoen van de typen in een bestand. 943 01:14:25,000 --> 01:14:27,000 We zullen gewoon lezen. 944 01:14:27,000 --> 01:14:34,000 Hier zie je dat ik deze letterlijke \ n kreeg in de string, als geen echte nieuwe lijn, 945 01:14:34,000 --> 01:14:38,000 en ook, in plaats van daadwerkelijk interpoleren van de waarde van deze variabele 946 01:14:38,000 --> 01:14:42,000 het gaf me de $ i zelf, dat is een soort van een pijn. 947 01:14:42,000 --> 01:14:46,000 De manier om dit is het gebruik van de dubbele aanhalingstekens, 948 01:14:46,000 --> 01:14:52,000 en dan bij het gebruik van dubbele aanhalingstekens zal het eigenlijk 949 01:14:52,000 --> 01:14:56,000 goed interpoleren de waarden van al deze variabelen in here 950 01:14:56,000 --> 01:14:59,000 en erkennen ook deze \ n aan de nieuwe lijn die het moet 951 01:14:59,000 --> 01:15:02,000 en niet \ n. 952 01:15:02,000 --> 01:15:07,000 Met behulp van de single die is leuk als je 953 01:15:07,000 --> 01:15:10,000 tekens die kunnen worden geïnterpreteerd als speciale tekens, want dan hoef je je geen zorgen te 954 01:15:10,000 --> 01:15:15,000 voortdurend ontsnappen. 955 01:15:15,000 --> 01:15:18,000 Dingen kunnen krijgen rommelig, en vaak de manier waarop ik het doe, 956 01:15:18,000 --> 01:15:24,000 gewoon dingen makkelijk te maken, is dat als ik ga om iets te hebben 957 01:15:24,000 --> 01:15:31,000 HTML als in mijn code zal ik bewerken zijn binnen enkele aanhalingstekens 958 01:15:31,000 --> 01:15:36,000 en vervolgens deze samenvoegingsoperator 959 01:15:36,000 --> 01:15:43,000 de variabelen samen te voegen binnen 960 01:15:43,000 --> 01:15:47,000 Dit is een andere manier van doen 961 01:15:47,000 --> 01:15:52,000 waar we de stip die gaat aansluiten heb dit is een string 962 01:15:52,000 --> 01:15:56,000 deze met deze hiermee 963 01:15:56,000 --> 01:15:59,000 en nu heb ik geen van deze dubbele aanhalingstekens te ontsnappen. 964 01:15:59,000 --> 01:16:02,000 Ik heb geen om deze man te gebruiken om te ontsnappen. 965 01:16:02,000 --> 01:16:08,000 Ze zullen letterlijk worden afgedrukt als dubbele aanhalingstekens en dan deze man hier. 966 01:16:08,000 --> 01:16:11,000 Dit is een andere manier van het mengen alles samen. 967 01:16:11,000 --> 01:16:14,000 >> [Student] Ook als u gettype weerklonk er geen aanhalingstekens at all. 968 01:16:14,000 --> 01:16:22,000 Juist, dus echo is een beetje speciaal in de zin dat je niet tussen haakjes nodig. 969 01:16:22,000 --> 01:16:29,000 U hoeft niet om de aanhalingstekens noodzakelijk om variabelen, 970 01:16:29,000 --> 01:16:37,000 alsof het geldig om te zeggen $ i echo, en het zal dit interpreteren als een string. 971 01:16:37,000 --> 01:16:44,000 Het gaat om de cast te doen, dus we konden doen, en dat geldig is ook, maar we hebben het niet nodig. 972 01:16:44,000 --> 01:16:48,000 Het is optioneel. 973 01:16:48,000 --> 01:16:53,000 In probleem van deze week set uit te kijken naar veel van dit soort dingen 974 01:16:53,000 --> 01:16:58,000 waar je mixen en matchen HTML met PHP 975 01:16:58,000 --> 01:17:08,000 net als dit, en nu als we terugbladeren en we run this 976 01:17:08,000 --> 01:17:13,000 kunnen we zien dat we een hele hoop van optie waarden 977 01:17:13,000 --> 01:17:15,000 die net werd afgedrukt. 978 01:17:15,000 --> 01:17:20,000 We hebben allemaal deze HTML dat werd heel snel gegenereerd voor ons. 979 01:17:20,000 --> 01:17:22,000 Ik laat het als een oefening. 980 01:17:22,000 --> 01:17:24,000 Het is zeer vergelijkbaar met het bestand lezen dat we eerder deden. 981 01:17:24,000 --> 01:17:31,000 >> Er is een concentrations.txt bestand dat u kunt naar beneden te trekken van de CDN, 982 01:17:31,000 --> 01:17:34,000 en kunt u het openen met behulp van dezelfde foreach truc die we eerder deden, 983 01:17:34,000 --> 01:17:39,000 en foreach je hoeft alleen een optie en sluit echo 984 01:17:39,000 --> 01:17:44,000 de juiste waarden, de betreffende toetsen en indices, 985 01:17:44,000 --> 01:17:49,000 en dan krijg je een drop-down die letterlijk creëert 986 01:17:49,000 --> 01:17:54,000 programmatisch voor jullie allemaal van de verschillende concentraties aan Harvard. 987 01:17:54,000 --> 01:17:57,000 Een handige ding om te hebben. 988 01:17:57,000 --> 01:18:02,000 Er is veel van de configuratie spullen voor deze opdracht. 989 01:18:02,000 --> 01:18:07,000 Als u nog niet gedaan al neem de volgende half uur, uur, 990 01:18:07,000 --> 01:18:10,000 enige tijd vanavond zeker zeker, 991 01:18:10,000 --> 01:18:14,000 wandeling door het probleem set spec, 992 01:18:14,000 --> 01:18:20,000 zien wat er aan de hand met het opzetten van de vhosts, de lokale host, al dat spul. 993 01:18:20,000 --> 01:18:24,000 Een ding om erop te wijzen op dit moment is dat 994 01:18:24,000 --> 01:18:30,000 in de meeste problemen sets we al in te gaan op je Dropbox map 995 01:18:30,000 --> 01:18:34,000 en dan het downloaden van het probleem set zip-bestand en uitpakken het. 996 01:18:34,000 --> 01:18:36,000 Voor dit probleem set die u niet wilt. 997 01:18:36,000 --> 01:18:40,000 U wilt gaan in dit vhosts directory. 998 01:18:40,000 --> 01:18:45,000 U wilt gaan in vhosts en in de lokale host directory te gaan binnen het, 999 01:18:45,000 --> 01:18:50,000 en dit is waar je wilt pull-down het zip-bestand, 1000 01:18:50,000 --> 01:18:55,000 unzip het, en maak je klaar om te gaan. 1001 01:18:55,000 --> 01:18:57,000 Je moet op de voet volgen van de stappen. 1002 01:18:57,000 --> 01:19:02,000 >> Als u vragen heeft, stuur e-mail, post het op Bespreek, kom dan naar de kantooruren. 1003 01:19:02,000 --> 01:19:08,000 Thanks guys. Volgende week gaan we een review-sessie hebben voor de quiz. 1004 01:19:08,000 --> 01:19:12,000 Geniet van uw laatste probleem set. Ik hoop dat het allemaal gaat heel goed. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]