1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Sekcio 8 - Pli Vasta] 2 00:00:02,610 --> 00:00:04,910 [Rob Bowden - Universitato Harvard] 3 00:00:04,910 --> 00:00:07,070 [Jen CS50. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> Tiuj semajno sekcio notoj tuj estos bela mallonga, 5 00:00:14,160 --> 00:00:19,070 tial Mi simple intencas subteni parolante, vi infanoj tuj observu demandojn, 6 00:00:19,070 --> 00:00:22,720 kaj ni provos plenigi tiel tempo ebla. 7 00:00:22,720 --> 00:00:31,950 Multaj homoj pensas ke ĉi pset ne estas nepre malfacila, sed ĝi estas tre longa. 8 00:00:31,950 --> 00:00:37,070 La pset spec mem prenas unu horo por legi. 9 00:00:40,530 --> 00:00:45,730 Ni donas al vi multe da SQL vi povus bezoni uzi. 10 00:00:45,730 --> 00:00:50,520 Ni iru vi per multe da ĝin, do ĝi ne devus esti tro malbona. 11 00:00:50,520 --> 00:00:54,560 Ĉu iu komencas aŭ finas? 12 00:00:55,380 --> 00:00:59,710 Ĝi estas la lasta pset. Ho, mia Dio. 13 00:00:59,710 --> 00:01:05,400 Kutime tie estas JavaScript unu post ĉi tio, sed kalendaro ŝanĝo aĵoj 14 00:01:05,400 --> 00:01:09,560 faras cxion 1 semajno pli mallonga, kaj ni ne plu havas JavaScript pset. 15 00:01:09,560 --> 00:01:12,310 Mi ne scias kiel tio efikas ĉu JavaScript tuj aperos en la ekzameno 16 00:01:12,310 --> 00:01:15,510 aŭ Kvizo 1. 17 00:01:15,510 --> 00:01:22,260 Mi imagas ke estos iu kiel vi devas scii altnivela aferojn pri JavaScript, 18 00:01:22,260 --> 00:01:26,460 sed mi dubas, ni volas nur doni al vi rekte JavaScript kodo 19 00:01:26,460 --> 00:01:28,720 ĉar vi ne havis pset en ĝi. 20 00:01:28,720 --> 00:01:33,000 Sed tio estos ajxojn kvizo revizio proksima semajno. 21 00:01:33,000 --> 00:01:36,320 >> Sekcio de demandoj. 22 00:01:36,320 --> 00:01:43,870 Multaj ĉi aĵoj estas iom malbone worded, sed ni diskutis kial. 23 00:01:43,870 --> 00:01:50,220 Kontraste C, PHP estas "dinamike-tajpita" lingvo. Kion tio signifas, vi demandas? 24 00:01:50,220 --> 00:01:53,830 Nu, diru adiaŭ al ĉiuj el tiuj char, kaleŝego, int, kaj aliaj ŝlosilvortoj vi bezonas uzi 25 00:01:53,830 --> 00:01:56,190 kiam deklari variablojn kaj funkcioj en C. 26 00:01:56,190 --> 00:02:00,420 En PHP, variablo estas tipo estas determinita de la valoro kiu ĝi estas aktuale tenas. 27 00:02:00,420 --> 00:02:04,990 Do antaŭ ol ni tajpi tiun kodon en dosiero nomata dynamic.php, 28 00:02:04,990 --> 00:02:12,670 PHP estas dinamike tajpita. Tio estas vera. 29 00:02:12,670 --> 00:02:17,590 Mi malkonsentas kun la fakto ke tiu signifas ni adiaŭi char, kaleŝego, int, 30 00:02:17,590 --> 00:02:20,620 kaj aliaj ŝlosilvortoj. 31 00:02:20,620 --> 00:02:25,510 La ĝusta diferenco inter dinamike tajpitaj kaj la alternativo, 32 00:02:25,510 --> 00:02:32,010 kiu estas statike tajpis, estas ke dinamike tajpita, ĉiuj de viaj tipo kontrolanta kaj stuff 33 00:02:32,010 --> 00:02:37,350 okazas je tempo de ekzekuto, dum statike tajpis okazas ĉe kompila tempo. 34 00:02:37,350 --> 00:02:43,030 La vorto statika ĝenerale ŝajnas signifi kompila tempo aĵoj. 35 00:02:43,030 --> 00:02:48,170 Mi supozas ke estas aliaj uzoj por gxi, sed en C, kiam vi deklaras statika variablo, 36 00:02:48,170 --> 00:02:52,650 lia stokado destinis je kompili tempo. 37 00:02:52,650 --> 00:02:59,260 Ĉi tie, dinamike tajpita nur signifas ke - 38 00:02:59,260 --> 00:03:04,350 En C se vi provas aldoni ĉenon kaj entjero, kiam vi kompili ĝin, 39 00:03:04,350 --> 00:03:11,000 ĝi tuj plendi ĉar tuj diru, ke vi ne povas aldoni int kaj puntero. 40 00:03:11,000 --> 00:03:14,710 Estas nur ne estas valida operacio. 41 00:03:14,710 --> 00:03:21,170 Tio estas alia afero, ke ni ricevos por en dua. 42 00:03:21,170 --> 00:03:24,860 Sed tia kontrolanta, la fakto ke ĝi plendas je kompila tempo, 43 00:03:24,860 --> 00:03:29,220 estas statika tipo kontrolanta. 44 00:03:29,220 --> 00:03:35,220 Ekzistas lingvoj, kie vi ne bezonas diri char, kaleŝego, int, kaj ĉiuj el tiuj aĵoj, 45 00:03:35,220 --> 00:03:40,940 sed la lingvo povas diri el la kunteksto de la aĵo kion tipo ĝi estas supozitaj esti, 46 00:03:40,940 --> 00:03:43,980 sed ĝi estas ankoraŭ statike tajpita. 47 00:03:43,980 --> 00:03:49,000 Do, se vi prenas 51, Ocaml, vi neniam devas uzi iun el tiuj tipoj, 48 00:03:49,000 --> 00:03:58,700 sed ankoraŭ estos en kompila tempo diros vi ne povas fari ĉi tion ĉar vi miksante kun int kaj linio. 49 00:03:58,700 --> 00:04:05,650 Dinamike tajpita nur signifas ke iam dum kuri tempo vi ricevos plendon. 50 00:04:05,650 --> 00:04:13,430 Se vi ankaŭ uzas Java antaŭe, en ĝenerala, preskaŭ neniu C-tipo lingvo 51 00:04:13,430 --> 00:04:20,070 tuj estos statike tajpita, do C, C + +, Java, ĉiuj el tiuj estas ĝenerale statike tajpita. 52 00:04:20,070 --> 00:04:22,910 En Java kiam vi kompili ion kaj vi diras 53 00:04:22,910 --> 00:04:26,670 kordoj s egalas nova iu kiu ne estas linio, 54 00:04:26,670 --> 00:04:28,950 ke tuj plendi pro tiuj tipoj simple ne kongruas supren. 55 00:04:28,950 --> 00:04:31,180 Tio tuj plendi ĉe kompila tempo. 56 00:04:31,180 --> 00:04:36,750 Sed ĝi ankaŭ havas kelkajn dinamikajn tempo aĵoj kiel se vi provas jxetu ion 57 00:04:36,750 --> 00:04:40,500 al tipo, ke estas pli specifaj ol ĝia aktuala tipo, 58 00:04:40,500 --> 00:04:45,610 ekzistas nenio povas fari je kompila tempo por kontroli ĉu kiuj jxetas tuj sukcesos. 59 00:04:45,610 --> 00:04:51,130 Java ankaŭ havas kelkajn dinamikajn tipo kontrolanta ke tuj kiam ĝi alvenas al tiu linio de kodo 60 00:04:51,130 --> 00:04:54,130 kiam ĝi estos reale ekzekuti, ĝi tuj faros la dividon, 61 00:04:54,130 --> 00:04:56,260 kontroli ĉu kiuj jxetas estis valida en la unua loko, 62 00:04:56,260 --> 00:04:59,890 kaj se ne estis, tiam ĝi tuj plendas ke vi havas nevalidan tipon. 63 00:04:59,890 --> 00:05:03,200 Dinamika tipo checking. 64 00:05:03,200 --> 00:05:07,010 Tajpi ĉi tio en dosieron nomatan dynamic.php. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 Mi maldensigi ke strukturado. 67 00:05:18,750 --> 00:05:21,880 Ni havas variablo, ni starigis gxin al la entjera 7, 68 00:05:21,880 --> 00:05:27,930 tiam ni tuj presi ĝin kaj% s - 69 00:05:27,930 --> 00:05:32,830 Ho, ni presi la tipo de ĝi, do gettype tuj revenos la tipo de la variablo. 70 00:05:32,830 --> 00:05:35,720 Ni nur presi la tipo denove kaj denove. 71 00:05:35,720 --> 00:05:39,440 Ni nur php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 Ni vidos kiu ŝanĝas de entjeraj al ŝnuro al Bulea kiel ni trairi. 73 00:05:45,920 --> 00:05:54,590 En C ne estas Bulea datumtipo, ne estas ŝnuro datumtipo. 74 00:05:54,590 --> 00:06:00,500 Estas char * kaj Buleaj simple emas esti int aŭ char aŭ iu. 75 00:06:00,500 --> 00:06:05,690 En PHP tiuj tipoj ja ekzistas, kaj tio estas unu el la grandaj avantaĝoj de PHP super C - 76 00:06:05,690 --> 00:06:13,290 ke kordoj operacioj estas malfinie pli facile en PHP ol C. Ili simple funkcios. 77 00:06:13,290 --> 00:06:18,290 >> Do ni revenu ĉi tien. 78 00:06:18,290 --> 00:06:21,260 Ni kuris dynamic.php. 79 00:06:21,260 --> 00:06:26,710 Ĉi tiu diras la PHP interpretisto, nomita php, por kuri la PHP-an kodon en dynamic.php. 80 00:06:26,710 --> 00:06:30,250 Se vi havas erarojn en la dosiero, la interpretisto diros al vi! 81 00:06:30,250 --> 00:06:39,110 La interpretisto, ĉi tio estas alia granda diferenco inter PHP kaj C. 82 00:06:39,110 --> 00:06:48,200 En C vi devas kompili ion kaj poste vi kuras kiu kompilis dosiero. 83 00:06:48,200 --> 00:06:50,490 En PHP vi neniam kompili ion. 84 00:06:50,490 --> 00:06:57,200 Do la PHP interpretisto estas esence nur legi tiun linion por linio. 85 00:06:57,200 --> 00:07:02,900 Ĝi batas var = 7 tiam batas printf tiam batas var tiam batas printf kaj tiel plu. 86 00:07:02,900 --> 00:07:10,910 Estas iom da kompili ĝin faras, kaj ĝi cachés la rezultoj 87 00:07:10,910 --> 00:07:15,510 do se vi kuros al la skripto poste vi povas fari iuj, 88 00:07:15,510 --> 00:07:19,280 sed esence ĝi estas linio por linio tiaj aferoj. 89 00:07:19,280 --> 00:07:25,280 Tio signifas, ke multo el la optimizaciones ke ni atingos en C, 90 00:07:25,280 --> 00:07:31,920 kiel kompili, estas nur ĝenerale la tradukilo povas fari multajn lertaĵojn por vi. 91 00:07:31,920 --> 00:07:36,110 Ĝi povas porti ekstere neuzitaj variabloj ĝi povas fari ĉiujn tiajn aferojn, 92 00:07:36,110 --> 00:07:38,660 ĝi povas fari vosto rekursio. 93 00:07:38,660 --> 00:07:42,550 En PHP vi ne tuj atingi tiun avantaĝon 94 00:07:42,550 --> 00:07:45,690 ĉar ĝi estas nur tuj komencos ekzekuti linion por linio por linio, 95 00:07:45,690 --> 00:07:49,950 kaj ĝi ne vere rekonas tion tiel facile 96 00:07:49,950 --> 00:07:54,440 pro tio ke ĝi ne estas 1 granda kompilaĵo pasas super la aferon kaj tiam ekzekuto; 97 00:07:54,440 --> 00:07:56,860 estas nur linio por linio. 98 00:08:00,730 --> 00:08:02,750 Do jen la interpretisto. 99 00:08:02,750 --> 00:08:06,840 >> Back al nia dinamika tajpante: bela malvarmeta, ĉu? 100 00:08:06,840 --> 00:08:08,640 Vi certe ne povis fari tion en C! 101 00:08:08,640 --> 00:08:11,860 Nun, ĉu vi povas eltrovi la tipon de ĉiu el la sekvaj valoroj. 102 00:08:11,860 --> 00:08:14,760 Vidu ĉi por via referenco. 103 00:08:14,760 --> 00:08:19,420 Do 3,50. Kian vi opinias ke tuj estos? 104 00:08:24,480 --> 00:08:26,370 Jen la tipoj ni havas. 105 00:08:26,370 --> 00:08:30,430 Ni havas bools, entjeroj, flosanta punktoj, kordoj, tabeloj, celoj, 106 00:08:30,430 --> 00:08:38,370 kaj tiam rimedoj, kiu estas speco de malpreciza. 107 00:08:38,370 --> 00:08:41,010 Mi kredas ke estas reale ekzemplo tie. 108 00:08:41,010 --> 00:08:43,740 Tiam ekzistas NULL. NULL estas speciala tipo. 109 00:08:43,740 --> 00:08:47,140 Kontraste C kie NULL estas nur montrilo kun adreso 0, 110 00:08:47,140 --> 00:08:54,930 en PHP, NULL estas ĝia propra tipo kie la sola valida afero de tiu tipo estas NULL. 111 00:08:57,560 --> 00:09:00,670 Tiu estas multe pli utila por eraro kontrolanta. 112 00:09:00,670 --> 00:09:04,310 En C, kie ni havis ĉi temon kie se vi revenos NULL, 113 00:09:04,310 --> 00:09:08,660 tio signifas ke vi reveni al NULL puntero aŭ uzante NULL por signifi eraron 114 00:09:08,660 --> 00:09:12,380 aŭ ĉiuj kiuj konfuzo ni havis ĉe unu punkto. 115 00:09:12,380 --> 00:09:18,440 Jen, revenante NULL ĝenerale signifas eraron. 116 00:09:20,860 --> 00:09:27,300 Multaj aĵoj ankaŭ revenos malvera por eraro. 117 00:09:27,300 --> 00:09:33,140 Sed la punkto estas la NULL tipo, la sola afero de la NULL tipo estas NULL. 118 00:09:33,140 --> 00:09:40,090 Tiam callback estas kiel vi povas difini iujn anonima funkcioj. 119 00:09:40,090 --> 00:09:46,420 Vi ne devas doni la funkcio nomon, sed vi ne devas trakti ĉi tie. 120 00:09:46,420 --> 00:09:53,940 Rigardante la tipoj ke ili atendas ke ni scias, 121 00:09:53,940 --> 00:09:59,000 kion vi opinias la tipo de 3,50 estas? >> [Studento] Float. 122 00:09:59,000 --> 00:10:00,370 Yeah. 123 00:10:00,370 --> 00:10:06,290 Tial ĉi tie, kion vi opinias la tipo de tio estas? >> [Studento] array. 124 00:10:06,290 --> 00:10:09,890 Yeah. La unua estis kaleŝego, la dua estas tabelo. 125 00:10:09,890 --> 00:10:14,500 Rimarku ke tiu tabelo ne estas kiel C tabelo 126 00:10:14,500 --> 00:10:19,610 kie vi havas indicon 0 havas iun valoron, indico 1 havas iu valoro. 127 00:10:19,610 --> 00:10:26,320 Tie la indeksoj estas a, b, kaj c kaj la valoroj estas 1, 2, kaj 3. 128 00:10:26,320 --> 00:10:33,980 En PHP ne estas diferenco inter asociaj tabelo kaj simple regula tabelo 129 00:10:33,980 --> 00:10:36,740 kiel vi pensus pri tio en C. 130 00:10:36,740 --> 00:10:43,040 Estas ĝuste tio, kaj sub la kapuĉo regula tabelo estas nur asocieca tabelo 131 00:10:43,040 --> 00:10:50,000 kie 0 mapoj por iu valoro de la sama maniero oni mapoj por iu valoro. 132 00:10:50,000 --> 00:11:00,410 Por tio, PHP povas esti sufiĉe malbone por vere rapida kodo / etalonanta aĵoj 133 00:11:00,410 --> 00:11:07,930 pro tio ke en C kiam vi uzas tabelo vi scias, ke aliri membro estas konstanto tempo. 134 00:11:07,930 --> 00:11:11,860 En PHP alirante membro estas kiu scias kiom da tempo? 135 00:11:11,860 --> 00:11:18,970 Estas probable konstanta se hashes ĝuste. 136 00:11:18,970 --> 00:11:21,620 Kiu scias kion ĝi estas vere faras sub la kapuĉo? 137 00:11:21,620 --> 00:11:25,600 Vi vere bezonas rigardi la efektivigo vidi kiel tuj trakti tion. 138 00:11:25,600 --> 00:11:28,550 Tial fopen. 139 00:11:28,550 --> 00:11:36,420 Mi kredas tie lasu la ĵus PHP manlibro fopen rigardi la reveno tipo. 140 00:11:36,420 --> 00:11:41,260 Ni vidas ĉi tie vi povas serĉi preskaux neniun funkcion en la PHP-manlibro 141 00:11:41,260 --> 00:11:47,540 kaj jen estas ia la viro paĝo de PHP. 142 00:11:47,540 --> 00:11:51,060 La reveno tipo tuj estos rimedo. 143 00:11:51,060 --> 00:11:56,050 Tial mi rigardis ĝin, ĉar ni ne vere difini rimedo. 144 00:11:56,050 --> 00:12:04,110 La ideo de rimedo, en C vi ia got a DOSIERO * aŭ kion ajn; 145 00:12:04,110 --> 00:12:07,200 en PHP la rimedo estas via DOSIERO *. 146 00:12:07,200 --> 00:12:10,360 Estas kion vi tuj estos legado de, estas kion vi tuj skribos al. 147 00:12:10,360 --> 00:12:20,710 Estas kutime ekstera, do ĝi estas rimedo vi povas tiri aĵoj de kaj ĵeti aĵojn al. 148 00:12:20,710 --> 00:12:26,520 Kaj fine, kio estas la tipo de NULL? >> [Studento] NULL. 149 00:12:26,520 --> 00:12:30,650 Yeah. Do la sola afero, kiu estas NULL estas NULL. 150 00:12:30,650 --> 00:12:33,480 NULL estas NULL. 151 00:12:35,490 --> 00:12:41,170 >> Unu karakterizaĵo de PHP la tipo sistemo (por pli bona aŭ por malbona) estas lia kapablo juggle tipoj. 152 00:12:41,170 --> 00:12:44,390 Kiam vi skribas linion de PHP kodo kiu kombinas valorojn de malsamaj tipoj, 153 00:12:44,390 --> 00:12:46,670 PHP provos fari la sentiva afero. 154 00:12:46,670 --> 00:12:48,920 Provi ĉiu el la sekvajn liniojn de PHP-kodo. Kio presita ekster? 155 00:12:48,920 --> 00:12:51,000 Ĉu tio, kion vi atendas? Kial aux kial ne? 156 00:12:51,000 --> 00:12:58,600 Tiu fakto pri PHP estas kion faras kion ni nomas malforte tajpitaj. 157 00:12:58,600 --> 00:13:04,610 Malforte tajpis kaj forte tajpita, 158 00:13:04,610 --> 00:13:06,840 estas malsamaj uzoj por tiuj terminoj, 159 00:13:06,840 --> 00:13:12,020 sed plej multaj homoj uzas malforte tajpis kaj forte tajpis al signifi ĉi tiaj aferoj 160 00:13:12,020 --> 00:13:15,920 kie ("1" + 2); kiu funkcias. 161 00:13:15,920 --> 00:13:18,290 En C kiu ne funkcias. 162 00:13:18,290 --> 00:13:22,490 Vi povas imagi tiun ne funkcias. 163 00:13:22,490 --> 00:13:29,200 Multaj homoj konfuziĝas dinamika tajpi kaj malforta tajpi kaj statika tajpi kaj forta tajpi. 164 00:13:29,200 --> 00:13:34,050 Python estas alia ekzemplo de lingvo ke tio dinamike tajpita. 165 00:13:34,050 --> 00:13:41,770 Vi povas ĵeti ĉirkaŭ tipoj en variabloj kaj ĝi okazas por determini, je tempo de ekzekuto 166 00:13:41,770 --> 00:13:44,680 neniu eraro checkings. 167 00:13:44,680 --> 00:13:50,740 En Python ĝi tuj ekzekuti ĉi kaj vidos ("1" + 2); 168 00:13:50,740 --> 00:13:55,920 kaj ĉi malsukcesos ĉar ĝi diras vi ne povas aldoni ĉenon kaj entjero. 169 00:13:55,920 --> 00:14:00,860 En PHP, kiu estas same dinamike tajpita, ĉi tio ne maltrafi. 170 00:14:00,860 --> 00:14:04,220 Malforta tajpante devas vidi kun la fakto ke ĝi faras tion kun tipoj 171 00:14:04,220 --> 00:14:07,800 kiuj ne vere havas sencon nepre. 172 00:14:07,800 --> 00:14:17,420 Do ("1" + 2), mi povas imagi ke estas la kordoj 12, mi povas imagi ĝin esti la kordoj 3, 173 00:14:17,420 --> 00:14:20,710 Mi povas imagi ke estas la entjero 3. 174 00:14:20,710 --> 00:14:24,530 Oni ne nepre bone difinitaj, kaj ni probable tuj vidos ĉi tie 175 00:14:24,530 --> 00:14:29,140 ke kiam ni presi ("1" + 2); ĝi estas probable tuj finos esti malsama 176 00:14:29,140 --> 00:14:32,320 ol presi (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 Kaj tiu emas esti, en mia opinio, por la plej malbona. 178 00:14:39,700 --> 00:14:44,240 Ĉi tie ni povas provi tiujn. 179 00:14:44,240 --> 00:14:48,740 Alia iom lertaĵo pri PHP estas vi ne bezonas efektive skribi la dosieron. 180 00:14:48,740 --> 00:14:52,790 Ĝi kuris ĉi komanda modo. 181 00:14:52,790 --> 00:14:57,710 Do php-r, tiam ni povas ĵeti en la komando tie: 182 00:14:57,710 --> 00:15:06,610 "Print ('1 '+ 2)," kaj mi ĵetos novan linion. 183 00:15:19,550 --> 00:15:23,970 Ĉi presita 3. 184 00:15:31,100 --> 00:15:35,330 Ĝi aspektas kiel ĝi presas 3 kaj ĝi estas la entjero 3. 185 00:15:35,330 --> 00:15:38,420 Do nun ni provu la alia vojo ĉirkaŭ: 186 00:15:38,420 --> 00:15:42,970 "Print (1 + '2 '); 187 00:15:45,560 --> 00:15:50,490 Ni preni 3, kaj estas ankaŭ tuj estos entjero 3? Mi honeste ne scias. 188 00:15:50,490 --> 00:15:54,030 Ĝi aspektas kiel tio estas konsekvenca. 189 00:15:54,030 --> 00:15:59,550 Ekzistas neniam ajn Ebla ĝin esti la kordoj 12 aŭ io simila 190 00:15:59,550 --> 00:16:08,080 ĉar PHP, kontraste JavaScript kaj Java tro, 191 00:16:08,080 --> 00:16:11,670 havas apartan operatoro por kunmeto. 192 00:16:11,670 --> 00:16:14,930 Kunmeto en PHP estas punkto. 193 00:16:14,930 --> 00:16:22,950 Do impreso (1. '2 '); Tuj donos al ni 12. 194 00:16:25,790 --> 00:16:32,420 Ĉi inklinas kondukas al konfuzo kie homoj provas fari ion kiel str + = 195 00:16:32,420 --> 00:16:37,840 iu alia afero, ke ili volas aldoni al la fino de lia ĉeno, kaj tio tuj maltrafi. 196 00:16:37,840 --> 00:16:40,770 Vi devas fari str. = 197 00:16:42,000 --> 00:16:46,240 Do ne forgesu kunmeto en PHP estas punkto. 198 00:16:46,240 --> 00:16:52,100 Aliaj aferoj por provi: presi ("CS" + 50); 199 00:16:55,750 --> 00:17:03,610 Mi diris al vi, ke ne ekzistas espero de ĉi rezultas en CS50 200 00:17:03,610 --> 00:17:06,119 ekde kunmeto ne +. 201 00:17:06,119 --> 00:17:08,440 Kion vi pensas ĉi tiu tuj finos esti? 202 00:17:10,359 --> 00:17:13,460 Mi honeste havas absolute nenian ideon. 203 00:17:14,250 --> 00:17:16,460 Ĝi aspektas kiel ĝi estas nur 50. 204 00:17:16,460 --> 00:17:21,490 Ĝi vidas la ŝnuron, kaj mi vetas se ni metas 123CS - 205 00:17:21,490 --> 00:17:29,640 Ĝi vidas la unua linio, ĝi provas legi entjero el ĝi aŭ numeron de ĝi. 206 00:17:29,640 --> 00:17:31,710 En ĉi tiu kazo vidas 123CS. 207 00:17:31,710 --> 00:17:35,190 "Tio ne havas sencon kiel entjero, do mi simple tuj pensas pri 123." 208 00:17:35,190 --> 00:17:38,580 Do 123 + 50 tuj estos 173. 209 00:17:38,580 --> 00:17:40,740 Kaj jen ĝi komencas legi tion kiel entjero. 210 00:17:40,740 --> 00:17:45,690 Ĝi ne vidas ion, do nur traktas ĝin kiel 0. Do 0 + 50 tuj estos 50. 211 00:17:45,690 --> 00:17:51,600 Tiu Mi supozante tuj faros iu simila. 212 00:17:51,600 --> 00:17:54,310 Mi pensas 99. 213 00:17:54,310 --> 00:17:57,580 Yeah, ĉar ĝi tuj preni la unua - 214 00:18:12,880 --> 00:18:15,730 Do 99. 215 00:18:15,730 --> 00:18:21,970 Tie (10/7), se tio estis C, kio estus, ke revenos? 216 00:18:23,700 --> 00:18:29,630 [Studento] 1. >> Jes, estus 1 ĉar 10/7 estas dividanta 2 entjeroj. 217 00:18:29,630 --> 00:18:32,910 Entjero dividita de entjero tuj revenos entjero. 218 00:18:32,910 --> 00:18:37,750 Ĝi ne povas reveni 1 punkto ajn kiu estus, do ĝi estas ĝuste tuj revenos 1. 219 00:18:37,750 --> 00:18:46,120 Jen presi (10/7); ĝi tuj efektive interpretas tion. 220 00:18:46,120 --> 00:18:53,760 Kaj tio signifas ke se vi vere volas fari entjero rondas kaj da tio, 221 00:18:53,760 --> 00:18:59,950 Vi devas fari print (etaĝo (10/7)); 222 00:18:59,950 --> 00:19:08,460 En C estas probable stranga ke vi povas fidi entjero tranĉon regule, 223 00:19:08,460 --> 00:19:12,260 sed en PHP vi ne povas ĉar ĝi aŭtomate igi ĝin kaleŝego. 224 00:19:13,430 --> 00:19:17,610 Kaj tiam (7 + vera); kion vi opinias ke tuj estos? 225 00:19:18,550 --> 00:19:23,640 Mi konjektas 8 se tuj interpretas vera kiel 1. 226 00:19:23,640 --> 00:19:25,740 Ĝi aspektas kiel ĝi estas 8. 227 00:19:25,740 --> 00:19:31,710 >> Do, frazoj ni faris en la lastaj 10 minutoj vi devus absolute neniam faros. 228 00:19:31,710 --> 00:19:39,870 Vi vidos kodo kiu tion faras. 229 00:19:39,870 --> 00:19:42,700 Ĝi ne devas esti tiel rekta kiel ĉi tio. 230 00:19:42,700 --> 00:19:47,240 Vi povus havi 2 variabloj, kaj 1 variablo hazarde estas cxeno 231 00:19:47,240 --> 00:19:51,310 kaj la alia variablo okazas al esti int, kaj tiam vi aldonu tiuj variabloj kune. 232 00:19:51,310 --> 00:20:00,120 Ekde PHP estas dinamike tajpis kaj ne faros tipo kontrolanta por vi 233 00:20:00,120 --> 00:20:03,640 kaj pro tio ĝi estas malforte tajpis kaj pro tio ke ĝuste aŭtomate ĵeti tion kune 234 00:20:03,640 --> 00:20:11,490 kaj ĉiu estos nur funkcias, estas malfacile eĉ scias, ke ĉi tiu variablo devas esti ĉeno nun, 235 00:20:11,490 --> 00:20:14,930 do mi ne devas aldoni ĝin al tiu variablo, kiu estas entjero. 236 00:20:18,780 --> 00:20:24,560 Bona praktiko estas se variablo estas ĉeno, konservas gxin kiel linio ĉiam. 237 00:20:24,560 --> 00:20:26,980 Se variablo estas int, konservas gxin kiel int ĉiam. 238 00:20:26,980 --> 00:20:30,770 Se vi volas trakti entjeroj kaj kordoj, 239 00:20:30,770 --> 00:20:36,970 vi povas uzi varsint - tio estas JavaScript. 240 00:20:36,970 --> 00:20:42,520 Intval. Mi tion faras la tutan tempon. PHP kaj Javascript mi ​​miksas ĉion. 241 00:20:42,520 --> 00:20:47,600 Do intval tuj revenos la entjera valoro de variablo. 242 00:20:47,600 --> 00:20:56,550 Se ni pasas en "print (intval ('123 ')); vi ricevas 123. 243 00:21:06,820 --> 00:21:15,850 Intval mem ne faros la ĉekon por ni, ke estas ekskluzive entjero. 244 00:21:15,850 --> 00:21:20,460 La PHP-manlibro, tie estas nur tiom da funkcioj estas disponeblaj, 245 00:21:20,460 --> 00:21:26,560 tial jen Mi kredas kion mi uzus estas is_numeric unua. 246 00:21:26,560 --> 00:21:32,590 Mi konjektas, ke revenis falsaj. 247 00:21:32,590 --> 00:21:35,780 Tio estas alia afero ni devas iri super estas ===. 248 00:21:37,850 --> 00:21:44,020 Do is_numeric ('123df '), vi ne pensas pri tio kiel is_numeric. 249 00:21:44,020 --> 00:21:46,720 En C vi devus persisti super ĉiuj karakteroj 250 00:21:46,720 --> 00:21:50,410 kaj kontroli por vidi se ĉiu gravulo estas cifera aŭ kion ajn. 251 00:21:50,410 --> 00:21:53,850 Jen is_numeric tuj fari tion por ni, 252 00:21:53,850 --> 00:21:56,520 kaj ĝin redoni malvera. 253 00:21:56,520 --> 00:22:02,120 Do kiam mi presis tion, presita nenion, do tie mi kompari ĝin vidi, 254 00:22:02,120 --> 00:22:05,490 vi hazarde estas falsaj? Kaj tial nun ĝi estas presi 1. 255 00:22:05,490 --> 00:22:10,060 Ŝajne ĝi presas 1 kiel vera anstataŭ presi vera kiel veran. 256 00:22:10,060 --> 00:22:15,790 Mi demandas min se mi faras print_r. Ne, ĝi ankoraŭ faras 1. 257 00:22:15,790 --> 00:22:26,760 >> Reiros al ===, == ankoraŭ ekzistas, 258 00:22:26,760 --> 00:22:32,260 kaj se vi parolos al Tommy li diros == estas perfekte bela. 259 00:22:32,260 --> 00:22:37,700 Mi intencis diri, ke == estas terura kaj vi devas neniam uzi ==. 260 00:22:37,700 --> 00:22:44,870 La diferenco estas ke == komparas aferojn 261 00:22:44,870 --> 00:22:48,450 kie povas esti vera eĉ se ili estas ne la sama tipo, 262 00:22:48,450 --> 00:22:53,810 dum === komparas aferojn kaj unue ĉekojn estas ili la sama tipo? 263 00:22:53,810 --> 00:22:58,010 Jes. Okay, nun mi iros por vidi se ili efektive komparas al esti egala. 264 00:22:58,010 --> 00:23:08,890 Vi ricevas strangajn aĵojn kiel 10 egalas - Ni vidu kion tiu diras. 265 00:23:08,890 --> 00:23:15,570 Do ('10 '== '1 kaj1'); 266 00:23:15,570 --> 00:23:17,980 Ĉi revenas vera. 267 00:23:17,980 --> 00:23:21,420 Ĉu iu havas divenas kial ĉi revenas vera? 268 00:23:25,180 --> 00:23:27,120 Ĝi estas ne nur pri tio. Eble ĉi tiu estas aludo. 269 00:23:27,120 --> 00:23:33,170 Sed se mi ŝanĝi tion al f - Darn ĝin! Mi plu uzi duobla citaĵoj. 270 00:23:33,170 --> 00:23:38,780 La kialo de la duoblaj citiloj estas kriante min estas ĉar mi metis tion en duoblaj citiloj. 271 00:23:38,780 --> 00:23:43,850 Do mi povis eskapi la duobla citaĵoj en ĉi tie, sed sola citaĵoj plifaciligi. 272 00:23:43,850 --> 00:23:49,120 Do ('10 '== '1 f1'); ne presi vera. ('10 '== '1 Kaj1'); presas vera. 273 00:23:49,120 --> 00:23:56,330 [Studento] Ĉu deksesumajn? >> Ne deksesumajn, sed estas proksimaj, ke ĝi estas kiel - 274 00:23:56,330 --> 00:24:01,060 1e1, scienca skribmaniero. 275 00:24:01,060 --> 00:24:07,950 Ĝi rekonas 1e1 kiel 1 * 10 ^ 1 aŭ kion ajn. 276 00:24:07,950 --> 00:24:11,510 Tiuj estas egalaj entjeroj. 277 00:24:11,510 --> 00:24:15,930 Se ni faras === tiam tuj estos falsaj. 278 00:24:15,930 --> 00:24:28,490 Mi vere ne scias se ni faru == kio pri (10 kaj '10abc ');? Bone. Do tio estas vera. 279 00:24:28,490 --> 00:24:35,940 Do ĝuste kiel kiam vi faris (10 + '10abc '), kaj ke estus 20, 280 00:24:35,940 --> 00:24:38,800 tie (10 == '10abc '); estas vera. 281 00:24:38,800 --> 00:24:45,350 Eĉ pli malbone estas aĵoj kiel (falsaj == NULL); estas vera 282 00:24:45,350 --> 00:24:52,210 aŭ (falsa == 0); estas vera, (falsa == []); 283 00:24:52,210 --> 00:25:00,970 Estas stranga kazoj de - Tio estas unu el tiuj strangaj kazoj. 284 00:25:00,970 --> 00:25:08,110 Rimarku ke (falsa == []); estas vera. 285 00:25:08,110 --> 00:25:11,950 ('0 '== Falsa); estas vera. 286 00:25:11,950 --> 00:25:16,090 ('0 '== []); Estas falsaj. 287 00:25:16,090 --> 00:25:19,090 Do == estas neniel transitiva. 288 00:25:19,090 --> 00:25:26,830 oni povas esti egala al b kaj a povas esti egala al c, 289 00:25:26,830 --> 00:25:29,340 sed b povus ne esti egala al c. 290 00:25:29,340 --> 00:25:35,580 Tio estas abomenajxo por mi, kaj vi devus ĉiam uzi ===. 291 00:25:35,580 --> 00:25:38,590 [Studento] Ĉu ni faras! == Tiel? >> [Bowden] Jes. 292 00:25:38,590 --> 00:25:44,600 La ekvivalenta estus! = Kaj! ==. 293 00:25:44,600 --> 00:25:48,230 Tiu estas vere edukita en la pset spec 294 00:25:48,230 --> 00:25:52,000 kie multajn funkciojn reveno - 295 00:25:52,000 --> 00:25:53,890 La PHP-manlibro estas bona pri tiu. 296 00:25:53,890 --> 00:25:59,140 Ĝi metas en grandan ruĝan skatolon, "Ĉi revenos malvera se estas eraro." 297 00:25:59,140 --> 00:26:03,940 Sed revenante 0 estas perfekte racia afero reveni. 298 00:26:03,940 --> 00:26:08,250 Pensu pri ajna funkcio kiu atendas por reveni entjero. 299 00:26:11,250 --> 00:26:17,880 Diru tiu funkcio estas supozata grafo la nombro de linioj en dosiero aŭ iu. 300 00:26:17,880 --> 00:26:23,490 Sub normalaj cirkonstancoj, sekvinberoj tiu funkcio dosieron 301 00:26:23,490 --> 00:26:27,120 kaj tuj revenos entjero kiu reprezentas la nombron de linioj. 302 00:26:27,120 --> 00:26:30,820 Do 0 estas perfekte racia nombro se la dosiero estas ĝuste malplena. 303 00:26:30,820 --> 00:26:36,810 Sed kion se vi pasas ĝin malvalida dosieron kaj la funkcio okazas reveni malvera 304 00:26:36,810 --> 00:26:38,860 se vi pasas ĝin nevalida dosiero? 305 00:26:38,860 --> 00:26:46,500 Se vi ĵus fari == vi ne diferencante la kazo inter nevalida dosiero kaj malplenaj dosiero. 306 00:26:48,870 --> 00:26:51,350 Ĉiam uzi ===. 307 00:26:55,690 --> 00:26:58,000 Tio estas ĉio el tiuj. 308 00:26:58,000 --> 00:27:01,660 >> En PHP, la tabelo tipo estas malsama de kion vi kutimi en C. 309 00:27:01,660 --> 00:27:06,650 Ja, vi eble jam rimarkis ĉi supre kiam vi vidis, ke tio estas de tipo tabelo. 310 00:27:06,650 --> 00:27:15,640 La krampo sintakso estas nova kiel de PHP 5.4, kiu estas la plej nova versio de PHP. 311 00:27:15,640 --> 00:27:36,960 Antaŭ tio vi ĉiam havis por skribi array ('a' -> 1, 'b' -> 2. 312 00:27:36,960 --> 00:27:41,160 Tio estis la konstruilo por tabelo. 313 00:27:41,160 --> 00:27:45,950 Nun PHP finfine venis ĉirkaŭ la bela sintakso de nur kvadrataj krampoj, 314 00:27:45,950 --> 00:27:50,900 kio estas ĝuste tiel bona ol tabelo. 315 00:27:50,900 --> 00:27:54,480 Sed konsiderante PHP 5.4 estas la plej nova versio, 316 00:27:54,480 --> 00:27:59,090 vi eble renkontos lokoj kiuj eĉ ne havas PHP 5.3. 317 00:27:59,090 --> 00:28:08,220 Super la somero ni kuris al tiu demando kie PHP 5.3 estis kio ni havis sur la aparaton, 318 00:28:08,220 --> 00:28:14,480 sed la servilo kiun ni disfaldis ĉiujn niajn lernojaro libron kaj submeti kaj cxio, kion uzatajxojn, por 319 00:28:14,480 --> 00:28:16,750 Estis PHP 5.4. 320 00:28:16,750 --> 00:28:23,060 Ne sciante, ni disvolvis en 5.3, puŝis al 5,4, 321 00:28:23,060 --> 00:28:25,660 kaj nun subite neniu el niaj kodo funkcias 322 00:28:25,660 --> 00:28:28,680 ĉar ne okazis esti ŝanĝoj inter 5,3 kaj 5,4 323 00:28:28,680 --> 00:28:31,030 kiuj ne estas kongrua, 324 00:28:31,030 --> 00:28:35,770 kaj ni devas iri, kaj ripari ĉiujn niajn aferojn kiuj ne funkcias por PHP 5.4. 325 00:28:39,210 --> 00:28:42,320 Por ĉi tiu klaso, ĉar la aparaton faras havi PHP 5.4, 326 00:28:42,320 --> 00:28:45,490 ĝi estas perfekte bone uzi kvadrataj krampoj. 327 00:28:47,240 --> 00:28:50,440 Sed se vi serĉas aferojn ĉirkaŭ la Interreto, 328 00:28:50,440 --> 00:28:54,880 se vi serĉas supren ia tabelo stuff, plej probable vi tuj vidos 329 00:28:54,880 --> 00:29:02,020 la sorĉas ekster tabelo konstruilo sintakso de tiu jam pasis ĉirkaŭ ekde PHP naskiĝis 330 00:29:02,020 --> 00:29:07,340 kaj kvadrata krampo sintakso estis ĉirkaŭ dum la lastaj kelkaj monatoj 331 00:29:07,340 --> 00:29:10,020 aŭ kiam 5.4 venis ĉirkaŭe. 332 00:29:10,020 --> 00:29:12,710 Jen kiel vi indekso. 333 00:29:12,710 --> 00:29:30,610 Ĝuste kiel en C kiel vi farus indekso de kvadrataj krampoj kiel $ tabelo [0], $ tabelo [1], $ tabelo [2], 334 00:29:30,610 --> 00:29:36,320 Referencoj same se vi hazarde havas vian indeksoj esti kordoj. 335 00:29:36,320 --> 00:29:40,440 Do $ tabelo ['a'] kaj $ tabelo ['b']. 336 00:29:40,440 --> 00:29:47,410 $ Tabelo [b]. Kial ĉi esti erara? 337 00:29:52,490 --> 00:29:59,870 Ĝi verŝajne generi averto sed ankoraŭ funkcias. PHP inklinas fari tion. 338 00:29:59,870 --> 00:30:04,890 Ĝi inklinas simple, "Mi iros por averti vin pri tio, sed mi simple tuj plu iri 339 00:30:04,890 --> 00:30:07,550 "Kaj fari kion ajn mi povas." 340 00:30:07,550 --> 00:30:11,500 Ĝi verŝajne traduki ĉi tion al cxeno, 341 00:30:11,500 --> 00:30:15,000 sed eblas ke en iu punkto en la pasinteco iu diris 342 00:30:15,000 --> 00:30:20,180 difini b esti 'HELLO MONDO'. 343 00:30:20,180 --> 00:30:28,740 Do nun b povus esti konstanta kaj $ tabelo [b] efektive faros 'HELLO MONDO'. 344 00:30:28,740 --> 00:30:32,380 Mi kredas je ĉi tiu punkto, aŭ almenaŭ nian PHP agordoj, 345 00:30:32,380 --> 00:30:37,870 se vi provos indekson en tabelo kaj tiu ŝlosilo ne ekzistas, ĝi malsukcesos. 346 00:30:37,870 --> 00:30:40,150 Mi ne kredas ke estos nur averti vin. 347 00:30:40,150 --> 00:30:44,560 Aŭ almenaŭ vi povas agordi ĝin por ke ĝi ne nur averti vin, simple rekte malsukcesas. 348 00:30:44,560 --> 00:30:49,290 >> La vojo vi kontrolu por vidi se vere estas tia indico estas isset. 349 00:30:49,290 --> 00:30:54,690 Do isset ($ array ['HELLO MONDO']) revenos falsaj. 350 00:30:54,690 --> 00:30:59,160 isset ($ array ['b']) revenos vera. 351 00:31:06,830 --> 00:31:09,880 Vi povas miksi tiujn sintakso. 352 00:31:15,060 --> 00:31:22,440 Mi estas bela certa kio estas tiu tabelo finus estante estas - Ni povas provi ĝin. 353 00:31:43,290 --> 00:31:45,700 Ho, mi bezonas PHPWord. 354 00:31:53,960 --> 00:32:00,260 Ĉi tiu estas miksante la sintakso, kie vi precizigi kion la ŝlosilo estas 355 00:32:00,260 --> 00:32:03,330 kaj vi ne precizigi, kion la ŝlosilo estas. 356 00:32:03,330 --> 00:32:05,520 Do 3 dekstra tie estas valoro. 357 00:32:05,520 --> 00:32:08,080 Vi ne eksplicite diris kion ĉefaj tuj estos. 358 00:32:08,080 --> 00:32:11,670 Kion vi pensas ĉefaj tuj estos? 359 00:32:11,670 --> 00:32:21,410 [Studento] 0. >> Mi konjektas 0 nur ĉar ĝi estas la unua ni ne specifita. 360 00:32:21,410 --> 00:32:23,500 Ni povas vere fari paron de ĉi tiuj kazoj. 361 00:32:23,500 --> 00:32:28,030 Do print_r estas presi rekursie. Ĝi estos presi la tuta tabelo. 362 00:32:28,030 --> 00:32:32,700 Estus presi subarrays de la tabelo se estis neniu. 363 00:32:32,700 --> 00:32:36,630 Do print_r ($ array); php.test.php. 364 00:32:36,630 --> 00:32:38,810 Ĝi aspektas kiel ĝi donis ĝin 0. 365 00:32:38,810 --> 00:32:43,530 Estas vere ion memoru ĉi tie, sed ni reiros al ĝi en dua. 366 00:32:43,530 --> 00:32:45,850 Sed kion se okazos al fari ĉi tiu indekso 1? 367 00:32:45,850 --> 00:32:51,170 PHP ne diferencas inter kordoj indeksoj kaj entjero indeksoj, 368 00:32:51,170 --> 00:33:00,280 tial je ĉi tiu punkto mi ĵus difinita indekso 1 kaj mi povas fari ambaŭ $ tabelo [1] kaj $ tabelo ['1 '] 369 00:33:00,280 --> 00:33:06,250 kaj tio estos la sama indico kaj la sama ŝlosilo. 370 00:33:06,250 --> 00:33:13,000 Do nun kion vi opinias 3 tuj estos? >> [Studento] 2. >> [Bowden] Mi konjektas 2. 371 00:33:16,000 --> 00:33:18,690 Yeah. Estas 2. 372 00:33:18,690 --> 00:33:24,790 Kio se ni faris ĉi estas 10, tio estas 4? Kion vi opinias la indekso de 3 tuj estos? 373 00:33:27,360 --> 00:33:29,110 Mi pensas 11. 374 00:33:29,110 --> 00:33:33,060 Mian konjekton pri kio PHP faras - kaj mi kredas ke mi vidis ĉi tion antaŭe - 375 00:33:33,060 --> 00:33:39,760 Estas simple subtenas spuron de tio, kion la plej alta nombraj indekso ĝi estas uzata ĝis nun estas. 376 00:33:39,760 --> 00:33:44,230 Oni neniam tuj asigni string indekso al 3. Ĝi ĉiam estos nombraj indekso. 377 00:33:44,230 --> 00:33:47,690 Do ĝi konservas trako de la alta ĝi estas atribuita ĝis nun, kiu hazarde estas 10, 378 00:33:47,690 --> 00:33:52,540 kaj ĝi tuj donas 11 al 3. 379 00:33:52,540 --> 00:34:02,110 Kion mi diris antaŭe, rimarki la vojo estas videbligi tiun tabelo. 380 00:34:02,110 --> 00:34:06,850 Ĝi presas ŝlosilo 10, ŝlosilo 4, ŝlosilo 11-ŝlosilo d. 381 00:34:06,850 --> 00:34:09,790 Aŭ eĉ lasu faru - 382 00:34:15,760 --> 00:34:22,489 Mi supozas mi ne metis 0, sed estas pres 1, 2, 3, 4. 383 00:34:22,489 --> 00:34:29,330 Kio se mi ŝanĝi ĉi tie? Aŭ lasu la reale ŝanĝi tiujn 2. 384 00:34:29,330 --> 00:34:31,940 Nun presas 2, 1, 3, 4. 385 00:34:31,940 --> 00:34:41,270 PHP estas tabeloj ne estas nur kiel viaj regulaj hash tablo. 386 00:34:41,270 --> 00:34:45,570 Estas perfekte racie pensi ilin kiel hash tabloj 99% de la tempo. 387 00:34:45,570 --> 00:34:53,790 Sed en via hash tabloj ne estas senco de la ordo en kiu aĵoj insertos. 388 00:34:53,790 --> 00:34:56,639 Tuj, kiam vi enmetas gxin en viajn hash tablo, 389 00:34:56,639 --> 00:35:00,590 supozi ne estas ligitaj listo kaj vi povus juĝi ene de ligitaj listo 390 00:35:00,590 --> 00:35:03,980 kiu estis insertos unua. 391 00:35:03,980 --> 00:35:10,060 Sed ĉi tie ni insertos 2 unuaj kaj scias kiam ĝi estos presi tiun tabelo ke 2 estas la unua. 392 00:35:10,060 --> 00:35:13,090 Ĝi ne presi gxin en nur ajna ordo. 393 00:35:13,090 --> 00:35:17,550 La teknikaj datumoj strukturo kiu ĝi estas uzanta estas ordigita mapo, 394 00:35:17,550 --> 00:35:24,690 tiel mapas ŝlosilojn al valoroj kaj ĝi memoras la ordo en kiu tiuj klavoj insertaban. 395 00:35:24,690 --> 00:35:31,600 Esence ĝi estas por iuj komplikaĵoj kie ĝi estas ĝena por fakte - 396 00:35:31,600 --> 00:35:34,510 Diru vi havas tabelo 0, 1, 2, 3, 4, 5 397 00:35:34,510 --> 00:35:37,700 kaj vi volas preni el indekso 2. 398 00:35:37,700 --> 00:35:47,750 Unu maniero fari ĝin, vidu kion tio aspektas. 399 00:35:47,750 --> 00:35:50,410 0, 2, 1, 3, 4. 400 00:35:50,410 --> 00:35:54,880 Unset okazas al unset ambaŭ variabloj kaj batalarangxis indeksoj. 401 00:35:54,880 --> 00:35:58,630 Do unset ($ array [2]); 402 00:35:58,630 --> 00:36:03,430 Nun kio ĉi tuj aspektas? 2 estas simple malaperis, do tio estas perfekte bela. 403 00:36:03,430 --> 00:36:11,670 Pli ĝena estas se vi volas aĵojn por fakte esti kiel tabelo. 404 00:36:11,670 --> 00:36:14,910 Mi metos hazardaj nombroj. 405 00:36:14,910 --> 00:36:20,400 Nun rimarki mian indeksoj. 406 00:36:20,400 --> 00:36:26,860 Mi volas tio por nur esti kiel C tabelo kie iras de 0 al longo - 1 407 00:36:26,860 --> 00:36:30,810 kaj mi povas persisti super ĝin kiel tia. 408 00:36:30,810 --> 00:36:38,520 Sed tuj kiam mi unset la dua indico, kio estis en indekso 3 ne fariĝis indekso 2. 409 00:36:38,520 --> 00:36:44,790 Anstataŭ simple forigas ke indekso kaj nun vi iru 0, 1, 3, 4. 410 00:36:44,790 --> 00:36:48,740 Ĉi tiu estas perfekte racia. 411 00:36:48,740 --> 00:36:53,950 Estas nur tedas kaj vi devas fari tion kiel tabelo splice. Yeah. 412 00:36:53,950 --> 00:36:57,200 >> [Studento] Kio okazus se vi havus por buklo 413 00:36:57,200 --> 00:36:59,630 kaj vi volis iri super ĉiuj elementoj? 414 00:36:59,630 --> 00:37:02,290 Kiam koliziis 2, ĉu cedi iam? 415 00:37:02,290 --> 00:37:10,150 Ripetanta super tabelo. Estas 2 manieroj vi povas fari tion. 416 00:37:10,150 --> 00:37:12,770 Vi povas uzi regula por buklo. 417 00:37:12,770 --> 00:37:22,000 Tio estas alia intricacy de PHP. 418 00:37:22,000 --> 00:37:27,420 Plej lingvoj, mi dirus, havas ian longon aŭ len aŭ io 419 00:37:27,420 --> 00:37:30,470 indikante la longo de tabelo. 420 00:37:30,470 --> 00:37:32,820 En PHP estas grafo. 421 00:37:32,820 --> 00:37:36,160 Do grafo ($ array); $ i + +) 422 00:37:36,160 --> 00:37:42,950 Lasu la ĵus presita ($ array [$ i]); 423 00:37:45,920 --> 00:37:48,820 Avizo: Nedifinita kompensi: 2. 424 00:37:48,820 --> 00:37:51,610 Ĝi simple tuj maltrafi. 425 00:37:51,610 --> 00:38:03,020 Ĉi tiu estas la kialo ke, plejparte, vi neniam bezonos ankaŭ persisti super tabelo ŝatas tion. 426 00:38:03,020 --> 00:38:07,110 Povus esti troigo, sed vi neniam bezonos ankaŭ persisti super tabelo kiel tiu 427 00:38:07,110 --> 00:38:19,410 ĉar PHP provizas lia foreach sintakso kie foreach ($ array kiel $ listero). 428 00:38:19,410 --> 00:38:31,830 Nun se ni presi ($ ero); - we'll diskuti ĝin en dua - kiu funkcias perfekte bela. 429 00:38:31,830 --> 00:38:38,960 La vojo kiu foreach laboras estas la unua argumento estas la tabelo, ke vi ripetanta super. 430 00:38:38,960 --> 00:38:44,060 Kaj la dua argumento, item, tra ĉiu paŝo de la por buklo 431 00:38:44,060 --> 00:38:52,690 ĝi tuj preni la sekvantan aferon en la tabelo. Do memoru la tabelo havas ordon. 432 00:38:52,690 --> 00:38:55,690 La unua fojo por la por ciklo, item tuj estos 123 433 00:38:55,690 --> 00:38:59,540 tiam estos 12 tiam estos 13 tiam estos 23 tiam estos 213. 434 00:38:59,540 --> 00:39:04,670 Aĵoj vere stranga kiam vi fari ion kiel foreach. 435 00:39:04,670 --> 00:39:07,480 Ni vidu kio okazas ĉar vi neniam faras tion. 436 00:39:07,480 --> 00:39:13,320 Kio se ni unset ($ array [1]); 437 00:39:20,410 --> 00:39:26,030 Tio verŝajne estis atendita. 438 00:39:26,030 --> 00:39:30,950 Vi ripetanta super ĉi tabelo, kaj ĉiufoje vi unsetting la unua indico. 439 00:39:30,950 --> 00:39:39,720 Do por indekso 0, la unua afero, item prenas sur valoro 0, do tuj estos 123. 440 00:39:39,720 --> 00:39:44,630 Sed ene de la por buklo ni unset indekso 1, do tio signifas 12 estas for. 441 00:39:44,630 --> 00:39:57,480 Do presi. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL estas nur linion, sed estas teknike pli porteblaj 443 00:40:03,580 --> 00:40:08,890 ekde newlines en Windows estas malsama de newlines en Mac kaj Unikso. 444 00:40:08,890 --> 00:40:18,040 En Windows linion estas \ r \ n, dum ĉie alie ĝi tendencas nur esti \ n. 445 00:40:18,040 --> 00:40:25,150 PHP_EOL estas agordita por ke ĝi uzu kion ajn la linion de via sistemo estas. 446 00:40:25,150 --> 00:40:29,310 Do presi tiun. Ni ne print_r ($ array) al la fino. 447 00:40:32,830 --> 00:40:37,390 Mi tute ne sciis ke tio estus la konduto. 448 00:40:41,740 --> 00:40:48,960 Item ankoraŭ portas sur la valoro 12 kvankam ni unset 12 antaŭ ol ni iam alvenis al ĝi de la tabelo. 449 00:40:52,770 --> 00:40:58,840 Ne prenu mian vorton pri tio, sed ĝi aspektas kiel foreach kreas kopion de la tabelo 450 00:40:58,840 --> 00:41:02,160 kaj tiam ero prenas sur ĉiuj valoroj de tiu kopio. 451 00:41:02,160 --> 00:41:07,760 Do eĉ se vi modifas la tabelo interne de la por ciklo, 452 00:41:07,760 --> 00:41:17,240 ke tio ne gravas. Item prenos en la originala valoroj. 453 00:41:17,240 --> 00:41:19,240 Ni provu unsetting ĝin. 454 00:41:19,240 --> 00:41:24,460 Kio se ĉi tiu estas $ tabelo [1] = "saluton"; 455 00:41:24,460 --> 00:41:31,770 Eĉ kvankam ni metis "saluton" en la tabelo, item neniam prenas sur tiun valoron. 456 00:41:31,770 --> 00:41:37,430 Ekzistas alia sintakson por foreach maŝojn 457 00:41:37,430 --> 00:41:45,900 kie vi metis 2 variabloj apartigita per sago. 458 00:41:45,900 --> 00:41:49,680 Ĉi tiu unua variablo tuj estos la ŝlosilo de tiu valoro, 459 00:41:49,680 --> 00:41:53,050 kaj tiu dua variablo tuj estos la sama ekzakta listero. 460 00:41:53,050 --> 00:42:01,610 Tiu ne estas interesa cxi tie, sed se ni reiru al nia originala okazo de 'a' -> 1, 461 00:42:01,610 --> 00:42:06,090 'B' -> 1, 462 00:42:06,090 --> 00:42:14,470 tie se ni nur persisti por ĉiu tabelo kiel eron, item tuj esti 1 ĉiun solan fojon. 463 00:42:14,470 --> 00:42:18,170 Sed se ni ankaŭ volas scii la ŝlosilo asociita kun tiu listero 464 00:42:18,170 --> 00:42:25,230 tiam ni faru kiel $ ŝlosilo -> $ listero. 465 00:42:25,230 --> 00:42:31,980 Do nun ni povas fari print ($ ŝlosilo. ':'. 466 00:42:31,980 --> 00:42:39,380 Nun ĝi estas ripetanta super kaj presi ĉiu klavo kaj lia asociita valoro. 467 00:42:39,380 --> 00:42:47,030 >> Plia afero ni povas fari en foreach maŝojn estas vi povus vidi ĉi sintakso. 468 00:42:47,030 --> 00:42:54,770 Ampersands antaux variablo nomoj emas esti kiel PHP faras referencoj. 469 00:42:54,770 --> 00:43:00,460 Kie referencoj estas tre simila al punteros, 470 00:43:00,460 --> 00:43:04,820 vi ne havas punteros, do vi neniam pritrakti memoro rekte. 471 00:43:04,820 --> 00:43:12,620 Sed vi ja havas referencojn kie 1 variablo raportas al la sama afero kiel alia variablo. 472 00:43:12,620 --> 00:43:21,450 Ene de ĉi tie lasu faru $ listero. Ni iru reen al 1, 10. 473 00:43:21,450 --> 00:43:28,800 Ni faru $ eron + +; Tio ankoraŭ ekzistas en PHP. Vi povas ankoraŭ fari + +. 474 00:43:28,800 --> 00:43:38,260 php.test.php. Mi devas presi ĝin. print_r ($ array); 475 00:43:38,260 --> 00:43:42,730 Ni presas 2, 11. 476 00:43:42,730 --> 00:43:49,560 Se mi ĝuste faris foreach ($ array kiel $ listero) tiam ero estos la valoro 1 477 00:43:49,560 --> 00:43:54,190 la unua fojo per la ciklo. Ĝi pliigo 1 ĝis 2 kaj tiam ni faris. 478 00:43:54,190 --> 00:43:57,260 Tial do tio iros tra la dua paŝo de la ciklo kaj tiu artikolo estas 10. 479 00:43:57,260 --> 00:44:01,570 Ĝi pliigoj eron al 11, kaj poste ke tio simple forĵetis. 480 00:44:01,570 --> 00:44:06,670 Tiam ni print_r ($ array), kaj ni vidu, ke ĉi tiu estas nur 1, 10. 481 00:44:06,670 --> 00:44:09,070 Do la pliigo ni faris estis perdita. 482 00:44:09,070 --> 00:44:13,410 Sed foreach ($ array kiel & $ item) 483 00:44:13,410 --> 00:44:21,910 nun ĉi artikolo estas la sama ero kiel ĉi tie. Ĝi estas la sama afero. 484 00:44:21,910 --> 00:44:26,820 Do $ eron + + estas modifi tabelo 0. 485 00:44:29,330 --> 00:44:41,850 Esence, vi povas ankaŭ fari $ k -> $ eron kaj vi povas fari $ tabelo [$ k] + +; 486 00:44:41,850 --> 00:44:48,650 >> Do alia maniero fari tion, ni estas liberaj por modifi item, 487 00:44:48,650 --> 00:44:54,070 sed kiu ne modifi nia originala tabelo. 488 00:44:54,070 --> 00:44:59,720 Sed se ni uzas k, kiu estas nia ŝlosilo, tiam ni povas nur indekson en nia tabelo uzante tiu ŝlosilo 489 00:44:59,720 --> 00:45:01,530 kaj pliigo tio. 490 00:45:01,530 --> 00:45:05,410 Tiu pli rekte modifas nia originala tabelo. 491 00:45:05,410 --> 00:45:10,690 Vi povas eĉ fari ke se ial vi volis la kapablon modifi - 492 00:45:10,690 --> 00:45:13,510 Fakte, ĉi tiu estas perfekte racia. 493 00:45:13,510 --> 00:45:16,020 Vi ne volas havi por skribi $ tabelo [$ k] + +, 494 00:45:16,020 --> 00:45:27,890 vi simple volis skribi $ listero + + sed vi ankoraŭ volis diri se ($ k === 'a') 495 00:45:27,890 --> 00:45:30,620 tiam pliigo eron kaj poste presi nian tabelo. 496 00:45:30,620 --> 00:45:36,290 Do nun kion ni atendas print_r fari? Kio valoroj devas esti presita? 497 00:45:36,290 --> 00:45:43,770 [Studento] 2 kaj 10. >> [Bowden] Nur se la ŝlosilo estis 'a' ni vere presi tiun. 498 00:45:51,940 --> 00:45:55,670 >> Vi verŝajne tre malofte, se iam, necesas difini funkciojn en PHP, 499 00:45:55,670 --> 00:46:03,370 sed vi povus vidi iun similan kie vi difinas funkcion kiel funkcio ajn. 500 00:46:03,370 --> 00:46:09,900 Kutime vi dirus ($ foo, $ stango) kaj tiam difini ĝin esti kiom. 501 00:46:09,900 --> 00:46:17,580 Sed se mi faras tion, tiam tiu signifas, ke kio nomas kion ajn, 502 00:46:17,580 --> 00:46:25,110 kion ajn nomas baz, do la unua argumento pasis al baz ŝanĝeblas. 503 00:46:25,110 --> 00:46:38,100 Ni faru $ foo + +; 504 00:46:38,100 --> 00:46:48,020 kaj ene de ĉi tie lasu faru baz ($ ero); 505 00:46:48,020 --> 00:46:52,250 Nun ni nomas funkcio. 506 00:46:52,250 --> 00:46:56,780 La argumento estas prenita de referenco, kiu signifas ke se oni modifas ĝin 507 00:46:56,780 --> 00:47:00,390 ni modifante la afero kiu pasis in 508 00:47:00,390 --> 00:47:04,420 Kaj presi ĉi ni atendas - se mi paneas sintakso - ni havas 2, 11, 509 00:47:04,420 --> 00:47:06,300 tial estis vere incremented. 510 00:47:06,300 --> 00:47:08,790 Rimarku ni bezonas referencojn en 2 lokoj. 511 00:47:08,790 --> 00:47:13,050 Kio se mi faris ĉi tion? Kion tio signifas? 512 00:47:13,050 --> 00:47:15,810 [Studento] Ĝi ŝanĝos. >> Jes. 513 00:47:15,810 --> 00:47:18,290 Item estas nur kopio de la valoro en la tabelo. 514 00:47:18,290 --> 00:47:26,670 Do ero ŝanĝos al 2, sed la tabelo ['a'] ankoraŭ estos 1. 515 00:47:26,670 --> 00:47:32,560 Aŭ kion se mi faras tion? 516 00:47:32,560 --> 00:47:39,260 Nun ero estas sendita kiel kopion al baz. 517 00:47:39,260 --> 00:47:46,330 Do la kopion de la argumento estos incremented al 2, 518 00:47:46,330 --> 00:47:49,240 sed listero mem neniam incremented al 2. 519 00:47:49,240 --> 00:47:52,880 Kaj ero estas la sama afero kiel tabelo krampo ajn, 520 00:47:52,880 --> 00:47:55,380 por ke tabelo neniam incremented. 521 00:47:55,380 --> 00:47:57,960 Do ambaŭ tiuj lokoj bezonas ĝin. 522 00:47:57,960 --> 00:48:03,830 >> PHP kutime estas tre saĝa pri ĉi tio. 523 00:48:03,830 --> 00:48:06,570 Vi eble opinias, ke mi volas preterpasi per referenco - 524 00:48:06,570 --> 00:48:09,560 Tiu estis fakte demando sur unu el la psets. 525 00:48:09,560 --> 00:48:14,480 Estis questions.txt afero kie diris, 526 00:48:14,480 --> 00:48:19,280 Kial povus vi volas pasi ĉi struct por referenco? 527 00:48:19,280 --> 00:48:21,250 Kio estis la respondo al tiu? 528 00:48:21,250 --> 00:48:25,100 [Studento] Do vi ne devos kopii ion grandan. >> Jes. 529 00:48:25,100 --> 00:48:32,920 Al struct povas esti arbitre granda, kaj kiam vi pasos la struct en kiel argumento 530 00:48:32,920 --> 00:48:36,800 ĝi bezonas kopii ke tuta struct pasi ĝin al la funkcio, 531 00:48:36,800 --> 00:48:40,410 dum se vi simple pasigi la struct por referenco 532 00:48:40,410 --> 00:48:46,530 tiam nur bezonas kopii 4-bajto adreso kiel la argumento al la funkcio. 533 00:48:48,520 --> 00:48:52,320 PHP estas iomete pli inteligenta ol tio. 534 00:48:52,320 --> 00:49:00,650 Se mi havas iujn funkcion kaj mi parolu pri ĝi tabelo de 1.000 aferojn, 535 00:49:00,650 --> 00:49:03,990 tio signifas ke tuj devos kopii ĉiujn 1.000 el tiuj aĵoj 536 00:49:03,990 --> 00:49:10,450 pasi ĝin en la funkcio? Ĝi ne devas fari tion tuj. 537 00:49:10,450 --> 00:49:15,940 Se ene de ĉi tiu funkcio ĝin neniam reale modifas foo, 538 00:49:15,940 --> 00:49:22,660 do se ($ foo === 'saluton') reveni vera.; 539 00:49:22,660 --> 00:49:26,460 Rimarku ni neniam vere modifis la argumento ene de ĉi tiu funkcio, 540 00:49:26,460 --> 00:49:30,010 kio signifas, ke kio estis aprobita en kiel foo neniam devas esti kopiitaj 541 00:49:30,010 --> 00:49:32,100 ĉar ĝi estas ne modifante ĝin. 542 00:49:32,100 --> 00:49:39,240 Do la vojo PHP verkoj estas la argumentoj estas ĉiam preteriris referenco 543 00:49:39,240 --> 00:49:42,170 ĝis vi efektive provas modifi gxin. 544 00:49:42,170 --> 00:49:51,160 Nun, se mi diros $ foo + +; ĝi nun fari kopion de la originala foo kaj modifi la kopion. 545 00:49:51,160 --> 00:49:53,090 Ĉi ŝparas iom da tempo. 546 00:49:53,090 --> 00:49:58,210 Se vi neniam tuŝis tiun amasan tabelo, vi neniam reale modifi ĝin, 547 00:49:58,210 --> 00:50:02,360 ĝi ne bezonas fari la kopion, 548 00:50:02,360 --> 00:50:06,640 dum se ni nur metis-signo kiu signifu ne eĉ kopii ĝin 549 00:50:06,640 --> 00:50:08,640 eĉ se vi modifas ĝin. 550 00:50:08,640 --> 00:50:10,680 Ĉi tiu konduto estas nomita kopio-sur-skribo. 551 00:50:10,680 --> 00:50:17,380 Vi vidos ĝin en aliaj lokoj, speciale se vi prenos mastruma sistemo kompreneble. 552 00:50:17,380 --> 00:50:23,880 Kopiu-sur-skribo estas bela kutima ŝablono, kie vi ne bezonas fari kopion de io 553 00:50:23,880 --> 00:50:26,650 krom se ĝi estas vere ŝanĝiĝas. Yeah. 554 00:50:26,650 --> 00:50:29,520 [Studento] Kio se vi havis la pliigo interne de la testo, 555 00:50:29,520 --> 00:50:33,700 tial nur 1 elemento el 1.000 bezonus esti ŝanĝita? 556 00:50:33,700 --> 00:50:38,770 Mi ne estas certa. 557 00:50:38,770 --> 00:50:51,250 Mi kredas ke estus kopii la tutan aferon, sed tio estas ebla estas inteligenta sufiĉe ke - 558 00:50:51,250 --> 00:51:00,020 Vere, kion mi pensas estas imagi ni havis tabelo kiu similas tiun: $ areo2 = [ 559 00:51:00,020 --> 00:51:11,000 Tiam indekso 'a' estas tabelo de [1 2 3 4], kaj indekso 'b' estas tabelo de kiom. 560 00:51:11,000 --> 00:51:15,380 Mi bezonas komoj inter ĉiuj el tiuj. Imagu ke estas komoj. 561 00:51:15,380 --> 00:51:21,210 Tiam 'c' estas la valoro 3. 562 00:51:24,210 --> 00:51:26,290 Okay. 563 00:51:26,290 --> 00:51:33,440 Nun diru ni faru $ baz ($ areo2); 564 00:51:33,440 --> 00:51:36,540 kie baz ne prenas tiun per referenco. 565 00:51:43,510 --> 00:51:47,370 Do $ foo ['c'] + +; 566 00:51:47,370 --> 00:51:52,340 Tiu estas tia ekzemplo kie ni pasas areo2 kiel argumento 567 00:51:52,340 --> 00:51:57,010 kaj tiam modifi specifa indekso de la tabelo de pliigante ĝin. 568 00:51:57,010 --> 00:52:01,090 Mi honeste ne scias kion PHP tuj faros. 569 00:52:01,090 --> 00:52:07,200 Ĝi povas facile fari kopion de la tuta afero, sed se ĝi estas inteligenta, 570 00:52:07,200 --> 00:52:15,030 ĝi faros kopion de tiuj klavoj kie ĉi havos ĝian apartan valoron 571 00:52:15,030 --> 00:52:20,620 sed ĉi tiu povas ankoraŭ noti al la sama tabelo 1,2,3,4 572 00:52:20,620 --> 00:52:22,320 kaj tio povas ankoraŭ noti al la sama tabelo. 573 00:52:22,320 --> 00:52:24,170 Mi instruos vin iPad ĝin. 574 00:52:28,900 --> 00:52:45,950 Ni pasas en ĉi tabelo kie ĉi tiu viro poentojn al 3, this guy punktoj al [1,2,3,4], 575 00:52:45,950 --> 00:52:51,350 this guy punktoj al [34, ...] 576 00:52:51,350 --> 00:52:58,590 Nun kiam ni pasis ĝin en al baz, ni modifas ĉi. 577 00:52:58,590 --> 00:53:03,550 Se PHP estas inteligenta, ĝi povas nur fari - 578 00:53:11,850 --> 00:53:18,230 Ni ankoraŭ devis kopii iun memoron, sed se estis tiuj enormaj anidadas subarrays 579 00:53:18,230 --> 00:53:21,560 ni ne bezonas kopii tiujn. 580 00:53:21,560 --> 00:53:27,530 Mi ne scias se tion faras, sed mi povas imagi ĝin fari tion. 581 00:53:29,050 --> 00:53:36,690 Tiu estas ankaŭ sufiĉe granda avantaĝo de C super PHP. 582 00:53:36,690 --> 00:53:40,320 >> PHP faras vivon tiel facile por multaj aferoj, 583 00:53:40,320 --> 00:53:45,060 sed vi ia havas absolute nenian ideon kiel bone ĝi plenumos 584 00:53:45,060 --> 00:53:52,530 ĉar mi ne havas ideon sub la kapuĉo, kiam ĝi estos fari ĉi tiujn kopiojn de aferoj, 585 00:53:52,530 --> 00:53:55,170 oh, estas ke tuj estos konstanta tempo kopion, 586 00:53:55,170 --> 00:54:01,140 Estas simple tuj ŝanĝos 1 pointer, ĉu tuj estos ridinde malfacile lineara kopion? 587 00:54:01,140 --> 00:54:03,000 Kio se ĝi ne povas trovi spacon? 588 00:54:03,000 --> 00:54:06,760 Ĉu ĝi do devas kuri rubo kolekto akiri pli da spaco? 589 00:54:06,760 --> 00:54:11,210 Kaj rubo kolekto povas preni arbitre longa. 590 00:54:11,210 --> 00:54:13,600 En C vi ne devas zorgi pri tio. 591 00:54:13,600 --> 00:54:19,780 Ĉiu unuopa linio vi skribas vi povas preskaux kialo pri kiel ĝi estas tuj efektivigi. 592 00:54:26,800 --> 00:54:29,150 >> Ni rigardu reen al tiuj. 593 00:54:35,400 --> 00:54:37,520 Kiel bela estas ĝi, ke vi ne devas trakti kradaj funkcioj, 594 00:54:37,520 --> 00:54:39,010 ligitaj listoj, aŭ io simila? 595 00:54:39,010 --> 00:54:41,980 Ekde laborante kun hash tabloj estas tiel facila nun, jen amuza enigmo labori plu. 596 00:54:41,980 --> 00:54:45,920 Malfermi dosieron nomata unique.php kaj en ĝi skribi PHP programo 597 00:54:45,920 --> 00:54:48,330 (Ankaŭ konata kiel "skripto"). 598 00:54:48,330 --> 00:54:55,700 Ni emas nomi ilin skriptoj se ili estas mallongaj, kiu vi kuros en la komandlinio. 599 00:54:55,700 --> 00:55:02,950 Esence, iu ajn lingvo kiun vi ne kompili sed vi tuj kuras la ruleblan 600 00:55:02,950 --> 00:55:05,920 en la komandlinio, vi povas voki kiun ruleblan skripto. 601 00:55:05,920 --> 00:55:08,510 Mi povus same bone skribi C programon kiu faras tion, 602 00:55:08,510 --> 00:55:12,300 sed mi ne nomus ĝin skripto kiam mi unue kompili ĝin kaj poste ekzekuti la duuma. 603 00:55:12,300 --> 00:55:15,480 Sed ĉi PHP programo ni iras por voki skripton. 604 00:55:15,480 --> 00:55:23,830 Aŭ se ni skribis en Python aŭ Perl aŭ Node.js aŭ ajna el tiuj aĵoj, 605 00:55:23,830 --> 00:55:26,500 ni volonte nomas ilin ĉiujn skriptojn ĉar vi kuras ilin en la komanda linio 606 00:55:26,500 --> 00:55:30,040 sed ni ne kompili ilin. 607 00:55:30,860 --> 00:55:33,400 Ni povus fari tion sufiĉe rapide. 608 00:55:36,960 --> 00:55:41,480 Ni ne tuj uzos argv. Lasu la ĵus blovi tra ĉi. 609 00:55:41,480 --> 00:55:45,730 Nomas ĝin unika, skribi programon. 610 00:55:45,730 --> 00:55:49,400 Vi povas supozi ke la enigo enhavos unu vorto por linio. 611 00:55:49,400 --> 00:55:52,020 Vere, argv estos bela bagatela uzi. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 Unua afero unue, ni volas kontroli se ni jam pasis 1 komand-linio argumento. 614 00:56:13,750 --> 00:56:20,900 Same kiel vi devus atendi argc kaj argv en C, oni ankoraŭ havas tiujn en PHP. 615 00:56:20,900 --> 00:56:33,900 Do, se ($ argc! == 2) tiam mi ne trakti presi mesaĝon aŭ nenion. 616 00:56:33,900 --> 00:56:37,340 Mi simple eliri, eraro kodo de 1. 617 00:56:37,340 --> 00:56:41,340 Mi povus ankaŭ reveni 1. 618 00:56:41,340 --> 00:56:53,180 Malofte en PHP estas vi en ĉi tiu stato kie ni estas en - 619 00:56:53,180 --> 00:56:57,820 Kutime vi estas en funkcio nomata per funkcio nomata per funkcio nomata per funkcio. 620 00:56:57,820 --> 00:57:02,070 Kaj se iu iras malbone kaj vi nur volas eliri ĉio tute, 621 00:57:02,070 --> 00:57:05,680 eliro nur finas la programon. 622 00:57:05,680 --> 00:57:08,160 Ĉi tio ankaŭ ekzistas en C. 623 00:57:08,160 --> 00:57:10,700 Se vi estas en funkcio en funkcio en funkcio en funkcio 624 00:57:10,700 --> 00:57:17,540 kaj vi volas nur mortigi la programo, oni povas nomi eliro kaj ĝi estos simple eliri. 625 00:57:17,540 --> 00:57:23,120 Sed en PHP estas eĉ pli maloftaj, ke ni estas en ĉi tiu supera nivelo. 626 00:57:23,120 --> 00:57:26,090 Kutime ni ene ia funkcio, do ni nomas eliro 627 00:57:26,090 --> 00:57:29,650 por ke ni ne devas reveni supren 1 afero kiu tiam rimarkas ke estas eraro 628 00:57:29,650 --> 00:57:32,270 por ke revenu supren se kiu rekonas okazis eraro. 629 00:57:32,270 --> 00:57:35,270 Ni ne volas trakti tion, kio eliras (1); 630 00:57:35,270 --> 00:57:38,240 reveno (1); en ĉi tiu kazo estus ekvivalento. 631 00:57:38,240 --> 00:57:44,000 >> Do kion ni volas malfermi ni volas fopen. 632 00:57:44,000 --> 00:57:46,760 La argumentoj estas tuj serĉos bela similaj. 633 00:57:46,760 --> 00:57:51,600 Ni volas fopen ($ argv [1], kaj ni volas malfermi gxin por legado. 634 00:57:51,600 --> 00:57:55,720 Kiu resendas rimedo kiun ni iras por voki f. 635 00:57:55,720 --> 00:58:02,180 Ŝajnas esti tre simila al kiel C faras krom ni ne devas diri DOSIERO *. 636 00:58:02,180 --> 00:58:06,170 Anstataŭe ni simple diri $ f. Okay. 637 00:58:06,170 --> 00:58:17,190 Fakte, mi kredas ke tiu eĉ donas al ni aludo pri PHP funkcio nomita dosiero. PHP Dosiero. 638 00:58:17,190 --> 00:58:23,990 Kio ĉi tuj fari estas legi tutan dosieron en tabelo. 639 00:58:23,990 --> 00:58:29,770 Vi eĉ ne bezonas fopen ĝin. Oni faros tion por vi. 640 00:58:37,450 --> 00:58:43,700 Do $ linioj = dosiero ($ argv [1]); 641 00:58:43,700 --> 00:58:49,680 Nun ĉiuj linioj de la dosiero estas en linioj. Nun ni volas ordigi la linioj. 642 00:58:49,680 --> 00:58:52,180 Kiel ni povas ordigi la liniojn? 643 00:58:52,180 --> 00:58:54,920 Ni ordigi la linioj. 644 00:58:54,920 --> 00:58:58,080 Kaj nun ni povas presi ilin aŭ kion ajn. 645 00:58:58,080 --> 00:59:05,580 Probable la plej facila maniero estas foreach ($ linioj kiel $ linio) echo $ linio; 646 00:59:05,580 --> 00:59:10,960 [Studento] Ĉu ne ni eĉ transiri liniojn per referenco io en speco? 647 00:59:10,960 --> 00:59:28,850 Tie estas kie speco estus difinita kiel funkcio speco (& $ tabelo). 648 00:59:28,850 --> 00:59:32,650 Kiam vi nomas la funkcio ne pasi ĝin por referenco. 649 00:59:32,650 --> 00:59:36,900 Estas la funkcio kiu difinas ĝin kiel preni ĝin kiel referencon. 650 00:59:36,900 --> 00:59:40,900 Tiu estas fakte ĝuste kio eliris malbone 651 00:59:40,900 --> 00:59:46,220 kiam ni metas ĉion por niaj serviloj kiam ni iris de 5,3 al 5,4. 652 00:59:46,220 --> 00:59:53,800 Ĝis 5.4, ĉi tiu estis perfekte racia. 653 00:59:53,800 --> 00:59:58,740 Funkcio ne atendas por preni ĝin kiel referenco, sed vi povas pasi ĝin kiel aludo 654 00:59:58,740 --> 01:00:02,860 do se la funkcio ne okazos por modifi ĝin, ĝi estas ankoraŭ modifitaj. 655 01:00:02,860 --> 01:00:05,850 Segun 5.4, vi ne devus fari ĉi tion. 656 01:00:05,850 --> 01:00:11,740 Do nun la sola maniero pasas por referenco estas se la funkcio eksplicite faras ĝin. 657 01:00:11,740 --> 01:00:19,840 Se vi ne volas modifi ĝin, tiam vi devas fari $ kopio = $ linioj kaj pasas kopion. 658 01:00:19,840 --> 01:00:24,820 Do nun linioj estos konservitaj kaj kopio estos ŝanĝita. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. Mi povus esti malkombita ion supren. 660 01:00:31,460 --> 01:00:33,190 Neatendita 'specon'. 661 01:00:38,320 --> 01:00:43,850 Tie okazas esti iu kiu faras tion por ni. 662 01:00:43,850 --> 01:00:45,820 Estas eĉ ne ekzistas. 663 01:00:45,820 --> 01:00:52,140 Rimarku, kiam vi legis la manlibro, ke la unua argumento atendas esti tabelo 664 01:00:52,140 --> 01:00:56,490 kaj ĝi estas prenita de referenco. 665 01:00:58,160 --> 01:01:03,540 Kial ĉi plendis al mi? Ĉar mi havas tiun funkcion speco ankoraŭ en ĉi tie ke mi ne volas. 666 01:01:03,540 --> 01:01:09,210 Konsentite, php.unique.php. Mi ne pasi ĝin argumenton ĉar mi ne havas dosieron. 667 01:01:09,210 --> 01:01:13,560 Estas php.unique.php sur test.php. 668 01:01:13,560 --> 01:01:19,080 Jen test.php ĉiuj presitaj el en bela ordo ordo. 669 01:01:19,080 --> 01:01:24,600 Rimarku ke ordo ordo estas speco de stranga por kodo dosieron 670 01:01:24,600 --> 01:01:27,460 ĉar ĉiuj niaj malplenajn liniojn tuj venos unue 671 01:01:27,460 --> 01:01:30,190 tiam tuj venis ĉiuj niaj 1 nivelo indentations 672 01:01:30,190 --> 01:01:33,360 tiam venos ĉiuj niaj neniu indentations. 673 01:01:33,360 --> 01:01:38,620 Yeah. >> [Studento] Do por la fontokodo ne estis aprobita de referenco? 674 01:01:38,620 --> 01:01:42,240 Estas ke ĝenerale preteriris valoro? 675 01:01:42,240 --> 01:01:50,240 [Bowden] Kiam vi nomas funkcio, ĝi neniam difinas ĉu ĝi estis aprobita de referenco. 676 01:01:50,240 --> 01:01:53,960 Estas la funkcio difino kiu determinas, ĉu estis aprobita de referenco. 677 01:01:53,960 --> 01:01:59,450 Kaj rigardante la funkcio difino de varo aŭ simple rigardante tion, 678 01:01:59,450 --> 01:02:02,820 prenas la argumenton per referenco. 679 01:02:02,820 --> 01:02:07,160 Do sendistinge de ĉu vi volas ĝin preni ĝin por referenco, ĝi faras preni ĝin por referenco. 680 01:02:07,160 --> 01:02:10,200 Ĝi modifas la tabelo en loko. 681 01:02:10,200 --> 01:02:17,400 Tio simple ne permesataj. Vi ne rajtas fari tion. >> [Studento] Ho, bone. 682 01:02:17,400 --> 01:02:22,410 [Bowden] Ĉi, varo tuj prenos liniojn por referenco kaj modifi ĝin. 683 01:02:22,410 --> 01:02:26,850 Kaj denove, se vi ne volas fari tion, vi povus fari kopion de varo. 684 01:02:26,850 --> 01:02:35,850 Eĉ en ĉi tiu kazo, kopio ne estas reale kopion de linioj. 685 01:02:35,850 --> 01:02:40,620 Ĝi simple notas la sama aĵo ĝis unua gets modifita, 686 01:02:40,620 --> 01:02:44,430 kie ĝi estas unua tuj get modifita en la varo funkcio, 687 01:02:44,430 --> 01:02:50,940 kie, ĉar la kopio-on-skribi, nun kopion de kopio tuj estos faritaj. 688 01:02:57,500 --> 01:03:04,250 Vi ankaŭ povas fari ĉi tion. Tio estas la alia loko vi povas vidi signon. 689 01:03:04,250 --> 01:03:07,190 Vi vidas ĝin en foreach cikloj, vi vidos ĝin en funkcio deklaroj, 690 01:03:07,190 --> 01:03:10,040 kaj vi vidos ĝin kiam ĝuste atribui variablojn. 691 01:03:10,040 --> 01:03:12,350 Nun ni plenumita nenio por fari ĉi 692 01:03:12,350 --> 01:03:15,600 ĉar kopio kaj linioj estas laŭvorte la sama afero. 693 01:03:15,600 --> 01:03:19,940 Vi povas uzi linioj kaj kopii sendiference. 694 01:03:19,940 --> 01:03:25,430 Vi povas fari unset ($ kopio), kaj kiu ne unset linioj, 695 01:03:25,430 --> 01:03:29,120 vi simple perdi vian aludon al la sama afero. 696 01:03:29,120 --> 01:03:33,440 Do ekde ĉi tiu punkto, nun linioj estas la sola maniero povas konsenti linioj. 697 01:03:36,450 --> 01:03:38,770 >> Demandoj? 698 01:03:41,000 --> 01:03:42,460 Yeah. 699 01:03:42,460 --> 01:03:45,880 [Studento] Tute for temo, sed vi ne devas fermi PHP kun la - >> Vi ne. 700 01:03:45,880 --> 01:03:47,730 Okay. 701 01:03:47,730 --> 01:03:53,790 [Bowden] mi irus ĝis diri ke estas malbona praktiko por fermi ilin. 702 01:03:53,790 --> 01:03:57,580 Tio probable troigo, speciale en skripto, 703 01:03:57,580 --> 01:04:03,740 sed ni vidu kio okazas se mi faras tion. 704 01:04:03,740 --> 01:04:08,890 Tio faris nenion. Kio se mi volis - [suspirojn] 705 01:04:13,870 --> 01:04:16,960 Mi bezonas por pasi argumento. 706 01:04:19,000 --> 01:04:22,050 Pafi. Mi vokis ĝin malĝusta. 707 01:04:24,340 --> 01:04:28,310 Do php.unique.php kun argumento. 708 01:04:28,310 --> 01:04:30,980 Nun mi eĉ ne bezonas tion. 709 01:04:34,520 --> 01:04:37,740 Mi pasi ĝin valida argumento. 710 01:04:37,740 --> 01:04:42,050 Ĉi presita ajn ĝi estas stampita. 711 01:04:45,260 --> 01:04:50,080 Mi presi kopion kaj kopio ne ekzistas. Do linioj. 712 01:04:53,650 --> 01:04:58,270 Ĝi presas ĉion, kaj poste rimarkis tiun tutan rubo cxi tie, 713 01:04:58,270 --> 01:05:06,690 ĉar en PHP ion kiu estas ekstere de PHP etikedoj 714 01:05:06,690 --> 01:05:09,520 Estas ĝuste tuj estos presita laŭvorte. 715 01:05:09,520 --> 01:05:18,050 Tial HTML, estas tiel bela, ke mi povas fari div bla, bla, bla klaso aŭ kion ajn, 716 01:05:18,050 --> 01:05:25,140 bla, bla, bla, kaj poste fari iujn PHP kodo kaj do fine div. 717 01:05:25,140 --> 01:05:36,460 Kaj nun presi ĉi I get my nice div supren supro, ĉion PHP presita, div ĉe fundo. 718 01:05:36,460 --> 01:05:43,510 Katastrofa kiam iu kiel ĉi tio okazas, kio estas sufiĉe komuna, 719 01:05:43,510 --> 01:05:47,930 nur vaganta linion ĉe la malsupro de dosiero. 720 01:05:47,930 --> 01:05:50,940 Vi ne kredas ke estus ke granda de traktadon 721 01:05:50,940 --> 01:05:58,660 ĝis vi konsideras la fakton ke kun retumiloj - 722 01:05:58,660 --> 01:06:03,880 >> Kiel alidirektilojn laboro aŭ esence ajna titolaj laboron, 723 01:06:03,880 --> 01:06:07,980 kiam vi faras vian konekton al retejo kaj ĝi sendas reen ĉiuj tiuj titolaj kaj aĵoj 724 01:06:07,980 --> 01:06:12,020 kiel respondo 200 aŭ respondon alidirektilo aŭ kion ajn, 725 01:06:12,020 --> 01:06:18,230 titolaj estas nur valida ĝis la unua bitoko de datumoj estas sendita. 726 01:06:18,230 --> 01:06:23,140 Vi povas redirekti miloj da fojoj, sed tuj kiam la unua bitoko de datumoj estas sendita 727 01:06:23,140 --> 01:06:26,120 vi ne supozas ke alidirektilo denove. 728 01:06:26,120 --> 01:06:31,860 >> Se vi havas perditaj linion ĉe la malsupro de dosiero 729 01:06:31,860 --> 01:06:37,260 kaj diru ke vi uzas tiun funkcion kaj poste vi volas - 730 01:06:41,580 --> 01:06:52,870 Diru ĝi estas alia dosiero kiu estas index.php kaj vi require_once ion - 731 01:06:52,870 --> 01:06:56,920 Mi ne povas pensi pri bona ekzemplo de tio. 732 01:06:56,920 --> 01:07:04,740 La temo okazas kiam tiu linio je la malsupro gets eĥon. 733 01:07:04,740 --> 01:07:08,660 Vi ne volas ion por ili eĥis ankoraŭ. 734 01:07:10,820 --> 01:07:15,700 Kvankam vi ne intencas sur io getting eĥon, iu faris get eĥis 735 01:07:15,700 --> 01:07:17,990 kaj nun vi ne devus sendi plu titolaj 736 01:07:17,990 --> 01:07:20,030 kaj vi ricevos akuzojn. 737 01:07:22,170 --> 01:07:24,420 Vi simple ne bezonas tiujn fermo etikedoj. 738 01:07:24,420 --> 01:07:27,420 Se vi planas fari ion per HTML - 739 01:07:27,420 --> 01:07:30,490 kaj estas perfekte racia fari cxi tie div ajn 740 01:07:30,490 --> 01:07:39,450 kaj poste en ĉi tiu punkto vi povas aŭ vi ne povas inkludi ilin. 741 01:07:39,450 --> 01:07:41,590 Fakte ne gravas. 742 01:07:41,590 --> 01:07:45,450 Sed en PHP skriptoj estas malofta por fermi ĝin. 743 01:07:45,450 --> 01:07:50,400 Kiam ĉiu estas PHP, absolute ĉio, 744 01:07:50,400 --> 01:07:55,460 vi ne vere bezonas fermi ĝin / vi ne devus fermi ĝin. 745 01:08:02,030 --> 01:08:05,720 >> Kontraktanta kun kordoj estas multe pli agrabla ol en C. 746 01:08:05,720 --> 01:08:09,470 En PHP vi povas specifi ŝnuro kun solaj aŭ duoblaj citiloj. 747 01:08:09,470 --> 01:08:12,820 Kun sola citaĵoj vi povas ne uzi "ellasilo" sekvencoj. 748 01:08:12,820 --> 01:08:17,640 Senĉese eskapi, bla, bla, bla. 749 01:08:19,920 --> 01:08:24,010 Do printf estas tre malofta en PHP. 750 01:08:24,010 --> 01:08:32,290 Mi supozas mi uzus printf, se mi volis fari ian aferon - en pset 5 vi uzis sprintf aŭ kion ajn. 751 01:08:32,290 --> 01:08:36,060 Sed vi volas fari 001.jpg kaj 002.jpg. 752 01:08:36,060 --> 01:08:40,300 Do por tiaj aferoj, kie mi vere volas formati la tekston mi uzus printf. 753 01:08:40,300 --> 01:08:44,689 Sed alie mi apenaŭ uzas ĉenon kunmeto. 754 01:08:44,689 --> 01:08:47,000 Mi neniam vere uzos printf. 755 01:08:49,229 --> 01:09:00,170 Ni nur diferenci la detalojn inter simpla kaj duobla citaĵoj citaĵoj. 756 01:09:00,170 --> 01:09:07,490 La plej granda diferenco estas, ke simpla citaĵoj, estos presita laŭvorte. 757 01:09:07,490 --> 01:09:15,390 Ne estas char datumtipo en PHP, kontraste C, do tiu estas ekvivalento al ĉi tio. 758 01:09:15,390 --> 01:09:17,970 Ili estas tiel sanaj. 759 01:09:17,970 --> 01:09:29,180 Kaj la bela afero pri simpla citaĵo kordoj estas mi povus diri 'saluton mondo!' bla, bla, bla, 760 01:09:29,180 --> 01:09:33,340 $ $ Wooo. 761 01:09:33,340 --> 01:09:38,260 Kio okazas kiam mi presi ĉi estas presos ĝin laŭvorte. 762 01:09:38,260 --> 01:09:40,680 Lasu la forigi ĉiuj niaj aĵoj. 763 01:09:40,680 --> 01:09:44,700 Do eĥon $ str1; 764 01:09:48,569 --> 01:09:56,570 Ĝi laŭvorte presitaj ĉiuj el tiuj aferoj: dolaro signoj, 765 01:09:56,570 --> 01:09:58,770 backslash n, kiu vi pensus estus newlines - 766 01:09:58,770 --> 01:10:01,500 ĉiuj el tiuj aĵoj li presas laŭvorte. 767 01:10:01,500 --> 01:10:05,650 La sola afero kiun vi bezonas por eskapi estas sola citaĵoj 768 01:10:05,650 --> 01:10:09,470 ĉar alie ĝi pensus ĝi estas fermi la solan citaĵoj. 769 01:10:09,470 --> 01:10:15,050 Duobla citaĵoj, tute malsama. 770 01:10:20,300 --> 01:10:25,870 Ni jam vidas la sintaksa kolorigo estas cluing nin al kio estas pri iri terure erara. 771 01:10:25,870 --> 01:10:36,190 php.unique. Nedifinita variablo: Wooo ĉar ĉi tiu estas interpretita kiel variablo nomis Wooo. 772 01:10:36,190 --> 01:10:42,400 Duobla citaĵoj lasu vin enmeti variablojn en - 773 01:10:42,400 --> 01:10:52,730 Diru $ nomo = "Rob"; 774 01:10:52,730 --> 01:10:58,020 Do eĥon "Saluton, mia nomo estas $ nomo!"; 775 01:10:58,020 --> 01:11:09,260 Ĝi rekonas tion kiel variablo. 776 01:11:09,260 --> 01:11:21,210 Kiam mi kuras ke - kaj mi enmetas novan linion - Saluton, mia nomo estas Rob! kaj saluton mondo! 777 01:11:21,210 --> 01:11:24,910 Tiu estas ĉar mi neniam forigis la impreso de Wooo supre. 778 01:11:24,910 --> 01:11:30,020 Estas 1 plui paŝo vi povas fari. 779 01:11:30,020 --> 01:11:39,250 $ Tabelo = [1, 2, 3]; 780 01:11:39,250 --> 01:11:43,270 Kio se mi volas presi la unuan indicon de tabelo? 781 01:11:43,270 --> 01:11:45,150 Vi do $ tabelo [0]. 782 01:11:45,150 --> 01:11:49,280 La sintaksa kolorigo estas postsigno. Kio estas ĉi tuj fari? 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 Saluton, mia nomo estas 1! kio ne estas kion mi volis. 785 01:11:59,860 --> 01:12:05,050 Sintaksa kolorigo mensogis al mi. 786 01:12:05,050 --> 01:12:13,020 Ni provu 'a' -> 1, 'b' -> 2. 787 01:12:18,450 --> 01:12:21,440 Tiel estas kiel mi devus skribi ĝin. 788 01:12:26,350 --> 01:12:32,160 Neatendita sola citaĵo (T_ENCAPSED bla, bla, bla, bla, bla). 789 01:12:32,160 --> 01:12:41,780 La ideo estas ke ĝi estas ne rekoni tion kiel parto de la tabelo. 790 01:12:41,780 --> 01:12:46,620 Ĝi estas ne rekoni tion kiel tabelo indeksita per letero al. 791 01:12:46,620 --> 01:12:49,870 Vi volas fari tion ĉirkaŭita de frizita krampoj, 792 01:12:49,870 --> 01:12:54,730 kaj nun kion ajn estas en ĉi frizita streĉa estos interpolados, 793 01:12:54,730 --> 01:13:00,340 kiu estas la vorto kiun ni uzas por magie enmeto tiuj variabloj en la ĝustan lokoj. 794 01:13:00,340 --> 01:13:04,280 Nun fari tion, php.unique, kaj Hi, my name is 1! kiel atendis 795 01:13:04,280 --> 01:13:07,720 aŭ Saluton, mia nomo estas Rob! 796 01:13:14,110 --> 01:13:23,130 Unu afero kiu estas speco de agrabla pri simpla citaĵoj estas tiu - 797 01:13:23,130 --> 01:13:28,480 Ekzistas iuj kosto interpolanta. 798 01:13:30,520 --> 01:13:35,100 Se vi uzas duoblan citaĵoj, la interpretisto devas iri super ĉi tiu linio, 799 01:13:35,100 --> 01:13:41,500 certigante tion, "Ho, jen variablo. Nun mi devas iri atingi tiun variablon kaj enmeti ĝin ĉi tie." 800 01:13:41,500 --> 01:13:48,930 Eĉ se vi ne uzas ajnan variabloj, 801 01:13:48,930 --> 01:13:52,220 nenio ene de tiuj duoblaj citiloj bezonas interpolados, 802 01:13:52,220 --> 01:13:56,800 sed ankoraŭ estos malrapida ĉar ĝi bezonas por transiri la duobla citaĵoj 803 01:13:56,800 --> 01:14:00,130 serĉas aĵojn kiuj bezonas esti interpolados. 804 01:14:00,130 --> 01:14:05,360 Do simpla citaĵoj povas esti iom pli rapida se nenio bezonas al esti interpolados, 805 01:14:05,360 --> 01:14:15,650 kaj mi inklinas eĉ uzi nur citaĵoj por, 'Saluton, mia nomo estas'. $ Tabelo ['a'] ĉiuokaze. 806 01:14:15,650 --> 01:14:20,430 Tio okazas al esti ekvivalento al kion ni havis antaŭe. 807 01:14:24,840 --> 01:14:28,440 Sed estas afero de prefero. 808 01:14:28,440 --> 01:14:34,750 Se vi uzas PHP, vi probable ne zorgas pri la rapido diferencon. 809 01:14:34,750 --> 01:14:39,480 Ne estas sufiĉa por rezoni ilin, por komenci. 810 01:14:39,480 --> 01:14:43,030 >> Ajna fino demandoj? 811 01:14:47,430 --> 01:14:51,710 >> Ni vere ne eĉ trairi cxiujn pri tio, sed ĉi aĵoj estis enuiga. 812 01:14:51,710 --> 01:14:59,080 La lasta afero kiun estas speco de bela en PHP estas kiam vi kontraktanta kun HTML, 813 01:14:59,080 --> 01:15:06,450 vi uzas ĝin iom, do la bela ŝparvojo sintakso por presi variablo. 814 01:15:32,400 --> 01:15:36,730 Sen meti PHP tie, tio nomiĝas mallongaj etikedoj. 815 01:15:36,730 --> 01:15:44,330 Oficiale de PHP 5.4, ĉi tiu estas EVITINDA. 816 01:15:44,330 --> 01:15:48,640 Vi estas rekomenditaj por meti php. 817 01:15:48,640 --> 01:15:55,770 Ĉi tio estas daŭre subtenataj, tiel mallonga etikedoj kun la 01:16:02,480 Estas defaŭlte subtenata, do vi povas uzi tiujn kiel vi volas, kaj ili estas bela oportuna. 819 01:16:02,480 --> 01:16:05,700 >> Demandojn? 820 01:16:07,780 --> 01:16:09,270 Bone. 821 01:16:10,840 --> 01:16:13,800 >> Restu classy, ​​San Diego. 822 01:16:13,800 --> 01:16:16,070 [Chuckles] 823 01:16:18,620 --> 01:16:22,660 Bye. [Ridas] 824 01:16:24,350 --> 01:16:28,470 [Aplaŭdo] [ridas] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]