1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Neni 8 - më të rehatshme] 2 00:00:02,610 --> 00:00:04,910 [Rob Bowden - Universiteti i Harvardit] 3 00:00:04,910 --> 00:00:07,070 [Kjo është CS50. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> Këto shënime seksion javë do të jetë mjaft e shkurtër, 5 00:00:14,160 --> 00:00:19,070 kështu që unë jam vetëm do të vazhdoni të flisni, ju djema jeni duke shkuar për të mbajtur pyetje, 6 00:00:19,070 --> 00:00:22,720 dhe ne do të përpiqemi për të mbushur kohën sa më shumë të jetë e mundur. 7 00:00:22,720 --> 00:00:31,950 Shumë njerëz mendojnë se kjo pset nuk është domosdoshmërisht e vështirë, por është shumë e gjatë. 8 00:00:31,950 --> 00:00:37,070 Spekulim pset vetë merr një orë për të lexuar. 9 00:00:40,530 --> 00:00:45,730 Ne ju japim një shumë të SQL ju mund ndoshta duhet të përdorni. 10 00:00:45,730 --> 00:00:50,520 Ne ecin ju nëpërmjet një shumë e saj, kështu që nuk duhet të jetë shumë e keqe. 11 00:00:50,520 --> 00:00:54,560 Ka dikush filluar apo mbaruar? 12 00:00:55,380 --> 00:00:59,710 Është pset fundit. Oh, Zoti im. 13 00:00:59,710 --> 00:01:05,400 Zakonisht ka një të aktivizoni Java një pas kësaj, por gjërat ndryshojnë kalendarike 14 00:01:05,400 --> 00:01:09,560 bën gjithçka 1 javë shkurtër, dhe ne nuk kemi një pset JavaScript. 15 00:01:09,560 --> 00:01:12,310 Unë nuk e di se si ndikon nëse JavaScript është do të paraqitet në provim 16 00:01:12,310 --> 00:01:15,510 ose Quiz 1. 17 00:01:15,510 --> 00:01:22,260 Unë e imagjinoj se do të jetë diçka si ju duhet të dini të nivelit të lartë në lidhje me gjërat JavaScript, 18 00:01:22,260 --> 00:01:26,460 por unë dyshoj që ne vetëm do të ju jap të drejtë JavaScript kodin 19 00:01:26,460 --> 00:01:28,720 që ju nuk keni pasur një pset në të. 20 00:01:28,720 --> 00:01:33,000 Por kjo do të jetë gjëra për rishqyrtim quiz javën e ardhshme. 21 00:01:33,000 --> 00:01:36,320 >> Seksioni i pyetjeve. 22 00:01:36,320 --> 00:01:43,870 Një shumë e këtij stuff është disi dobët formuluara, por ne do të diskutuar pse. 23 00:01:43,870 --> 00:01:50,220 Ndryshe C, PHP është një "dinamike-typed" gjuha. Çfarë do të thotë kjo, që ju kërkoni? 24 00:01:50,220 --> 00:01:53,830 E pra, Thuaj lamtumirë për të gjithë ata që noton, char, int, dhe fjalë kyçe të tjera që ju duhet të përdorni 25 00:01:53,830 --> 00:01:56,190 kur duke deklaruar variablave dhe funksioneve në C. 26 00:01:56,190 --> 00:02:00,420 Në PHP, lloji një ndryshore është përcaktuar nga vlera se ajo aktualisht mbajnë. 27 00:02:00,420 --> 00:02:04,990 Pra, para se të shkruani këtë kod në një skedar të quajtur dynamic.php, 28 00:02:04,990 --> 00:02:12,670 PHP është shtypur dinamike. Kjo është e vërtetë. 29 00:02:12,670 --> 00:02:17,590 Unë pajtohem me faktin se që do të thotë ne jemi duke thënë lamtumirë char, noton, int, 30 00:02:17,590 --> 00:02:20,620 dhe fjalë kyçe të tjera. 31 00:02:20,620 --> 00:02:25,510 Dallimi në mes të saktë shtypur dhe dinamike alternativë, 32 00:02:25,510 --> 00:02:32,010 e cila është shtypur statically, është që shtypen dinamike, të gjithë kontrollin tuaj lloj dhe sende 33 00:02:32,010 --> 00:02:37,350 ndodh në kohë të drejtuar, ndërsa shtypur statically kjo ndodh në kohën e kompilimit. 34 00:02:37,350 --> 00:02:43,030 Fjala statike në përgjithësi duket të thotë gjëra kohën e kompilimit. 35 00:02:43,030 --> 00:02:48,170 I guess ka përdorime të tjera për të, por në C, kur ju të deklarojë një ndryshore statike, 36 00:02:48,170 --> 00:02:52,650 ruajtjen e tij është ndarë në kohën e kompilimit. 37 00:02:52,650 --> 00:02:59,260 Këtu, shtypen dinamike thjesht do të thotë se - 38 00:02:59,260 --> 00:03:04,350 Në C nëse ju përpiqeni për të shtuar një varg dhe një numër i plotë, kur ju përpiloni atë, 39 00:03:04,350 --> 00:03:11,000 ajo do të ankohen për shkak se kjo do të thotë se ju nuk mund të shtoni një int dhe një akrep. 40 00:03:11,000 --> 00:03:14,710 Kjo nuk është vetëm një operacion i vlefshëm. 41 00:03:14,710 --> 00:03:21,170 Kjo është një tjetër gjë që ne do të merrni në një sekondë. 42 00:03:21,170 --> 00:03:24,860 Por kjo lloj i kontrollit, fakti se ajo ankohet në kohën e kompilimit, 43 00:03:24,860 --> 00:03:29,220 është kontrolluar statike lloji. 44 00:03:29,220 --> 00:03:35,220 Ka gjuhë ku ju nuk keni nevojë të them char noton,, int, dhe të gjitha këto gjëra, 45 00:03:35,220 --> 00:03:40,940 por gjuha mund të them nga konteksti i gjë se çfarë lloji është menduar të jetë, 46 00:03:40,940 --> 00:03:43,980 por ajo është ende shtypur statically. 47 00:03:43,980 --> 00:03:49,000 Pra, nëse ju merrni 51, OCaml, ju kurrë nuk duhet të përdorni ndonjë nga këto lloje, 48 00:03:49,000 --> 00:03:58,700 por ai ende do të në kohën e kompilimit të thonë se ju nuk mund ta bëjë këtë, sepse ju jeni përzierjen një int dhe një varg. 49 00:03:58,700 --> 00:04:05,650 Typed dinamike thjesht do të thotë se dikur gjatë kohës të drejtuar ju jeni duke shkuar për të marrë një ankesë. 50 00:04:05,650 --> 00:04:13,430 Nëse ju keni përdorur gjithashtu Java më parë, në përgjithësi, pothuajse çdo lloj C-Gjuha 51 00:04:13,430 --> 00:04:20,070 do të jetë shtypur statically, kështu C, C + +, Java, të gjithë ata janë në përgjithësi të shtypur statically. 52 00:04:20,070 --> 00:04:22,910 Në Java, kur ju përpilojnë diçka dhe ju jeni duke thënë 53 00:04:22,910 --> 00:04:26,670 string s barabartë me diçka të re që nuk është një varg, 54 00:04:26,670 --> 00:04:28,950 se do të ankohen për shkak se ato lloje thjesht nuk përputhen deri. 55 00:04:28,950 --> 00:04:31,180 Kjo do të ankohen në kohën e kompilimit. 56 00:04:31,180 --> 00:04:36,750 Por ajo gjithashtu ka disa kohë dinamike gjëra të tilla si nëse ju përpiqeni të hedhur diçka 57 00:04:36,750 --> 00:04:40,500 të një lloji që është më specifike se llojin e saj aktuale, 58 00:04:40,500 --> 00:04:45,610 nuk ka asgjë që mund të bëni në kohën e kompilimit të kontrolloni nëse ky cast do të ketë sukses. 59 00:04:45,610 --> 00:04:51,130 Java gjithashtu ka disa lloj dinamike duke kontrolluar se sa më shpejt që ajo merr në atë linjë të kodit 60 00:04:51,130 --> 00:04:54,130 kur ajo është në fakt ekzekutimin, ajo do të bëjë të hedhura, 61 00:04:54,130 --> 00:04:56,260 kontrolloni nëse kjo ishte e vlefshme të hedhura në vendin e parë, 62 00:04:56,260 --> 00:04:59,890 dhe në qoftë se ajo nuk ishte, atëherë ajo do të ankohen se ju keni një lloj të pavlefshme. 63 00:04:59,890 --> 00:05:03,200 Lloji dinamike kontrolluar. 64 00:05:03,200 --> 00:05:07,010 Shkruani këtë në një skedar të quajtur dynamic.php. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 Unë do të unzip atë formatim. 67 00:05:18,750 --> 00:05:21,880 Ne kemi një ndryshore, ne kemi ngritur atë në 7 numër i plotë, 68 00:05:21,880 --> 00:05:27,930 atëherë ne jemi duke shkuar për të shkruar atë dhe% s - 69 00:05:27,930 --> 00:05:32,830 Oh, ne jemi shtypjen llojin e saj, kështu që gettype do të kthehet në llojin e ndryshueshme. 70 00:05:32,830 --> 00:05:35,720 Ne jemi vetëm shtypjen e llojit pushim. 71 00:05:35,720 --> 00:05:39,440 Ne vetëm php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 Ne do të shohim se ajo ndryshon nga numër i plotë në varg me boolean si ne të shkojnë përmes. 73 00:05:45,920 --> 00:05:54,590 Në C nuk ka Boolean dhënave lloji, nuk ka të dhëna string lloji. 74 00:05:54,590 --> 00:06:00,500 Ka char * Boolean dhe tenton të jetë vetëm int, ose char apo diçka. 75 00:06:00,500 --> 00:06:05,690 Në PHP këto lloje ekzistojnë, dhe kjo është një nga përparësitë e mëdha të PHP mbi C - 76 00:06:05,690 --> 00:06:13,290 se operacionet string janë pafundësisht më e lehtë se sa në PHP C. Ata vetëm punë. 77 00:06:13,290 --> 00:06:18,290 >> Pra, kemi ardhur përsëri këtu. 78 00:06:18,290 --> 00:06:21,260 Ne u dynamic.php. 79 00:06:21,260 --> 00:06:26,710 Kjo tregon përkthyes PHP, php quajtur, për të kandiduar kodin PHP në dynamic.php. 80 00:06:26,710 --> 00:06:30,250 Nëse keni ndonjë gabim në dosjen, përkthyesi do të thoni ju! 81 00:06:30,250 --> 00:06:39,110 Përkthyesi, kjo është një tjetër dallim i madh në mes PHP dhe C. 82 00:06:39,110 --> 00:06:48,200 Në C ju duhet të hartojnë diçka dhe pastaj ju drejtuar këtë dosje hartuar. 83 00:06:48,200 --> 00:06:50,490 Në PHP ju kurrë nuk përpilojnë asgjë. 84 00:06:50,490 --> 00:06:57,200 Pra, përkthyesi PHP është në thelb vetëm duke e lexuar këtë rresht pas rreshti. 85 00:06:57,200 --> 00:07:02,900 Ajo godet var = 7 atëherë ai godet printf atëherë ajo godet var atëherë ajo godet printf dhe kështu me radhë. 86 00:07:02,900 --> 00:07:10,910 Nuk është pak e përpilimit bën atë, dhe ajo arka rezultatet 87 00:07:10,910 --> 00:07:15,510 kështu që nëse ju drejtuar script vonë ju mund të bëni disa, 88 00:07:15,510 --> 00:07:19,280 por në thelb kjo është një linjë e rendit sipas linjës gjë. 89 00:07:19,280 --> 00:07:25,280 Kjo do të thotë se një shumë e optimizations që kemi marrë në C, 90 00:07:25,280 --> 00:07:31,920 si hartimin, kjo është vetëm në përgjithësi përpiluesit mund të bëjë një shumë të mashtrimeve për ju. 91 00:07:31,920 --> 00:07:36,110 Ajo mund të marrë nga variablave të papërdorura, ajo mund të bëjë të gjitha këto llojet e gjërave, 92 00:07:36,110 --> 00:07:38,660 ajo mund të bëjë bisht recursion. 93 00:07:38,660 --> 00:07:42,550 Në PHP ju nuk do të merrni atë avantazh 94 00:07:42,550 --> 00:07:45,690 sepse ajo është vetëm do të fillojë ekzekutimin rresht pas rreshti nga rreshti, 95 00:07:45,690 --> 00:07:49,950 dhe ajo nuk ka të vërtetë njohin këto gjëra aq lehtë 96 00:07:49,950 --> 00:07:54,440 pasi ajo nuk është e madhe 1 kalojë hartimi mbi gjë dhe pastaj ekzekutimi; 97 00:07:54,440 --> 00:07:56,860 kjo është vetëm rresht pas rreshti. 98 00:08:00,730 --> 00:08:02,750 Pra, kjo është përkthyesi. 99 00:08:02,750 --> 00:08:06,840 >> Kthehu tek shtypja tonë dinamik: pretty cool, eh? 100 00:08:06,840 --> 00:08:08,640 Ju definitivisht nuk mund ta bëjë këtë në C! 101 00:08:08,640 --> 00:08:11,860 Tani, shihni nëse ju mund ta kuptoj se llojin e secilit prej vlerave të mëposhtme. 102 00:08:11,860 --> 00:08:14,760 Shohin këtë për referencë. 103 00:08:14,760 --> 00:08:19,420 Pra, 3.50. Çfarë lloji mendoni se do të jetë? 104 00:08:24,480 --> 00:08:26,370 Këtu janë llojet e kemi. 105 00:08:26,370 --> 00:08:30,430 Ne kemi bools, integers, pikë lundrues, vargjet, vargjeve, objekte, 106 00:08:30,430 --> 00:08:38,370 dhe pastaj burimet, që është lloj i paqartë. 107 00:08:38,370 --> 00:08:41,010 Unë mendoj se ka të vërtetë një shembull këtu. 108 00:08:41,010 --> 00:08:43,740 Pastaj ka NULL. NULL është një lloj i veçantë. 109 00:08:43,740 --> 00:08:47,140 Ndryshe C ku NULL është vetëm një tregues me adresën 0, 110 00:08:47,140 --> 00:08:54,930 në PHP, NULL është lloji vet, ku e vetmja gjë e vlefshme e këtij lloji është NULL. 111 00:08:57,560 --> 00:09:00,670 Kjo është shumë më e dobishme për kontrollin gabim. 112 00:09:00,670 --> 00:09:04,310 Në C, ku kemi pasur këtë çështje, ku në qoftë se ju kthehen NULL, 113 00:09:04,310 --> 00:09:08,660 do të thotë që ju jeni kthyer një tregues NULL NULL ose duke përdorur të ditur gabim 114 00:09:08,660 --> 00:09:12,380 ose të gjitha që kemi pasur konfuzion në një pikë. 115 00:09:12,380 --> 00:09:18,440 Këtu, NULL kthyer në përgjithësi do të thotë gabim. 116 00:09:20,860 --> 00:09:27,300 Shumë gjëra të kthehen false për gabim. 117 00:09:27,300 --> 00:09:33,140 Por pikë është lloji NULL, gjëja e vetme e llojit NULL NULL është. 118 00:09:33,140 --> 00:09:40,090 Pastaj callback është si ju mund të përcaktojë disa funksione anonime. 119 00:09:40,090 --> 00:09:46,420 Ju nuk keni për t'i dhënë një funksion emër, por ju nuk do të duhet të merren me këtë këtu. 120 00:09:46,420 --> 00:09:53,940 Duke parë në llojet që ata nuk presin që ne të dimë, 121 00:09:53,940 --> 00:09:59,000 çfarë mendoni lloji i 3,50 është? >> [Student] noton. 122 00:09:59,000 --> 00:10:00,370 Po. 123 00:10:00,370 --> 00:10:06,290 Kështu atëherë këtu, çfarë mendoni se lloji i kësaj është? >> [Student] Array. 124 00:10:06,290 --> 00:10:09,890 Po. I pari ishte noton, e dyta është një grup. 125 00:10:09,890 --> 00:10:14,500 Vini re se ky grup nuk është si një rrjet C 126 00:10:14,500 --> 00:10:19,610 ku keni indeks 0 ka disa vlera, indeksi 1 ka disa vlera. 127 00:10:19,610 --> 00:10:26,320 Këtu indekset janë a, b, dhe c dhe vlerat janë 1, 2, dhe 3. 128 00:10:26,320 --> 00:10:33,980 Në PHP nuk ka dallim në mes të një sërë associative dhe vetëm një grup të rregullt 129 00:10:33,980 --> 00:10:36,740 si ju do të mendojnë për atë në C. 130 00:10:36,740 --> 00:10:43,040 Nuk është vetëm kjo, dhe nën kapuç një koleksion të rregullt është vetëm një grup shoqerues 131 00:10:43,040 --> 00:10:50,000 ku 0 harta në disa vlera të njëjtën mënyrë një harta në disa vlera. 132 00:10:50,000 --> 00:11:00,410 Për këtë arsye, PHP mund të jetë goxha i keq për të vërtetë të shpejtë të kodit / krahasimit gjëra 133 00:11:00,410 --> 00:11:07,930 pasi në C, kur ju jeni duke përdorur një rrjet ju e dini që qasja një anëtar është koha konstante. 134 00:11:07,930 --> 00:11:11,860 Në PHP hyrë një anëtar është kush e di sa kohë? 135 00:11:11,860 --> 00:11:18,970 Kjo është ndoshta vazhdueshme nëse ajo hashes saktë. 136 00:11:18,970 --> 00:11:21,620 Kush e di se çfarë është me të vërtetë duke bërë nën kapuç? 137 00:11:21,620 --> 00:11:25,600 Ju me të vërtetë duhet të shikoni në zbatimin e të shohin se si ajo do të merret me këtë. 138 00:11:25,600 --> 00:11:28,550 Kështu atëherë fopen. 139 00:11:28,550 --> 00:11:36,420 Unë mendoj se këtu, le të vetëm fopen PHP manual për të parë në llojin e kthimit. 140 00:11:36,420 --> 00:11:41,260 Ne shohim këtu ju mund të kërkoni pretty much çdo funksion në manualin e PHP 141 00:11:41,260 --> 00:11:47,540 dhe kjo është lloj i faqes njeri i PHP. 142 00:11:47,540 --> 00:11:51,060 Lloji i kthimit do të jetë burim. 143 00:11:51,060 --> 00:11:56,050 Kjo është arsyeja pse kam shikuar atë, sepse ne nuk të vërtetë të përcaktuar burim. 144 00:11:56,050 --> 00:12:04,110 Ideja e burimeve, në C ju lloj i mori një * skedar apo çfarëdo; 145 00:12:04,110 --> 00:12:07,200 në PHP burim është * e skedarëve. 146 00:12:07,200 --> 00:12:10,360 Kjo është ajo që ju do të jeni të lexuar nga, kjo është ajo që ju jeni do të jetë me shkrim për të. 147 00:12:10,360 --> 00:12:20,710 Kjo është zakonisht të jashtme, kështu që është një burim që ju mund të tërheqë gjëra nga dhe hedhin gjëra për të. 148 00:12:20,710 --> 00:12:26,520 Dhe së fundi, çfarë është lloji i NULL? >> [Student] NULL. 149 00:12:26,520 --> 00:12:30,650 Po. Pra, e vetmja gjë që është NULL NULL është. 150 00:12:30,650 --> 00:12:33,480 NULL NULL është. 151 00:12:35,490 --> 00:12:41,170 >> Një tipar i sistemit PHP tipit (për mirë apo për keq) është aftësia e tij për të mashtroj lloje. 152 00:12:41,170 --> 00:12:44,390 Kur ju shkruani një linjë të kodit PHP që kombinon vlerat të llojeve të ndryshme, 153 00:12:44,390 --> 00:12:46,670 PHP do të përpiqet të bëjë gjënë e ndjeshme. 154 00:12:46,670 --> 00:12:48,920 Provoni secilën nga linjat e mëposhtme të kodit PHP. Çfarë është shtypur jashtë? 155 00:12:48,920 --> 00:12:51,000 Është kjo ajo që keni pritur? Pse ose pse jo? 156 00:12:51,000 --> 00:12:58,600 Ky fakt në lidhje me PHP është ajo që e bën atë çka ne e quajmë dobët shtypen. 157 00:12:58,600 --> 00:13:04,610 Shtypur dobët dhe të shtypur me forcë, 158 00:13:04,610 --> 00:13:06,840 ka përdorime të ndryshme për këto terma, 159 00:13:06,840 --> 00:13:12,020 por shumica e njerëzve përdorin shtypur dobët dhe të shtypur me forcë të thotë këtë gjë e tillë 160 00:13:12,020 --> 00:13:15,920 ku ("1" + 2); që punon. 161 00:13:15,920 --> 00:13:18,290 Në C që nuk do të punojë. 162 00:13:18,290 --> 00:13:22,490 Ju mund të imagjinoni këtë nuk punon. 163 00:13:22,490 --> 00:13:29,200 Shumë njerëz përzierje deri typing dinamike dhe shtypni dobët dhe shtypja statike dhe shtypja e fortë. 164 00:13:29,200 --> 00:13:34,050 Python është një tjetër shembull i një gjuhe që është shtypur dinamike. 165 00:13:34,050 --> 00:13:41,770 Ju mund të hedhin rreth llojeve në variablave dhe kjo do të përcaktojë në kohë të drejtuar 166 00:13:41,770 --> 00:13:44,680 ndonjë checkings error. 167 00:13:44,680 --> 00:13:50,740 Në Python ajo do të ekzekutojë këtë dhe kjo do të shihni ("1" + 2); 168 00:13:50,740 --> 00:13:55,920 dhe kjo do të dështojë, sepse ajo thotë se ju nuk mund të shtoni një varg dhe një numër të plotë. 169 00:13:55,920 --> 00:14:00,860 Në PHP, e cila është po aq dinamike shtypen, kjo nuk do të dështojnë. 170 00:14:00,860 --> 00:14:04,220 Shtypja e dobët ka të bëjë me faktin se ai bën gjërat me lloje të 171 00:14:04,220 --> 00:14:07,800 që nuk ka kuptim të vërtetë domosdoshmërisht. 172 00:14:07,800 --> 00:14:17,420 Pra, ("1" + 2), unë mund të imagjinohet se të jesh string 12, unë mund të imagjinohet se është vargu 3, 173 00:14:17,420 --> 00:14:20,710 Unë mund ta imagjinoj se është numër i plotë 3. 174 00:14:20,710 --> 00:14:24,530 Kjo nuk është domosdoshmërisht e mirë përcaktuar, dhe ne jeni me siguri do të shohim këtu 175 00:14:24,530 --> 00:14:29,140 se kur kemi shkruar ("1" + 2), kjo ndoshta do të përfundojë si të ndryshme 176 00:14:29,140 --> 00:14:32,320 se shtypjes (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 Dhe kjo tendencë të jetë, sipas mendimit tim, për më keq. 178 00:14:39,700 --> 00:14:44,240 Këtu mund të provoni këto. 179 00:14:44,240 --> 00:14:48,740 Një tjetër mashtrim pak rreth PHP është që ju nuk keni nevojë që në fakt shkruani skedarin. 180 00:14:48,740 --> 00:14:52,790 Ajo nuk e kanë drejtuar këtë mënyrë komanduese. 181 00:14:52,790 --> 00:14:57,710 Pra, php-r, atëherë ne mund të hedhin në komandën këtu: 182 00:14:57,710 --> 00:15:06,610 "Print ('1 '+ 2)," dhe unë do të hedh një linjë të re. 183 00:15:19,550 --> 00:15:23,970 Kjo shtypura 3. 184 00:15:31,100 --> 00:15:35,330 Ajo duket si ajo printon 3 dhe kjo është 3 integer. 185 00:15:35,330 --> 00:15:38,420 Pra, tani le të përpiqemi anasjelltas: 186 00:15:38,420 --> 00:15:42,970 "Printimit (1 + '2 '); 187 00:15:45,560 --> 00:15:50,490 Ne kemi marrë 3, dhe ajo gjithashtu do të jetë numër i plotë 3? Unë sinqerisht nuk kam asnjë ide. 188 00:15:50,490 --> 00:15:54,030 Ajo duket si kjo është në përputhje. 189 00:15:54,030 --> 00:15:59,550 Nuk ka kurrë ndonjë shans për të qenë 12 string ose diçka të tillë 190 00:15:59,550 --> 00:16:08,080 sepse PHP, JavaScript dhe Java ndryshe shumë, 191 00:16:08,080 --> 00:16:11,670 ka një operator të veçantë për varg. 192 00:16:11,670 --> 00:16:14,930 Varg në PHP është dot. 193 00:16:14,930 --> 00:16:22,950 Pra, shtypjen (1 '2 '.); Do të na japë 12. 194 00:16:25,790 --> 00:16:32,420 Kjo tenton të çojë në konfuzion, ku njerëzit përpiqen të bëjnë diçka si rr + = 195 00:16:32,420 --> 00:16:37,840 diçka tjetër që ata duan të shtoni në fund të vargut të tyre, dhe se do të dështojë. 196 00:16:37,840 --> 00:16:40,770 Ju duhet të bëni rr. = 197 00:16:42,000 --> 00:16:46,240 Pra, mos harroni varg në PHP është një dot. 198 00:16:46,240 --> 00:16:52,100 Gjëra të tjera të përpiqen: print ("CS" + 50); 199 00:16:55,750 --> 00:17:03,610 Unë kam thënë se nuk ka shpresë për këtë rezulton në CS50 200 00:17:03,610 --> 00:17:06,119 pasi nuk është varg +. 201 00:17:06,119 --> 00:17:08,440 Çfarë mendoni ju se kjo do të përfundojë si? 202 00:17:10,359 --> 00:17:13,460 Unë sinqerisht kam absolutisht asnjë ide. 203 00:17:14,250 --> 00:17:16,460 Ajo duket si ajo është vetëm 50. 204 00:17:16,460 --> 00:17:21,490 Ajo e sheh string, dhe unë bast nëse kemi vënë 123CS - 205 00:17:21,490 --> 00:17:29,640 Ajo e sheh vargun e parë, ajo përpiqet për të lexuar një numër të plotë nga ai, ose një numër prej saj. 206 00:17:29,640 --> 00:17:31,710 Në këtë rast ajo sheh 123CS. 207 00:17:31,710 --> 00:17:35,190 "Kjo nuk ka kuptim, si një numër të plotë, kështu që unë jam vetëm do të mendojnë për 123". 208 00:17:35,190 --> 00:17:38,580 Pra, 123 + 50 do të jetë 173. 209 00:17:38,580 --> 00:17:40,740 Dhe këtu ajo fillon duke e lexuar këtë si një numër të plotë. 210 00:17:40,740 --> 00:17:45,690 Ajo nuk e sheh asgjë, kështu që vetëm e trajton atë si 0. Pra, 0 + 50 do të jetë 50. 211 00:17:45,690 --> 00:17:51,600 Këtë unë jam duke supozuar do të bëjë diçka të ngjashme. 212 00:17:51,600 --> 00:17:54,310 Unë jam duke menduar 99. 213 00:17:54,310 --> 00:17:57,580 Po, sepse ajo do të marrë të parë - 214 00:18:12,880 --> 00:18:15,730 Pra 99. 215 00:18:15,730 --> 00:18:21,970 Këtu (10/7), në qoftë se kjo ishte C, çfarë do që të kthehen? 216 00:18:23,700 --> 00:18:29,630 [Student] 1. Po >>, ajo do të jetë 1 për shkak se 10/7 është ndarë 2 integers. 217 00:18:29,630 --> 00:18:32,910 Një numër i plotë ndarë nga një numër i plotë do të kthehet një numër të plotë. 218 00:18:32,910 --> 00:18:37,750 Ajo nuk mund të kthehen 1 pikë çfarëdo që do të jetë, kështu që ajo është vetëm do të kthehen 1. 219 00:18:37,750 --> 00:18:46,120 Këtu shtypjen (10/7), ajo do të interpretojë në fakt se. 220 00:18:46,120 --> 00:18:53,760 Dhe kjo do të thotë se në qoftë se ju në të vërtetë doni të bëni arrestimi integer dhe stuff like that, 221 00:18:53,760 --> 00:18:59,950 ju duhet të bëni të shtypura (kati (10/7)); 222 00:18:59,950 --> 00:19:08,460 Në C është ndoshta e çuditshme që ju mund të mbështetet në truncation integer rregullisht, 223 00:19:08,460 --> 00:19:12,260 por në PHP ju nuk mund të, sepse ajo automatikisht do të kthejnë atë në një noton. 224 00:19:13,430 --> 00:19:17,610 Dhe pastaj (7 + e vërtetë), çfarë mendoni se do të jetë? 225 00:19:18,550 --> 00:19:23,640 Unë jam guessing 8 në qoftë se ajo do të interpretojë vërtetë si 1. 226 00:19:23,640 --> 00:19:25,740 Ajo duket si ajo është 8. 227 00:19:25,740 --> 00:19:31,710 >> Kështu që çdo gjë që ne kemi bërë në 10 minuta të fundit që ju kurrë nuk duhet absolutisht të bëjë. 228 00:19:31,710 --> 00:19:39,870 Ju do të shihni kodin që e bën këtë. 229 00:19:39,870 --> 00:19:42,700 Ajo nuk duhet të jetë aq i thjeshtë si kjo. 230 00:19:42,700 --> 00:19:47,240 Ju mund të keni 2 variablave, dhe 1 ndryshueshme ndodh të jetë një varg 231 00:19:47,240 --> 00:19:51,310 dhe variabël tjetër ndodh të jetë një int, dhe pastaj ju shtoni këto variabla së bashku. 232 00:19:51,310 --> 00:20:00,120 Që PHP është shtypur dinamike dhe ajo nuk do të bëjë asnjë lloj kontrolluar për ju 233 00:20:00,120 --> 00:20:03,640 dhe që nga ajo e shtypur dobët dhe që ajo thjesht do të automatikisht të hedhin këto gjëra së bashku 234 00:20:03,640 --> 00:20:11,490 dhe çdo gjë do të punojnë vetëm, kjo është e vështirë të di edhe se kjo duhet të jetë një variabël string tani, 235 00:20:11,490 --> 00:20:14,930 kështu që unë nuk duhet të shtoni atë në këtë variabël, që është një numër të plotë. 236 00:20:18,780 --> 00:20:24,560 Praktika më e mirë është nëse një ndryshore është një varg, mbani atë si një varg përgjithmonë. 237 00:20:24,560 --> 00:20:26,980 Nëse një variabël është një int, mbani atë si një int përgjithmonë. 238 00:20:26,980 --> 00:20:30,770 Nëse ju doni që të merren me integers dhe vargjet, 239 00:20:30,770 --> 00:20:36,970 ju mund të përdorni varsint - kjo është JavaScript. 240 00:20:36,970 --> 00:20:42,520 Intval. Unë e bëj këtë gjatë gjithë kohës. PHP dhe JavaScript unë përzierje gjithçka. 241 00:20:42,520 --> 00:20:47,600 Pra intval do të kthejë vlerën numër të plotë të një variable. 242 00:20:47,600 --> 00:20:56,550 Nëse ne të kalojë në "shtyp (intval ('123 ')); që ju të merrni 123. 243 00:21:06,820 --> 00:21:15,850 Intval në vetvete nuk do të bëjë kontroll për ne që kjo është vetëm një numër të plotë. 244 00:21:15,850 --> 00:21:20,460 Manuali i PHP, nuk janë vetëm kaq shumë funksione në dispozicion, 245 00:21:20,460 --> 00:21:26,560 kështu që këtu unë mendoj se ajo që unë do të përdorin është is_numeric parë. 246 00:21:26,560 --> 00:21:32,590 Unë jam guessing se kthye rreme. 247 00:21:32,590 --> 00:21:35,780 Kjo është një tjetër gjë që ne kemi për të shkuar gjatë është ===. 248 00:21:37,850 --> 00:21:44,020 Pra is_numeric (''123df), ju nuk do të mendojnë se si is_numeric. 249 00:21:44,020 --> 00:21:46,720 Në C ju do të keni për të iterate mbi të gjitha karakteret 250 00:21:46,720 --> 00:21:50,410 dhe kontrolloni për të parë nëse çdo karakter është shifra apo çfarëdo. 251 00:21:50,410 --> 00:21:53,850 Këtu is_numeric do të bëjë që për ne, 252 00:21:53,850 --> 00:21:56,520 dhe është kthyer rreme. 253 00:21:56,520 --> 00:22:02,120 Kështu që kur unë të shtypura që ajo të shtypura asgjë, kështu që këtu unë jam krahasuar atë për të parë, 254 00:22:02,120 --> 00:22:05,490 nuk ju ndodh që të jetë e rreme? Dhe kështu që tani është e shtypje 1. 255 00:22:05,490 --> 00:22:10,060 Me sa duket ajo printon 1 si të vërtetë në vend të shtypjes e vërtetë si e vërtetë. 256 00:22:10,060 --> 00:22:15,790 Pyes veten në qoftë se unë bëj print_r. Jo, ajo ende ka 1. 257 00:22:15,790 --> 00:22:26,760 >> Going back to ===, == ende ekziston, 258 00:22:26,760 --> 00:22:32,260 dhe në qoftë se ju flisni me Tommy ai do të thotë == është krejtësisht gjobë. 259 00:22:32,260 --> 00:22:37,700 Unë jam duke shkuar për të thonë se == është e tmerrshme dhe ju kurrë nuk duhet të përdorin ==. 260 00:22:37,700 --> 00:22:44,870 Dallimi është se == krahason gjërat 261 00:22:44,870 --> 00:22:48,450 ku ajo mund të jetë e vërtetë edhe në qoftë se ata nuk janë të të njëjtit lloj, 262 00:22:48,450 --> 00:22:53,810 ndërsa === krahason gjërat dhe i pari ajo kontrolle janë ata njejta? 263 00:22:53,810 --> 00:22:58,010 Po. Mirë, tani unë jam duke shkuar për të parë nëse ata në fakt krahasuar të jenë të barabartë. 264 00:22:58,010 --> 00:23:08,890 Ju merrni gjëra të çuditshme si e barabartë me 10 - le të shohim se çfarë thotë. 265 00:23:08,890 --> 00:23:15,570 Kështu ('10 '== '1 E1'); 266 00:23:15,570 --> 00:23:17,980 Kjo kthen vërtetë. 267 00:23:17,980 --> 00:23:21,420 A ka dikush ndonjë supozime pse kjo Jep true? 268 00:23:25,180 --> 00:23:27,120 Kjo nuk është vetëm për atë. Ndoshta kjo është një aluzion. 269 00:23:27,120 --> 00:23:33,170 Por në qoftë se kam ndryshuar se për një f - mallkuar atë! Unë mbaj duke përdorur kuotat e dyfishtë. 270 00:23:33,170 --> 00:23:38,780 Arsyeja kuotat dyfishtë janë yelling në mua është sepse unë kam vënë këtë në thonjëza dyshe. 271 00:23:38,780 --> 00:23:43,850 Kështu që unë mund të shpëtojnë kuotat e dyfishtë në këtu, por citon vetëm të bëjë më të lehtë. 272 00:23:43,850 --> 00:23:49,120 Pra, ('10 '== '1 F1'); nuk ka shkruar vërtetë. ('10 '== '1 E1'); shtyp e vërtetë. 273 00:23:49,120 --> 00:23:56,330 [Student] A është kjo magji? >> Kjo nuk është magji, por është e ngushtë se ajo është si - 274 00:23:56,330 --> 00:24:01,060 1E1, simbol shkencore. 275 00:24:01,060 --> 00:24:07,950 Ajo njeh 1E1 si 1 * 10 ^ 1 apo çfarëdo. 276 00:24:07,950 --> 00:24:11,510 Ata janë integers barabarta. 277 00:24:11,510 --> 00:24:15,930 Nëse ne bëjmë === atëherë ajo do të jetë e rreme. 278 00:24:15,930 --> 00:24:28,490 Unë në fakt nuk kam asnjë ide nëse ne bëjmë == çfarë lidhje (10 dhe ''10abc);? Dakord. Pra, kjo është e vërtetë. 279 00:24:28,490 --> 00:24:35,940 Pra, ashtu si kur ju e bëri (10 + ''10abc), dhe kjo do të jetë 20, 280 00:24:35,940 --> 00:24:38,800 këtu (10 == ''10abc); është e vërtetë. 281 00:24:38,800 --> 00:24:45,350 Edhe më keq janë gjëra të tilla si (false == NULL); është e vërtetë 282 00:24:45,350 --> 00:24:52,210 ose (rreme == 0); është e vërtetë, (rreme == []); 283 00:24:52,210 --> 00:25:00,970 Ka raste të pazakontë - Kjo është një nga ato raste të pazakontë. 284 00:25:00,970 --> 00:25:08,110 Vini re se (== false []); është e vërtetë. 285 00:25:08,110 --> 00:25:11,950 ('0 '== False); është e vërtetë. 286 00:25:11,950 --> 00:25:16,090 ('0 '== []); Është false. 287 00:25:16,090 --> 00:25:19,090 Pra == është në asnjë mënyrë kalimtare. 288 00:25:19,090 --> 00:25:26,830 një mund të jenë të barabartë tek B dhe një mund të jenë të barabartë tek C, 289 00:25:26,830 --> 00:25:29,340 b por nuk mund të jetë e barabartë me c. 290 00:25:29,340 --> 00:25:35,580 Kjo është një gjë e neveritshme për mua, dhe ju duhet të përdorni përherë ===. 291 00:25:35,580 --> 00:25:38,590 [Student] A mund të bëjmë! == Si? >> [Bowden] Po. 292 00:25:38,590 --> 00:25:44,600 Ekuivalente do të jetë! = Dhe! ==. 293 00:25:44,600 --> 00:25:48,230 Ky fakt është sjellë deri në spekulim pset 294 00:25:48,230 --> 00:25:52,000 ku një shumë të funksioneve të kthimit - 295 00:25:52,000 --> 00:25:53,890 Manuali PHP është e mirë për këtë. 296 00:25:53,890 --> 00:25:59,140 Ajo vë në një kuti të madhe të kuqe, "Ky do të kthehet rreme nëse ka një gabim." 297 00:25:59,140 --> 00:26:03,940 Por kthimi 0 është një gjë krejtësisht e arsyeshme për t'u kthyer. 298 00:26:03,940 --> 00:26:08,250 Mendoni për ndonjë funksion i cili pritet të kthehet një numër të plotë. 299 00:26:11,250 --> 00:26:17,880 Le të thonë se ky funksion është menduar për të numëruar numrin e linjave në një skedar apo diçka. 300 00:26:17,880 --> 00:26:23,490 Nën rrethana normale, ju të kalojë këtij funksioni një skedar 301 00:26:23,490 --> 00:26:27,120 dhe ajo do të kthehet një numër të plotë e cila paraqet numrin e linjave. 302 00:26:27,120 --> 00:26:30,820 Pra, 0 është një numër krejtësisht e arsyeshme nëse skedari është vetëm bosh. 303 00:26:30,820 --> 00:26:36,810 Por, çfarë nëse ju të kalojë atë një file pavlefshme dhe funksioni i ndodh që të kthehen të rreme 304 00:26:36,810 --> 00:26:38,860 në qoftë se ju të kalojë atë një skedar të pavlefshme? 305 00:26:38,860 --> 00:26:46,500 Nëse ju vetëm bëni == ju nuk jeni diferencuar rasti mes dosjen pavlefshme dhe file bosh. 306 00:26:48,870 --> 00:26:51,350 Gjithmonë përdorni ===. 307 00:26:55,690 --> 00:26:58,000 Kjo është e gjitha nga ato. 308 00:26:58,000 --> 00:27:01,660 >> Në PHP, lloji array është e ndryshme nga ajo që ju jeni duke përdorur për të në C. 309 00:27:01,660 --> 00:27:06,650 Në të vërtetë, ju mund të keni vënë re tashmë këtë më lart, kur ju pashë se kjo është e tipit grup. 310 00:27:06,650 --> 00:27:15,640 Sintaksa kllapa është i ri, si i PHP 5.4, i cili është versioni më i ri i PHP. 311 00:27:15,640 --> 00:27:36,960 Para kësaj ju gjithmonë ka pasur për të shkruar array ('a' -> 1, 'b' -> 2. 312 00:27:36,960 --> 00:27:41,160 Kjo ishte ndërtuesi për një grup. 313 00:27:41,160 --> 00:27:45,950 Tani PHP fund ka ardhur rreth në sintaksë e bukur vetëm kllapa katrore, 314 00:27:45,950 --> 00:27:50,900 e cila është vetëm në mënyrë shumë më mirë se array. 315 00:27:50,900 --> 00:27:54,480 Por duke pasur parasysh PHP 5.4 është versioni më i ri, 316 00:27:54,480 --> 00:27:59,090 ju mund të hasni vende që nuk kanë PHP 5.3. 317 00:27:59,090 --> 00:28:08,220 Gjatë verës, ne u përplas me këtë çështje, ku PHP 5.3 ishte ajo që kemi pasur në aplikim, 318 00:28:08,220 --> 00:28:14,480 por që ne server vendosur të gjithë librin tonë klasën dhe të paraqesë dhe të gjitha këto gjëra të 319 00:28:14,480 --> 00:28:16,750 ishte PHP 5.4. 320 00:28:16,750 --> 00:28:23,060 Duke mos ditur këtë, ne kemi zhvilluar në 5,3, për të shtyrë 5.4, 321 00:28:23,060 --> 00:28:25,660 dhe tani të gjithë një e papritur asnjë të kodit tonë punon 322 00:28:25,660 --> 00:28:28,680 sepse ka ndodhur që të ketë pasur ndryshime në mes të 5,3 dhe 5,4 323 00:28:28,680 --> 00:28:31,030 të cilat nuk janë prapa në përputhje, 324 00:28:31,030 --> 00:28:35,770 dhe ne kemi për të shkuar dhe të rregulluar të gjitha gjërat tona që nuk punojnë për PHP 5.4. 325 00:28:39,210 --> 00:28:42,320 Për këtë klasë, pasi nuk kanë aplikim PHP 5.4, 326 00:28:42,320 --> 00:28:45,490 kjo është krejtësisht gjobë për të përdorur kllapa katrore. 327 00:28:47,240 --> 00:28:50,440 Por nëse ju jeni duke kërkuar deri gjëra rreth internetit, 328 00:28:50,440 --> 00:28:54,880 në qoftë se ju jeni duke kërkuar në disa lloj stuff array, ka shumë të ngjarë që ju do të jeni për të parë 329 00:28:54,880 --> 00:29:02,020 magji nga ndërtuesi sintaksë array pasi që ka qenë rreth e rrotull që nga viti PHP lindi 330 00:29:02,020 --> 00:29:07,340 Sintaksa dhe kllapa katrore ka qenë rreth e rrotull për disa muaj të fundit 331 00:29:07,340 --> 00:29:10,020 ose sa herë që erdhi rreth 5.4. 332 00:29:10,020 --> 00:29:12,710 Kjo është se si ju indeksi. 333 00:29:12,710 --> 00:29:30,610 Ashtu si në C si ju do të indeksit me kllapa katrore si $ array [0], $ array [1], $ array [2], 334 00:29:30,610 --> 00:29:36,320 ju indeksi në të njëjtën mënyrë, nëse ju ndodh që të ketë tregues tuaja duke strings. 335 00:29:36,320 --> 00:29:40,440 Pra, array $ array ['a'] dhe $ ['b']. 336 00:29:40,440 --> 00:29:47,410 $ Array [b]. Pse do të jetë kjo e gabuar? 337 00:29:52,490 --> 00:29:59,870 Kjo ndoshta do të gjenerojë një paralajmërim, por ende punojnë. PHP ka tendencë për të bërë këtë. 338 00:29:59,870 --> 00:30:04,890 Ajo tenton të vetëm, "Unë jam duke shkuar për t'ju tërhequr vërejtjen në lidhje me këtë, por unë jam vetëm do të mbajë 339 00:30:04,890 --> 00:30:07,550 "Dhe të bëjë çdo gjë që unë mund të." 340 00:30:07,550 --> 00:30:11,500 Kjo ndoshta do të përkthehet kjo për një varg, 341 00:30:11,500 --> 00:30:15,000 por është e mundur që në disa pika në të kaluarën dikush tha 342 00:30:15,000 --> 00:30:20,180 b përcaktojë të jetë "HELLO WORLD". 343 00:30:20,180 --> 00:30:28,740 Deri tani b mund të jetë një array konstante dhe $ [b] në të vërtetë do të jetë bërë 'Hello World'. 344 00:30:28,740 --> 00:30:32,380 Unë mendoj se në këtë pikë, ose të paktën settings tona PHP, 345 00:30:32,380 --> 00:30:37,870 nëse ju përpiqeni të indeksit në një grup dhe se çelësi nuk ekziston, ajo do të dështojnë. 346 00:30:37,870 --> 00:30:40,150 Unë nuk mendoj se ai thjesht do t'ju tërhequr vërejtjen. 347 00:30:40,150 --> 00:30:44,560 Ose të paktën ju mund të vendosni atë në mënyrë që ajo nuk ka vetëm të paralajmërojë ju, ai vetëm drejt deri dështon. 348 00:30:44,560 --> 00:30:49,290 >> Mënyrë që ju kontrolloni për të parë nëse ka të vërtetë është e tillë një indeks është isset. 349 00:30:49,290 --> 00:30:54,690 Pra isset ($ array ['HELLO WORLD']) do të kthehet rreme. 350 00:30:54,690 --> 00:30:59,160 isset ($ array ['b']) do të kthehen vërtetë. 351 00:31:06,830 --> 00:31:09,880 Ju mund të përzierje këto syntaxes. 352 00:31:15,060 --> 00:31:22,440 Unë jam goxha i sigurt se çfarë kjo do array përfundojë si është - Ne mund ta provoni atë. 353 00:31:43,290 --> 00:31:45,700 Oh, kam nevojë PHPWord. 354 00:31:53,960 --> 00:32:00,260 Kjo është përzierja sintaksë ku ju të specifikojë se çfarë kyç është 355 00:32:00,260 --> 00:32:03,330 dhe ju nuk e specifikon se çfarë është çelësi. 356 00:32:03,330 --> 00:32:05,520 Pra, 3 drejtë këtu është një vlerë. 357 00:32:05,520 --> 00:32:08,080 Ju nuk kanë thënë shprehimisht se çfarë çelësi i saj do të jetë. 358 00:32:08,080 --> 00:32:11,670 Çfarë mendoni se çelësi i saj do të jetë? 359 00:32:11,670 --> 00:32:21,410 [Student] 0. Unë jam guessing >> 0 vetëm për shkak se ajo është e para që ne nuk kemi specifikuar. 360 00:32:21,410 --> 00:32:23,500 Ne mund të bëjë në fakt një çift të këtyre rasteve. 361 00:32:23,500 --> 00:32:28,030 Pra print_r është shkruar rekursive. Ajo do të shtypura array tërë. 362 00:32:28,030 --> 00:32:32,700 Ajo do të shtypura subarrays e array nëse ka pasur ndonjë. 363 00:32:32,700 --> 00:32:36,630 Pra print_r ($ array); php.test.php. 364 00:32:36,630 --> 00:32:38,810 Ajo duket si ajo i dha asaj 0. 365 00:32:38,810 --> 00:32:43,530 Ka të vërtetë diçka për të mbajtur në mend këtu, por ne do të merrni përsëri në atë në një sekondë. 366 00:32:43,530 --> 00:32:45,850 Por, çfarë nëse unë të ndodhë për të bërë këtë indeks 1? 367 00:32:45,850 --> 00:32:51,170 PHP nuk bën dallim ndërmjet treguesve të vargut dhe indekset numër i plotë, 368 00:32:51,170 --> 00:33:00,280 kështu në këtë pikë unë kam përcaktuar vetëm një indeks 1 dhe unë mund të bëjë të dyja array $ [1] dhe $ koleksion ['1 '] 369 00:33:00,280 --> 00:33:06,250 dhe ajo do të jetë e njëjtë dhe indeksi kyç njëjtë. 370 00:33:06,250 --> 00:33:13,000 Kështu që tani çfarë mendoni 3 do të jetë? >> [Student] 2. >> [Bowden] Unë jam guessing 2. 371 00:33:16,000 --> 00:33:18,690 Po. Kjo është 2. 372 00:33:18,690 --> 00:33:24,790 Çfarë ndodh nëse ne e bëmë këtë është 10, kjo është 4? Çfarë mendoni se indeksi i 3 do të jetë? 373 00:33:27,360 --> 00:33:29,110 Unë jam duke menduar 11. 374 00:33:29,110 --> 00:33:33,060 Guess im për atë që bën PHP - dhe unë mendoj se kam parë këtë para - 375 00:33:33,060 --> 00:33:39,760 është vetëm ajo mban gjurmët e asaj që indeksi lartë numerike është përdorur deri më tani është. 376 00:33:39,760 --> 00:33:44,230 Ajo kurrë nuk do të caktojë një indeks string në 3. Ajo do të jetë gjithmonë një indeks numerike. 377 00:33:44,230 --> 00:33:47,690 Pra, ajo mban gjurmët e një më të lartë është e caktuar deri më tani, i cili ndodh të jetë 10, 378 00:33:47,690 --> 00:33:52,540 dhe ajo do të japë 11-3. 379 00:33:52,540 --> 00:34:02,110 Çfarë kam thënë më parë, njoftim mënyrën se si është shtypje këtë koleksion. 380 00:34:02,110 --> 00:34:06,850 Ajo printon 10 kyç, kyç 4, kyç 11, kyç d. 381 00:34:06,850 --> 00:34:09,790 Ose edhe le ta bëjmë - 382 00:34:15,760 --> 00:34:22,489 I guess Unë nuk e kam vënë një 0, por është e shtypje 1, 2, 3, 4. 383 00:34:22,489 --> 00:34:29,330 Çka nëse unë kaloni këtu? Ose, le të vërtetë të kaloni këto 2. 384 00:34:29,330 --> 00:34:31,940 Tani ajo printon 2, 1, 3, 4. 385 00:34:31,940 --> 00:34:41,270 Vargjeve php nuk janë ashtu si tryezën tuaj të rregullt hash. 386 00:34:41,270 --> 00:34:45,570 Kjo është krejtësisht e arsyeshme të mendojmë e tyre si tavolina hash 99% të kohës. 387 00:34:45,570 --> 00:34:53,790 Por në tabelat tuaja hash nuk ka kuptim të rendit në të cilin gjërat janë futur. 388 00:34:53,790 --> 00:34:56,639 Pra, sa më shpejt që ju të futur atë në tryezën tuaj hash, 389 00:34:56,639 --> 00:35:00,590 supozojmë se nuk ka lista të lidhura dhe ju mund të gjykojë brenda një liste të lidhur 390 00:35:00,590 --> 00:35:03,980 e cila ishte futur e parë. 391 00:35:03,980 --> 00:35:10,060 Por këtu kemi futur 2 para dhe ajo e di se kur është e shtypje këtë koleksion se 2 vjen e para. 392 00:35:10,060 --> 00:35:13,090 Ajo nuk ka shkruar atë në vetëm një qëllim ndonjë. 393 00:35:13,090 --> 00:35:17,550 Struktura teknike të dhëna që është e përdorur është një hartë urdhëruar, 394 00:35:17,550 --> 00:35:24,690 kështu që ajo harta çelësat për vlerat dhe ajo kujton rendin në të cilin ato janë çelësat futur. 395 00:35:24,690 --> 00:35:31,600 Në thelb kjo është për disa komplikime ku e bezdisshëm të vërtetë - 396 00:35:31,600 --> 00:35:34,510 Le të thonë se ju keni një koleksion 0, 1, 2, 3, 4, 5 397 00:35:34,510 --> 00:35:37,700 dhe ju doni të merrni indeksin 2. 398 00:35:37,700 --> 00:35:47,750 Një mënyrë për të bërë atë, le të shohim se çfarë duket si. 399 00:35:47,750 --> 00:35:50,410 0, 2, 1, 3, 4. 400 00:35:50,410 --> 00:35:54,880 Unset ndodh me unset dy variablave dhe indeksit të vektorit. 401 00:35:54,880 --> 00:35:58,630 Kështu dizaktivohet ($ array [2]); 402 00:35:58,630 --> 00:36:03,430 Tani çfarë kjo do të duken si? 2 është shkuar vetëm, kështu që është e përkryer gjobë. 403 00:36:03,430 --> 00:36:11,670 Më i bezdisshëm është në qoftë se ju doni gjëra që në fakt të jetë si një grup. 404 00:36:11,670 --> 00:36:14,910 Unë do të vënë numra të rastit. 405 00:36:14,910 --> 00:36:20,400 Tani njoftim indekset e mia. 406 00:36:20,400 --> 00:36:26,860 Unë dua që ajo të jetë vetëm si një grup C ku ajo shkon nga 0 në gjatësi - 1 407 00:36:26,860 --> 00:36:30,810 dhe unë mund iterate mbi atë si të tillë. 408 00:36:30,810 --> 00:36:38,520 Por sa më shpejt që unë unset indeksin e dytë, atë që ishte në indeksin e 3 nuk do të bëhet tani indeksi 2. 409 00:36:38,520 --> 00:36:44,790 Në vend të kësaj ai thjesht heq këtë indeks dhe tani ju shkoni 0, 1, 3, 4. 410 00:36:44,790 --> 00:36:48,740 Kjo është krejtësisht e arsyeshme. 411 00:36:48,740 --> 00:36:53,950 Kjo është vetëm i bezdisshëm dhe ju duhet të bëni gjëra të tilla si ngjitur array. Po. 412 00:36:53,950 --> 00:36:57,200 >> [Student] Çfarë do të ndodhte nëse keni pasur një për lak 413 00:36:57,200 --> 00:36:59,630 dhe ju të kërkuar për të shkuar mbi të gjitha elementet? 414 00:36:59,630 --> 00:37:02,290 Kur ajo goditi 2, do të japin ndonjëherë? 415 00:37:02,290 --> 00:37:10,150 Iterating mbi një rrjet. Ka 2 mënyra që ju mund të bëni atë. 416 00:37:10,150 --> 00:37:12,770 Ju mund të përdorni një për lak rregullt. 417 00:37:12,770 --> 00:37:22,000 Kjo është një tjetër ngatërresë e PHP. 418 00:37:22,000 --> 00:37:27,420 Gjuhët më të, unë do të thoja, të ketë disa lloj ose gjatësi len ose diçka 419 00:37:27,420 --> 00:37:30,470 treguar gjatësinë e një sërë. 420 00:37:30,470 --> 00:37:32,820 Në PHP është akuzë. 421 00:37:32,820 --> 00:37:36,160 Pra, numërimin ($ array); $ i + +) 422 00:37:36,160 --> 00:37:42,950 Le të vetëm të shtypura ($ array [$ i]); 423 00:37:45,920 --> 00:37:48,820 Njoftim: padefinuar offset: 2. 424 00:37:48,820 --> 00:37:51,610 Është vetëm do të dështojnë. 425 00:37:51,610 --> 00:38:03,020 Kjo është arsyeja që, për pjesën më të madhe, ju kurrë nuk duhet të iterate mbi një grup si kjo. 426 00:38:03,020 --> 00:38:07,110 Kjo mund të jetë një ekzagjerim, por ju nuk duhet të iterate mbi një grup si ky 427 00:38:07,110 --> 00:38:19,410 sepse PHP ofron sintaksë e saj foreach ku foreach ($ array si $ pika). 428 00:38:19,410 --> 00:38:31,830 Tani në qoftë se ne shtyp ($ pika) - we'll diskutojë atë në një të dytë - që punon të përkryer gjobë. 429 00:38:31,830 --> 00:38:38,960 Mënyra se si është duke punuar foreach është argumenti i parë është array që ju jeni iterating gjatë. 430 00:38:38,960 --> 00:38:44,060 Dhe Argumenti i dytë, pika, përmes çdo të kalojë së për lak 431 00:38:44,060 --> 00:38:52,690 ajo do të marrë në gjë tjetër në rrjet. Pra, mos harroni array ka një urdhër. 432 00:38:52,690 --> 00:38:55,690 Hera e parë përmes për lak, pika do të jetë 123 433 00:38:55,690 --> 00:38:59,540 atëherë ajo do të jetë 12, atëherë ajo do të jetë 13, atëherë ajo do të jetë 23, atëherë ajo do të jetë 213. 434 00:38:59,540 --> 00:39:04,670 Gjërat të merrni të vërtetë i çuditshëm, kur ju bëni diçka si foreach. 435 00:39:04,670 --> 00:39:07,480 Le të shohim se çfarë ndodh, sepse ju kurrë nuk duhet ta bëjë këtë. 436 00:39:07,480 --> 00:39:13,320 Çfarë ndodh nëse ne nuk përcaktohet ($ array [1]); 437 00:39:20,410 --> 00:39:26,030 Kjo pritej ndoshta. 438 00:39:26,030 --> 00:39:30,950 Ju jeni iterating mbi këtë grup, dhe çdo herë që ju jeni duke anulluar indeksin e parë. 439 00:39:30,950 --> 00:39:39,720 Kështu që për indeksin 0, parë, gjë pika merr vlerën 0, kështu që ajo do të jetë 123. 440 00:39:39,720 --> 00:39:44,630 Por brenda e për lak ne nuk përcaktohet indeksi 1, kështu që do të thotë 12 është zhdukur. 441 00:39:44,630 --> 00:39:57,480 Pra, të shtypura. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL është vetëm newline, por kjo është teknikisht më të lëvizshëm 443 00:40:03,580 --> 00:40:08,890 pasi newlines në Windows është i ndryshëm nga newlines për Mac dhe Unix. 444 00:40:08,890 --> 00:40:18,040 Në Windows newline është \ r \ n, ndërsa kudo tjetër ajo tenton vetëm të jenë \ n. 445 00:40:18,040 --> 00:40:25,150 PHP_EOL është konfiguruar në mënyrë që ajo përdor çfarëdo newline e sistemit tuaj është. 446 00:40:25,150 --> 00:40:29,310 Mënyrë të shtypura atë. Le të mos print_r ($ array) në fund. 447 00:40:32,830 --> 00:40:37,390 Nuk kisha asnjë ide se kjo do të jetë sjellje. 448 00:40:41,740 --> 00:40:48,960 Pika ende merr mbi vlerën e 12 edhe pse ne unset 12 para se të marrë ndonjëherë për atë nga grup. 449 00:40:52,770 --> 00:40:58,840 Mos e merrni fjalën time për këtë, por kjo duket si foreach krijon një kopje të array 450 00:40:58,840 --> 00:41:02,160 dhe pastaj pika merr në të gjitha vlerat e atij kopje. 451 00:41:02,160 --> 00:41:07,760 Pra, edhe në qoftë se ju të ndryshojë grup brenda për lak, 452 00:41:07,760 --> 00:41:17,240 ajo nuk do të kujdeset. Pika do të marrë në vlerat origjinale. 453 00:41:17,240 --> 00:41:19,240 Le të përpiqemi anulluar atë. 454 00:41:19,240 --> 00:41:24,460 Çka nëse kjo është $ array [1] = "hello"; 455 00:41:24,460 --> 00:41:31,770 Edhe pse ne kemi vënë "hello" në grup, nuk merr pika në atë vlerë. 456 00:41:31,770 --> 00:41:37,430 Ka një sintaksë për foreach sythe 457 00:41:37,430 --> 00:41:45,900 ku keni vënë 2 variablave ndarë nga një shigjetë. 458 00:41:45,900 --> 00:41:49,680 Ky variabël e parë do të jetë çelësi i kësaj vlere, 459 00:41:49,680 --> 00:41:53,050 dhe kjo është e ndryshueshme e dytë do të jetë pika e saktë të njëjtën. 460 00:41:53,050 --> 00:42:01,610 Kjo është jointeresant këtu, por nëse ne do të shkojmë prapa në rastin tonë origjinale të 'A' -> 1, 461 00:42:01,610 --> 00:42:06,090 'B' -> 1, 462 00:42:06,090 --> 00:42:14,470 këtu nëse ne vetëm iterate për çdo grup si artikull, artikull do të jetë 1 çdo herë të vetme. 463 00:42:14,470 --> 00:42:18,170 Por në qoftë se ne gjithashtu duam të dimë kyç lidhur me atë artikull 464 00:42:18,170 --> 00:42:25,230 atëherë ne bëjmë si $ kyç -> $ pika. 465 00:42:25,230 --> 00:42:31,980 Kështu që tani ne mund të bëjmë (print kyç $. ':'. 466 00:42:31,980 --> 00:42:39,380 Tani ajo është mbi iterating dhe shtypje çdo kyç dhe vlerën e saj lidhur. 467 00:42:39,380 --> 00:42:47,030 >> Një gjë tjetër që mund të bëjmë në foreach sythe është që ju mund të shihni këtë sintaksë. 468 00:42:47,030 --> 00:42:54,770 Ampersands para emrave ndryshueshme priren të jenë si PHP bën referenca. 469 00:42:54,770 --> 00:43:00,460 Ku referencat janë shumë të ngjashme me pointers, 470 00:43:00,460 --> 00:43:04,820 ju nuk keni pointers, kështu që ju kurrë nuk merren me kujtesën direkt. 471 00:43:04,820 --> 00:43:12,620 Por ju keni referenca ku 1 ndryshueshme referohet të njëjtën gjë si një ndryshore. 472 00:43:12,620 --> 00:43:21,450 Brenda prej këtu le të bëjmë $ artikull. Le të kthehemi në 1, 10. 473 00:43:21,450 --> 00:43:28,800 Le të bëjmë $ pika + +, që ende ekziston në PHP. Ju mund të bëni ende + +. 474 00:43:28,800 --> 00:43:38,260 php.test.php. Unë kam për të shkruar atë. print_r ($ array); 475 00:43:38,260 --> 00:43:42,730 Ne të shtypura 2, 11. 476 00:43:42,730 --> 00:43:49,560 Nëse unë kam bërë vetëm foreach ($ array si $ pika), atëherë pika do të jetë vlera e 1 477 00:43:49,560 --> 00:43:54,190 hera e parë përmes lak. Ajo do shtim 1-2 dhe pastaj ne jemi bërë. 478 00:43:54,190 --> 00:43:57,260 Pra, atëherë ajo do të shkojnë nëpër kalimin e dytë të lak dhe se pika është 10. 479 00:43:57,260 --> 00:44:01,570 Ajo increments pika në 11, dhe pastaj se është hedhur vetëm larg. 480 00:44:01,570 --> 00:44:06,670 Pastaj ne print_r ($ array) dhe le të shohim se kjo është vetëm 1, 10. 481 00:44:06,670 --> 00:44:09,070 Pra, ne e bëmë ishte rritja e humbur. 482 00:44:09,070 --> 00:44:13,410 Por foreach ($ array si $ dhe pika) 483 00:44:13,410 --> 00:44:21,910 tani kjo është pika pika njëjtë si këtë të drejtë këtu. Kjo është e njëjta gjë. 484 00:44:21,910 --> 00:44:26,820 Kështu $ pika + + është modifikuar koleksion 0. 485 00:44:29,330 --> 00:44:41,850 Në thelb, ju gjithashtu mund të bëjë $ k - array> $ artikull dhe ju mund të bëni $ [$ k] + +; 486 00:44:41,850 --> 00:44:48,650 >> Pra, një mënyrë tjetër të të bërit këtë, ne jemi të lirë të modifikoni pika, 487 00:44:48,650 --> 00:44:54,070 por kjo nuk do të ndryshojë koleksion tonë origjinal. 488 00:44:54,070 --> 00:44:59,720 Por në qoftë se ne përdorim k, e cila është çelësi jonë, atëherë ne vetëm mund të indeksit në grup tonë se duke përdorur çelësi 489 00:44:59,720 --> 00:45:01,530 dhe rritje se. 490 00:45:01,530 --> 00:45:05,410 Këtë më direkt modifikon koleksion tonë origjinal. 491 00:45:05,410 --> 00:45:10,690 Ju mund edhe të bëjë që në qoftë se për ndonjë arsye ju kërkuar mundësinë për të ndryshuar - 492 00:45:10,690 --> 00:45:13,510 Në fakt, kjo është krejtësisht e arsyeshme. 493 00:45:13,510 --> 00:45:16,020 Ju nuk duan të kenë të shkruajnë $ array [$ k] + +, 494 00:45:16,020 --> 00:45:27,890 ju vetëm të kërkuar për të shkruar $ pika + +, por ju ende të kërkuar për të thënë nëse ($ k === 'a') 495 00:45:27,890 --> 00:45:30,620 pastaj Rritja pika dhe pastaj të shtypura array tonë. 496 00:45:30,620 --> 00:45:36,290 Kështu që tani çfarë ne presim print_r të bëjmë? Cilat vlera duhet të jenë të shtypura? 497 00:45:36,290 --> 00:45:43,770 [Student] 2 dhe 10. >> [Bowden] Vetëm nëse çelësi ishte 'një' e ne fakt shtypura atë. 498 00:45:51,940 --> 00:45:55,670 >> Ju ndoshta shumë rrallë, nëse ndonjëherë, do të duhet të përcaktojë funksionet në PHP, 499 00:45:55,670 --> 00:46:03,370 por ju mund të shihni diçka të ngjashme, ku ju të përcaktojë një funksion si çfarëdo funksion. 500 00:46:03,370 --> 00:46:09,900 Zakonisht ju do të thonë ($ foo, $ bar) dhe pastaj të përcaktojë që ajo të jetë çfarëdo. 501 00:46:09,900 --> 00:46:17,580 Por në qoftë se unë bëj këtë, atëherë kjo do të thotë se çdo gjë që e quan çfarëdo, 502 00:46:17,580 --> 00:46:25,110 çfarëdo quan Baz, kështu që argumenti i parë kaloi në Baz mund të ndryshohet. 503 00:46:25,110 --> 00:46:38,100 Le të bëjmë $ foo + +; 504 00:46:38,100 --> 00:46:48,020 dhe brenda prej këtu le të bëjmë Baz ($ pika); 505 00:46:48,020 --> 00:46:52,250 Tani ne jemi quajtur një funksion. 506 00:46:52,250 --> 00:46:56,780 Argumenti është marrë nga referimi, që do të thotë se në qoftë se ne të modifikojë atë 507 00:46:56,780 --> 00:47:00,390 ne jemi duke modifikuar gjë që u miratua in 508 00:47:00,390 --> 00:47:04,420 Dhe shtypje këtë ne presim - nëse unë messed up sintaksë - kemi marrë 2, 11, 509 00:47:04,420 --> 00:47:06,300 kështu ajo u incremented vërtetë. 510 00:47:06,300 --> 00:47:08,790 Njoftim ne kemi nevojë për referenca në 2 vende. 511 00:47:08,790 --> 00:47:13,050 Çka nëse unë e bëri këtë? Çfarë do të thotë kjo? 512 00:47:13,050 --> 00:47:15,810 [Student] Ajo do të ndryshojë. Po >>. 513 00:47:15,810 --> 00:47:18,290 Pika është vetëm një kopje e vlerës në rrjet. 514 00:47:18,290 --> 00:47:26,670 Pra pika do të ndryshojë deri në 2, por array ['a'] do të vazhdojë të jetë 1. 515 00:47:26,670 --> 00:47:32,560 Ose çfarë nëse unë ta bëjë këtë? 516 00:47:32,560 --> 00:47:39,260 Tani artikull është dërguar si një kopje Baz. 517 00:47:39,260 --> 00:47:46,330 Pra, kopje e argumentit do të incremented në 2, 518 00:47:46,330 --> 00:47:49,240 por pika vetë kurrë nuk u incremented në 2. 519 00:47:49,240 --> 00:47:52,880 Dhe pika është e njëjta gjë si parantezë array çfarëdo, 520 00:47:52,880 --> 00:47:55,380 kështu që kurrë nuk u array incremented. 521 00:47:55,380 --> 00:47:57,960 Kështu që të dyja këto vende kanë nevojë për atë. 522 00:47:57,960 --> 00:48:03,830 >> PHP është zakonisht mjaft i zgjuar për këtë. 523 00:48:03,830 --> 00:48:06,570 Ju mund të mendoni se unë dua të kalojë duke iu referuar - 524 00:48:06,570 --> 00:48:09,560 Kjo ishte vërtetë një pyetje në një prej psets. 525 00:48:09,560 --> 00:48:14,480 Kjo ishte një gjë e questions.txt ku tha: 526 00:48:14,480 --> 00:48:19,280 Pse mund të dëshironi të kalojë këtë struct duke iu referuar? 527 00:48:19,280 --> 00:48:21,250 Cili ishte përgjigje për këtë? 528 00:48:21,250 --> 00:48:25,100 [Student] Pra, ju nuk keni për të kopjuar diçka të madhe. Po >>. 529 00:48:25,100 --> 00:48:32,920 Një struct mund të jetë arbitrare të mëdha, dhe kur ju të kalojë struct si një argument 530 00:48:32,920 --> 00:48:36,800 ajo ka nevojë për të kopjuar atë struct tërë për të kaluar atë në funksion, 531 00:48:36,800 --> 00:48:40,410 ndërsa nëse ju vetëm të kalojë struct duke iu referuar 532 00:48:40,410 --> 00:48:46,530 atëherë ajo vetëm duhet të kopjoni një adresë 4-byte si argument në funksion. 533 00:48:48,520 --> 00:48:52,320 PHP është një pak më të zgjuar se kaq. 534 00:48:52,320 --> 00:49:00,650 Nëse unë kam një funksion dhe unë të kalojë atë një rrjet prej 1,000 gjërave, 535 00:49:00,650 --> 00:49:03,990 do të thotë se do të duhet të kopje të të gjitha atyre gjërave të 1000 536 00:49:03,990 --> 00:49:10,450 për të kaluar atë në funksion? Ajo nuk duhet të bëjë që menjëherë. 537 00:49:10,450 --> 00:49:15,940 Nëse brenda këtij funksioni nuk ai në fakt modifikon foo, 538 00:49:15,940 --> 00:49:22,660 kështu që nëse ($ foo === 'hello') kthim i vërtetë.; 539 00:49:22,660 --> 00:49:26,460 Njoftim modifikuar ne kurrë nuk të vërtetë brenda argumentin e këtij funksioni, 540 00:49:26,460 --> 00:49:30,010 që do të thotë se çdo gjë që u miratua në si kurrë foo duhet të kopjohet 541 00:49:30,010 --> 00:49:32,100 sepse ajo nuk është modifikuar atë. 542 00:49:32,100 --> 00:49:39,240 Pra, mënyra PHP punon është argumente janë miratuar gjithmonë duke iu referuar 543 00:49:39,240 --> 00:49:42,170 derisa ju të vërtetë të përpiqet për të ndryshuar atë. 544 00:49:42,170 --> 00:49:51,160 Tani, nëse unë them $ foo + +, ajo tani do të bëjë një kopje të foo origjinal dhe modifikojë kopje. 545 00:49:51,160 --> 00:49:53,090 Kjo kursen kohë. 546 00:49:53,090 --> 00:49:58,210 Nëse ju nuk jeni të prekur këtë koleksion masiv, ju kurrë nuk të vërtetë të modifikojë atë, 547 00:49:58,210 --> 00:50:02,360 ajo nuk ka nevojë për të bërë kopje, 548 00:50:02,360 --> 00:50:06,640 ndërsa nëse ne vetëm vënë këtë simbol që do të thotë se nuk ka edhe kopje atë 549 00:50:06,640 --> 00:50:08,640 edhe në qoftë se ju do të modifikojë atë. 550 00:50:08,640 --> 00:50:10,680 Kjo sjellje quhet kopje-on-shkruaj. 551 00:50:10,680 --> 00:50:17,380 Ju do të shihni atë në vende të tjera, veçanërisht në qoftë se ju merrni një kurs të sistemit operativ. 552 00:50:17,380 --> 00:50:23,880 Kopjo-on-shkruaj është një model mjaft të zakonshme kur ju nuk keni nevojë për të bërë një kopje të diçka 553 00:50:23,880 --> 00:50:26,650 përveç nëse kjo është në të vërtetë ndryshuar. Po. 554 00:50:26,650 --> 00:50:29,520 [Student] Çfarë ndodh nëse keni pasur rritje të brenda në provë, 555 00:50:29,520 --> 00:50:33,700 kështu që vetëm 1 element nga 1000 do të duhet të ndryshohet? 556 00:50:33,700 --> 00:50:38,770 Nuk jam i sigurt. 557 00:50:38,770 --> 00:50:51,250 Unë mendoj se do të kopje gjë e tërë, por kjo është e mundur se është mjaft i zgjuar se - 558 00:50:51,250 --> 00:51:00,020 Në fakt, ajo që unë jam duke menduar është imagjinoni kemi pasur një grup që duket si ky: $ array2 = [ 559 00:51:00,020 --> 00:51:11,000 Pastaj 'një' indeksi është një grup i [1 2 3 4], dhe indeksi "B" është një grup i çfarëdo. 560 00:51:11,000 --> 00:51:15,380 Unë kam nevojë për presje në mes të gjithë ata. Paramendoni ka presje. 561 00:51:15,380 --> 00:51:21,210 Pastaj 'c' është 3 vlera. 562 00:51:24,210 --> 00:51:26,290 Rregull. 563 00:51:26,290 --> 00:51:33,440 Tani le të themi që ne bëjmë $ Baz ($ array2); 564 00:51:33,440 --> 00:51:36,540 ku Baz nuk ka marrë këtë duke iu referuar. 565 00:51:43,510 --> 00:51:47,370 Pra, foo $ ['c'] + +; 566 00:51:47,370 --> 00:51:52,340 Ky është një shembull i tillë ku ne jemi duke kaluar array2 si argument 567 00:51:52,340 --> 00:51:57,010 dhe pastaj ajo është modifikuar një indeks të veçantë të vektorit nga bën rritjen atë. 568 00:51:57,010 --> 00:52:01,090 Unë sinqerisht nuk kam asnjë ide se çfarë PHP do të bëjë. 569 00:52:01,090 --> 00:52:07,200 Ajo mund të lehtë të bëjë një kopje të gjithë gjë, por nëse është e zgjuar, 570 00:52:07,200 --> 00:52:15,030 ajo do të bëjë një kopje të këtyre çelësat ku kjo do të ketë vlerën e saj të dallueshme 571 00:52:15,030 --> 00:52:20,620 por kjo ende mund të tregojnë për të njëjtin grup 1,2,3,4 572 00:52:20,620 --> 00:52:22,320 dhe kjo ende mund të tregojnë për të njëjtin grup. 573 00:52:22,320 --> 00:52:24,170 Unë do të iPad atë. 574 00:52:28,900 --> 00:52:45,950 Ne kalojë në këtë grup, ku ky djalë pikë në 3, kjo pikë djalë të [1,2,3,4], 575 00:52:45,950 --> 00:52:51,350 Ky djalosh pikë të [...] 34, 576 00:52:51,350 --> 00:52:58,590 Tani që ne jemi duke kaluar atë në Baz, ne jemi të modifikuar këtë. 577 00:52:58,590 --> 00:53:03,550 Nëse PHP është zgjuar, ajo vetëm mund të bëjë - 578 00:53:11,850 --> 00:53:18,230 Ne ende duhej të kopjoni disa kujtesës, por në qoftë se ka pasur këto subarrays mëdha mbivendosur 579 00:53:18,230 --> 00:53:21,560 ne nuk kemi nevojë për të kopjuar ato. 580 00:53:21,560 --> 00:53:27,530 Unë nuk e di nëse kjo është ajo që bën, por unë mund ta imagjinoj atë duke bërë që. 581 00:53:29,050 --> 00:53:36,690 Kjo është edhe një avantazh shumë i madh i C mbi PHP. 582 00:53:36,690 --> 00:53:40,320 >> PHP bën jetën shumë më e lehtë për një shumë të gjëra, 583 00:53:40,320 --> 00:53:45,060 por ju lloj i kanë absolutisht asnjë ide se sa mirë do të kryejnë 584 00:53:45,060 --> 00:53:52,530 sepse unë nuk kam asnjë ide nën kapuç kur është bërë këto kopje të gjërave, 585 00:53:52,530 --> 00:53:55,170 oh, është se do të jetë një kopje e vazhdueshme kohë, 586 00:53:55,170 --> 00:54:01,140 është vetëm do të ndryshojë 1 treguesin, është ajo do të jetë një kopje e vështirë lineare qesharake? 587 00:54:01,140 --> 00:54:03,000 Çka nëse ajo nuk mund të gjejnë hapësirë? 588 00:54:03,000 --> 00:54:06,760 E bën atë, atëherë duhet për të drejtuar mbledhjen e mbeturinave për të marrë disa më shumë hapësirë? 589 00:54:06,760 --> 00:54:11,210 Dhe mbledhja e mbeturinave mund të marrë në mënyrë arbitrare gjatë. 590 00:54:11,210 --> 00:54:13,600 Në C që ju nuk duhet të shqetësohen për këto gjëra. 591 00:54:13,600 --> 00:54:19,780 Çdo linjë të vetme që ju mund të shkruani arsye shumë e shumë për mënyrën se si ajo do të kryejë. 592 00:54:26,800 --> 00:54:29,150 >> Le të shohim mbrapa në këto. 593 00:54:35,400 --> 00:54:37,520 Sa e bukur është ajo që ju nuk duhet të merren me funksionet hash, 594 00:54:37,520 --> 00:54:39,010 Listat e lidhura, ose diçka të tillë? 595 00:54:39,010 --> 00:54:41,980 Që punon me tabela hash është aq e lehtë tani, këtu është një mister fun për të punuar në. 596 00:54:41,980 --> 00:54:45,920 Të hapur një skedar të quajtur unique.php dhe në të shkruaj një program PHP 597 00:54:45,920 --> 00:54:48,330 (E njohur edhe si një "skenar"). 598 00:54:48,330 --> 00:54:55,700 Ne priren për të thirrur ata Scripts nëse ata janë gjëra të shkurtra që ju të kandidojë në rreshtin e komandave. 599 00:54:55,700 --> 00:55:02,950 Në thelb, çdo gjuhë që ju nuk përpilojnë, por ju jeni duke shkuar për të drejtuar ekzekutueshme 600 00:55:02,950 --> 00:55:05,920 në rreshtin e komandave, ju mund të telefononi atë dorëshkrim të ekzekutueshme. 601 00:55:05,920 --> 00:55:08,510 Unë mund të ashtu si edhe shkruani një program C që e bën këtë, 602 00:55:08,510 --> 00:55:12,300 por unë nuk e quajnë atë një skenar që kam parë përpilojnë atë dhe pastaj të drejtuar binar. 603 00:55:12,300 --> 00:55:15,480 Por ky program PHP ne jemi duke shkuar për të thirrur një script. 604 00:55:15,480 --> 00:55:23,830 Ose në qoftë se ne e shkroi atë në Python, ose Perl ose Node.js apo ndonjë nga ato gjëra, 605 00:55:23,830 --> 00:55:26,500 ne do të quajmë ato të gjitha Scripts sepse ju drejtuar ata në command line 606 00:55:26,500 --> 00:55:30,040 por ne nuk përpilojnë ato. 607 00:55:30,860 --> 00:55:33,400 Ne mund ta bëjë këtë shumë shpejt. 608 00:55:36,960 --> 00:55:41,480 Ne nuk do të përdorin argv. Le të vetëm nëpër këtë goditje. 609 00:55:41,480 --> 00:55:45,730 Telefononi atë unik, shkruani një program. 610 00:55:45,730 --> 00:55:49,400 Ju mund të supozojmë se input do të përmbajë një fjalë per line. 611 00:55:49,400 --> 00:55:52,020 Në fakt, argv do të jetë mjaft i parëndësishëm për t'u përdorur. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 Gjëja e parë e parë, ne duam të kontrolloni nëse kemi kaluar 1 argumentin command-line. 614 00:56:13,750 --> 00:56:20,900 Ashtu si ju do të presin argc dhe argv në C, ne ende kemi ato në PHP. 615 00:56:20,900 --> 00:56:33,900 Pra, nëse ($ argc! == 2), atëherë unë nuk do të merret me shtypjen e një mesazh apo diçka. 616 00:56:33,900 --> 00:56:37,340 Unë vetëm do të dalë, kodi i gabimit prej 1. 617 00:56:37,340 --> 00:56:41,340 Unë gjithashtu mund të kthehen 1. 618 00:56:41,340 --> 00:56:53,180 Rrallë në PHP jeni në këtë shtet, ku ne jemi në - 619 00:56:53,180 --> 00:56:57,820 Zakonisht ju jeni në një funksion të quajtur me një funksion të quajtur me një funksion të quajtur nga një funksion. 620 00:56:57,820 --> 00:57:02,070 Dhe nëse diçka shkon keq dhe ju vetëm duan të dalë çdo gjë në tërësi, 621 00:57:02,070 --> 00:57:05,680 Dalja vetëm përfundon programin. 622 00:57:05,680 --> 00:57:08,160 Kjo gjithashtu ekziston në C. 623 00:57:08,160 --> 00:57:10,700 Nëse ju jeni në një funksion në një funksion në një funksion në një funksion 624 00:57:10,700 --> 00:57:17,540 dhe ju doni të vetëm të vrasin programin, ju mund të telefononi dalje dhe kjo thjesht do të dalë. 625 00:57:17,540 --> 00:57:23,120 Por në PHP është edhe më e rrallë që ne jemi në këtë nivel të lartë. 626 00:57:23,120 --> 00:57:26,090 Zakonisht ne jemi në brendësi të një lloj të funksioni, kështu që ne e quajmë dalje 627 00:57:26,090 --> 00:57:29,650 kështu që ne nuk duhet të kthehen deri 1 gjë e cila më pas pëson ka një gabim 628 00:57:29,650 --> 00:57:32,270 kështu që kthen në qoftë se njeh ka qenë një gabim. 629 00:57:32,270 --> 00:57:35,270 Ne nuk duan të merren me këtë, kështu që të dalë (1); 630 00:57:35,270 --> 00:57:38,240 kthimi (1); në këtë rast do të jetë ekuivalent. 631 00:57:38,240 --> 00:57:44,000 >> Atëherë çfarë ne duam të hapur ne duam të fopen. 632 00:57:44,000 --> 00:57:46,760 Argumentet do të duken mjaft të ngjashme. 633 00:57:46,760 --> 00:57:51,600 Ne duam të fopen ($ argv [1], dhe ne duam të hapur atë për lexim. 634 00:57:51,600 --> 00:57:55,720 Kjo kthen një burim të cilën ne jemi duke shkuar për të thirrur f. 635 00:57:55,720 --> 00:58:02,180 Kjo duket shumë e ngjashme me mënyrën se si e bën këtë përveç C ne nuk kemi për të thënë * skedar. 636 00:58:02,180 --> 00:58:06,170 Në vend të kësaj, ne vetëm të thonë se $ f. Rregull. 637 00:58:06,170 --> 00:58:17,190 Në fakt, unë mendoj se kjo edhe na jep një aluzion të funksionojë si PHP quajtur file. Dokumentit PHP. 638 00:58:17,190 --> 00:58:23,990 Çfarë kjo do të bëni është të lexoni një file të tërë në një grup. 639 00:58:23,990 --> 00:58:29,770 Ti as nuk duhet të fopen atë. Ajo do të bëjë që për ju. 640 00:58:37,450 --> 00:58:43,700 Pra, linja = $ file ($ argv [1]); 641 00:58:43,700 --> 00:58:49,680 Tani të gjitha linjat e dosjes janë në linja. Tani ne duam të lloj linja. 642 00:58:49,680 --> 00:58:52,180 Si mund të lloj linjat? 643 00:58:52,180 --> 00:58:54,920 Ne lloj linja. 644 00:58:54,920 --> 00:58:58,080 Dhe tani ne mund të shtypura të tyre apo çfarëdo. 645 00:58:58,080 --> 00:59:05,580 Ndoshta mënyra më e lehtë është foreach ($ linja si $ line) echo $ line; 646 00:59:05,580 --> 00:59:10,960 [Student] nuk do të kemi edhe të kalojnë linjat duke referuar diçka në lloj? 647 00:59:10,960 --> 00:59:28,850 Kjo është ajo ku lloj do të përcaktohet si lloj funksion ($ array &). 648 00:59:28,850 --> 00:59:32,650 Kur ju telefononi funksion ju nuk e kalojnë atë duke iu referuar. 649 00:59:32,650 --> 00:59:36,900 Kjo është funksioni që përcakton atë si duke marrë atë si referencë. 650 00:59:36,900 --> 00:59:40,900 Kjo është në fakt pikërisht çfarë shkoi keq 651 00:59:40,900 --> 00:59:46,220 kur ne kemi vënë gjithçka në serverat tanë, kur ne kemi shkuar 5,3-5,4. 652 00:59:46,220 --> 00:59:53,800 Deri 5.4, kjo ishte krejtësisht e arsyeshme. 653 00:59:53,800 --> 00:59:58,740 Një funksion nuk presin për të marrë atë si referencë, por ju mund të kalojë atë si referencë 654 00:59:58,740 --> 01:00:02,860 kështu që nëse funksioni do të ndodhë për të ndryshuar atë, ajo është modifikuar ende. 655 01:00:02,860 --> 01:00:05,850 Që nga 5.4, ju nuk jeni menduar për të bërë këtë. 656 01:00:05,850 --> 01:00:11,740 Deri tani e vetmja mënyrë ju të kalojë duke iu referuar është nëse funksioni në mënyrë eksplicite bën atë. 657 01:00:11,740 --> 01:00:19,840 Nëse ju nuk doni që ajo të ndryshojë atë, atëherë ju duhet të bëni kopje $ = $ linjat dhe kopje të kalojë. 658 01:00:19,840 --> 01:00:24,820 Deri tani linja do të ruhet dhe kopje do të ndryshohet. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. Unë mund të ketë messed up diçka. 660 01:00:31,460 --> 01:00:33,190 Papritur 'lloj'. 661 01:00:38,320 --> 01:00:43,850 Nuk do të jetë diçka që e bën këtë për ne. 662 01:00:43,850 --> 01:00:45,820 Kjo nuk është edhe atje. 663 01:00:45,820 --> 01:00:52,140 Njoftimit, kur ju lexoni manualin që Argumenti i parë pritet të jetë një grup 664 01:00:52,140 --> 01:00:56,490 dhe kjo është marrë duke iu referuar. 665 01:00:58,160 --> 01:01:03,540 Pse është kjo ankuar për mua? Sepse unë kam këtë lloj funksioni ende në këtu se unë nuk dua. 666 01:01:03,540 --> 01:01:09,210 Mirë, php.unique.php. Unë nuk të kalojë atë një argument, sepse unë nuk kam një skedar. 667 01:01:09,210 --> 01:01:13,560 Është php.unique.php në test.php. 668 01:01:13,560 --> 01:01:19,080 Këtu është test.php shtypura jashtë të gjithë në një mënyrë të bukur renditura. 669 01:01:19,080 --> 01:01:24,600 Vini re se për të renditura është lloj i pazakontë për një fotografi kod 670 01:01:24,600 --> 01:01:27,460 sepse të gjitha linjat tona bosh do të vijë më parë 671 01:01:27,460 --> 01:01:30,190 pastaj do të vijnë të gjithë indentations 1 tanë të nivelit të 672 01:01:30,190 --> 01:01:33,360 pastaj vijnë të gjitha indentations tonë nr. 673 01:01:33,360 --> 01:01:38,620 Po. >> [Student] Pra, për kodin burim që nuk u kalua duke iu referuar? 674 01:01:38,620 --> 01:01:42,240 Është se kaluar përgjithësisht nga vlera? 675 01:01:42,240 --> 01:01:50,240 [Bowden] Kur ju telefononi një funksion, ajo kurrë nuk përcakton nëse ajo u miratua me referencë. 676 01:01:50,240 --> 01:01:53,960 Kjo është përkufizimi funksion i cili përcakton nëse ajo u miratua me referencë. 677 01:01:53,960 --> 01:01:59,450 Dhe duke kërkuar në përcaktimin e funksionit lloj ose thjesht duke kërkuar në këtë, 678 01:01:59,450 --> 01:02:02,820 ajo merr argumentin duke iu referuar. 679 01:02:02,820 --> 01:02:07,160 Pra, pavarësisht nëse ju dëshironi që ajo të marrë atë duke iu referuar, ajo ka marrë atë me referencë. 680 01:02:07,160 --> 01:02:10,200 Ajo modifikon array në vend. 681 01:02:10,200 --> 01:02:17,400 Kjo nuk është e lejuar vetëm. Ju nuk jeni i lejuar për të bërë këtë. >> [Student] Oh, në rregull. 682 01:02:17,400 --> 01:02:22,410 [Bowden] Ky, lloj do të marrë linjat duke iu referuar dhe të modifikojë atë. 683 01:02:22,410 --> 01:02:26,850 Dhe përsëri, në qoftë se ju nuk doni të bëni këtë, ju mund të bëni një kopje të tillë. 684 01:02:26,850 --> 01:02:35,850 Edhe në këtë rast, kopja nuk është në fakt një kopje e linjave. 685 01:02:35,850 --> 01:02:40,620 Ajo thjesht tregon të njëjtën gjë deri sa ajo të parë merr modifikuar, 686 01:02:40,620 --> 01:02:44,430 ku është parë do të merrni ndryshuar në funksion të renditjes, 687 01:02:44,430 --> 01:02:50,940 ku, për shkak se është kopje-mbi-shkruar, tani është një kopje e kopjes do të bëhet. 688 01:02:57,500 --> 01:03:04,250 Ju gjithashtu mund të bëjë këtë. Kjo është vend tjetër ju mund të shihni simbol. 689 01:03:04,250 --> 01:03:07,190 Ju shikoni atë në sythe foreach, ju shohin atë në deklaratat funksion, 690 01:03:07,190 --> 01:03:10,040 dhe ju shohin atë kur vetëm caktimin e variablave. 691 01:03:10,040 --> 01:03:12,350 Tani ne kemi arritur asgjë duke e bërë këtë 692 01:03:12,350 --> 01:03:15,600 sepse kopje fjalë për fjalë dhe linjat e njëjta gjë. 693 01:03:15,600 --> 01:03:19,940 Ju mund të përdorni linjat dhe kopje të këmbyeshme. 694 01:03:19,940 --> 01:03:25,430 Ju mund të bëni unset ($ kopje), dhe se nuk ka linja unset, 695 01:03:25,430 --> 01:03:29,120 ju vetëm humbur referencë tuaj për të njëjtën gjë. 696 01:03:29,120 --> 01:03:33,440 Pra, si të kësaj pike, tani linja është e vetmja mënyrë që ju mund të hyni në linja. 697 01:03:36,450 --> 01:03:38,770 >> Pyetje? 698 01:03:41,000 --> 01:03:42,460 Po. 699 01:03:42,460 --> 01:03:45,880 [Student] Plotësisht jashtë teme, por ju nuk keni për të mbyllur me PHP - >> ju nuk bëni. 700 01:03:45,880 --> 01:03:47,730 Rregull. 701 01:03:47,730 --> 01:03:53,790 [Bowden] Unë do të shkojë aq larg sa të thonë se kjo është praktikë e keqe për të mbyllur ato. 702 01:03:53,790 --> 01:03:57,580 Kjo është ndoshta një ekzagjerim, sidomos në një skenar, 703 01:03:57,580 --> 01:04:03,740 por le të shohim se çfarë ndodh në qoftë se unë bëj këtë. 704 01:04:03,740 --> 01:04:08,890 Që nuk bëri asgjë. Çfarë ndodh nëse kam kërkuar - [pëshpëritjet] 705 01:04:13,870 --> 01:04:16,960 Unë kam nevojë për të kaluar një argument. 706 01:04:19,000 --> 01:04:22,050 Xhiruar. I quajtur atë të gabuar. 707 01:04:24,340 --> 01:04:28,310 Pra php.unique.php me një argument. 708 01:04:28,310 --> 01:04:30,980 Tani unë nuk e di edhe nevojë për këtë. 709 01:04:34,520 --> 01:04:37,740 Unë do të kalojë atë një argument valid. 710 01:04:37,740 --> 01:04:42,050 Kjo shtypura çfarëdo qoftë ajo është shtypje. 711 01:04:45,260 --> 01:04:50,080 Unë jam shtypjen kopje dhe kopje nuk ekziston. Pra, linja. 712 01:04:53,650 --> 01:04:58,270 Ajo shtypur çdo gjë, dhe pastaj të vini re të gjitha junk këtë këtu poshtë, 713 01:04:58,270 --> 01:05:06,690 sepse në çdo gjë që është jashtë PHP e etiketave PHP 714 01:05:06,690 --> 01:05:09,520 është vetëm do të jenë të shtypura fjalë për fjalë. 715 01:05:09,520 --> 01:05:18,050 Kjo është arsyeja pse HTML, është kaq e bukur që unë mund të bëjë div llafe, llafe, llafe klasë apo çfarëdo, 716 01:05:18,050 --> 01:05:25,140 blah, blah, blah dhe pastaj të bëjë disa kodin PHP dhe pastaj të bëjë div fund. 717 01:05:25,140 --> 01:05:36,460 Dhe tani kjo shtypje shkoj div tim bukur deri krye, çdo gjë që PHP shtypura, në fund div. 718 01:05:36,460 --> 01:05:43,510 Katastrofike kur diçka e tillë ndodh, e cila është shumë e zakonshme, 719 01:05:43,510 --> 01:05:47,930 vetëm një newline humbur në fund të file. 720 01:05:47,930 --> 01:05:50,940 Ju nuk do të mendoni se ajo do të jetë se i madh i një marrëveshje 721 01:05:50,940 --> 01:05:58,660 deri sa ju e konsideroni faktin se me shfletuesit - 722 01:05:58,660 --> 01:06:03,880 >> Si përcjellëse punë ose në thelb ndonjë punë headers, 723 01:06:03,880 --> 01:06:07,980 kur ju bëni lidhjen tuaj në një faqe interneti dhe kjo dërgon përsëri të gjitha këto headers dhe gjëra të 724 01:06:07,980 --> 01:06:12,020 si përgjigje apo 200 përgjigje përcjellëse apo çfarëdo, 725 01:06:12,020 --> 01:06:18,230 headers janë të vlefshme vetëm deri byte parë të të dhënave është dërguar. 726 01:06:18,230 --> 01:06:23,140 Ju mund të përcjellim mijëra herë, por sa më shpejt që byte parë të të dhënave është dërguar 727 01:06:23,140 --> 01:06:26,120 ju nuk jeni menduar të përcjellim përsëri. 728 01:06:26,120 --> 01:06:31,860 >> Nëse ju keni një newline humbur në fund të një file 729 01:06:31,860 --> 01:06:37,260 dhe le të thonë se ju përdorni këtë funksion dhe pastaj ju doni të - 730 01:06:41,580 --> 01:06:52,870 Le të thonë se kjo është një tjetër fotografi që është index.php dhe ju require_once diçka - 731 01:06:52,870 --> 01:06:56,920 Unë nuk mund të mendoj për një shembull të mirë të saj. 732 01:06:56,920 --> 01:07:04,740 Çështja ndodh kur kjo linjë në fund merr jehonë. 733 01:07:04,740 --> 01:07:08,660 Ju nuk duan asgjë që janë jehonë ende. 734 01:07:10,820 --> 01:07:15,700 Edhe pse ju nuk e keni ndërmend për asgjë duke jehonën, diçka ka marrë jehonë 735 01:07:15,700 --> 01:07:17,990 dhe kështu që tani ju nuk jeni menduar të dërgojë headers më 736 01:07:17,990 --> 01:07:20,030 dhe ju jeni duke shkuar për të marrë ankesat. 737 01:07:22,170 --> 01:07:24,420 Ju thjesht nuk keni nevojë këto tags mbylljes. 738 01:07:24,420 --> 01:07:27,420 Nëse keni ndërmend të bëjnë diçka me HTML - 739 01:07:27,420 --> 01:07:30,490 dhe kjo është krejtësisht e arsyeshme të bëjmë këtu poshtë div çfarëdo 740 01:07:30,490 --> 01:07:39,450 dhe pastaj në këtë pikë ju mund ose nuk mund të përfshijnë ato. 741 01:07:39,450 --> 01:07:41,590 Ajo nuk ka të vërtetë rëndësi. 742 01:07:41,590 --> 01:07:45,450 Por në Scripts PHP është e rrallë për të mbyllur atë. 743 01:07:45,450 --> 01:07:50,400 Kur çdo gjë është PHP, absolutisht çdo gjë, 744 01:07:50,400 --> 01:07:55,460 ju nuk duhet të vërtetë për të mbyllur atë / ju nuk duhet të mbyllë atë. 745 01:08:02,030 --> 01:08:05,720 >> Ballafaqimi me vargjet është shumë nicer se në C. 746 01:08:05,720 --> 01:08:09,470 Në PHP ju mund të specifikoni një varg me citate të vetme apo të dyfishtë. 747 01:08:09,470 --> 01:08:12,820 Me kuotat e vetme që ju nuk mund të përdorni "shpëtojnë" sekuenca. 748 01:08:12,820 --> 01:08:17,640 Vazhdimisht shpëtuar, blah, blah, blah. 749 01:08:19,920 --> 01:08:24,010 Pra printf është shumë e rrallë në PHP. 750 01:08:24,010 --> 01:08:32,290 I guess I do të përdorë printf nëse kam kërkuar për të bërë një gjë e tillë - në pset 5 keni përdorur sprintf apo çfarëdo. 751 01:08:32,290 --> 01:08:36,060 Por ju doni të bëni 001.jpg 002.jpg dhe. 752 01:08:36,060 --> 01:08:40,300 Pra, për këtë lloj gjë, ku unë në fakt duan të formatin e tekstit unë do të përdorë printf. 753 01:08:40,300 --> 01:08:44,689 Por ndryshe unë vetëm do të përdorin varg string. 754 01:08:44,689 --> 01:08:47,000 Unë kurrë nuk përdorin printf. 755 01:08:49,229 --> 01:09:00,170 Ne jemi vetëm detajet diferencuar midis kuotat e vetme dhe citate të dyfishtë. 756 01:09:00,170 --> 01:09:07,490 Dallimi më i madh është se kuotat e vetme, ajo do të shtypura fjalë për fjalë. 757 01:09:07,490 --> 01:09:15,390 Nuk ka char dhënave lloji në PHP, ndryshe C, kështu që kjo është ekuivalente me këtë. 758 01:09:15,390 --> 01:09:17,970 Ata janë të dy vargjet. 759 01:09:17,970 --> 01:09:29,180 Dhe gjë e bukur për vargjet japin kuotën e vetme është që unë mund të them 'hello botë! " blah, blah, blah, 760 01:09:29,180 --> 01:09:33,340 $ $ Wooo. 761 01:09:33,340 --> 01:09:38,260 Çfarë ndodh kur unë të shtypura kjo është ajo do të shtypura atë fjalë për fjalë. 762 01:09:38,260 --> 01:09:40,680 Le të shpëtoj nga të gjitha stuff tonë. 763 01:09:40,680 --> 01:09:44,700 Pra echo $ str1; 764 01:09:48,569 --> 01:09:56,570 Ajo shtypura fjalë për fjalë të gjitha ato gjëra: argumentet dollar, 765 01:09:56,570 --> 01:09:58,770 backslash n, të cilat ju do të mendoni se do të jetë newlines - 766 01:09:58,770 --> 01:10:01,500 të gjitha ato gjëra që printon fjalë për fjalë. 767 01:10:01,500 --> 01:10:05,650 Vetmja gjë që ju duhet për të shpëtuar janë citate të vetme 768 01:10:05,650 --> 01:10:09,470 sepse përndryshe ai do të mendoj se është mbylljes kuotat e vetme. 769 01:10:09,470 --> 01:10:15,050 Kuotat e dyfishtë, krejtësisht të ndryshme. 770 01:10:20,300 --> 01:10:25,870 Ne tashmë shohim theksim i sintaksës është cluing na me atë që është gati për të shkuar tmerrësisht keq. 771 01:10:25,870 --> 01:10:36,190 php.unique. Padefinuar ndryshueshme: wooo sepse kjo është interpretuar si një ndryshore të quajtur wooo. 772 01:10:36,190 --> 01:10:42,400 Kuotat e dyfishtë të ju lejojnë të futur variablave në - 773 01:10:42,400 --> 01:10:52,730 Le të thonë se $ name = "Rob"; 774 01:10:52,730 --> 01:10:58,020 Pra echo "Hi, emri im është $ emri!"; 775 01:10:58,020 --> 01:11:09,260 Ajo e njeh këtë si një variabël. 776 01:11:09,260 --> 01:11:21,210 Kur kam drejtuar atë - dhe unë do të futur një newline - Hi, emri im është Rob! dhe Hello World! 777 01:11:21,210 --> 01:11:24,910 Kjo është për shkak se kurrë nuk kam hequr shtypjen e wooo sipër. 778 01:11:24,910 --> 01:11:30,020 Ka 1 hap më tej ju mund të bëni. 779 01:11:30,020 --> 01:11:39,250 $ Grup = [1, 2, 3]; 780 01:11:39,250 --> 01:11:43,270 Çka nëse unë dua të shtypura indeksin e parë të grup? 781 01:11:43,270 --> 01:11:45,150 Ju bëni $ array [0]. 782 01:11:45,150 --> 01:11:49,280 Të theksim i sintaksës është një çelës. Çfarë është kjo do të bëni? 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 Hi, emri im është 1! e cila nuk është ajo që kam kërkuar. 785 01:11:59,860 --> 01:12:05,050 Theksim i sintaksës gënjyer për mua. 786 01:12:05,050 --> 01:12:13,020 Le provoni 'një' -> 1, 'b' -> 2. 787 01:12:18,450 --> 01:12:21,440 Kjo është se si unë do të duhet për të shkruar atë. 788 01:12:26,350 --> 01:12:32,160 Quote papritur vetme (T_ENCAPSED blah, blah, blah, blah, blah). 789 01:12:32,160 --> 01:12:41,780 Ideja është se ajo nuk është e njohur kjo si pjesë e grup. 790 01:12:41,780 --> 01:12:46,620 Kjo nuk është e njohur këtë si grup indeksuar me letër një. 791 01:12:46,620 --> 01:12:49,870 Ju dëshironi të bëni që formatimin e teksteve kaçurrel rrethuar nga, 792 01:12:49,870 --> 01:12:54,730 dhe tani çdo gjë është në këtë mbajtëse kaçurrel do të interpoluar, 793 01:12:54,730 --> 01:13:00,340 cila është fjala që ne përdorim për të magjike futur këto ndryshore në vendet e drejtë. 794 01:13:00,340 --> 01:13:04,280 Tani duke bërë këtë, php.unique, dhe Hi, emri im është 1! siç pritej 795 01:13:04,280 --> 01:13:07,720 ose Hi, emri im është Rob! 796 01:13:14,110 --> 01:13:23,130 Një gjë që është lloj i bukur për kuotat e vetme është se - 797 01:13:23,130 --> 01:13:28,480 Ka disa kosto të interpolating. 798 01:13:30,520 --> 01:13:35,100 Në qoftë se ju përdorni kuotat e dyfishtë, përkthyesi ka për të shkuar mbi këtë varg, 799 01:13:35,100 --> 01:13:41,500 duke u siguruar se, "Oh, këtu është një ndryshore. Tani unë duhet të shkoni të merrni atë variabël dhe futur atë këtu." 800 01:13:41,500 --> 01:13:48,930 Edhe nëse ju nuk e përdorni ndonjë variablave, 801 01:13:48,930 --> 01:13:52,220 asgjë brenda këtyre citateve të dyfishta duhet të interpoluar, 802 01:13:52,220 --> 01:13:56,800 por ajo do të vazhdojë të jetë i ngadalshëm, sepse ajo ka nevojë për të shkuar mbi kuotat e dyfishtë 803 01:13:56,800 --> 01:14:00,130 kërkoni për gjërat që duhet të interpoluar. 804 01:14:00,130 --> 01:14:05,360 Citon në mënyrë të vetme mund të jetë pak më të shpejtë në qoftë se asgjë nuk duhet të interpoluar, 805 01:14:05,360 --> 01:14:15,650 dhe unë priren të përdorni edhe citate të vetme për të, "Hi, emri im është '. $ Array ['a'] anyway. 806 01:14:15,650 --> 01:14:20,430 Kjo do të jetë e barabartë me atë që kishim më parë. 807 01:14:24,840 --> 01:14:28,440 Por kjo është një çështje preference. 808 01:14:28,440 --> 01:14:34,750 Nëse jeni duke përdorur PHP, ju ndoshta nuk bëni kujdes për ndryshim shpejtësi. 809 01:14:34,750 --> 01:14:39,480 Nuk është e mjaftueshme për të arsyetuar ato për të filluar me. 810 01:14:39,480 --> 01:14:43,030 >> Çdo pyetje përfundimtare? 811 01:14:47,430 --> 01:14:51,710 >> Ne fakt nuk e merrni edhe nëpër të gjitha e saj, por kjo stuff ishte i mërzitshëm. 812 01:14:51,710 --> 01:14:59,080 Gjëja e fundit që është lloj i bukur në PHP është kur ju jeni që kanë të bëjnë me HTML, 813 01:14:59,080 --> 01:15:06,450 ju do të përdorni atë pak, kështu që sintaksën bukur shkurtore për shtypjen e një ndryshore. 814 01:15:32,400 --> 01:15:36,730 Pa vënë PHP këtu, kjo quhet tags shkurtra. 815 01:15:36,730 --> 01:15:44,330 Zyrtarisht si i PHP 5.4, kjo është tejkaluar. 816 01:15:44,330 --> 01:15:48,640 Ju jeni rekomanduar për të vënë PHP. 817 01:15:48,640 --> 01:15:55,770 Kjo është mbështetur ende, tags kaq të shkurtër me 01:16:02,480 Ajo është mbështetur nga default, kështu që ju mund të përdorni këto si ju dëshironi, dhe ata janë mjaft të përshtatshëm. 819 01:16:02,480 --> 01:16:05,700 >> Çdo pyetje? 820 01:16:07,780 --> 01:16:09,270 Dakord. 821 01:16:10,840 --> 01:16:13,800 >> Qëndro i stilit të lartë, San Diego. 822 01:16:13,800 --> 01:16:16,070 [Chuckles] 823 01:16:18,620 --> 01:16:22,660 Bye. [Qesh] 824 01:16:24,350 --> 01:16:28,470 [Duartrokitje] [qesh] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]