1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Sekcio 8] [Less Komfortaj] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Universitato Harvard] 3 00:00:04,000 --> 00:00:08,000 [Jen CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Bonvenon al nia dua lasta sekcio. 5 00:00:11,000 --> 00:00:13,000 En ĉi tiu semajno ni iras por paroli pri PHP, kaj poste proksiman semajnon 6 00:00:13,000 --> 00:00:17,000 ni faros iom recenzo por Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Ni tuj komenci en la paĝo 3 de la problemo aroj pack, 8 00:00:20,000 --> 00:00:28,000 kaj ni laboros per la sekcio de demandoj sufiĉe rapide. 9 00:00:28,000 --> 00:00:34,000 En la paĝo 3, ni komencas paroli pri tiu diferenco inter C kaj PHP 10 00:00:34,000 --> 00:00:38,000 en la senco ke PHP estas dinamike tajpitaj lingvo, 11 00:00:38,000 --> 00:00:42,000 dum C estas statike tajpita, 12 00:00:42,000 --> 00:00:46,000 kaj neniu vere rapide faris ajnan kodigo en iu kiel PHP 13 00:00:46,000 --> 00:00:51,000 aŭ Python aŭ Rubeno antaŭe, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Tute novan? Okay. 15 00:00:53,000 --> 00:00:56,000 >> Ĉiuj de ĉi tiuj lingvoj, ke mi ĵus menciita 16 00:00:56,000 --> 00:01:01,000 estas tre malsama de lingvoj kiel C kaj C + + kaj Java 17 00:01:01,000 --> 00:01:04,000 en la senco ke kiam vi deklaras variablon vi ne devas deklari 18 00:01:04,000 --> 00:01:09,000 kia variablo estas, tiel en C ni pusxis devi ĉiam diras 19 00:01:09,000 --> 00:01:13,000 ĉi tiu tuj estos int variablo, aŭ ĉi tiu tuj estos char * variablo, 20 00:01:13,000 --> 00:01:16,000 dum kun PHP, kun Python, kun Rubeno, 21 00:01:16,000 --> 00:01:20,000 kun amaso de tiuj pli modernaj lingvoj vi ne devas fari ĉe ĉiu. 22 00:01:20,000 --> 00:01:24,000 Vi nur deklari vian variablon, kaj en la kazo de PHP 23 00:01:24,000 --> 00:01:28,000 vi deklaras, ke ĝi estas variablo de prefixing ĝin per $ signo, 24 00:01:28,000 --> 00:01:35,000 kaj tiam la tipo de la variablo estas difinita per ajn valoro ĝi estas tenante, 25 00:01:35,000 --> 00:01:38,000 kiu estas speco de cool. 26 00:01:38,000 --> 00:01:44,000 Ludi tie kun ĉi iom, ni havas specimenon PHP kodo tie ĉi 27 00:01:44,000 --> 00:01:47,000 en inter la komenco kaj fino etikedoj. 28 00:01:47,000 --> 00:01:53,000 Ni uzas tiun ĉi tipon de kiel HTML en la senco ke 29 00:01:53,000 --> 00:01:56,000 ni havas tiujn angulajn krampojn tie por malfermi kaj fermi. 30 00:01:56,000 --> 00:01:58,000 Vi vidos tion per HTML. 31 00:01:58,000 --> 00:02:03,000 Vi vidos la sama speco de sintakso kun XML tro. 32 00:02:03,000 --> 00:02:06,000 >> Tiu indikas la komencon de PHP bloko. 33 00:02:06,000 --> 00:02:09,000 Tiu? Php estas specifa al PHP. 34 00:02:09,000 --> 00:02:16,000 Ni fermas ĉiu kun?> Ankaŭ. 35 00:02:16,000 --> 00:02:22,000 Ni malfermi dosieron en nia aparaton uzante kion vi ŝatus. 36 00:02:22,000 --> 00:02:25,000 En ĉi paketon diras nomi dynamic.php. 37 00:02:25,000 --> 00:02:29,000 En vero, vi povas nomi ŝin, kion vi ŝatus, sed la dosiernomo venos supren 38 00:02:29,000 --> 00:02:34,000 kaj estu grava poste, do nur memoru kion ajn vi nomas ĝin. 39 00:02:34,000 --> 00:02:36,000 Mi tuj ŝanĝi super la aparaton, 40 00:02:36,000 --> 00:02:43,000 kaj mi tuj faros dosierujon por 41 00:02:43,000 --> 00:02:48,000 sekcio 9 Mi kredas ke ni estas en nun. 42 00:02:48,000 --> 00:02:51,000 Kaj ni iru en sekcio 9, 43 00:02:51,000 --> 00:02:54,000 kaj mi tuj uzos gedit. 44 00:02:54,000 --> 00:02:59,000 Ni vidas, gedit, kaj mi iros por voki mian dynamic.php. 45 00:02:59,000 --> 00:03:03,000 Eksplodo. 46 00:03:03,000 --> 00:03:06,000 Ene dynamic.php, ĉar ĉi tiu estas PHP-dosiero 47 00:03:06,000 --> 00:03:09,000 kaj mi volas kuri ĉi tra la PHP interpretisto 48 00:03:09,000 --> 00:03:12,000 Mi bezonas por komenci ĉiun ekstere kun tiuj malfermitaj etikedoj, 49 00:03:12,000 --> 00:03:17,000 do mi tuj komencos tiuj tuj, 50 00:03:17,000 --> 00:03:23,000 doni min iom spaco inter la etikedoj, 51 00:03:23,000 --> 00:03:26,000 kaj tiam la punkto de ĉi ekzerco estis ludi tie kun 52 00:03:26,000 --> 00:03:34,000 ĉi tiu funkcio nomita gettype, do gettype, ĉi tiu funkcio ĉi tie. 53 00:03:34,000 --> 00:03:38,000 >> Rimarku ke ne estas substreki aŭ spaco aŭ streketo aŭ io simila 54 00:03:38,000 --> 00:03:42,000 disigante la 2 vortojn, get kaj tajpu, nur unu vorto en aro. 55 00:03:42,000 --> 00:03:46,000 Sed kio estas tiu faros estas se mi pasas en variablo al gettype, 56 00:03:46,000 --> 00:03:51,000 diru $ var aŭ $ x, 57 00:03:51,000 --> 00:03:55,000 ĉi rakontos al mi specon de en depuración formato 58 00:03:55,000 --> 00:03:59,000 kion la nomo de tiu tipo estas. 59 00:03:59,000 --> 00:04:03,000 Ni tuj sperti tie. 60 00:04:03,000 --> 00:04:07,000 En aparta, se vi retrorigardas la pset spec 61 00:04:07,000 --> 00:04:11,000 ni havas kelkajn malsamaj linioj de kodo tie. 62 00:04:11,000 --> 00:04:16,000 En la unua linio de kodo oni pravalorizi ĉi variablo, $ var, 63 00:04:16,000 --> 00:04:21,000 esti egala al 7, kaj tiam ni havas ĉi printf linio 64 00:04:21,000 --> 00:04:25,000 kiu diras hey, printf var estas malplena. 65 00:04:25,000 --> 00:04:29,000 Printf estas unu el la multaj manieroj povas presi tion en PHP. 66 00:04:29,000 --> 00:04:33,000 Ofte vi vidos la eĥo funkcio uzata anstataŭ printf, 67 00:04:33,000 --> 00:04:40,000 sed printf ni ĉiuj konas estinte kodigo en C por tempo. 68 00:04:40,000 --> 00:04:42,000 Kion vi povas reale fari estas ni vidu se kopio kaj alglui verkoj. 69 00:04:42,000 --> 00:04:46,000 Mi tuj donos ĉi provu. 70 00:04:46,000 --> 00:04:52,000 Ni reiros sur la aparaton. 71 00:04:52,000 --> 00:05:00,000 Okay, kaj tie ni iru. 72 00:05:00,000 --> 00:05:05,000 Kaj Interspacigo estas iom funky, sed tie ni iru. 73 00:05:05,000 --> 00:05:08,000 Ni havas ĉi kodo en ĉi tie. 74 00:05:08,000 --> 00:05:11,000 >> [Studenta] Ĉu ne bona stilo por langeto ĝin? 75 00:05:11,000 --> 00:05:13,000 Pardonu? 76 00:05:13,000 --> 00:05:15,000 [Studenta] Ĉu kutima al langeto ĝin? 77 00:05:15,000 --> 00:05:21,000 Bone, do Sam demandas se estas konvencio por langeto ĝin aŭ ne. 78 00:05:21,000 --> 00:05:23,000 Tipe jes. 79 00:05:23,000 --> 00:05:26,000 En ĉi tiu kazo mi elektis ne. 80 00:05:26,000 --> 00:05:33,000 Honeste, vi vidos malsamajn aferojn inter diversaj programistoj. 81 00:05:33,000 --> 00:05:40,000 PHP estas tipe uzataj ofte en kombino kun HTML 82 00:05:40,000 --> 00:05:45,000 kaj aliaj lingvoj, kaj tiel kelkfoje la impreson aspektos iom funky 83 00:05:45,000 --> 00:05:50,000 se vi indent ene PHP komenco kaj fino etikedoj. 84 00:05:50,000 --> 00:05:53,000 Vere dependas. 85 00:05:53,000 --> 00:05:56,000 En ĉi tiu kazo la kopio kaj pasto ne almeti la langetoj en mi, 86 00:05:56,000 --> 00:06:02,000 sed certe tio, kiel vi diris, faru ĝin pli klara. 87 00:06:02,000 --> 00:06:06,000 Bone, se vi konservos tiun kodon en dynamic.php 88 00:06:06,000 --> 00:06:10,000 tiam kion vi povas fari estas malsupreniris al via fina fenestro kie mi pravas ĉi tie 89 00:06:10,000 --> 00:06:17,000 en gedit, kaj fari la ekvivalenta kompili 90 00:06:17,000 --> 00:06:20,000 uzante fari kaj poste kurante via kodo en C 91 00:06:20,000 --> 00:06:25,000 ĉiuj vi devas fari kun la PHP-dosiero estas funkciigas la PHP interpretisto, 92 00:06:25,000 --> 00:06:30,000 kiu estas iom programo nomata PHP, 93 00:06:30,000 --> 00:06:35,000 kaj la argumento vi donos al la interpretisto estas la dosiero kiun vi volas interpreti. 94 00:06:35,000 --> 00:06:40,000 En ĉi tiu kazo, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Whoops, kien mi metis ĝin? 96 00:06:43,000 --> 00:06:52,000 Ho, mi metis ĝin en sekcio 9, kaj jen mi. Tio estas kial. 97 00:06:52,000 --> 00:06:57,000 >> Nun, se mi kuros ke denove 98 00:06:57,000 --> 00:07:02,000 ni vidas, ke en mia unua gettype funkcio alvoko 99 00:07:02,000 --> 00:07:04,000 var estas entjero. 100 00:07:04,000 --> 00:07:12,000 En la sekva var estas ĉeno, kaj poste en la tria var estas bulea. 101 00:07:12,000 --> 00:07:15,000 Kio estas interesa pri tio estas, se ni rulumu back up ni vidas ke 102 00:07:15,000 --> 00:07:18,000 tiuj estas specoj simila al tiuj, kiujn ni havis en C. 103 00:07:18,000 --> 00:07:22,000 Ni havis ints en C. 104 00:07:22,000 --> 00:07:26,000 Ni ia havis ŝnurojn en C, 105 00:07:26,000 --> 00:07:31,000 tiel kordoj ne tutece legit tipo en la senco ke 106 00:07:31,000 --> 00:07:37,000 nia CS50 kordoj estis vere kio? 107 00:07:37,000 --> 00:07:39,000 Pardonu? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Jes, estis jena char * ni uzis. 110 00:07:43,000 --> 00:07:47,000 Je la komenco de la semestro oni uzis la kordo tipo, 111 00:07:47,000 --> 00:07:52,000 sed ĝi estis vere char * sub la kapuĉo. 112 00:07:52,000 --> 00:07:58,000 Ni nur tajpi difinis ĝin, dum en PHP tiuj kordoj estas reala tipo. 113 00:07:58,000 --> 00:08:07,000 Ne pli de ĉi char * tipo stuff. 114 00:08:07,000 --> 00:08:10,000 >> Vi vidos, ke ni povos fari multajn pli aĵoj kun kordoj 115 00:08:10,000 --> 00:08:14,000 multe pli facile en PHP ol ni povis en C, 116 00:08:14,000 --> 00:08:17,000 kaj tiam fine, ni havas ĉi bulea tipo, kaj la granda diferenco estas, ke 117 00:08:17,000 --> 00:08:21,000 se ni rulumu posteniras ni vidas ke la nomo de tiuj tipoj 118 00:08:21,000 --> 00:08:28,000 nun estas entjero, kordoj, kaj bulea anstataŭ int kaj bool, 119 00:08:28,000 --> 00:08:31,000 kaj kiel vi repreni malsamaj programlingvoj, 120 00:08:31,000 --> 00:08:36,000 supozante ke en iu punkto en via vivo vi venos en kontakton kun 121 00:08:36,000 --> 00:08:40,000 malsamaj vi rimarkos iom kapricoj kiel tiu 122 00:08:40,000 --> 00:08:44,000 kie C nomas entjeroj ints. 123 00:08:44,000 --> 00:08:46,000 Iuj nomas ĝin entjeroj. 124 00:08:46,000 --> 00:08:51,000 Estas aliaj terminoj kiuj vi kolizii. 125 00:08:51,000 --> 00:08:55,000 Big int ni vidis hodiaŭ en SQL. 126 00:08:55,000 --> 00:08:59,000 Ankaŭ estas nombro kaj tiam bool, bulea, 127 00:08:59,000 --> 00:09:03,000 ĉiaj diferencoj tie. 128 00:09:03,000 --> 00:09:07,000 >> Tio ne estas terure interesa sed nun mi tuj donos al vi iom da tempo- 129 00:09:07,000 --> 00:09:13,000 se ni zoom reen eliraj labori tra ĉi ekzerco ĉe la malsupro de la paĝo 3 130 00:09:13,000 --> 00:09:20,000 kie petas kio tipoj respondas al tiuj valoroj tie malsupre. 131 00:09:20,000 --> 00:09:24,000 Ni havas 3,50. 132 00:09:24,000 --> 00:09:28,000 Ni havas tiun aferon ĉi tie, kiu estas interesa. 133 00:09:28,000 --> 00:09:32,000 Ni ne vidis ke antaŭe, kvankam se vi estis sekvante kune en prelego 134 00:09:32,000 --> 00:09:35,000 vi probable jam scias kion tio estas. 135 00:09:35,000 --> 00:09:40,000 Tiam ni havas tion, kion ĉi tiu estas speco de funky. 136 00:09:40,000 --> 00:09:42,000 Vi rekonos ĉi. 137 00:09:42,000 --> 00:09:46,000 Kio estas ĉi tiu en C? 138 00:09:46,000 --> 00:09:50,000 Sam? Kion tio donas al vi en C? 139 00:09:50,000 --> 00:09:54,000 Estus malfermi dosieron nomatan dynamic.php kaj fari ĝin legebla. 140 00:09:54,000 --> 00:09:58,000 Yeah, kaj kio estus la tipo de variablo kiu ni devus atribui tion al? >> Dosiero stelo. 141 00:09:58,000 --> 00:10:02,000 Ekzakte, ni devus atribui tion al dosiero stelo. 142 00:10:02,000 --> 00:10:08,000 Tio estas legitima PHP tro. 143 00:10:08,000 --> 00:10:12,000 Kuru tio. Vidu kio okazas kiam vi preterpasonta en gettype. 144 00:10:12,000 --> 00:10:19,000 Kaj poste kontroli ankaŭ kio nula estas, kion tio povus esti en PHP. 145 00:10:19,000 --> 00:10:21,000 Mi donos al vi post kelkaj minutoj. 146 00:10:21,000 --> 00:10:24,000 Vi povas laŭvorte kopii kaj alglui ĉi tiujn valorojn en, 147 00:10:24,000 --> 00:10:29,000 kaj poste ni faros iom hazarda vokas vin 148 00:10:29,000 --> 00:10:34,000 kaj vidi kion vi havas. 149 00:10:34,000 --> 00:10:36,000 >> [Studenta] Mi havas demandon. << Jes. 150 00:10:36,000 --> 00:10:40,000 En unu el la prelegoj David diris estas iu vi povas meti en la pinto de via dosiero 151 00:10:40,000 --> 00:10:43,000 por ke vi ne devas tajpi en PHP ĉiufoje. 152 00:10:43,000 --> 00:10:45,000 Kio estis tio? 153 00:10:45,000 --> 00:10:50,000 Li probable parolas la funto bang, la hash bang. 154 00:10:50,000 --> 00:10:57,000 Ĝi estas direktivo, ke se vi markas viajn dosiero ruleblan 155 00:10:57,000 --> 00:11:01,000 tiam kio faras estas kiam ekzekuti la dosiero 156 00:11:01,000 --> 00:11:06,000 ĝi diros la ŝelon programo 157 00:11:06,000 --> 00:11:12,000 uzi la PHP interpretisto por interpreti la enhavon de la dosiero. 158 00:11:12,000 --> 00:11:16,000 La demando estas kio estis tiu speciala linio 159 00:11:16,000 --> 00:11:20,000 ke ni povus inkluzivi en la pinto de nia PHP dosierojn al ne devas inkluzivi 160 00:11:20,000 --> 00:11:26,000 ĉi PHP linio aŭ tiun PHP komando kiam ajn ni volas ekzekuti la dosiero? 161 00:11:26,000 --> 00:11:31,000 Kaj vi povas reale fari ĉi tion kun multajn malsamajn dosierojn. 162 00:11:31,000 --> 00:11:37,000 Mi kredas ke ĝi dependas de kie la PHP duuma stokas, 163 00:11:37,000 --> 00:11:43,000 sed ofte usr / bin / php estas bona loko por komenci. 164 00:11:43,000 --> 00:11:45,000 Vi povas kalkuli tiun el akurate irante reen en vian aparaton 165 00:11:45,000 --> 00:11:50,000 kaj tajpi el kiuj php. 166 00:11:50,000 --> 00:11:55,000 La kio komando ciferojn, kiam vi ekzekuti duuma 167 00:11:55,000 --> 00:12:01,000 aŭ komando kie la responda dosiero. 168 00:12:01,000 --> 00:12:06,000 Ĉi tiu diras al mi ke la PHP estas vere aliasing ĉi duuma dosiero 169 00:12:06,000 --> 00:12:13,000 ke tio stokitaj en usr / bin, kiu estas kie granda parto de la sistemo binaraj estas instalitaj. 170 00:12:13,000 --> 00:12:21,000 Ekzemple, se mi rulumu supren al la supro, nun ke mi metis ĉi #! linio en ĉi tien 171 00:12:21,000 --> 00:12:27,000 Mi povas rulumi malsupren, kaj mi povas provi kuri 172 00:12:27,000 --> 00:12:35,000 dynamic.php, sed mi akiri ĉi tiun eraron pri permeso esti malkonfesis, 173 00:12:35,000 --> 00:12:42,000 kaj kion tio signifas estas ke ĉi dosiero estas nuntempe ne donante ruleblan permesojn. 174 00:12:42,000 --> 00:12:46,000 Ne estas markita kiel dosiero kiu iu povas kuri. 175 00:12:46,000 --> 00:12:52,000 >> Kiam vi kuris fari aŭ Clang kaj vi havas plenumeblan de ĝi 176 00:12:52,000 --> 00:12:56,000 la tradukilo estis sufiĉe inteligenta por scii ke hey, mi konstruas plenumebla. 177 00:12:56,000 --> 00:13:00,000 Vi verŝajne volas ekzekuti ĝin, do ĝi aŭtomate agordas 178 00:13:00,000 --> 00:13:02,000 la permesojn por vi. 179 00:13:02,000 --> 00:13:06,000 Ĉi tiu ne estas la kazo, tamen, kiam oni kreas normalan dosieron de nulo, 180 00:13:06,000 --> 00:13:13,000 la kialo esti tipe vi ne volas havi neniun dosieron en via sistemo estus plenumebla, 181 00:13:13,000 --> 00:13:15,000 tiel vi efektive devas iri en kaj permane fari tion. 182 00:13:15,000 --> 00:13:22,000 La plej facila maniero por fari ĝin estas kun la chmod komando, 183 00:13:22,000 --> 00:13:28,000 kaj chmod + x diras aldoni la plenumeblan iom 184 00:13:28,000 --> 00:13:31,000 ĉar tie estas la legado bito, la skribo iom kaj la ruleblan iom, 185 00:13:31,000 --> 00:13:35,000 r, w kaj x, 186 00:13:35,000 --> 00:13:39,000 kaj dirante chmod + x turnos sur la ruleblan iom 187 00:13:39,000 --> 00:13:46,000 cxar tiam la dosiero kiun ni precizigi, ke en ĉi tiu kazo estos dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Studenta] Ĉu tiu perfidis por ĉiuj? 189 00:13:49,000 --> 00:13:52,000 Ni kontrolu ĉi eksteren, do kiel mi volis kontroli por vidi la permesoj? 190 00:13:52,000 --> 00:13:54,000 Ĉu vi scias, kiel mi kontroli por vidi la permesojn de dosiero? 191 00:13:54,000 --> 00:13:56,000 [Inaudible studento respondon] 192 00:13:56,000 --> 00:13:58,000 Pardonu? >> [Studenta] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD donas al ni la dosiero en hacks. 194 00:14:03,000 --> 00:14:09,000 Printante ĉiuj dosieroj,-l, montros min ĉiujn dosierojn en mia katalogo 195 00:14:09,000 --> 00:14:13,000 ia en siaj longaj, abundajn kantoj, kaj tiel tie ni vidas ke 196 00:14:13,000 --> 00:14:17,000 ĉi dynamic.php dosieron 197 00:14:17,000 --> 00:14:23,000 Laste redaktita November 5, je 4:21 PM. 198 00:14:23,000 --> 00:14:26,000 La mastro de tiu dosiero estas jharvard. 199 00:14:26,000 --> 00:14:28,000 Tio estas la uzanto kiu estas ensalutinta in 200 00:14:28,000 --> 00:14:31,000 Tio estas la uzanto mi laboras kiel, 201 00:14:31,000 --> 00:14:36,000 kaj se vi ankaŭ en la aparaton vi ankaŭ laboras kiel uzanto jharvard. 202 00:14:36,000 --> 00:14:38,000 Vi estas en la studentoj grupo, 203 00:14:38,000 --> 00:14:44,000 kaj ĉi tiuj estas aĵoj, kiun vi vidos sufiĉe ofte. 204 00:14:44,000 --> 00:14:47,000 >> Ni povas iri en multaj detaloj ĉi tie, 205 00:14:47,000 --> 00:14:50,000 sed plejparte kion vi volas rigardi kiam vi serĉas por vidi 206 00:14:50,000 --> 00:14:55,000 ĉu dosiero estas plenumebla estas ĉefe 207 00:14:55,000 --> 00:14:58,000 la uzanto kiu posedas la dosiero, la mastro, 208 00:14:58,000 --> 00:15:03,000 tial ĉi jharvard, kaj tiam ni havi 209 00:15:03,000 --> 00:15:07,000 la permesojn bitoj super tie sur la maldekstra, 210 00:15:07,000 --> 00:15:13,000 kaj la vojon por legi ĉi estas ke la lasta iom 211 00:15:13,000 --> 00:15:18,000 tipe estas uzita por marki ĉu aŭ ne-almenaŭ en ĉi tiu kazo 212 00:15:18,000 --> 00:15:21,000 ĉi lasta iom ofte enkadrigeblajn por ad indiki 213 00:15:21,000 --> 00:15:24,000 ke la dosiero estas dosierujo kaj ne nur normala dosiero. 214 00:15:24,000 --> 00:15:28,000 Tiam jenaj 3 bitoj ĉi tie 215 00:15:28,000 --> 00:15:34,000 determini la permesoj, ke la posedanto de la dosiero havas, 216 00:15:34,000 --> 00:15:38,000 tial en ĉi tiu kazo jharvard, kiel la mastro de la dosiero, povas legi kaj skribi ĉi tiu dosiero, 217 00:15:38,000 --> 00:15:42,000 sed tie estas streko dirante ke jharvard ne povas ekzekuti ĉi tiu dosiero. 218 00:15:42,000 --> 00:15:46,000 La venonta 3 bitoj estas por la grupo, do ĉi tiu estas la studentoj grupo, 219 00:15:46,000 --> 00:15:49,000 do se ekzistus pluraj uzantoj en mia aparaton, 220 00:15:49,000 --> 00:15:52,000 kaj ni havis plurajn uzantojn kiel parto de la studentoj grupo, 221 00:15:52,000 --> 00:15:55,000 tiam ili povas ĉiuj legi tiun dosieron, sed ili ne povas skribi ĝin, 222 00:15:55,000 --> 00:15:59,000 kaj tiel same ĉiu alia, la mondo 223 00:15:59,000 --> 00:16:01,000 povas nur legi tiun dosieron kiel bone. 224 00:16:01,000 --> 00:16:03,000 Estas bona, longa writeup pri tio, 225 00:16:03,000 --> 00:16:05,000 tiel vi povas legi rete. 226 00:16:05,000 --> 00:16:10,000 En la problemon aro spec ni iru en tiun pli detale. 227 00:16:10,000 --> 00:16:12,000 >> [Studenta] Ĉu la 218 raportante al la mondo? 228 00:16:12,000 --> 00:16:17,000 La 218 estas ekflugo la supro de mia kapo min forgesi, 229 00:16:17,000 --> 00:16:20,000 sed ne. 230 00:16:20,000 --> 00:16:29,000 Ni vidu. Mi blanking sur tiu nun. 231 00:16:29,000 --> 00:16:32,000 Reen al kio ni estis faronta kun ĉi chmod + x 232 00:16:32,000 --> 00:16:37,000 kie ni volis doni dynamic.php ruleblan permesoj, 233 00:16:37,000 --> 00:16:40,000 kaj la demando estis ĉu ĉi donus ruleblan permesojn al ĉiuj 234 00:16:40,000 --> 00:16:44,000 aŭ simple jharvard, kaj ni povas vidi ĉi tion 235 00:16:44,000 --> 00:16:48,000 kurante la ordonoj kaj tajpi ls-l, 236 00:16:48,000 --> 00:16:51,000 kaj nun ni vidas ke ĝi estas markita kiel plenumebla. 237 00:16:51,000 --> 00:16:54,000 Vi vidas, ke tie estis kolorŝanĝo. 238 00:16:54,000 --> 00:16:57,000 Nun dynamic.php estas listigita en verdo, 239 00:16:57,000 --> 00:17:01,000 kaj ĝi aspektas kiel la respondo al la demando estas kio, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Nur jharvard. >> Nur jharvard, jes. 241 00:17:04,000 --> 00:17:08,000 >> Se ni volas turni la ruleblan iom on por ĉiuj 242 00:17:08,000 --> 00:17:10,000 kiom eble ni faru tion? 243 00:17:10,000 --> 00:17:13,000 Ajna pensoj? >> A + x? 244 00:17:13,000 --> 00:17:15,000 Yeah, precize. 245 00:17:15,000 --> 00:17:23,000 Charlotte diris ni povas fari chmod de a + x de dynamic.php, 246 00:17:23,000 --> 00:17:26,000 kaj nun, se ni kuras ls-l ni vidas ke la ruleblan bitoj 247 00:17:26,000 --> 00:17:30,000 estas ja perfidis por ĉiuj. 248 00:17:30,000 --> 00:17:37,000 Kaj vi povas reale fari la dorsflanko de tiu, do vi povos turni ĝin por ĉiuj 249 00:17:37,000 --> 00:17:41,000 uzante minus. 250 00:17:41,000 --> 00:17:46,000 Nun ĝi estas malŝaltita, kaj nun ni povas turni ĝin reen sur cxar jharvard 251 00:17:46,000 --> 00:17:52,000 por ke ni povas reale ruli ĝin nun, 252 00:17:52,000 --> 00:17:58,000 kaj nun vi vidos, kiam ni kuras la kodon tiu speciala #! linio je la supro, 253 00:17:58,000 --> 00:18:04,000 #! linio, diris al la konko, 254 00:18:04,000 --> 00:18:08,000 diris nia fina hey, kiam ĉi dosiero estas kuri, 255 00:18:08,000 --> 00:18:14,000 uzi / usr / bin / php interpreti ĉi tiun dosieron 256 00:18:14,000 --> 00:18:20,000 kaj poste presi la eligo. 257 00:18:20,000 --> 00:18:22,000 [Inaudible studento demando] 258 00:18:22,000 --> 00:18:25,000 Certe, lasu min rulumi back up. Samkiel tiu. 259 00:18:25,000 --> 00:18:36,000 Vi vidos ĉiujn tiujn direktivojn starti kun ĉi funto kaj tiam la ekkrio punkto, 260 00:18:36,000 --> 00:18:39,000 kelkfoje nomata shebang, hash bang. 261 00:18:39,000 --> 00:18:48,000 >> [Studenta] Kiel ni povas ruli ĝin per php dynamic.php antaŭ ol ni faras ĝin plenumebla? 262 00:18:48,000 --> 00:18:55,000 La demando estis kiel ni povas kuri ĉi uzanta la PHP duuma 263 00:18:55,000 --> 00:18:58,000 dum dynamic.php ne plenumebla? 264 00:18:58,000 --> 00:19:01,000 Ĉi tiu estas super grava ĉar ĉi tiu estas ĝuste kiel 265 00:19:01,000 --> 00:19:06,000 ĝi tuj labori kiam vi skribas problemo aro 7. 266 00:19:06,000 --> 00:19:09,000 Plej ofte PHP dosieroj ne estas rekte ruleblan. 267 00:19:09,000 --> 00:19:14,000 La vojo kiu funkcias estas ĉar ĝi estas la PHP duuma jen ruleblan. 268 00:19:14,000 --> 00:19:16,000 La interpretisto estas tio ke tio esti ekzekutita, 269 00:19:16,000 --> 00:19:20,000 kaj tiel kion ĝi estas fari estas laŭvorte slurping en la tuta enhavo 270 00:19:20,000 --> 00:19:25,000 de nia dynamic.php dosiero kaj tuj linio por linio 271 00:19:25,000 --> 00:19:29,000 kaj ekzekuti tiujn ordonojn, do ĝi estas uzanta nian PHP-dosiero 272 00:19:29,000 --> 00:19:31,000 kiel listo de instrukcioj. 273 00:19:31,000 --> 00:19:36,000 Ĝi estas ne rekte ekzekuti ĝin. 274 00:19:36,000 --> 00:19:40,000 Tie estas kie ni diras, ke tiuj dosieroj estas interpretitaj en tempo de ekzekuto. 275 00:19:40,000 --> 00:19:46,000 Estas tempo de ekzekuto lingvo anstataŭ io ke tio determinis ĉe kompila tempo, 276 00:19:46,000 --> 00:19:49,000 ne estas kompilitaj lingvo kiel C. 277 00:19:49,000 --> 00:19:54,000 >> Ĉu estas maniero por atingi tempo de ekzekuto lingvo agi kvazaŭ ĝi estas kompila tempo lingvon, 278 00:19:54,000 --> 00:19:58,000 kiel se vi havas ĉiujn kurado farita ĉe la servilo 279 00:19:58,000 --> 00:20:00,000 anstataŭ-vi scias, kion mi volas diri? 280 00:20:00,000 --> 00:20:04,000 Jes, do la demando estas 281 00:20:04,000 --> 00:20:11,000 estas tie metodon por havigi kuri tempo lingvojn por agi pli kiel kompili tempo tipoj de lingvoj? 282 00:20:11,000 --> 00:20:18,000 Kaj tie estas, mi volas diri, ke estas aktiva areo de esplorado por multe el tiuj firmaoj. 283 00:20:18,000 --> 00:20:22,000 Mi kredas Facebook faris multe da laboro kun PHP 284 00:20:22,000 --> 00:20:25,000 kaj kompili ĝin, farante ĝin pli rapida, optimizando ĝin 285 00:20:25,000 --> 00:20:29,000 ekde ilia retejo estas konstruita en PHP. 286 00:20:29,000 --> 00:20:34,000 Se vi estis sekvante node.js tute ne, 287 00:20:34,000 --> 00:20:40,000 kiu estas speco de JavaScript interpretisto 288 00:20:40,000 --> 00:20:44,000 por povi kuri JavaScript ekster la retumilo, ekstere de via retumilo, 289 00:20:44,000 --> 00:20:47,000 ĉar tradicie JavaScript estus nur kuri ene de Firefox aŭ Chrome, 290 00:20:47,000 --> 00:20:52,000 kaj tio estus uzita por fari cool kuraĝigoj okazi en retpaĝo 291 00:20:52,000 --> 00:20:55,000 kaj Mi faros vian retpaĝon dinamika. 292 00:20:55,000 --> 00:20:59,000 Tio estis konstruita sur tereno de laboro kiu Google faris 293 00:20:59,000 --> 00:21:03,000 fari JavaScript kaj C + + 294 00:21:03,000 --> 00:21:09,000 ligi kune, do ekzistas multe da aktivaj esploro 295 00:21:09,000 --> 00:21:13,000 akiri tiujn lingvojn por interagi kaj optimizar ili, 296 00:21:13,000 --> 00:21:17,000 ĉefe ĉar tiel multaj homoj povas kodi en PHP kaj Javascript 297 00:21:17,000 --> 00:21:19,000 ĉar ĝi estas multe pli facila. 298 00:21:19,000 --> 00:21:21,000 Estas multe pli agrabla. Vi ne havas punteros. 299 00:21:21,000 --> 00:21:27,000 Vi ne havas tipoj flosante ĉirkaŭe. 300 00:21:27,000 --> 00:21:31,000 Ili volis gajni la profitoj de tiuj kompila tempo lingvoj 301 00:21:31,000 --> 00:21:36,000 kun ĉiuj tipo kontrolanta kaj la rapido kaj la malsupra memoro uzado kaj ĉiuj de tiu 302 00:21:36,000 --> 00:21:42,000 dum ankoraŭ subtenante la flekseblecon kaj facileco de uzo de tiuj novaj aĵoj. 303 00:21:42,000 --> 00:21:46,000 >> Reen al nia originala plano de atako. 304 00:21:46,000 --> 00:21:50,000 Ni havas kelkajn el tiuj demandoj cxi tie en nia problemo aro spec. 305 00:21:50,000 --> 00:21:54,000 Ni iru tra ili vere rapide, kaj ni iros ĉirkaŭ la ĉambro. 306 00:21:54,000 --> 00:21:59,000 Charlotte, kion tipo estas 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] Tio estas duobla. >> Estas duobla. 308 00:22:01,000 --> 00:22:03,000 Jimmy, kio estas ĉi tiu venonta unu? >> An tabelo. 309 00:22:03,000 --> 00:22:09,000 Tabelo, timinda, kaj Jared, kio estas la fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Estas rimedo. >> Estas rimedo. 311 00:22:11,000 --> 00:22:15,000 Tio estas speco de nova, ne dosieron stelo, ne dosieron. 312 00:22:15,000 --> 00:22:19,000 Ĝi estas rimedo estas la tipo en PHP, 313 00:22:19,000 --> 00:22:24,000 kaj mi bedaŭras, Ella, la lasta nula estas kio? 314 00:22:24,000 --> 00:22:26,000 Nula. 315 00:22:26,000 --> 00:22:28,000 Nula, kiel estas literumita en PHP? >> La sama maniero. 316 00:22:28,000 --> 00:22:30,000 La sama maniero, ĉefurboj? >> Jes. 317 00:22:30,000 --> 00:22:33,000 Yeah, tute certe. 318 00:22:33,000 --> 00:22:35,000 Ĉi tie ni iros, ni havas duoblan, ni havas aron, 319 00:22:35,000 --> 00:22:41,000 ni havas rimedon, kaj poste ni devas nula. 320 00:22:41,000 --> 00:22:48,000 Ni vidu nun havas vi vidis- 321 00:22:48,000 --> 00:22:51,000 ni vidu, tiel nun mi supozas tion, kion mi ankaŭ volas fari estas elsxiros 322 00:22:51,000 --> 00:22:56,000 ĉi tiu retpaĝo ĉi tie, ĉi php.net / manlibro, 323 00:22:56,000 --> 00:23:01,000 do se vi infanoj kopii tion kaj malfermi foliumilon. 324 00:23:01,000 --> 00:23:07,000 Mi tuj elsxiros Chrome, metis tiun in 325 00:23:07,000 --> 00:23:10,000 Mi volas montri al vi ne nur ĉar 326 00:23:10,000 --> 00:23:13,000 ni povas paroli la tutan tagon sur tipoj kaj cxio, kion amuza stuff 327 00:23:13,000 --> 00:23:19,000 sed prefere ĉar ĉi tiu estas la PHP manlibro, 328 00:23:19,000 --> 00:23:23,000 kaj estas multaj de PHP programistoj tie. 329 00:23:23,000 --> 00:23:26,000 Estas multaj de PHP retejojn tie, 330 00:23:26,000 --> 00:23:31,000 kaj kiel rezulto, estas multe da dokumentoj en PHP, 331 00:23:31,000 --> 00:23:36,000 kaj la manlibro, ĉi php.net, estas vere bona loko por iri 332 00:23:36,000 --> 00:23:43,000 kiam vi havas demandojn pri kio estas la plej bona maniero fari X en PHP 333 00:23:43,000 --> 00:23:45,000 aŭ kion signifas funkcio aspektas? 334 00:23:45,000 --> 00:23:49,000 Nur speco de prenanta konas kio estas tiu similas ĉar 335 00:23:49,000 --> 00:23:54,000 vi venos tien ofte, iom por problemo starigis 7. 336 00:23:54,000 --> 00:23:57,000 >> Se vi finos faras finon projekto kiu uzas PHP 337 00:23:57,000 --> 00:24:04,000 ĉi tio estos loko vi fariĝis tre bone konis. 338 00:24:04,000 --> 00:24:09,000 Ofte la vojo homo faras ĉi estas ili uzas Google por serĉi la lokon, 339 00:24:09,000 --> 00:24:16,000 kaj ili ne uzas la sercxilo jen supre cxi tie en la supra dekstra, kiu estas speco de tre eta. 340 00:24:16,000 --> 00:24:19,000 Se vi Googling ĉirkaŭ ion fari kun PHP kaj vi vidos 341 00:24:19,000 --> 00:24:24,000 unu el la manlibro ligiloj popo supren vi povas tipe fidi ke 342 00:24:24,000 --> 00:24:31,000 kiel sufiĉe bona rimedo. 343 00:24:31,000 --> 00:24:34,000 Awesome, do el tiuj tipoj, nur pro scivolemo, 344 00:24:34,000 --> 00:24:37,000 kiu tiuj ne ni vidis? 345 00:24:37,000 --> 00:24:40,000 Ion ni ne vidis tie? 346 00:24:40,000 --> 00:24:44,000 [Studenta] Resource. >> Ni vidis rimedon kun la fopen alvokon. 347 00:24:44,000 --> 00:24:48,000 [Studenta] Celoj. >> Objektoj ni ne vidis dum certa. 348 00:24:48,000 --> 00:24:51,000 Callbacks ni ne vidis. 349 00:24:51,000 --> 00:24:54,000 Estas iuj el tiuj pseŭdo-tipojn. 350 00:24:54,000 --> 00:24:57,000 Ni definitive nur vidis entjero kaj duobla. 351 00:24:57,000 --> 00:25:01,000 Ni ne vidis iujn de la aliaj, do se ni alklaku entjeroj 352 00:25:01,000 --> 00:25:08,000 ni povas vidi tie estas iu alia entjeroj, ke ili havas tie? 353 00:25:08,000 --> 00:25:11,000 Ĉu ili ĉiuj tiom entjero, entjero, entjero. 354 00:25:11,000 --> 00:25:14,000 Iuj lingvoj havas pli grandan entjeron tipoj, 355 00:25:14,000 --> 00:25:23,000 kiel ni vidis en MySQL hodiaŭ estis int kaj poste grandaj int. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Do, PHP manlibro. 358 00:25:28,000 --> 00:25:37,000 Ni reiru al nia problemo aro spec, kaj ni nun rulumi malsupren al paĝo 4. 359 00:25:37,000 --> 00:25:41,000 Unu el la aĵoj kiuj okazas kiam vi ricevas tiujn lingvojn 360 00:25:41,000 --> 00:25:49,000 kiuj ne havas tiun statika tajpi, do tiuj lingvoj, kie vi devas deklari 361 00:25:49,000 --> 00:25:52,000 la tipo de variablo supren fronto 362 00:25:52,000 --> 00:26:00,000 estas vi ricevas kazoj kie vi povus komenci havi variablojn de malsamaj tipoj 363 00:26:00,000 --> 00:26:04,000 interagante kun la alia, 364 00:26:04,000 --> 00:26:09,000 kaj PHP faras tion kie klopodas fari 365 00:26:09,000 --> 00:26:13,000 kion ĝi konsideras esti la plej saĝa afero por fari 366 00:26:13,000 --> 00:26:18,000 kiam vi havas 2 malsamaj tipoj interagi kun aliaj. 367 00:26:18,000 --> 00:26:24,000 Ekzemple, se ni rigardas tiujn liniojn de kodo tie ĉi 368 00:26:24,000 --> 00:26:29,000 vi vidas, ke ni havas kio okazas kiam 369 00:26:29,000 --> 00:26:38,000 ni provu kaj aldoni la kordo 1 al la entjero 2. 370 00:26:38,000 --> 00:26:41,000 Kio okazas se ni provu kaj aldonu ĉenon kiu ne estas nombra valoro 371 00:26:41,000 --> 00:26:48,000 sed prefere reala karakteroj, CS al la numero 50? 372 00:26:48,000 --> 00:26:51,000 Tiam ni vidos ĉu estas io malsama ol okazas kie 373 00:26:51,000 --> 00:26:56,000 anstataŭ aldoni ŝnuro al nombro ni aldonante kelkajn al ĉeno, 374 00:26:56,000 --> 00:27:00,000 kaj tiel plu kaj tiel plu, ĝis la punkto kie estas duumaj 375 00:27:00,000 --> 00:27:05,000 ia stranga stuff ĉi tie, kie ni havas 7 + vera. 376 00:27:05,000 --> 00:27:09,000 Kion la heck tio signifas? 377 00:27:09,000 --> 00:27:19,000 >> Se vi infanoj antaŭeniri kaj gluu iom da ĉi tiu kodo en vian aparaton. 378 00:27:19,000 --> 00:27:27,000 Vi povas konservi ĝin en dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Ni vidos kio okazas. 380 00:27:41,000 --> 00:27:43,000 [Studenta] Simple uzu impreso, ne printf? 381 00:27:43,000 --> 00:27:52,000 Yeah, do vi trovos ke impreso estas ankaŭ valida funkcio por presi en PHP. 382 00:27:52,000 --> 00:27:54,000 Estas multaj malsamaj manieroj fari ĝin. 383 00:27:54,000 --> 00:27:58,000 Ni vidos kun paro de la ekzemploj poste iam ni komencu paroli 384 00:27:58,000 --> 00:28:02,000 pri la sola problemo, ke ni tuj skribos 385 00:28:02,000 --> 00:28:06,000 kaj tiam la koncentriĝoj problemo, ke ni tuj skribos 386 00:28:06,000 --> 00:28:09,000 ke eĉ se ni devas fopen kaj fclose 387 00:28:09,000 --> 00:28:15,000 jen ofte ne la plej simpla maniero por legi en la enhavon de dosiero. 388 00:28:15,000 --> 00:28:21,000 PHP havas multan tiuj C-similaj holdovers. 389 00:28:21,000 --> 00:28:28,000 [Studenta] Kiam mi metis en ĉiuj 6 de tiuj aĵoj mi nur get one numeron kiel eliro. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Kiam vi metas en ĉiuj 6 el tiuj aferoj. 391 00:28:36,000 --> 00:28:39,000 Ni vidu ĉu ĉar estas eble- 392 00:28:39,000 --> 00:28:46,000 unu afero estas ke tiuj presitaj alvokoj ne finita fine kun novaj linioj. 393 00:28:46,000 --> 00:28:49,000 Ne nova linio disigi ĉiu el tiuj presitaj alvokoj, 394 00:28:49,000 --> 00:28:51,000 do eble vi ricevas unu grandan numeron, 395 00:28:51,000 --> 00:28:58,000 kaj estas vere ĝuste amalgama de nova linio gravuloj. 396 00:28:58,000 --> 00:29:00,000 [Studenta] Konsentite, kiel mi certiĝu- 397 00:29:00,000 --> 00:29:03,000 Nu, estas amaso de malsamaj manieroj. 398 00:29:03,000 --> 00:29:06,000 Vi povus mane metitaj en presita de nova linio karaktero, 399 00:29:06,000 --> 00:29:09,000 eĥo de nova linio karaktero, 400 00:29:09,000 --> 00:29:12,000 presi de nova linio. 401 00:29:12,000 --> 00:29:16,000 [Studenta] Do eĥo estas la sama afero kiel printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf estas kiel C printf 403 00:29:21,000 --> 00:29:24,000 kie vi presi formatan kordoj. 404 00:29:24,000 --> 00:29:32,000 Vi provizado ĝi la formato ŝnuro kaj tiam ĉiuj lokokupilo variabloj. 405 00:29:32,000 --> 00:29:39,000 Estas ofte iu kiu ne estas uzata- 406 00:29:39,000 --> 00:29:42,000 ni vidu, kiel disclaimer, 407 00:29:42,000 --> 00:29:48,000 Mi estas malpli familiara kun PHP ol mi kun aliaj TTT lingvoj, 408 00:29:48,000 --> 00:29:53,000 kaj kiam mi programita en PHP Mi tipe ne uzas printf 409 00:29:53,000 --> 00:29:59,000 ĉar mi trovas ĝin pli rapide uzi la ŝnuron interpola kapablojn kiu havas, 410 00:29:59,000 --> 00:30:04,000 kiuj ni iros en kaj mi montros al vi en nur dua, 411 00:30:04,000 --> 00:30:08,000 dum en C ni ia devas fari ĉi hacky afero akiri ĝin por presi konvene. 412 00:30:08,000 --> 00:30:16,000 Vi povas fakte metis variabloj rekte en ĉenoj en PHP. 413 00:30:16,000 --> 00:30:22,000 Printf estas speco de tro longa por kio mi kutime faras. Jes, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ŝi] Ĝenerale se vi ricevas parse eraro tio signifas- 415 00:30:25,000 --> 00:30:30,000 kiel sur C ne diras al vi precize kie la eraro estas kaj kio estas, 416 00:30:30,000 --> 00:30:34,000 do tio signifas rigardu per viaj tutaj kodo kaj kompreni ĝin? 417 00:30:34,000 --> 00:30:39,000 Estas tipe pli celata ol tio. 418 00:30:39,000 --> 00:30:48,000 Mi kredas en tiu kazo estis iom for, 419 00:30:48,000 --> 00:30:51,000 do mi pensas en tiu kazo ni mankis punktokomo. 420 00:30:51,000 --> 00:30:54,000 Ĝi klopodis sencon de ĉiu, 421 00:30:54,000 --> 00:30:57,000 tiel kiel tiuj interpretitaj lingvoj, la interpretisto tuj provi 422 00:30:57,000 --> 00:31:01,000 kaj faru lia pli bona fari cxion laboro taŭge. 423 00:31:01,000 --> 00:31:04,000 >> Vi vidos, ekzemple, en JavaScript 424 00:31:04,000 --> 00:31:10,000 Vi ofte linio deklaroj fino kun punktokomo ĝuste kiel ili faras en PHP, 425 00:31:10,000 --> 00:31:13,000 ĝuste kiel ili faras en C. 426 00:31:13,000 --> 00:31:15,000 En JavaScript kelkaj el la JavaScript interpretistoj 427 00:31:15,000 --> 00:31:20,000 en tereno de la retumiloj metos en punktokomojn por vi 428 00:31:20,000 --> 00:31:23,000 se vi hazarde mankus ili. 429 00:31:23,000 --> 00:31:29,000 Ili provos kaj akomodi por iu sloppiness en via parto. 430 00:31:29,000 --> 00:31:34,000 Tie estas kie gxi eble provi kaj provi kaj provi fari tion laboron, 431 00:31:34,000 --> 00:31:36,000 kaj tiam fine alvenos al punkto kie diras bone, 432 00:31:36,000 --> 00:31:38,000 Mi ne povas fari tion labori en achique, kaj tie estas kie vi ricevos numero de linio 433 00:31:38,000 --> 00:31:44,000 kiuj povus simili iom for de la ĝusta loko. 434 00:31:44,000 --> 00:31:47,000 Konsentite, do ni iru tra tiu vere rapide. 435 00:31:47,000 --> 00:31:50,000 Ni cxesis kun Ella, do ni transiru al Missy, 436 00:31:50,000 --> 00:31:54,000 kaj Missy, kion signifas truon de kordoj 1 plus la nombro 2 al vi? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Ĉu tio havas sencon? Ordigi de? 439 00:31:59,000 --> 00:32:02,000 Ĉu ĝi donas al vi kelkajn? Ĉu ĝi donas al vi ĉenon? 440 00:32:02,000 --> 00:32:05,000 [Missy] A nombro. >> Estas nombro. 441 00:32:05,000 --> 00:32:09,000 Sed ĝi estas videbligi ĝin, do ĝi estas tuj donos al vi ian kordoj. 442 00:32:09,000 --> 00:32:12,000 >> Unu aferon ni povos fari por kontroli this out 443 00:32:12,000 --> 00:32:21,000 estas, se ni faras $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 kaj tiam ni diri eĥo de gettype, 445 00:32:28,000 --> 00:32:33,000 do ni uzas la trian specon de presi ĉi tie. 446 00:32:33,000 --> 00:32:39,000 Nun ni povas vidi kio okazas tie. 447 00:32:39,000 --> 00:32:42,000 Jen kion ni havas estas ni akiris entjero el ĉi. 448 00:32:42,000 --> 00:32:45,000 Kvankam ni estis aldonante ĉi ŝnuro al nombro, 449 00:32:45,000 --> 00:32:48,000 ni ne ricevis ĉenon el ĝi, kiel Missy diris. 450 00:32:48,000 --> 00:32:52,000 Ni ricevas entjero. 451 00:32:52,000 --> 00:32:57,000 Konsentite, do ni vidas, apud supren, 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. Ĉu tio havas sencon? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Yeah. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Kial? Kial havas sencon por vi? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Ĉar ĝi estas nur havi la ŝnuro, havanta nombro valoron nulo. 457 00:33:11,000 --> 00:33:16,000 Yeah, granda. 458 00:33:16,000 --> 00:33:20,000 Speco de dubasenca situacioj, sed estas bone scii kio okazas. 459 00:33:20,000 --> 00:33:25,000 Stella, kio okazas tuj poste kun nombro 1 + kordoj 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 denove. 461 00:33:27,000 --> 00:33:30,000 Kaj en ĉi tiu kazo, ni ricevas ŝnuro aŭ numeron? 462 00:33:30,000 --> 00:33:36,000 >> Ni donu ĉi provu. 463 00:33:36,000 --> 00:33:43,000 Neniu pli rapida ol mi ricevas la respondon? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Ho, mi didn't-bonfartas, vidu, ni faros la saman tiaj aferoj 465 00:33:46,000 --> 00:33:49,000 kie ni havas numeron pli kordoj, kaj oni tuj eĥon de la tipo, 466 00:33:49,000 --> 00:33:51,000 vidi kion ni preni. 467 00:33:51,000 --> 00:33:55,000 Ni atingas entjero. 468 00:33:55,000 --> 00:33:58,000 Ne gravas kiu estas la kordo, kiu estas la nombro. 469 00:33:58,000 --> 00:34:00,000 Ni ankoraŭ ricevos entjero. 470 00:34:00,000 --> 00:34:04,000 Ĝi estas ankoraŭ faros kion ni povus atendi. 471 00:34:04,000 --> 00:34:09,000 Bone, do Sam, kio pri la 90 + 9 boteloj de biero sur la muro? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Neniu boteloj de biero sur la muro, though. 474 00:34:15,000 --> 00:34:17,000 Ĝi donas al ni iom da informoj pri kio okazas. 475 00:34:17,000 --> 00:34:21,000 [Sam] Se vi estis skribinta 9 en literoj 476 00:34:21,000 --> 00:34:23,000 tiam vi havus 90, ĉu ne? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Yeah. 478 00:34:26,000 --> 00:34:30,000 La demando estis se ni volas skribita 9 ekster kiel N-I-N-E 479 00:34:30,000 --> 00:34:34,000 estus ni alvenas 99 aŭ 90? 480 00:34:34,000 --> 00:34:38,000 Ni ŝatus ricevi 90. 481 00:34:38,000 --> 00:34:42,000 Ĝi estas laŭvorte nur serĉas cifero gravuloj. 482 00:34:42,000 --> 00:34:46,000 Ne sufiĉe inteligenta por rekoni nombro vortoj kaj ke aĵoj. Jes. 483 00:34:46,000 --> 00:34:48,000 >> [Studenta] Ĉu ekzistas tia afero kiel typecasting en PHP? 484 00:34:48,000 --> 00:34:54,000 Ekzistas, kaj ĝi estas precize la vojon vi farus en C. 485 00:34:54,000 --> 00:34:56,000 Kio pri 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.] Jes, tia kiu povas esti surprize pri tio? 488 00:35:01,000 --> 00:35:04,000 Kio okazus se vi faris tion saman tiaj aferoj en C, 489 00:35:04,000 --> 00:35:06,000 se vi faris 10/7 en C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Estus nur doni al vi-dependanta sur kiel vi typecasted mi supozas 491 00:35:08,000 --> 00:35:12,000 donus al vi nur limigita kvanto de ciferoj post la decimala. 492 00:35:12,000 --> 00:35:16,000 Yeah, do limigita nombro de ciferoj post la decimala. 493 00:35:16,000 --> 00:35:21,000 Kion alian povus esti-ĉu doni al vi ajnan ciferoj post la dekuma? 494 00:35:21,000 --> 00:35:28,000 Ofte ne, do denove, dependanta sur kiel vi typecasting ĝin 495 00:35:28,000 --> 00:35:31,000 ĝi povas aŭ ne konverti ĝin al glitpunkta nombro. 496 00:35:31,000 --> 00:35:35,000 Tie estis tia agrabla ke ĝi faris. 497 00:35:35,000 --> 00:35:40,000 Se ni montris al vi ĉi reen kiam ni komencis fari tian materialon en C 498 00:35:40,000 --> 00:35:44,000 ĝi probable estus farita iom pli sentita 499 00:35:44,000 --> 00:35:48,000 ke li ne nur iri al 1. 500 00:35:48,000 --> 00:35:51,000 Kaj poste fine, Jamie, kio pri 7 + vera? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Kion tio signifas? 503 00:35:56,000 --> 00:35:58,000 Mi supozas ke nur donas veran la valoron de 1. 504 00:35:58,000 --> 00:36:01,000 Yeah. Kio okazas se ni ŝanĝu tion al falsa? 505 00:36:01,000 --> 00:36:04,000 [Studenta] 7. 506 00:36:04,000 --> 00:36:09,000 Yeah, do memoras kie oni parolas pri tiuj binaraj valoroj, 507 00:36:09,000 --> 00:36:12,000 1 estante sur, 0 esti ekstere? 508 00:36:12,000 --> 00:36:17,000 Nun ni havas veran estas 1, 0 estas falsa, 509 00:36:17,000 --> 00:36:21,000 kaj vi eble ne vidis tion en la C ekzemploj kiujn ni faris ĉi pasinta semestro, 510 00:36:21,000 --> 00:36:27,000 sed historie la bool tipo en C ne estis reala tipo, 511 00:36:27,000 --> 00:36:32,000 tial homoj uzis 0 kaj 1 en la loko de vera kaj malvera. 512 00:36:32,000 --> 00:36:35,000 Tio estas elmontro de tio. 513 00:36:35,000 --> 00:36:39,000 >> Okay, do la grava parto pri ĉiuj ĉi 514 00:36:39,000 --> 00:36:41,000 estas ke ni havas ĉi tiuj malsamaj tipoj. 515 00:36:41,000 --> 00:36:43,000 Ili povas interagi kun aliaj. 516 00:36:43,000 --> 00:36:49,000 Ili povas ofte interagas kun unu la alian en manieroj kiuj estas bela, kiel ni vidis tie. 517 00:36:49,000 --> 00:36:53,000 Estas agrable povi havi ĉenon 1 kaj la nombro 2, aldonu ilin kune kaj akiri 3. 518 00:36:53,000 --> 00:36:55,000 Tio havas sencon. 519 00:36:55,000 --> 00:36:59,000 Tamen, kiam vi skribas retejoj, kaj precipe kiam vi procesante 520 00:36:59,000 --> 00:37:04,000 uzanto enigo, do diru al vi mi skribis retejo formo 521 00:37:04,000 --> 00:37:09,000 kiu enspezas informon de la uzanto kaj tiam iras al procesi ĝin 522 00:37:09,000 --> 00:37:13,000 sur la dorso senfina sur la servilo flanko en la PHP-an kodon 523 00:37:13,000 --> 00:37:18,000 se vi esperas tiun valoron kiun la uzanto tajpas en kaj afiŝita 524 00:37:18,000 --> 00:37:23,000 al viaj formo de esti entjero aŭ esti glitpunkta nombro aŭ io simila 525 00:37:23,000 --> 00:37:29,000 Vi devas eksplicite jxetis gxin 526 00:37:29,000 --> 00:37:34,000 kaj tiam faru iun tipon kontrolanta. 527 00:37:34,000 --> 00:37:41,000 >> Vi ne volas simple fidi ĉi tiu tipo juggling sistemo por fari tion ellabori, 528 00:37:41,000 --> 00:37:48,000 speciale por kialoj de sekureco kaj justa por la robustez de via retejo. 529 00:37:48,000 --> 00:37:51,000 Nur ion por ne forgesi, ke ĉiufoje kiam vi manipulas formo datumoj, 530 00:37:51,000 --> 00:37:57,000 ion, kio venas en la post aŭ la get superglobals 531 00:37:57,000 --> 00:38:01,000 certigi ke vi ĉiam validigi ĝin kaj konverti ĝin kaj encasillado ĝin. 532 00:38:01,000 --> 00:38:04,000 Kaj ĝuste kiel ni parolas antaŭ momento, ke typecasting 533 00:38:04,000 --> 00:38:08,000 en PHP estas ekzakte la sama kiel en C kie vi havas la krampoj 534 00:38:08,000 --> 00:38:14,000 kaj tiam la tipo. 535 00:38:14,000 --> 00:38:16,000 Konservu ke en menso. 536 00:38:16,000 --> 00:38:19,000 Unu funkcio kiu venos en oportuna kiam vi faras ĉi 537 00:38:19,000 --> 00:38:22,000 estas ni estis uzante-kaj ĉi tiu estas speco de kiel flanken- 538 00:38:22,000 --> 00:38:27,000 ni uzis tiun gettype funkcio ĉi tie 539 00:38:27,000 --> 00:38:30,000 elŝeligi la tipo de variablo, 540 00:38:30,000 --> 00:38:37,000 kaj dum ĉi tiu estas oportuna por depuración kaj vidi kion variablo de tipo estas 541 00:38:37,000 --> 00:38:42,000 vi ne volas uzi tiun, ekzemple, en kondiĉo, kie 542 00:38:42,000 --> 00:38:57,000 vi kontrolanta vidi se gettype di $ var = entjera fari ion. 543 00:38:57,000 --> 00:39:01,000 Ĉi tiu estas malbona, malbona, malbona. 544 00:39:01,000 --> 00:39:09,000 Anstataŭe ekzistas tiuj funkcioj nomas estas entjero, estas ĉeno, 545 00:39:09,000 --> 00:39:14,000 estas tabelo, kiun vi volas uzi anstataŭ, do en tiu ĉi kazo 546 00:39:14,000 --> 00:39:18,000 kion mi volas fari anstataŭ ĉi tiu viro ĉi tie 547 00:39:18,000 --> 00:39:31,000 estas uzi la estas entjero var. 548 00:39:31,000 --> 00:39:37,000 Kaj ili estas ofte referita estas is_ * en la senco, ke vi povus anstataŭi la * kun entjero, 549 00:39:37,000 --> 00:39:43,000 ĉeno, kaj tiel plu, kaj justa por certigi vere rapida 550 00:39:43,000 --> 00:39:50,000 Estas ĉi tiu estas int php. 551 00:39:50,000 --> 00:39:59,000 Aspektas kiel vi povas fari bone estas int aŭ ekzistas entjero tiel? 552 00:39:59,000 --> 00:40:06,000 Jes, alias, do int entjero alias. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Kiel ni faras? 555 00:40:17,000 --> 00:40:20,000 Ni reprenos la ritmo iom. 556 00:40:20,000 --> 00:40:24,000 Nun ni iras por paroli pri tabeloj, do kiel vi povas vidi 557 00:40:24,000 --> 00:40:28,000 en la venonta parto de la spec ni parolas pri kiel arrays en PHP 558 00:40:28,000 --> 00:40:31,000 estas iomete malsama ol ili estas en C. 559 00:40:31,000 --> 00:40:34,000 En vero, ili estas klaso de amalgama de 560 00:40:34,000 --> 00:40:36,000 la tabeloj kiujn vi venis por koni kaj ami en C 561 00:40:36,000 --> 00:40:40,000 kie ĉiu estas de la sama tipo 562 00:40:40,000 --> 00:40:43,000 stokita sinsekve kaj contiguously en memoro, 563 00:40:43,000 --> 00:40:46,000 kaj vi havas tiujn nombraj indeksoj. 564 00:40:46,000 --> 00:40:49,000 Vi havas indicon 0, indico 1, indekso 2, 565 00:40:49,000 --> 00:40:53,000 kaj vi stoki valorojn ĉe tiuj indeksoj. 566 00:40:53,000 --> 00:40:57,000 Vi ankaŭ en C, kiam vi skribis Speller, multaj el vi 567 00:40:57,000 --> 00:41:00,000 faris la hash tablo alproksimiĝo, kaj vi vidis, ke ni havis 568 00:41:00,000 --> 00:41:03,000 malsama speco de stokado, kie ni surĵeto 569 00:41:03,000 --> 00:41:07,000 ŝlosilo al valoro, do kiam vi provis gardi ion en hash tablo 570 00:41:07,000 --> 00:41:11,000 vi devis precizigi ke vi volis konservi ĝin kun specifa klavo, 571 00:41:11,000 --> 00:41:17,000 kaj ke ŝlosilo determinis la situon de la valoro kaj kie estus stokitaj. 572 00:41:17,000 --> 00:41:22,000 Vi ia ricevis ambaŭ tiuj konceptoj okazas samtempe en PHP tabelo, 573 00:41:22,000 --> 00:41:27,000 kaj kiel rezulto, ni ofte nomas tiujn asociaj tabeloj 574 00:41:27,000 --> 00:41:33,000 kie ni estas asocii ŝlosilon en valoro. 575 00:41:33,000 --> 00:41:39,000 En ĉi sekva parto ni parolas pri simpla PHP tabelo 576 00:41:39,000 --> 00:41:45,000 kie ni havas klavojn a, b, kaj c, 577 00:41:45,000 --> 00:41:53,000 ĉiuj kordoj, surĵeto al la entjeroj 1, 2, kaj 3. 578 00:41:53,000 --> 00:41:57,000 Kaj vi povas havi klavojn de malsamaj tipoj. 579 00:41:57,000 --> 00:42:00,000 >> Vi povas havi iujn klavojn kiuj kordoj, iuj klavoj kiuj estas entjeroj. 580 00:42:00,000 --> 00:42:03,000 Vi povas havi valorojn de malsamaj tipoj. 581 00:42:03,000 --> 00:42:06,000 Vi povas havi valoron kiu estas ĉeno, valoro kiu estas entjero, 582 00:42:06,000 --> 00:42:11,000 valoro kiu estas objekto aŭ alia tabelo, ekzemple, 583 00:42:11,000 --> 00:42:16,000 ĉiuj en la sama tabelo objekto, kiu estas speco de stranga. 584 00:42:16,000 --> 00:42:20,000 Vi ne devas havi tabelo ke tio ĵus unu tipon de elemento en ĝi. 585 00:42:20,000 --> 00:42:26,000 Vi povas havi multajn malsamajn aferojn okazas en tie. 586 00:42:26,000 --> 00:42:33,000 La alia afero noti estas ke kiam vi faros vidi iun kiel ĉi tio en via kodo, 587 00:42:33,000 --> 00:42:38,000 kiu estas valida PHP deklari tabelo nur kiel ĉi tiu, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 kiu deklaras inicializado $ Arr esti ĉi tabelo. 589 00:42:43,000 --> 00:42:48,000 Sed kion vi efektive atingi sub la kapuĉo estas tian implicitan 590 00:42:48,000 --> 00:42:55,000 generacio de klavoj, kie ni devas 0 al 0, 1 al 1, 2 al 2, 3 al 3. 591 00:42:55,000 --> 00:42:59,000 Kaj ĝi rezultas ke eĉ se vi ja havas aron kiel tiu ulo ĉi tien 592 00:42:59,000 --> 00:43:03,000 kie vi havas, b kaj c kiel la ŝlosilojn 593 00:43:03,000 --> 00:43:09,000 kaj tiam vi komencos uzi la tabelo puŝo metodo por ekuzi ĉi tabelo kiel stako, 594 00:43:09,000 --> 00:43:12,000 tial vi povas vidi ke tiu tabelo objekto, ĉi tabelo estas vere farante superŝarĝita. 595 00:43:12,000 --> 00:43:15,000 Ni povas uzi ĝin kiel tabelo. Ni povas uzi ĝin kiel hash tablo. 596 00:43:15,000 --> 00:43:19,000 Ni povas uzi ĝin kiel stako. 597 00:43:19,000 --> 00:43:22,000 Kiam vi komencas peli aĵoj sur tiu tabelo 598 00:43:22,000 --> 00:43:30,000 la unua kiu pelas onto ĉi estos indekso 0 kaj tiam indekso 1 kaj indekso 2. 599 00:43:30,000 --> 00:43:33,000 Vi povas akiri tian implicitan generacio de klavoj 600 00:43:33,000 --> 00:43:38,000 se vi ne specifi ilin eksplicite. 601 00:43:38,000 --> 00:43:43,000 La vojo vi precizigi klavoj eksplicite, kompreneble, estas per uzo ĉi krampo skribmaniero, 602 00:43:43,000 --> 00:43:48,000 kiu estas simila al arrays krom anstataŭ nur permesante 603 00:43:48,000 --> 00:43:54,000 entjero indeksoj en ĉi tie, nun ni permesi ion. 604 00:43:54,000 --> 00:43:57,000 Se vi volas, ke via ŝlosilo esti ĉeno, vi volas specifi ĝin kiel ĉi tio. 605 00:43:57,000 --> 00:44:06,000 Se vi volas esti int, vi precizigi ĝin kun la int vi volas uzi. 606 00:44:06,000 --> 00:44:13,000 >> Demandoj en tiu ĝis nun? 607 00:44:13,000 --> 00:44:18,000 Unu el la belaj aĵoj pri tiu ideo 608 00:44:18,000 --> 00:44:26,000 estas ke vi povas nur iam havi unu valoron stokita kun aparta ŝlosilo. 609 00:44:26,000 --> 00:44:32,000 Se ni reiru al nia super aparaton-lasu min forigi iun de ĉi aĵoj. 610 00:44:32,000 --> 00:44:47,000 Kaj diru mi pravalorizi tabelo al esti 0, 1, 2, farita. 611 00:44:47,000 --> 00:44:55,000 Se mi nun scias ke, ekzemple, se mi eĥon $ Arr [0] 612 00:44:55,000 --> 00:44:59,000 Mi iros por ricevi la valoron 0 presita eksteren, 613 00:44:59,000 --> 00:45:05,000 kaj ekde tie povas nur iam esti unu valoro stokita por aparta klavo 614 00:45:05,000 --> 00:45:11,000 se mi stoki io ​​en $ Arr [0], diru al, 615 00:45:11,000 --> 00:45:16,000 tiam mi scias kiam mi eĥon $ Arr [0] denove 616 00:45:16,000 --> 00:45:19,000 Mi ne ricevos 0 surpaperigataj kiel antaŭe. 617 00:45:19,000 --> 00:45:24,000 Mi nur tuj akiri. 618 00:45:24,000 --> 00:45:30,000 Do tiu estas esence dirante ke mi ne povas havi $ Arr [0] provizon 2 malsamaj valoroj. 619 00:45:30,000 --> 00:45:34,000 Ĝi ne povas stoki ambaŭ 0 kaj la ŝnuro al, kiel ĉi laŭvorte anstataŭas 620 00:45:34,000 --> 00:45:38,000 kio estis en $ Arr [0] antaŭe. 621 00:45:38,000 --> 00:45:43,000 La kialo mi alportas ĉi supren kuras ĝin, vidu kio okazas. 622 00:45:43,000 --> 00:45:47,000 Atentu, ke mi atingis 0 surpaperigataj kaj tiam malsupren tie. 623 00:45:47,000 --> 00:45:51,000 Ne nova linio tie ĉar mi estis pigra kaj ne metis tiun in 624 00:45:51,000 --> 00:45:54,000 Kio estas cool pri ĉi estas ni povas uzi tiun, kiel maniero 625 00:45:54,000 --> 00:46:00,000 kapti tiun ideon de aro 626 00:46:00,000 --> 00:46:07,000 kie ni ne povas havi plurajn klavojn ene de tabelo. 627 00:46:07,000 --> 00:46:10,000 Ni ne povas havi identa klavoj ene de tabelo. 628 00:46:10,000 --> 00:46:17,000 Mi ne povas havi ŝlosilon 0 kaj valoro 1 kaj ŝlosilo 0 kaj valoro de 629 00:46:17,000 --> 00:46:21,000 aŭ ŝlosilo 0 kaj valoro vera. 630 00:46:21,000 --> 00:46:27,000 La ŝlosiloj estas ĉiuj-tie estas nur 1 ŝlosilon en la tabelo. 631 00:46:27,000 --> 00:46:32,000 Kvankam vi povas havi la saman valoron stokita 632 00:46:32,000 --> 00:46:35,000 multnombraj fojojn en la tabelo sub malsamaj ŝlosiloj 633 00:46:35,000 --> 00:46:42,000 ĝi ne estas ebla havi identa klavoj plurfoje en via PHP tabelo. 634 00:46:42,000 --> 00:46:47,000 >> Se ni rigardas tiun sekva problemo, unique.php, 635 00:46:47,000 --> 00:46:51,000 kie ni volas malfermi al PHP-dosiero 636 00:46:51,000 --> 00:46:54,000 enhavanta listo de kordoj, unu cxeno por linio, 637 00:46:54,000 --> 00:47:01,000 kaj ni volas trovi ĉiun el la solaj kordoj en tiu dosiero 638 00:47:01,000 --> 00:47:06,000 ĉiuj ni devas fari estas uzi unu el tiuj PHP arrays 639 00:47:06,000 --> 00:47:12,000 kaj uzu la kordojn en la dosiero la ŝlosilojn al ĉi tabelo 640 00:47:12,000 --> 00:47:17,000 kaj observu ĝisdatigi nian tabelo kiel ni stoki tiuj novaj klavoj. 641 00:47:17,000 --> 00:47:22,000 Kiel ni legas ĉiu linio el la dosiero povas stoki ĝin en la tabelo, 642 00:47:22,000 --> 00:47:28,000 kaj fine ni havos kiel nia klavoj en nia tabelo 643 00:47:28,000 --> 00:47:34,000 ĉiuj la sola kordoj ene de la dosiero. 644 00:47:34,000 --> 00:47:37,000 Ĉu tio havas sencon? 645 00:47:37,000 --> 00:47:41,000 Ni vidos kiel tio funkcias. 646 00:47:41,000 --> 00:47:49,000 Ni tuj malfermi, laŭ la specifo, nova dosiero nomata unique.php. 647 00:47:49,000 --> 00:47:58,000 Malfermu. Oops, sorry, nova dosiero. 648 00:47:58,000 --> 00:48:03,000 Ni tuj komenci ĝin kun la sama komenco kaj fino etikedoj. 649 00:48:03,000 --> 00:48:17,000 Ni tuj savos ĝin en sekcio 9, kaj ni iras nomi ĝin unique.php. 650 00:48:17,000 --> 00:48:25,000 Okay, nun zoom in 651 00:48:25,000 --> 00:48:32,000 La ideo cxi tie estas malfermi dosieron, 652 00:48:32,000 --> 00:48:38,000 legis en dosiero linio por linio. 653 00:48:38,000 --> 00:48:46,000 Por ĉiu linio en dosiero 654 00:48:46,000 --> 00:48:51,000 ni havos tabelo kie ni havi 655 00:48:51,000 --> 00:49:03,000  la linio kiel nia ŝlosilo. 656 00:49:03,000 --> 00:49:09,000 Kaj poste kiam ni atingos la finon ĉi tie 657 00:49:09,000 --> 00:49:17,000 $ Arr la klavoj estas la sola linioj 658 00:49:17,000 --> 00:49:25,000 de la arkivo ekde ni scias, ke se mi metis linion en tiun tabelo 659 00:49:25,000 --> 00:49:33,000 multnombraj fojoj ĝi simple observu supera la malnovan valoron, 660 00:49:33,000 --> 00:49:46,000 kaj ni povas efektive metis tabelo linio en kiel sin ĝuste tia. 661 00:49:46,000 --> 00:49:48,000 >> Tio estas speco de stranga. 662 00:49:48,000 --> 00:49:52,000 Ni stoki la sama klavo valoro paro denove kaj denove kaj denove, 663 00:49:52,000 --> 00:50:00,000 sed kiam ni garantias ke estos nur 1 ŝlosilo nomita linio 664 00:50:00,000 --> 00:50:05,000 tial se ni havas dosieron kiu diras-dosieron de bestoj bruoj kaj ĝi havas woof, woof, 665 00:50:05,000 --> 00:50:11,000 Meow, Meow, Moo, Moo, kaj ĉiun fojon ni legas besto bruo ekster 666 00:50:11,000 --> 00:50:15,000 kiel woof kaj ni konservas ĝin en nia tabelo ni preni woof, kaj tiam la dua fojo 667 00:50:15,000 --> 00:50:20,000 ni stoki woof ĝi anstataŭigi la unua fojo ke ni gardis ŝin. 668 00:50:20,000 --> 00:50:25,000 En la fino ni havas nur unu ero en la tabelo 669 00:50:25,000 --> 00:50:33,000 por ĉiu el la besto bruoj en nia besto bruoj dosiero. 670 00:50:33,000 --> 00:50:41,000 Ĉu vi infanoj sentas konfidas ke vi povas pritrakti la malfermo de dosiero en PHP? 671 00:50:41,000 --> 00:50:45,000 Unu maniero fari ĝin-ni transiru ĉi rapide unu maniero fari ĝin 672 00:50:45,000 --> 00:50:50,000 estas kun fopen, kiel ni vidis antaŭe. 673 00:50:50,000 --> 00:50:55,000 Vi povas fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Vi povas malfermi ĝin en legu modo, samkiel en C. 675 00:50:59,000 --> 00:51:02,000 Tio estas unu perfekte bona maniero fari ĝin. 676 00:51:02,000 --> 00:51:05,000 Vi ankaŭ tiam por legi en la dosiero linio por linio 677 00:51:05,000 --> 00:51:12,000 havas la samajn funkciojn, multaj el ili, ke vi faris en C. 678 00:51:12,000 --> 00:51:14,000 Vi havas fgets. 679 00:51:14,000 --> 00:51:17,000 Vi havas feof, kvankam ni ne ŝatas uzi tiun 680 00:51:17,000 --> 00:51:22,000 ĉar, memoru, ke ne estis granda en C. 681 00:51:22,000 --> 00:51:25,000 Vi povas fari ĝin la sama vojo, 682 00:51:25,000 --> 00:51:34,000 sed jen estas vere genia afero. 683 00:51:34,000 --> 00:51:41,000 Pardonu, mi ne volas fari $ dosiero, sed tie estas funkcio nomita dosiero en PHP, 684 00:51:41,000 --> 00:51:47,000 kaj ĉi tiu funkcio ĉi tie estas malvarmaj, ĉar ĝi legas la tutan enhavon 685 00:51:47,000 --> 00:51:52,000 de la dosiero kiun vi specifas, do some_file.txt, 686 00:51:52,000 --> 00:51:56,000 legas la tutan enhavon de tiu dosiero en tabelo 687 00:51:56,000 --> 00:52:03,000 kaj poste lasas vin persisti super ĝi, kiu estas bela nifty. 688 00:52:03,000 --> 00:52:07,000 >> Se ni iras, ekzemple, al nia reta foliumilo 689 00:52:07,000 --> 00:52:14,000 kaj ni rigardu Google por PHP-dosiero 690 00:52:14,000 --> 00:52:23,000 vi povas vidi ĉi tie ke nia manlibro diras ke dosieron legas tutan dosieron en tabelo, 691 00:52:23,000 --> 00:52:27,000 kaj ni povas file_get_contents redoni la enhavon de dosiero kiel linio, 692 00:52:27,000 --> 00:52:30,000 sed tipe nur nun ĝi tiel tablo estas vere bela ĉar kio faras 693 00:52:30,000 --> 00:52:33,000 Estas ĝi rompas gxin tiel, ke ĉiu elemento 694 00:52:33,000 --> 00:52:37,000 en la tabelo estas unu linio de la dosiero, 695 00:52:37,000 --> 00:52:41,000 do se ni rigardas dosieron 0, tio estas la unua linio de la dosiero. 696 00:52:41,000 --> 00:52:46,000 Dosiero 1, dua linio, arkivo 2, tria linio, kaj tiel plu kaj tiel plu. 697 00:52:46,000 --> 00:52:50,000 Ĉu ne estus bela se tiu estis la tuta oni devis fari en C? 698 00:52:50,000 --> 00:52:53,000 Bela nifty. 699 00:52:53,000 --> 00:52:59,000 David montris ĉi tion en prelego, kaj la idiomo li montris estis 700 00:52:59,000 --> 00:53:03,000 ke, krom nia normo por buklo-en PHP ni havis tiun 701 00:53:03,000 --> 00:53:09,000 por ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 kaj vi povas fari tion en PHP tro, sama afero- 703 00:53:16,000 --> 00:53:27,000 ni ankaŭ havas ĉi cool konstruo nomata foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach estas vere utila, kiam ripetanta super tabeloj aŭ tiuj datumstrukturoj 705 00:53:32,000 --> 00:53:36,000 ĉar vi permesas eltiri ĉiu ero de la tabelo 706 00:53:36,000 --> 00:53:42,000 sen devi permane fari la indeksado mem, 707 00:53:42,000 --> 00:53:46,000 sen devi permane krei indekson variablo, pliigo ĝin, 708 00:53:46,000 --> 00:53:51,000 eltiri la valoron en la tabelo en tiu punkto, ĉar tio estas tre komuna afero por fari. 709 00:53:51,000 --> 00:53:54,000 >> Vi verŝajne faris tion tunoj da fojoj kiam vi faris C stuff 710 00:53:54,000 --> 00:54:00,000 super la semestro, do kun ĉi foreach 711 00:54:00,000 --> 00:54:06,000 ni povas buklo sur ĉi tiu dosiero tabelo, 712 00:54:06,000 --> 00:54:12,000 kaj la sintakso estas ke ni volas nun buklo super ĉi tabelo 713 00:54:12,000 --> 00:54:18,000 kaj specifi ke la variablo nin tuj uzi por stoki 714 00:54:18,000 --> 00:54:27,000 la elemento de tablo loke, lokaj al la atingo de ĉi foreach buklo, 715 00:54:27,000 --> 00:54:32,000 estas ni iras nomi ĝin linion. 716 00:54:32,000 --> 00:54:38,000 Se ĝi estas dosiero de nur vortojn kaj estas unu vorto en linio 717 00:54:38,000 --> 00:54:43,000 ni povus nomi ĝin vorton tiel, vere nur vi donas tiun nomon, 718 00:54:43,000 --> 00:54:49,000 kion ajn vi volas nomi ĝin, 719 00:54:49,000 --> 00:55:02,000 kaj poste interne de la buklo vi povas fari kion vi volas kun tiu variablo linio. 720 00:55:02,000 --> 00:55:08,000 Se ĝi ne sufiĉas por ricevi la valoron de la tabelo, kaj vi ankaŭ volas 721 00:55:08,000 --> 00:55:17,000 la indekso kune kun ĝi vi povas specifi nomon por la indekso 722 00:55:17,000 --> 00:55:22,000 tiel kiel la valoro, kaj nun vi havas aliron al 2 variabloj. 723 00:55:22,000 --> 00:55:26,000 Vi havas $ i kaj linio 724 00:55:26,000 --> 00:55:30,000 kie $ i estas la indekso en la tabelo, 725 00:55:30,000 --> 00:55:38,000 kaj linio estas la linio kiu vi rekuperita de la dosiero. 726 00:55:38,000 --> 00:55:49,000 Ekzemple, se ni volis printi eĥo linio 0 de la dosiero ĉi, 727 00:55:49,000 --> 00:55:57,000 ni povus fari ĝin ĝuste kiel ĉi tiu, "Linio $ i de la dosiero $ linio," 728 00:55:57,000 --> 00:56:02,000 kaj jen estas io ni ankaŭ ne vidis ankoraŭ ĉu 729 00:56:02,000 --> 00:56:13,000 kie mi ĵus tute saltis super ĉi tiu tuta% s% d negoco 730 00:56:13,000 --> 00:56:16,000 ke ni devis trakti en C, kaj anstataŭe mi iris rekte al 731 00:56:16,000 --> 00:56:19,000 skribi la variabloj en linio en mia ĉeno. 732 00:56:19,000 --> 00:56:23,000 >> Ĉi tio estas nomita variablo interpolado, kordoj interpolo 733 00:56:23,000 --> 00:56:26,000 kie vi plenigaĵo la variabloj bone, kaj la PHP interpretisto 734 00:56:26,000 --> 00:56:31,000 estas sufiĉe inteligenta, kiam ĝi estos legante tra ĉenon, kiu komenciĝas per duobla citaĵoj- 735 00:56:31,000 --> 00:56:34,000 ne sola citaĵoj, kun simpla quoted kordoj vi ne povas fari ĉi- 736 00:56:34,000 --> 00:56:38,000 sed kun duobla quoted ĉenojn kiel ĝi legas tra ĝi estas serĉas variabloj. 737 00:56:38,000 --> 00:56:42,000 Oni ĉasas ilin, kaj se li vidas variabloj ĝi prenos la valoro de la variablo 738 00:56:42,000 --> 00:56:47,000 kaj plenigos gxin en la kordo se ĝi povas konverti ĝin en kordoj reprezento, 739 00:56:47,000 --> 00:56:51,000 kio estas bela nifty. 740 00:56:51,000 --> 00:56:56,000 Cxar nun, ni diri la reston de ĉio, 741 00:56:56,000 --> 00:57:00,000 savi tion, kaj kion ni povas fari nun estas ni povas malfermi dosieron 742 00:57:00,000 --> 00:57:06,000 ke ni povas nomi some_file.txt-let-ejon krei novan dosieron- 743 00:57:06,000 --> 00:57:15,000 kaj ni povas meti en faskon da sensencaĵoj stuff ĉi tien nur por testi cxion eksteren, 744 00:57:15,000 --> 00:57:25,000 savi ĝin, nomas ĝin some_file.txt, kiel mi faras ĉi tien al la supro 745 00:57:25,000 --> 00:57:33,000 kaj nun, se mi malzomi nur por certigi ĉiu estas en la sama dosierujo- 746 00:57:33,000 --> 00:57:36,000 ĝi aspektas kiel mi havas unique.php kaj some_file.txt en la sama dosierujo. 747 00:57:36,000 --> 00:57:42,000 Se mi kuras php unique.php 748 00:57:42,000 --> 00:57:51,000 vidi kiel presas el ĉiu linio en mia dosiero kaj kion la linio estas? 749 00:57:51,000 --> 00:57:56,000 >> Tio estas bela potenca, ĉu ne? 750 00:57:56,000 --> 00:58:03,000 Rigardu, li prenis 3 linioj de kodo por malfermi dosieron. 751 00:58:03,000 --> 00:58:08,000 Nu, 4 linioj de kodo. Mi ne povas rakonti hodiaŭ, klare. 752 00:58:08,000 --> 00:58:13,000 Sed vere nur 2 interesaj linioj de kodo, ĉar la aliaj 2 estis la frizita krampoj, 753 00:58:13,000 --> 00:58:17,000 sed en ĉi tiu multe kodo ni povis malfermi dosieron, persisti tra ĝi, 754 00:58:17,000 --> 00:58:20,000 eltiri la numero de linio kaj la linio mem 755 00:58:20,000 --> 00:58:24,000 kaj presi ĝin. 756 00:58:24,000 --> 00:58:26,000 Cool stuff. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] Mi havas demandon pri la sintakso. 758 00:58:28,000 --> 00:58:33,000 Do foreach traktas ĉiu unuopa linio de la dosiero kiun vi malfermos, 759 00:58:33,000 --> 00:58:37,000 kaj kiam vi volas fari tion kun ĉiu unuopa linio vi simple fari ĝin kiel 760 00:58:37,000 --> 00:58:39,000 kaj poste asocii la valoro. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Kion vi povas fari ĉi tie-la demando estis 762 00:58:41,000 --> 00:58:46,000 la foreach devas vidi kun la tabelo, do la foreach sintakso 763 00:58:46,000 --> 00:58:51,000 Estas vere foreach, kaj rimarkas ke mankas spaco 764 00:58:51,000 --> 00:58:53,000 aŭ io inter la por kaj la ĉiu. 765 00:58:53,000 --> 00:58:56,000 Ili devas iri tuj apud la alia, 766 00:58:56,000 --> 00:59:00,000 kaj tiam ĝi prenas en tabelo, 767 00:59:00,000 --> 00:59:05,000 kaj tiam vi havas ĉi tiu alia ŝlosilvorto nomita kiel tiu devas esti tie, 768 00:59:05,000 --> 00:59:11,000 kaj post la kiel vi povas ĉu meti unu variablo nomo, 769 00:59:11,000 --> 00:59:14,000 en kiu kazo vi tuj estos eltiris la valoroj de la tabelo, 770 00:59:14,000 --> 00:59:20,000 ne la indeksoj, aŭ se vi faros kiel ni skribas sube 771 00:59:20,000 --> 00:59:24,000 vi ricevas la klavoj kaj la valoroj. 772 00:59:24,000 --> 00:59:33,000 Vi havas foreach ero de la tabelo aŭ paro de la tabelo kiel tajpas taksi 773 00:59:33,000 --> 00:59:38,000 aŭ kiel simple valoron. 774 00:59:38,000 --> 00:59:40,000 Depende de kion vi bezonas, se vi ne bezonas la ŝlosilojn, 775 00:59:40,000 --> 00:59:42,000 tiam vi povas iri per la valoro. 776 00:59:42,000 --> 00:59:45,000 Se vi volas la klavoj vi povos iri kun ili ankaŭ. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] Mi ankaŭ rimarkis ni neniam deklaris la i aŭ linio. 778 00:59:48,000 --> 00:59:51,000 Kiel ĝi eĉ scias kio ili estas? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Kion vi aludas per deklari? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Ni neniam diris al ili kion i aŭ linio rimedoj. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Ni neniam diris la komputilo kio i aŭ linio signifas en terminoj de- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] Tio ili estas indeksita aŭ kiu they're- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Ni neniam diris ke tiu estas supozataj esti la indekso aŭ la ŝlosilo kaj la valoro, 784 01:00:09,000 --> 01:00:13,000 kaj tio estas ĉar tiu estas la PHP interpretisto. 785 01:00:13,000 --> 01:00:17,000 Tiu servas kiel la deklaro kaj diras bone, la ŝlosilo tuj estos 786 01:00:17,000 --> 01:00:20,000 variablo nomis i stokitaj en variablo vokis mi. 787 01:00:20,000 --> 01:00:24,000 La valoro tuj estos stokitaj en variablo nomas linio, 788 01:00:24,000 --> 01:00:28,000 tiel ĉi tio utilas kiel la deklaro de ĉi tiuj variabloj 789 01:00:28,000 --> 01:00:35,000 kaj diras $ i estas ŝlosilo, kaj $ linio estas valoro. 790 01:00:35,000 --> 01:00:37,000 Yeah, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ŝi] Se la klavoj ne estas faritaj ciferece 792 01:00:41,000 --> 01:00:44,000 kiel faras ĝi decidi kion ordon ĝin tuj presi ĉion? 793 01:00:44,000 --> 01:00:47,000 Ĉu ĝuste kiel la ordo ĝi estas eniris en? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Ni provu. 795 01:00:51,000 --> 01:00:57,000 Ni krei variablon nomis Arr, 796 01:00:57,000 --> 01:01:06,000 kaj ni povas fari iras al 7. 797 01:01:06,000 --> 01:01:19,000 Diru 0 iras al alia tabelo kun 1, 2, aŭ pomon. 798 01:01:19,000 --> 01:01:30,000 Diru 7 iras al 1, b iras al 2, 799 01:01:30,000 --> 01:01:39,000 kaj 3 iras al 4. 800 01:01:39,000 --> 01:01:44,000 Tio estas speco de freneza rigardante ekzemple ĉar ni miksante supren 801 01:01:44,000 --> 01:01:47,000 kordoj kaj entjeroj tuta loko. 802 01:01:47,000 --> 01:01:50,000 Estas neniu reala Por ĉi tabelo. 803 01:01:50,000 --> 01:01:55,000 Mi volas diri, ni povus mendi ĉion en alfabeta ordo de la klavoj. 804 01:01:55,000 --> 01:01:57,000 Ni povis ordigi cxion alfabete de la valoro. 805 01:01:57,000 --> 01:02:00,000 >> Ni povus provi kaj konsideri ke iuj estas kordoj, iuj estas ints, 806 01:02:00,000 --> 01:02:03,000 kaj ni povus provi kaj konverti ilin ĉiujn al la sama tipo kaj vidu kio okazas, 807 01:02:03,000 --> 01:02:09,000 aŭ ni povus konsideri ilin en la valoro kiun ni jam eniris ilin 808 01:02:09,000 --> 01:02:14,000 kie ni metas tiun ulo en la komenco, tiu ulo en la dua, tiu ulo en tria, 809 01:02:14,000 --> 01:02:19,000 ĉi ulo en kvara, kaj tiel plu. 810 01:02:19,000 --> 01:02:23,000 Ni vidu kio okazas kiam ni kuras ĉi tiu kodo. 811 01:02:23,000 --> 01:02:29,000 Se ni rulumu malsupren kaj faru la samajn tiaj aferoj, 812 01:02:29,000 --> 01:02:31,000 kaj jen ĝi ne presi el la novaj linioj. 813 01:02:31,000 --> 01:02:35,000 Kiam legi aferojn el la dosiero estis inkludante la novajn liniojn en la valoroj, 814 01:02:35,000 --> 01:02:38,000 kiu estis kial presita ekster bele, dum tie ne faris tion, 815 01:02:38,000 --> 01:02:40,000 por ke tio ĉio estas smushed kune. 816 01:02:40,000 --> 01:02:44,000 Ni aldonu en tiu nova linio simple fari tion agrabla. 817 01:02:44,000 --> 01:02:51,000 Ni rerun ĝin, kaj tial ĉi tie 818 01:02:51,000 --> 01:02:54,000 rigardi kio okazis. 819 01:02:54,000 --> 01:03:00,000 Ĝi presas cxion el la ordo en kiu ni metas gxin en la tabelo. 820 01:03:00,000 --> 01:03:10,000 Ĝi konservi ordon en tiu senco. 821 01:03:10,000 --> 01:03:15,000 >> Reiros al tiu problemo de uniques 822 01:03:15,000 --> 01:03:20,000 kie ni volas povi persisti super dosiero, 823 01:03:20,000 --> 01:03:24,000 kaj ni donos al ĝi some_file.txt, 824 01:03:24,000 --> 01:03:27,000 kaj ni iras al persisti super ĝin kiel ĉi tio. 825 01:03:27,000 --> 01:03:31,000 Ni diris, ke ni volis uzi tabelo por certigi ke ni volonte ricevis ĉiujn 826 01:03:31,000 --> 01:03:36,000 unika liniojn el tie, kaj ni povus fari tion vere facile 827 01:03:36,000 --> 01:03:49,000 por nur stokante en tabelo, ke ni kompreneble deklari ekster la medio de ciklo, 828 01:03:49,000 --> 01:03:55,000 kaj ni diris ke se ni uzas la linioj en la dosiero de la klavoj en nia tabelo 829 01:03:55,000 --> 01:03:59,000 se ni eniris duplikatajn linio ni volas esti supera al la antaŭa valoro. 830 01:03:59,000 --> 01:04:08,000 Ne cxiam eblas havi 2 klavoj kiuj estas identaj en la sama tabelo. 831 01:04:08,000 --> 01:04:13,000 Ni povas fari ĝuste tion. 832 01:04:13,000 --> 01:04:17,000 Ni forigi ĉi eĥo deklaro ĉi tie. 833 01:04:17,000 --> 01:04:24,000 Jen ni stoki la linio en la dosiero en nia tabelo 834 01:04:24,000 --> 01:04:28,000 uzante sin kiel la ŝlosilo. 835 01:04:28,000 --> 01:04:32,000 Nenio al ĝi, kaj ĝi rezultas ke ni eĉ ne bezonas tiun ŝlosilon. 836 01:04:32,000 --> 01:04:38,000 Ni ne bezonas, ke i variablo. 837 01:04:38,000 --> 01:04:43,000 Je ĉi tiu punkto se ni devis fari alian foreach buklo 838 01:04:43,000 --> 01:04:48,000 kaj ni devis buklo super ĉiu Arr 839 01:04:48,000 --> 01:04:56,000 kaj linio nun se ni eĥon-oops, sorry. 840 01:04:56,000 --> 01:05:00,000 Ni ne povas uzi la komo. Ni devas uzi tion kiel ŝlosilvorto. 841 01:05:00,000 --> 01:05:05,000 Nun se ni eĥon linio ni atingas ĉiuj la sola vortojn en la dosiero. 842 01:05:05,000 --> 01:05:10,000 Se ni supreniras al some_file.txt, 843 01:05:10,000 --> 01:05:19,000 kaj ni diras, ke ni faru pomo, banano, pomo, apple, banano, 844 01:05:19,000 --> 01:05:22,000 se ni presi cxiujn el la solaj vortoj en tiu dosiero Ni devas nur preni 845 01:05:22,000 --> 01:05:30,000 pomo kaj banano por presi. 846 01:05:30,000 --> 01:05:36,000 Se ni savos tion, nun tie ni zoom reen en, 847 01:05:36,000 --> 01:05:44,000 php unique.php, kaj ta-da. 848 01:05:44,000 --> 01:05:51,000 Ni sukcese uniqued la dosiero. 849 01:05:51,000 --> 01:05:55,000 >> La fina parto de tiu problemo estas demandante al vi por ordigi ĉi tabelo antaŭ vi presita ĝin 850 01:05:55,000 --> 01:05:58,000 ĉar en tiu simpla ekzemplo ke ni ĵus faris 851 01:05:58,000 --> 01:06:04,000 ni estis bonŝanca en la senco ke la dosiero- 852 01:06:04,000 --> 01:06:06,000 ni faris tion elpensita ekzemple kun pomoj kaj bananoj. 853 01:06:06,000 --> 01:06:08,000 Ĝi jam ordo. 854 01:06:08,000 --> 01:06:19,000 Sed uzante la simpla speco funkcion vi povas ordigi tabelo, kiu estas bela nifty. 855 01:06:19,000 --> 01:06:24,000 La fina afero mi volis paroli kun vi pri infanoj vere rapide 856 01:06:24,000 --> 01:06:31,000 estas ke tiu speco de PHP estas ĉio bone kaj bonan, kaj ĝi estas super oportuna 857 01:06:31,000 --> 01:06:43,000 scii kiel fari se vi iam bezonas fari iom, rapida aĵoj programmatically. 858 01:06:43,000 --> 01:06:48,000 Ekzemple, se mi bezonas skribi programon kiu, ni diru, 859 01:06:48,000 --> 01:06:53,000 metas ĉiujn en sekcioj Mi ne tuj iros kaj skribi ĝin en C. 860 01:06:53,000 --> 01:06:55,000 Ĝi tuj estos longa. 861 01:06:55,000 --> 01:06:57,000 Ĝi tuj estos speco de doloro, precipe se estas dosieroj implikitaj, 862 01:06:57,000 --> 01:07:00,000 same kiel vi infanoj vidis. 863 01:07:00,000 --> 01:07:05,000 Estas tiel bela, ke kun nur ĉi multe kodo tie ĉi 864 01:07:05,000 --> 01:07:08,000 ni povis ŝiri per dosiero, eltiri ĉiujn solaj valoroj 865 01:07:08,000 --> 01:07:11,000 kaj presi ilin eksteren. 866 01:07:11,000 --> 01:07:16,000 >> Tamen, por via taskoj, por viaj projektoj, 867 01:07:16,000 --> 01:07:20,000 se vi konstruas retejojn kun PHP la potenco estas ke 868 01:07:20,000 --> 01:07:25,000 ni kuras niaj PHP dosieroj tra tiu interpretisto, 869 01:07:25,000 --> 01:07:29,000 kaj la interpretisto estas procesante ĉio ene de la PHP etikedoj, 870 01:07:29,000 --> 01:07:34,000 lasante ĉion alian netuŝita kaj kracxi el la rezultoj. 871 01:07:34,000 --> 01:07:40,000 Ni povas fari ĉi konstrui HTML programmatically. 872 01:07:40,000 --> 01:07:46,000 Nun, se ni reiru al la specifo, la lasta problemo en la spec 873 01:07:46,000 --> 01:07:56,000 prelegoj pri tiu ideo de koncentriĝoj 874 01:07:56,000 --> 01:08:01,000 kaj kreante falmenuo, 875 01:08:01,000 --> 01:08:06,000 kion vi povas aŭ ne volas fari, depende de kion via fina projekto faras, 876 01:08:06,000 --> 01:08:13,000 kiu permesas al la uzanto elekti el listo de ĉiuj eblaj koncentriĝoj 877 01:08:13,000 --> 01:08:15,000 ilia unu koncentriĝo. 878 01:08:15,000 --> 01:08:21,000 Nun, ĉi tiu estas speco de doloro por tajpi tiun eksteren 879 01:08:21,000 --> 01:08:25,000 kaj ili devas fari ĉion ĉi permane, precipe kiam vi havas por certigi 880 01:08:25,000 --> 01:08:28,000 ke vi havas ĉiujn angulajn krampojn en la ĝusta loko kaj ĉiuj citaĵoj en la ĝusta loko, 881 01:08:28,000 --> 01:08:34,000 do kun PHP vi povas fari ĉi programmatically, kaj vi povas fari tion vere rapide. 882 01:08:34,000 --> 01:08:36,000 >> Vidu kiel fari tion. 883 01:08:36,000 --> 01:08:42,000 Ni tuj malfermi novan dosieron. 884 01:08:42,000 --> 01:08:46,000 Ni tuj metos en nia PHP etikedoj. 885 01:08:46,000 --> 01:08:53,000 Ni tuj nomas ĝin concentrations.php, 886 01:08:53,000 --> 01:08:58,000 kaj nun kiam vi faras tion, speco de bona afero por pensi pri 887 01:08:58,000 --> 01:09:02,000 kiam vi provas miksi kaj kongrui kun via PHP kaj HTML vian 888 01:09:02,000 --> 01:09:08,000 estas decidi, estas bone, kio estas la parto, kiun mi volas programmatically generi? 889 01:09:08,000 --> 01:09:11,000 Kio estas la parto, kiun mi povas programmatically generi? 890 01:09:11,000 --> 01:09:17,000 Estas vere ke vi povas fari ĉion de via HTML 891 01:09:17,000 --> 01:09:19,000 ene de PHP blokoj. 892 01:09:19,000 --> 01:09:24,000 Vi povas eĥon ĉiuj la HTML kiel kordoj. 893 01:09:24,000 --> 01:09:30,000 Ekzemple, se mi volas komenci fari la unuaranga etikedoj ene de PHP 894 01:09:30,000 --> 01:09:46,000 Mi povas diri eĥo, diras elekti nomon = koncentriteco, 895 01:09:46,000 --> 01:09:49,000 kaj tiam malsupren sub mi povus havi alian eĥo etikedo 896 01:09:49,000 --> 01:09:57,000 aŭ alia eĥo nomis fermas la elektu. 897 01:09:57,000 --> 01:10:00,000 Tiu estas unu maniero por fari ĝin ĉar kion tiu estas laŭvorte faros 898 01:10:00,000 --> 01:10:09,000 estas presi ĉi ŝnuro kiam ĝi kuras tra la PHP interpretisto, 899 01:10:09,000 --> 01:10:12,000 do la rezulto estos HTML. 900 01:10:12,000 --> 01:10:18,000 Se mi savos tiun dosieron kiel estas nun 901 01:10:18,000 --> 01:10:24,000 kaj mi kuras php concentrations.php 902 01:10:24,000 --> 01:10:26,000 rigardu kion mi ricevis. 903 01:10:26,000 --> 01:10:30,000 I got this malfermitaj proksimaj unuaranga etikedo. 904 01:10:30,000 --> 01:10:36,000 >> Se mi estus fari tion kaj mi estis por savi ĉi tiun rezulton al dosiero, 905 01:10:36,000 --> 01:10:45,000 diru concentrations.html-wait, ĝi aspektas kiel la l iris sur la alian flankon- 906 01:10:45,000 --> 01:11:02,000 nun, se mi malfermos ĉi tien concentrations.html vi vidas mi havas validan HTML-dosiero. 907 01:11:02,000 --> 01:11:05,000 Ĉu tio estas speco de stranga? 908 01:11:05,000 --> 01:11:09,000 Ni uzas PHP por krei HTML, krei validan HTML. 909 01:11:09,000 --> 01:11:13,000 La maniero ni faras estas ni nur havi la PHP print 910 01:11:13,000 --> 01:11:16,000 la HTML, ke ni volas ĝin por presi. 911 01:11:16,000 --> 01:11:20,000 Ĉi tiu estas laŭvorte kiel PHP retejoj laboras. 912 01:11:20,000 --> 01:11:24,000 Kiam vi vizitas retejo kiu sendas vin al iu kiel 913 01:11:24,000 --> 01:11:30,000 io, iu, iu punkto com oblikvo index.php 914 01:11:30,000 --> 01:11:33,000 la komputilo estas laŭvorte nomante supren index.php, 915 01:11:33,000 --> 01:11:38,000 kurante ĝin tra la PHP interpretisto, kaj kio ajn rubo eliras 916 01:11:38,000 --> 01:11:49,000 ĝi estas sendi reen al la retumilo kaj dirante hey, retumilo, interpreti tion kiel HTML. 917 01:11:49,000 --> 01:11:54,000 La belan afero estas ke ĝi povas esti doloro por konstante skribi eĥo, eĥo, eĥo, eĥo 918 01:11:54,000 --> 01:11:59,000 kaj enfermas cxion en citilojn kiel ĉi tiu, do se vi volas skribi 919 01:11:59,000 --> 01:12:04,000 la HTML tiu tuj estos statika mem povas fari ĝin kiel ĉi tiu, 920 01:12:04,000 --> 01:12:16,000 metis ĝin ekstere, fermi ĝin, 921 01:12:16,000 --> 01:12:21,000 kaj tiam tie vi nur metis ene de la PHP-etikedoj kion vi scias 922 01:12:21,000 --> 01:12:26,000 vi volas programmatically generi, kaj en ĉi tiu kazo estas tiuj eblo etikedoj 923 01:12:26,000 --> 01:12:31,000 ke estas doloro por generi. 924 01:12:31,000 --> 01:12:37,000 >> Ekzemple, ni povus generi mil eblo etikedoj 925 01:12:37,000 --> 01:12:48,000 farante io tiamaniere, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 kaj dirante eĥo eblo valoro = $-whoops, mi ne povas fari tion. 927 01:13:00,000 --> 01:13:03,000 Nu, ni provu kaj vidu kio okazas. 928 01:13:03,000 --> 01:13:22,000 $ I kaj tiam dirante $ i 01:13:27,000 Prefere ol devi tajpi ke opcion etikedo mil malsamaj fojoj 930 01:13:27,000 --> 01:13:33,000 Mi uzas PHP-kodo por generi ĝin aŭtomate, programmatically. 931 01:13:33,000 --> 01:13:38,000 Speco de nifty. Yeah. 932 01:13:38,000 --> 01:13:41,000 Mi memoras tiun esti menciitaj en ĉu la prelego aŭ la walkthrough, 933 01:13:41,000 --> 01:13:43,000 sed kio estas la diferenco inter la citiloj, 934 01:13:43,000 --> 01:13:45,000 la normalaj kaj ĉi tiuj nur tion? 935 01:13:45,000 --> 01:13:49,000 Tio estas vere io ke mi faris malĝuste tie, ke mi tuj montros al vi. 936 01:13:49,000 --> 01:13:52,000 La sola citaĵoj ne permesas neniun specialaj karakteroj, 937 01:13:52,000 --> 01:13:57,000 do ĉio ene sola quoted kordoj estas interpretita laŭvorte. 938 01:13:57,000 --> 01:14:02,000 Se mi havus \ n ene de unuopaj kurzoj kaj mi savos tiun, ekzemple, 939 01:14:02,000 --> 01:14:07,000 kaj nun mi iras malsupren tie kaj ruli ĝin- 940 01:14:07,000 --> 01:14:12,000 oops, kie mi povos? 941 01:14:12,000 --> 01:14:19,000 Ho, ĝi estas ĉar mi forgesis la $. 942 01:14:19,000 --> 01:14:25,000 >> Nun, se mi malfermos-efektive, cxi tie, ni forigi la tajpinte ĝin al dosiero. 943 01:14:25,000 --> 01:14:27,000 Ni ĵus legis. 944 01:14:27,000 --> 01:14:34,000 Ĉi tie vi vidas, ke mi havas ĉi laŭvorta \ n en la ĉeno, kiel ne estas reala nova linio, 945 01:14:34,000 --> 01:14:38,000 kaj tiel same, anstataŭ reale interpolanta la valoron de ĉi tiu variablo 946 01:14:38,000 --> 01:14:42,000 donis al mi la $ i mem, kiu estas speco de doloro. 947 01:14:42,000 --> 01:14:46,000 La vojo ĉirkaŭ ĉi estas uzi la duoblaj citiloj, 948 01:14:46,000 --> 01:14:52,000 kaj kiam vi uzas duoblan citaĵoj ĝin volo vere 949 01:14:52,000 --> 01:14:56,000 adekvate interpoli la valorojn de ĉiu el ĉi tiuj variabloj ĉi tien 950 01:14:56,000 --> 01:14:59,000 kaj ankaŭ rekonas ĉi \ n esti la nova linio kiu estas 951 01:14:59,000 --> 01:15:02,000 kaj ne \ n. 952 01:15:02,000 --> 01:15:07,000 Uzante la solaj estas bela, kiam vi havos 953 01:15:07,000 --> 01:15:10,000 karakterojn, kiuj povus esti interpretita kiel supersignoj ĉar tiam vi ne devas 954 01:15:10,000 --> 01:15:15,000 eskapi ilin senĉese. 955 01:15:15,000 --> 01:15:18,000 Aĵoj povas akiri senorda, kaj ofte la vojo mi faros, 956 01:15:18,000 --> 01:15:24,000 nur fari tion facila, estas ke se mi iros kaj havas nenion 957 01:15:24,000 --> 01:15:31,000 HTML kiel en mia kodo mi inkluzivas redakti ene sola citaĵoj 958 01:15:31,000 --> 01:15:36,000 kaj poste uzi tiun kunmeto operatoro 959 01:15:36,000 --> 01:15:43,000 al concatenate la variabloj in 960 01:15:43,000 --> 01:15:47,000 Ĉi tiu estas alia maniero fari ĝin 961 01:15:47,000 --> 01:15:52,000 kie ni havas la skalara ke tuj konekti ĉi estas ĉeno 962 01:15:52,000 --> 01:15:56,000 kun tiu kun ĉi kun ĉi tio, 963 01:15:56,000 --> 01:15:59,000 kaj nun mi ne havas por eskapi tiuj duoblaj citiloj. 964 01:15:59,000 --> 01:16:02,000 Mi ne devas uzi ĉi tiu viro eskapi. 965 01:16:02,000 --> 01:16:08,000 Ili devos laŭvorte esti presita ekster kiel duoblaj citiloj kaj tiam ĉi ulo ĉi tie. 966 01:16:08,000 --> 01:16:11,000 Ĉi tiu estas alia maniero de miksi ĉio kune. 967 01:16:11,000 --> 01:16:14,000 >> [Studenta] Ankaŭ, kiam vi faris eĥon gettype ne estis citiloj ajn. 968 01:16:14,000 --> 01:16:22,000 Bone, do eĥo estas speco de speciala en la senco ke vi ne bezonas krampojn. 969 01:16:22,000 --> 01:16:29,000 Vi ne bezonas havi la citaĵo markas nepre ĉirkaŭ variabloj, 970 01:16:29,000 --> 01:16:37,000 kiel ĝi estas valida por diri eĥon $ i, kaj ĝi tuj interpretas tion kiel ŝnuro. 971 01:16:37,000 --> 01:16:44,000 Oni faros la dividon, do ni povis fari tion, kaj tio estas valida ankaŭ, sed ni ne bezonas ĝin. 972 01:16:44,000 --> 01:16:48,000 Estas nedeviga. 973 01:16:48,000 --> 01:16:53,000 En ĉi tiu semajno problemo aro elsercxu por multan tian stuff 974 01:16:53,000 --> 01:16:58,000 kie vi miksante kaj trafa HTML kun PHP 975 01:16:58,000 --> 01:17:08,000 samkiel tiu, kaj nun se ni rulumu dorso kaj ni kuras ĉi 976 01:17:08,000 --> 01:17:13,000 ni povas vidi ke ni havas tuta amaso de eblo valoroj 977 01:17:13,000 --> 01:17:15,000 ke nur got presita eksteren. 978 01:17:15,000 --> 01:17:20,000 Ni havas ĉion ĉi HTML kiu got generita vere rapide por ni. 979 01:17:20,000 --> 01:17:22,000 Mi lasos ĝin kiel ekzerco. 980 01:17:22,000 --> 01:17:24,000 Ĝi estas tre simila al la dosiero legado kiun ni faris antaŭe. 981 01:17:24,000 --> 01:17:31,000 >> Estas concentrations.txt dosiero kiun vi povas tiri malsupren de la CDN, 982 01:17:31,000 --> 01:17:34,000 kaj vi povas malfermi ĝin per la sama foreach lertaĵo, ke ni faris antaŭe, 983 01:17:34,000 --> 01:17:39,000 kaj foreach vi nur devas eĥon eblo kaj konekti 984 01:17:39,000 --> 01:17:44,000 la taŭga valoroj, la taŭga klavoj kaj indeksoj, 985 01:17:44,000 --> 01:17:49,000 kaj tiam vi ricevas guton malsupren kiu laŭvorte kreas 986 01:17:49,000 --> 01:17:54,000 programmatically por vi ĉiuj la malsamaj koncentriĝoj en Harvard. 987 01:17:54,000 --> 01:17:57,000 Al oportuna afero havi. 988 01:17:57,000 --> 01:18:02,000 Ekzistas multe de agordo-ajxojn ĉi tiu farita. 989 01:18:02,000 --> 01:18:07,000 Se vi ne faris ĝin jam preni la sekva duona horo, horo, 990 01:18:07,000 --> 01:18:10,000 iu tempo hodiaŭ vespere definitive por certa, 991 01:18:10,000 --> 01:18:14,000 trairu la problemo aro spec, 992 01:18:14,000 --> 01:18:20,000 vidi kio okazas kun la starigo de la vhosts, la loka gastiganto, cxiuj aferoj. 993 01:18:20,000 --> 01:18:24,000 Unu afero atentigi nun estas ke 994 01:18:24,000 --> 01:18:30,000 en plej problemo aroj ni iris en vian Dropbox dosierujo 995 01:18:30,000 --> 01:18:34,000 kaj poste elŝuti la problemo aro zip dosieron kaj unzipping ĝin. 996 01:18:34,000 --> 01:18:36,000 Por ĉi tiu problemo aro vi ne volas. 997 01:18:36,000 --> 01:18:40,000 Vi volas iri en tiun vhosts dosierujo. 998 01:18:40,000 --> 01:18:45,000 Vi volas iri al vhosts kaj iru al la loka gastiganto dosierujon en ĝi, 999 01:18:45,000 --> 01:18:50,000 kaj ĉi tiu estas kie vi volas disbatos la zip-dosiero, 1000 01:18:50,000 --> 01:18:55,000 maldensigi ĝin, kaj disponas iri. 1001 01:18:55,000 --> 01:18:57,000 Vi devas sekvi la paŝojn de apude. 1002 01:18:57,000 --> 01:19:02,000 >> Se vi havas demandojn, sendu retmesaĝon, afiŝi ĝin sur Discuss, venu al oficejo horoj. 1003 01:19:02,000 --> 01:19:08,000 Danke guys. Sekva semajno ni tuj havos revizio kunsido por la kvizo. 1004 01:19:08,000 --> 01:19:12,000 Ĝuu vian lastan problemon aro. Mi esperas ke ĉiu iras vere bone. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]