1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [8 skirsnis - patogiau] 2 00:00:02,610 --> 00:00:04,910 [Rob Bowden - Harvardo universiteto] 3 00:00:04,910 --> 00:00:07,070 [Tai CS50. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> Šie savaitę skirsnio pastabų bus gana trumpas, 5 00:00:14,160 --> 00:00:19,070 todėl aš tik ketina toliau kalbėti, jus vaikinai ketinate laikyti užduoti klausimus, 6 00:00:19,070 --> 00:00:22,720 ir mes pasistengsime užpildyti tiek laiko, kiek įmanoma. 7 00:00:22,720 --> 00:00:31,950 Daugybė žmonių mano, kad šis pset nebūtinai yra sudėtinga, bet tai labai ilgai. 8 00:00:31,950 --> 00:00:37,070 Pats pset spec trunka valandą skaityti. 9 00:00:40,530 --> 00:00:45,730 Mes suteikiame jums daug SQL jūs galbūt reikia naudoti. 10 00:00:45,730 --> 00:00:50,520 Mes jums per daug jo, todėl jis neturėtų būti labai blogai. 11 00:00:50,520 --> 00:00:54,560 Ar kas nors pradėjo ar baigtas? 12 00:00:55,380 --> 00:00:59,710 Tai paskutinį pset. O, Dieve. 13 00:00:59,710 --> 00:01:05,400 Paprastai ten JavaScript po to, tačiau kalendorinių ką nors keičia 14 00:01:05,400 --> 00:01:09,560 daro viską, 1 savaitė trumpesnis, ir mes jau nebeturi JavaScript pset. 15 00:01:09,560 --> 00:01:12,310 Aš nežinau, kaip, kuri paveikia, ar "JavaScript" ketina įtraukti į egzaminą 16 00:01:12,310 --> 00:01:15,510 arba Viktorina 1. 17 00:01:15,510 --> 00:01:22,260 Įsivaizduoju tai bus kažkas panašaus aukšto lygio dalykų jums reikia žinoti apie JavaScript, 18 00:01:22,260 --> 00:01:26,460 bet aš abejoju, mes norime tiesiog suteikti jums tiesiai JavaScript kodas 19 00:01:26,460 --> 00:01:28,720 nes jūs neturėjo pset į jį. 20 00:01:28,720 --> 00:01:33,000 Bet tai bus viktorina peržiūros stuff kitą savaitę. 21 00:01:33,000 --> 00:01:36,320 >> Skyrius klausimų. 22 00:01:36,320 --> 00:01:43,870 Daug šios medžiagos yra šiek tiek blogai suformuluotas, tačiau mes aptarsime, kodėl. 23 00:01:43,870 --> 00:01:50,220 Skirtingai nuo C, PHP yra "dinamiškai įvedėte kalba". Ką tai reiškia, Jūs klausiate? 24 00:01:50,220 --> 00:01:53,830 Na, atsisveikinti su visų tų char, plūdės, INT, ir kitus raktinius žodžius jums reikia naudoti 25 00:01:53,830 --> 00:01:56,190 skelbiantis kintamieji ir funkcijos pagal C. 26 00:01:56,190 --> 00:02:00,420 PHP, kintamojo tipas yra nustatoma, kad jis šiuo metu holdingo vertės. 27 00:02:00,420 --> 00:02:04,990 Taigi, kol mes įveskite šį kodą į failą pavadinimu dynamic.php, 28 00:02:04,990 --> 00:02:12,670 PHP dinamiškai įvedėte. Kad tai tiesa. 29 00:02:12,670 --> 00:02:17,590 Aš nesutinku su tuo, kad tai reiškia, kad mes atsisveikinimas su char, plūdės, int, 30 00:02:17,590 --> 00:02:20,620 kitus raktinius žodžius. 31 00:02:20,620 --> 00:02:25,510 Tiksli skirtumas tarp dinamiškai įvedėte ir nepatenkinus šio reikalavimo, 32 00:02:25,510 --> 00:02:32,010 statiškai įvedėte, yra tai, kad dinamiškai įvedėte, visi savo tipo tikrinimo ir kita 33 00:02:32,010 --> 00:02:37,350 vyksta vykdymo metu, o statiškai įvedėte tai atsitinka kompiliavimo metu. 34 00:02:37,350 --> 00:02:43,030 Žodis static apskritai atrodo, kad tai kompiliavimo metu dalykų. 35 00:02:43,030 --> 00:02:48,170 Manau, yra ir kitų naudoja jį, bet C, Kai paskelbti statinis kintamasis, 36 00:02:48,170 --> 00:02:52,650 jo sandėliavimą skiriama kompiliavimo metu. 37 00:02:52,650 --> 00:02:59,260 Čia, dinamiškai įvedėte tiesiog reiškia, kad - 38 00:02:59,260 --> 00:03:04,350 In C, jei bandysite pridėti eilutę ir sveikasis skaičius, kai renka, 39 00:03:04,350 --> 00:03:11,000 ji ketina skųstis, nes jis ketina pasakyti, kad jūs negalite pridėti int ir rodyklę. 40 00:03:11,000 --> 00:03:14,710 Tai tiesiog neteisingas veikimas. 41 00:03:14,710 --> 00:03:21,170 Kad yra dar vienas dalykas, kad mes gauti per sekundės dalį. 42 00:03:21,170 --> 00:03:24,860 Bet, kad tikrinimo rūšiuoti, tai, kad ji skundžiasi, kompiliavimo metu, 43 00:03:24,860 --> 00:03:29,220 yra statinis tipas tikrinamas. 44 00:03:29,220 --> 00:03:35,220 Yra kalbos, kur jums nereikia pasakyti char, plūdės, int, ir visi iš tų dalykų, 45 00:03:35,220 --> 00:03:40,940 tačiau kalbos dalykas galiu pasakyti iš kokios rūšies ji turėtų būti, 46 00:03:40,940 --> 00:03:43,980 bet jis vis dar statiškai įvedėte. 47 00:03:43,980 --> 00:03:49,000 Taigi, jei jūs vartojate 51, OCaml, jums niekada nereikės naudoti bet kurią iš šių rūšių, 48 00:03:49,000 --> 00:03:58,700 tačiau ji vis dar kompiliavimo metu sako, kad jūs negalite padaryti, nes jūs maišymo int ir styginių. 49 00:03:58,700 --> 00:04:05,650 Dinamiškai įvedėte tiesiog reiškia, kad kažkada per vykdymo metu jūs ketinate gauti skundą. 50 00:04:05,650 --> 00:04:13,430 Jei jūs taip pat naudojamas Java anksčiau, apskritai, beveik bet C tipo kalba 51 00:04:13,430 --> 00:04:20,070 bus statiškai įvedėte, kad su C, C + +, Java, visi iš jų yra statiškai įvedėte. 52 00:04:20,070 --> 00:04:22,910 "Java", kai renka kažką, o jūs sakote, 53 00:04:22,910 --> 00:04:26,670 eilutė lygi kažką, kad yra ne eilutę, 54 00:04:26,670 --> 00:04:28,950 kad manimi vyksta skųstis, nes šios rūšys tiesiog nesutampa. 55 00:04:28,950 --> 00:04:31,180 Kad manimi vyksta skųstis kompiliavimo metu. 56 00:04:31,180 --> 00:04:36,750 Tačiau ji taip pat turi tam tikrą dinaminį laiko, dalykų, pavyzdžiui, jei jūs bandote mesti kažką 57 00:04:36,750 --> 00:04:40,500 tipo, kad konkretesnė nei dabartinio tipo, 58 00:04:40,500 --> 00:04:45,610 nieko, jis gali padaryti kompiliavimo metu patikrinti, ar turėtų sulaukti pasisekimo, kad dauguma yra. 59 00:04:45,610 --> 00:04:51,130 "Java" taip pat turi tam tikrą dinaminį tipą, kontroliuoja, kaip kuo greičiau ji pasireiškia eilutės kodo 60 00:04:51,130 --> 00:04:54,130 , kai jis faktiškai vykdyti, jis ketina padaryti dauguma, 61 00:04:54,130 --> 00:04:56,260 patikrinti, ar galioja į pirmąją vietą, kad dauguma buvo, 62 00:04:56,260 --> 00:04:59,890 ir jei jis nebuvo, tada jis skundžiasi, kad turite netinkamo tipo. 63 00:04:59,890 --> 00:05:03,200 Dinaminio tipo tikrinimas. 64 00:05:03,200 --> 00:05:07,010 Tipo tai į failą pavadinimu dynamic.php. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 Aš išpakuokite, kad formatavimą. 67 00:05:18,750 --> 00:05:21,880 Mes turime kintamąjį, nustatykite jį į sveikasis skaičius 7, 68 00:05:21,880 --> 00:05:27,930 tada mes ketiname jį spausdinti ir% s - 69 00:05:27,930 --> 00:05:32,830 O, mes spausdinti jo tipą, todėl gettype ketina grįžti kintamojo tipą. 70 00:05:32,830 --> 00:05:35,720 Mes tiesiog spausdinate, tipą, vėl ir vėl. 71 00:05:35,720 --> 00:05:39,440 Mes tiesiog php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 Mes pamatysime, kad jis kinta nuo sveikojo skaičiaus į eilutę su Būlio, kaip mes einame per 73 00:05:45,920 --> 00:05:54,590 C nėra Būlio duomenų tipas, nėra eilutė duomenų tipas. 74 00:05:54,590 --> 00:06:00,500 Char * ir Būlio tiesiog linkęs būti int ar apdegti ar kažką. 75 00:06:00,500 --> 00:06:05,690 PHP, šie tipai egzistuoja, ir tai yra vienas iš didžiausių privalumų PHP virš C - 76 00:06:05,690 --> 00:06:13,290 kad styginių operacijos PHP yra be galo lengviau nei C. Jie tiesiog veikia. 77 00:06:13,290 --> 00:06:18,290 >> Taigi, mes grįžti čia. 78 00:06:18,290 --> 00:06:21,260 Nubėgome dynamic.php. 79 00:06:21,260 --> 00:06:26,710 Tai sako, kad PHP vertėją, vadinamą PHP, paleisti PHP kodą dynamic.php. 80 00:06:26,710 --> 00:06:30,250 Jei turite kokių nors klaidų faile, vertėjas pasakyti! 81 00:06:30,250 --> 00:06:39,110 Vertėjas, tai yra dar vienas didelis skirtumas tarp PHP ir C. 82 00:06:39,110 --> 00:06:48,200 In C, turite sudaryti kažką ir tada jums paleisti, kad surinktą failą. 83 00:06:48,200 --> 00:06:50,490 PHP jūs niekada sudaryti nieko. 84 00:06:50,490 --> 00:06:57,200 Taigi PHP interpretatorius iš esmės tik skaitote šią eilutę po eilutės. 85 00:06:57,200 --> 00:07:02,900 Jis hitai var = 7 tada jis hitai printf tada jis hitai var tada jis hitai printf ir pan. 86 00:07:02,900 --> 00:07:10,910 Sudarymo, ji yra šiek tiek, ir jis išsaugo rezultatus 87 00:07:10,910 --> 00:07:15,510 todėl, jei jums paleisti scenarijų vėliau jūs galite padaryti, kai, 88 00:07:15,510 --> 00:07:19,280 bet iš esmės tai dalykas rūšiuoti eilutėje linija. 89 00:07:19,280 --> 00:07:25,280 Tai reiškia, kad daug optimizavimu, kad mes gauname C, 90 00:07:25,280 --> 00:07:31,920 kaip renkant, tai tiesiog paprastai kompiliatorius gali padaryti daug triukų jums. 91 00:07:31,920 --> 00:07:36,110 Nenaudojamus kintamuosius gali imti, ji gali padaryti visų šių dalykų rūšių, 92 00:07:36,110 --> 00:07:38,660 jis gali padaryti hidraulinis rekursija. 93 00:07:38,660 --> 00:07:42,550 PHP nesate ketinate gauti šią naudą 94 00:07:42,550 --> 00:07:45,690 , nes jis tik ketina pradėti vykdyti eilutę, eilutė po eilutės, 95 00:07:45,690 --> 00:07:49,950 ir ji tikrai ne pripažinti šiuos dalykus, taip pat lengvai, 96 00:07:49,950 --> 00:07:54,440 nes tai ne 1 didelis rinkinys praeiti per dalykas ir tada vykdymas; 97 00:07:54,440 --> 00:07:56,860 tai tiesiog eilutė po eilutės. 98 00:08:00,730 --> 00:08:02,750 Taip, kad vertėjas. 99 00:08:02,750 --> 00:08:06,840 >> Atgal, kad mūsų dinamiško rašyti: gana kietas, eh? 100 00:08:06,840 --> 00:08:08,640 Jūs tikrai negalėjo padaryti, kad C! 101 00:08:08,640 --> 00:08:11,860 Dabar, pamatyti, jei galite išsiaiškinti kiekvieno iš šių verčių. 102 00:08:11,860 --> 00:08:14,760 Žiūrėti šį prašymą priimti prejudicinį sprendimą. 103 00:08:14,760 --> 00:08:19,420 Taigi 3,50. Kokio tipo jūs manote, kad bus? 104 00:08:24,480 --> 00:08:26,370 Čia yra rūšių, mes turime. 105 00:08:26,370 --> 00:08:30,430 Mes turime bools, sveikieji skaičiai, plūdrieji taško, stygos, masyvai, objektai, 106 00:08:30,430 --> 00:08:38,370 ir tada ištekliai, kurie yra rūšies neaiški. 107 00:08:38,370 --> 00:08:41,010 Manau, kad ten iš tikrųjų pavyzdys čia. 108 00:08:41,010 --> 00:08:43,740 Tada yra NULL. NULL yra specialaus tipo. 109 00:08:43,740 --> 00:08:47,140 Skirtingai nuo C kur NULL yra tik rodyklė su adresu 0, 110 00:08:47,140 --> 00:08:54,930 PHP, NULL yra savo tipo, kur galioja tik tos rūšies dalykas yra NULL. 111 00:08:57,560 --> 00:09:00,670 Tai daug daugiau naudingos klaidų tikrinimas. 112 00:09:00,670 --> 00:09:04,310 C, kai mes turėjome šį klausimą, kur, jei grąžina NULL, 113 00:09:04,310 --> 00:09:08,660 ar tai reiškia, jūs grąžinti NULL žymiklį arba naudojant NULL reiškia klaidą 114 00:09:08,660 --> 00:09:12,380 ar visi šios situacijos, mes turėjo vieno taško. 115 00:09:12,380 --> 00:09:18,440 Čia, grįžti NULL paprastai reiškia klaidą. 116 00:09:20,860 --> 00:09:27,300 Daug dalykų, taip pat grįžti false klaidų. 117 00:09:27,300 --> 00:09:33,140 Bet esmė yra NULL tipas, vienintelis dalykas, NULL tipo yra NULL. 118 00:09:33,140 --> 00:09:40,090 Tada atgalinio ryšio, kaip jūs galite apibrėžti kai kuriuos anoniminius funkcijas. 119 00:09:40,090 --> 00:09:46,420 Jūs neturite suteikti funkciją vardą, bet jūs neturite spręsti, kad čia. 120 00:09:46,420 --> 00:09:53,940 Žiūri tipų, kad jie tikisi, kad mes žinome, 121 00:09:53,940 --> 00:09:59,000 ką jūs manote 3,50 tipas? >> [Studentas] Plūdės. 122 00:09:59,000 --> 00:10:00,370 Taip. 123 00:10:00,370 --> 00:10:06,290 Taip, tada čia, ką jūs manote, kad šio tipo? >> [Studentas] masyvas. 124 00:10:06,290 --> 00:10:09,890 Taip. Pirmasis buvo plūdės, o antrasis yra masyvas. 125 00:10:09,890 --> 00:10:14,500 Atkreipkite dėmesį, kad šis masyvas yra ne kaip C masyvo 126 00:10:14,500 --> 00:10:19,610 kur jūs turite indeksą 0 turi tam tikrą vertę, indeksas 1 turi tam tikrą vertę. 127 00:10:19,610 --> 00:10:26,320 Čia indeksai yra a, b, ir c reikšmės: 1, 2, 3. 128 00:10:26,320 --> 00:10:33,980 PHP yra ne skirtumas tarp Association masyvas ir tik reguliariai masyvo 129 00:10:33,980 --> 00:10:36,740 kaip jūs manote, kad C. 130 00:10:36,740 --> 00:10:43,040 Yra tik tai, ir po kapotu reguliariai masyvas yra tik asociatyvus masyvas 131 00:10:43,040 --> 00:10:50,000 kur 0 žemėlapiai kokią vertę Lygiai taip pat žemėlapių kokią vertę. 132 00:10:50,000 --> 00:11:00,410 Dėl šios priežasties, PHP gali būti labai blogai, tikrai greitai dalykų kodas / lyginamoji analizė 133 00:11:00,410 --> 00:11:07,930 nes C, kai jūs naudojate masyvą žinote, kad gauti narį, yra pastovus laiko. 134 00:11:07,930 --> 00:11:11,860 PHP prie narį yra kas žino, kiek laiko? 135 00:11:11,860 --> 00:11:18,970 Tai tikriausiai pastovi, jei jis maišos teisingai. 136 00:11:18,970 --> 00:11:21,620 Kas žino, ką jis iš tikrųjų daro po kapotu? 137 00:11:21,620 --> 00:11:25,600 Jums tikrai reikia pažvelgti įgyvendinimo, norėdami pamatyti, kaip ji ketina spręsti, kad. 138 00:11:25,600 --> 00:11:28,550 Taip, tada fopen. 139 00:11:28,550 --> 00:11:36,420 Manau, kad čia galime tik PHP vadovėlyje fopen pažvelgti grąžinimo tipo. 140 00:11:36,420 --> 00:11:41,260 Mes matome čia jūs galite ieškoti beveik bet kokią funkciją PHP vadove 141 00:11:41,260 --> 00:11:47,540 ir tai yra tarsi PHP žinyno puslapyje. 142 00:11:47,540 --> 00:11:51,060 Grįžimo tipo bus išteklių. 143 00:11:51,060 --> 00:11:56,050 Štai kodėl aš pamačiau jį, nes mes tikrai ne nustatyti išteklių. 144 00:11:56,050 --> 00:12:04,110 Išteklių idėja, C rūšies gavo file * ar kas 145 00:12:04,110 --> 00:12:07,200 PHP ištekliai yra Jūsų failas *. 146 00:12:07,200 --> 00:12:10,360 Tai, ką jūs ketinate skaityti iš, tai, ką jūs ketinate rašyti. 147 00:12:10,360 --> 00:12:20,710 Tai paprastai išorės, todėl išteklių jūs galite traukti dalykų iš ir mesti dalykų. 148 00:12:20,710 --> 00:12:26,520 Ir pagaliau, kas yra NULL tipas? >> [Studentas] NULL. 149 00:12:26,520 --> 00:12:30,650 Taip. Taigi vienintelis dalykas, kuris yra NULL yra NULL. 150 00:12:30,650 --> 00:12:33,480 NULL yra NULL. 151 00:12:35,490 --> 00:12:41,170 >> Vienas bruožas PHP tipo sistema (geriau ar blogiau) yra jos gebėjimas žongliruoti tipų. 152 00:12:41,170 --> 00:12:44,390 Rašydami PHP kodą, kuris sujungia skirtingų tipų reikšmes linija, 153 00:12:44,390 --> 00:12:46,670 PHP bandys padaryti protingiausia. 154 00:12:46,670 --> 00:12:48,920 Išbandyti kiekvieną iš šių eilučių PHP kodo. Kas atspausdinti? 155 00:12:48,920 --> 00:12:51,000 Ar tai, ką jūs tikėjotės? Kodėl arba kodėl ne? 156 00:12:51,000 --> 00:12:58,600 Šis straipsnis apie PHP faktas yra tai, ką daro tai, ką mes vadiname silpnai įvedėte. 157 00:12:58,600 --> 00:13:04,610 Silpnai atspausdinti ir stipriai įvedėte, 158 00:13:04,610 --> 00:13:06,840 yra įvairių šių terminų naudojimas, 159 00:13:06,840 --> 00:13:12,020 bet dauguma žmonių naudoja silpnai atspausdinti ir stipriai įvedėte reiškia šis dalykas rūšiuoti 160 00:13:12,020 --> 00:13:15,920 kur ("1" + 2), kuris veikia. 161 00:13:15,920 --> 00:13:18,290 In C, kad neveiks. 162 00:13:18,290 --> 00:13:22,490 Galite įsivaizduoti, tai neveikia. 163 00:13:22,490 --> 00:13:29,200 Daug žmonių dinamišką rašyti ir silpnas įrašę ir statinio įrašę ir stiprus įrašę išmaišyti. 164 00:13:29,200 --> 00:13:34,050 Python yra dar vienas pavyzdys, vieną ar kitą kalbą, kad dinamiškai įrašėte. 165 00:13:34,050 --> 00:13:41,770 Galite išmėtyti tipų kintamųjų ir tai vyksta nustatyti vykdymo metu 166 00:13:41,770 --> 00:13:44,680 bet koks klaidos checkings. 167 00:13:44,680 --> 00:13:50,740 Python ji ketina vykdyti šį ir jis matys ("1" + 2); 168 00:13:50,740 --> 00:13:55,920 ir tai nepavyksta, nes jis sako, tu negali pridėti eilutę ir sveikasis skaičius. 169 00:13:55,920 --> 00:14:00,860 PHP, kuri yra tik kaip dinamiškai įvedėte, tai nebus nepavyks. 170 00:14:00,860 --> 00:14:04,220 Silpnas rašyti turi daryti su tuo, kad jis ką nors daro tipų 171 00:14:04,220 --> 00:14:07,800 , kurios neturi prasmės nebūtinai. 172 00:14:07,800 --> 00:14:17,420 Taigi ("1" + 2), galiu įsivaizduoti, kad yra eilutė 12, aš galiu įsivaizduoti, kad yra 3 eilutė, 173 00:14:17,420 --> 00:14:20,710 Galiu įsivaizduoti, kad yra sveikasis skaičius 3. 174 00:14:20,710 --> 00:14:24,530 Tai nebūtinai gali būti gerai apibrėžtas, ir mes tikriausiai bus pamatyti čia 175 00:14:24,530 --> 00:14:29,140 kad kai mes spausdinti ("1" + 2); tai tikriausiai bus baigti yra kitoks 176 00:14:29,140 --> 00:14:32,320 nei spausdinant (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 Ir tai paprastai yra, mano nuomone, dar blogiau. 178 00:14:39,700 --> 00:14:44,240 Čia mes galime pabandyti. 179 00:14:44,240 --> 00:14:48,740 Kitas šiek tiek apgauti apie PHP jums nereikia rašyti į bylą. 180 00:14:48,740 --> 00:14:52,790 Ji paleisti šią komandą režimą. 181 00:14:52,790 --> 00:14:57,710 Taigi php-R, tada mes galime mesti į komandų čia: 182 00:14:57,710 --> 00:15:06,610 "Print (" 1 "+ 2);" ir aš mesti naują eilutę. 183 00:15:19,550 --> 00:15:23,970 Tai spausdinami 3. 184 00:15:31,100 --> 00:15:35,330 Atrodo, kad jis spausdina 3 ir tai sveikasis skaičius 3. 185 00:15:35,330 --> 00:15:38,420 Taigi, dabar pabandykime atvirkščiai: 186 00:15:38,420 --> 00:15:42,970 "Spausdinti (1 + 2"); 187 00:15:45,560 --> 00:15:50,490 Mes gauname 3, ir ji taip pat bus sveikasis skaičius 3? Aš tikrai neįsivaizduoju. 188 00:15:50,490 --> 00:15:54,030 Atrodo, kad atitinka. 189 00:15:54,030 --> 00:15:59,550 Joje niekada tikimybė, kad jis yra eilutė 12 ar ko nors panašaus 190 00:15:59,550 --> 00:16:08,080 , nes PHP, skirtingai JavaScript ir Java taip pat 191 00:16:08,080 --> 00:16:11,670 turi atskirą operatoriaus sąryšis. 192 00:16:11,670 --> 00:16:14,930 PHP eilučių sujungimas yra taškas. 193 00:16:14,930 --> 00:16:22,950 Todėl spausdinama (1 "2".); Ketina duoti mums 12. 194 00:16:25,790 --> 00:16:32,420 Ši tendencija galėtų sukelti painiavą, kai žmonės bando daryti kažką panašaus g + = 195 00:16:32,420 --> 00:16:37,840 kai kitas dalykas, kad jie nori pridėti prie jų eilutės pabaigos, ir kad manimi vyksta, kad žlugtų. 196 00:16:37,840 --> 00:16:40,770 Ką jums reikia padaryti g. = 197 00:16:42,000 --> 00:16:46,240 Taigi nepamirškite sąryšis PHP taškas. 198 00:16:46,240 --> 00:16:52,100 Kiti dalykai bandymas atnaujinti: print ("CS" + 50); 199 00:16:55,750 --> 00:17:03,610 Aš Jums sakė, kad nėra ši viltis, todėl CS50 200 00:17:03,610 --> 00:17:06,119 kadangi sąryšis yra ne +. 201 00:17:06,119 --> 00:17:08,440 Ką manote tai vyksta, galų gale yra? 202 00:17:10,359 --> 00:17:13,460 Aš nuoširdžiai neturi jokios idėjos. 203 00:17:14,250 --> 00:17:16,460 Atrodo, kad jis tik 50. 204 00:17:16,460 --> 00:17:21,490 Ji mato eilutę, ir aš bet jei mes įdėti 123CS - 205 00:17:21,490 --> 00:17:29,640 Ji mano, kad pirmąją eilutę, jis bando perskaityti iš jo ar iš jo numerį sveikasis skaičius. 206 00:17:29,640 --> 00:17:31,710 Šiuo atveju jis mato 123CS. 207 00:17:31,710 --> 00:17:35,190 "Tai neturi jokios prasmės, kaip sveikasis skaičius, todėl aš tik ketina galvoti apie 123." 208 00:17:35,190 --> 00:17:38,580 Taigi 123 + 50 bus 173. 209 00:17:38,580 --> 00:17:40,740 Ir čia jis pradeda skaityti tai kaip sveikasis skaičius. 210 00:17:40,740 --> 00:17:45,690 Jis nemato nieko, todėl jis tiesiog elgiasi su ja kaip 0. Taigi 0 + 50 bus 50. 211 00:17:45,690 --> 00:17:51,600 Tai aš darant prielaidą, ketinate daryti kažką panašaus. 212 00:17:51,600 --> 00:17:54,310 Aš galvoju, 99. 213 00:17:54,310 --> 00:17:57,580 Taip, nes ji ketina imtis pirmas 214 00:18:12,880 --> 00:18:15,730 Taip 99. 215 00:18:15,730 --> 00:18:21,970 Čia (10/7), jei tai buvo C, ką norėčiau, kad grįžti? 216 00:18:23,700 --> 00:18:29,630 [Studentas] 1. >> Taip, tai būtų 1, nes 10/7 dalijant 2 sveikieji skaičiai. 217 00:18:29,630 --> 00:18:32,910 Sveikasis skaičius, sveikasis skaičius, padalytas iš nesiruošia grįžti sveikasis skaičius. 218 00:18:32,910 --> 00:18:37,750 Ji negali grąžinti 1 punkte, kad ir kas tai būtų, kad tai tik ketina grįžti 1. 219 00:18:37,750 --> 00:18:46,120 Čia spausdinimas (10/7), tai vyksta iš tikrųjų aiškinti, kad. 220 00:18:46,120 --> 00:18:53,760 , O tai reiškia, kad jei jūs tikrai norite padaryti sveikąjį skaičių apvalinimo ir stuff like that, 221 00:18:53,760 --> 00:18:59,950 ką jums reikia padaryti print (grindys (10/7)); 222 00:18:59,950 --> 00:19:08,460 In C, tai turbūt keista, kad galite pasikliauti sveikojo skaičiaus sutrumpinimus reguliariai, 223 00:19:08,460 --> 00:19:12,260 bet PHP galite ne todėl, kad jis bus automatiškai pasukti į plūdės. 224 00:19:13,430 --> 00:19:17,610 Ir tada (7 + tiesa), ką jūs manote, kad bus? 225 00:19:18,550 --> 00:19:23,640 Spėju, 8, jei ji ketina interpretuoti tiesa kaip 1. 226 00:19:23,640 --> 00:19:25,740 Atrodo, kad jis yra 8. 227 00:19:25,740 --> 00:19:31,710 >> Taigi nieko mes padarėme per pastaruosius 10 minučių turėtumėte visiškai niekuomet. 228 00:19:31,710 --> 00:19:39,870 Jūs pamatysite kodą, kuris tai daro. 229 00:19:39,870 --> 00:19:42,700 Ji nebūtinai turi būti taip paprasta, kaip šis. 230 00:19:42,700 --> 00:19:47,240 Jūs galite turėti 2 kintamuosius, ir 1 kintamasis atsitinka būti eilutės 231 00:19:47,240 --> 00:19:51,310 ir kitų kintamo int atsitinka būti, ir tada jums pridėti šiuos kintamuosius. 232 00:19:51,310 --> 00:20:00,120 Nuo PHP yra dinamiškai atspausdinti ir jums tai bus ne bet kokio tipo tikrinimas 233 00:20:00,120 --> 00:20:03,640 nes jis silpnai atspausdinti ir, nes jis bus tiesiog automatiškai mesti šiuos dalykus kartu 234 00:20:03,640 --> 00:20:11,490 ir viskas bus tik dirbti, sunku net nežino, kad šis kintamasis turi būti eilutės, 235 00:20:11,490 --> 00:20:14,930 todėl aš ne įdėti ją į šį kintamąjį, kuris yra sveikasis skaičius. 236 00:20:18,780 --> 00:20:24,560 Geriausia praktika yra, jei kintamasis yra eilutė, laikykite jį kaip eilutę amžinai. 237 00:20:24,560 --> 00:20:26,980 Jei kintamasis yra int, laikykite jį kaip int amžinai. 238 00:20:26,980 --> 00:20:30,770 Jei norite kovoti su sveikaisiais skaičiais ir styginiams, 239 00:20:30,770 --> 00:20:36,970 galite naudoti varsint, kad "JavaScript". 240 00:20:36,970 --> 00:20:42,520 Intval. Aš tai visą laiką. PHP ir JavaScript išmaišyti viską. 241 00:20:42,520 --> 00:20:47,600 Taigi intval ketina grįžti kintamojo skaitinę vertę. 242 00:20:47,600 --> 00:20:56,550 Jei praeina "Spausdinti (intval ('123 ')), jūs gaunate 123. 243 00:21:06,820 --> 00:21:15,850 Intval pati nesiruošia daryti mums patikrinti, kad tai tik sveikasis skaičius. 244 00:21:15,850 --> 00:21:20,460 PHP vadovėlyje, yra tik tiek daug funkcijų, 245 00:21:20,460 --> 00:21:26,560 todėl čia aš manau, kad tai, ką aš norėčiau naudoti is_numeric 1.. 246 00:21:26,560 --> 00:21:32,590 Spėju, kad grįžo klaidinga. 247 00:21:32,590 --> 00:21:35,780 Tai dar vienas dalykas, mes turime eiti per yra ===. 248 00:21:37,850 --> 00:21:44,020 Taigi is_numeric ('123df), jums reikės ne manau, kad is_numeric. 249 00:21:44,020 --> 00:21:46,720 In C, jums reikės pakartoti per visus simbolius 250 00:21:46,720 --> 00:21:50,410 ir patikrinti, norėdami pamatyti, jei kiekvienas simbolis yra skaitmuo ar kokia. 251 00:21:50,410 --> 00:21:53,850 Čia is_numeric ketina daryti, kad mums, 252 00:21:53,850 --> 00:21:56,520 ir jis grąžina klaidinga. 253 00:21:56,520 --> 00:22:02,120 Taigi, kai aš atspausdintas, jis atspausdintas nieko, todėl čia aš lyginant jį pamatyti, 254 00:22:02,120 --> 00:22:05,490 Ar būtumėte klaidingas? Ir todėl dabar jis Spausdinimas 1. 255 00:22:05,490 --> 00:22:10,060 Matyt, jis spausdina 1 tiesa vietoj spausdinimo tiesa, kaip tiesa. 256 00:22:10,060 --> 00:22:15,790 Įdomu, jei aš print_r. Ne, ji vis dar daro 1. 257 00:22:15,790 --> 00:22:26,760 >> Grįžtant prie === == vis dar egzistuoja, 258 00:22:26,760 --> 00:22:32,260 ir jei jūs kalbate su Tommy jis pasakys == yra puikiai baudą. 259 00:22:32,260 --> 00:22:37,700 Aš ruošiuosi pasakyti, kad == yra baisi ir jūs niekada neturėtų naudoti ==. 260 00:22:37,700 --> 00:22:44,870 Skirtumas tas, kad == palygina dalykus 261 00:22:44,870 --> 00:22:48,450 kur ji gali būti tiesa, net jei jie yra ne tos pačios rūšies, 262 00:22:48,450 --> 00:22:53,810 o === palygina dalykų ir pirmas ji tikrina, ar jie yra tos pačios rūšies? 263 00:22:53,810 --> 00:22:58,010 Taip. Gerai, dabar aš ruošiuosi pamatyti, jei jie iš tikrųjų palyginti turi būti lygus. 264 00:22:58,010 --> 00:23:08,890 Jums gauti keistam dalykų, pavyzdžiui, 10 lygu - Pažiūrėkime, kas, kad sako. 265 00:23:08,890 --> 00:23:15,570 Taigi, ('10 '== 1 E1); 266 00:23:15,570 --> 00:23:17,980 Tai grąžina true. 267 00:23:17,980 --> 00:23:21,420 Ar kas nors turite spėlioti, kodėl tai grąžina true? 268 00:23:25,180 --> 00:23:27,120 Tai ne tik apie tai. Gal tai užuomina. 269 00:23:27,120 --> 00:23:33,170 Bet jei aš pakeisti, kad prie f - darn it! Aš nuolat naudojant kabutes. 270 00:23:33,170 --> 00:23:38,780 Priežastis kabutes šaukiantį į mane, nes aš įdėti šią nuorodą į kabutes. 271 00:23:38,780 --> 00:23:43,850 , Kad galėčiau išvengti dvigubų kabučių čia, bet apostrofai lengviau. 272 00:23:43,850 --> 00:23:49,120 Taigi, ('10 '== 1 f1), nespausdina tiesa. ('10 '== 1 E1); spausdina tiesa. 273 00:23:49,120 --> 00:23:56,330 [Studentas] Ar hex? >> Tai ne HEX, bet ji yra arti, kad tai kaip - 274 00:23:56,330 --> 00:24:01,060 1e1, mokslo notacijos. 275 00:24:01,060 --> 00:24:07,950 Ji pripažįsta, 1e1 kaip 1 * 10 ^ 1 ar whatever. 276 00:24:07,950 --> 00:24:11,510 Tai yra lygūs sveikieji skaičiai. 277 00:24:11,510 --> 00:24:15,930 Jei mes tai padarysime === tada jis bus klaidingas. 278 00:24:15,930 --> 00:24:28,490 Aš iš tikrųjų neįsivaizduoju, jei mes == ką apie (10 ir '10abc "); Gerai. Taip, tai tiesa. 279 00:24:28,490 --> 00:24:35,940 Taigi, tiesiog patinka, kai jūs padarėte (10 + '10abc "); ir tai būtų 20, 280 00:24:35,940 --> 00:24:38,800 čia (10 == '10abc "); yra tiesa. 281 00:24:38,800 --> 00:24:45,350 Dar blogiau yra dalykų, pavyzdžiui (false == NULL); yra tiesa 282 00:24:45,350 --> 00:24:52,210 arba (klaidinga == 0); tiesa, (klaidinga == []); 283 00:24:52,210 --> 00:25:00,970 Yra keistai atvejai - Tai yra vienas iš šių keistam atvejais. 284 00:25:00,970 --> 00:25:08,110 Atkreipkite dėmesį, kad (false == []); yra tiesa. 285 00:25:08,110 --> 00:25:11,950 ('0 '== FALSE); yra tiesa. 286 00:25:11,950 --> 00:25:16,090 ('0 '== []); Yra klaidinga. 287 00:25:16,090 --> 00:25:19,090 Taigi == Tranzityvumas jokiu būdu. 288 00:25:19,090 --> 00:25:26,830 gali būti lygus b ir gali būti lygus c, 289 00:25:26,830 --> 00:25:29,340 bet b gali būti lygus c. 290 00:25:29,340 --> 00:25:35,580 Tai pasibjaurėjimas mane, ir jūs visada turėtų naudoti ===. 291 00:25:35,580 --> 00:25:38,590 [Studentas] Ar mes darome! == Taip pat? >> [Bowden] Taip. 292 00:25:38,590 --> 00:25:44,600 Ekvivalentas būtų! =! == 293 00:25:44,600 --> 00:25:48,230 Tai iš tikrųjų užaugo į pset spec 294 00:25:48,230 --> 00:25:52,000 kai funkcijos grąžina daug - 295 00:25:52,000 --> 00:25:53,890 PHP vadovėlyje yra gerai apie tai. 296 00:25:53,890 --> 00:25:59,140 Tai kelia didelis raudonas lange "Tai bus gražins false, jei yra klaida." 297 00:25:59,140 --> 00:26:03,940 Bet grįžtant 0 yra visiškai pateisinamas dalykas, jei norite grįžti. 298 00:26:03,940 --> 00:26:08,250 Pagalvokite apie bet kurią funkciją, kuri, tikimasi, grąžina sveikąjį skaičių. 299 00:26:11,250 --> 00:26:17,880 Tarkime, kad ši funkcija turėtų skaičiuoti eilučių skaičių faile ar kažką. 300 00:26:17,880 --> 00:26:23,490 Esant normalioms aplinkybėms, pereisite Ši funkcija failą 301 00:26:23,490 --> 00:26:27,120 ir jis ketina grįžti sveikasis skaičius, kuris atstovauja eilučių skaičių. 302 00:26:27,120 --> 00:26:30,820 Taigi 0 yra visiškai pateisinamas numeris, jei failas yra tik tuščias. 303 00:26:30,820 --> 00:26:36,810 Bet ką daryti, jei žmonėms jo duoti neteisingą failą ir funkcijos atsitinka gražins false 304 00:26:36,810 --> 00:26:38,860 jei pereisite neteisingą failą? 305 00:26:38,860 --> 00:26:46,500 Jei jūs tiesiog == nesate diferencijuojant tarp neteisingas failo bylą ir tuščią failą. 306 00:26:48,870 --> 00:26:51,350 Visada naudoti. === 307 00:26:55,690 --> 00:26:58,000 Štai visi tie. 308 00:26:58,000 --> 00:27:01,660 >> PHP, masyvas tipas skiriasi nuo to, ką įpratę prie C. 309 00:27:01,660 --> 00:27:06,650 Iš tiesų, jūs galite jau pastebėjau, tai tai, kas išdėstyta pirmiau, kai pamatė, kad tai tipo masyvo. 310 00:27:06,650 --> 00:27:15,640 Laikiklis PHP 5.4, kuri yra naujausia versija PHP sintaksė yra nauja. 311 00:27:15,640 --> 00:27:36,960 Prieš tai jūs visada turėjo parašyti, array ("a" -> 1, "b" -> 2. 312 00:27:36,960 --> 00:27:41,160 Tai buvo masyvo konstruktorius. 313 00:27:41,160 --> 00:27:45,950 Dabar PHP pagaliau aplink gražus sintaksės tik laužtiniuose skliaustuose, 314 00:27:45,950 --> 00:27:50,900 Yra tik tiek daug geriau nei masyvo. 315 00:27:50,900 --> 00:27:54,480 Tačiau atsižvelgiant į PHP 5,4 yra naujausia versija, 316 00:27:54,480 --> 00:27:59,090 galite susidurti vietose, kad net nereikia turėti PHP 5,3. 317 00:27:59,090 --> 00:28:08,220 Per vasarą nubėgome į šio klausimo, kur PHP 5,3 buvo tai, ką mes turėjome ant prietaiso, 318 00:28:08,220 --> 00:28:14,480 bet serveris, kad mes dislokuoti visą mūsų kokybės knyga ir pateikti ir visi, kad kita 319 00:28:14,480 --> 00:28:16,750 PHP 5,4. 320 00:28:16,750 --> 00:28:23,060 Nežinodamas, mes sukūrėme 5,3 stumiama į 5,4, 321 00:28:23,060 --> 00:28:25,660 ir dabar visi staiga nė vienas iš mūsų kodas darbai 322 00:28:25,660 --> 00:28:28,680 nes ten atsitiko, įvyko pokyčių tarp 5,3 ir 5,4 323 00:28:28,680 --> 00:28:31,030 , kurie nėra suderinami, 324 00:28:31,030 --> 00:28:35,770 ir mes turime eiti ir išspręsti visas mūsų dalykų, kad neveikia PHP 5.4. 325 00:28:39,210 --> 00:28:42,320 Šios klasės, nes prietaisas veikia PHP 5,4, 326 00:28:42,320 --> 00:28:45,490 puikiai gerai naudoti skliaustus. 327 00:28:47,240 --> 00:28:50,440 Tačiau, jei jūs ieškote dalykus visame internete, 328 00:28:50,440 --> 00:28:54,880 jei jūs ieškote kažkokį masyvo stuff, greičiausiai jūs ketinate pamatyti 329 00:28:54,880 --> 00:29:02,020 gimė iš masyvo konstruktorius sintaksė rašybos, nes tai buvo maždaug nuo PHP 330 00:29:02,020 --> 00:29:07,340 ir kvadrato formos laikiklis sintaksė buvo maždaug per pastaruosius porą mėnesių 331 00:29:07,340 --> 00:29:10,020 arba kai 5,4 buvo aplink. 332 00:29:10,020 --> 00:29:12,710 Tai kaip jums puslapis. 333 00:29:12,710 --> 00:29:30,610 Tiesiog kaip ir C, kaip galėtumėte puslapis laužtiniuose skliaustuose, pvz $ masyvas [0], $ masyvas [1], $ masyvas [2], 334 00:29:30,610 --> 00:29:36,320 Jūsų Indeksas taip pat, jei jums atsitikti, kad jūsų indeksai yra stygos. 335 00:29:36,320 --> 00:29:40,440 Kad $ masyvas [''] ir $ masyvas ['b']. 336 00:29:40,440 --> 00:29:47,410 $ Masyvas [b]. Kodėl taip nutiko negerai? 337 00:29:52,490 --> 00:29:59,870 Tai tikriausiai sukurti įspėjimą, tačiau vis dar dirba. PHP linkęs tai daryti. 338 00:29:59,870 --> 00:30:04,890 Jis linkęs tik: "Aš ruošiuosi įspės jus apie tai, bet aš tik ketina nesustoti 339 00:30:04,890 --> 00:30:07,550 "Ir daryti tai, ką galiu." 340 00:30:07,550 --> 00:30:11,500 Tai tikriausiai išversti į eilutę, 341 00:30:11,500 --> 00:30:15,000 tačiau tai yra įmanoma, kad nors per pastaruosius kažkas sakė 342 00:30:15,000 --> 00:30:20,180 apibrėžti b yra "Hello World". 343 00:30:20,180 --> 00:30:28,740 Taigi, dabar b gali būti nuolat ir $ masyvas [b] bus iš tikrųjų daryti "Hello World". 344 00:30:28,740 --> 00:30:32,380 Manau, kad šiuo metu, arba bent jau mūsų PHP nustatymai, 345 00:30:32,380 --> 00:30:37,870 jei bandysite į masyvo indeksą, ir kad raktas neegzistuoja, ji žlugs. 346 00:30:37,870 --> 00:30:40,150 Nemanau, kad tai bus tik įspėti jus. 347 00:30:40,150 --> 00:30:44,560 Arba bent jau galite nustatyti jį taip, kad jis ne tik įspėti jus, jis tiesiog tiesiai nepavyksta. 348 00:30:44,560 --> 00:30:49,290 >> Kaip jums patikrinti, norėdami pamatyti, jei ten iš tikrųjų yra toks indeksas yra isset. 349 00:30:49,290 --> 00:30:54,690 Taigi isset ($ masyvas ['hello world']) return false. 350 00:30:54,690 --> 00:30:59,160 isset ($ masyvas ['b']) return true. 351 00:31:06,830 --> 00:31:09,880 Galite maišyti šiuos Syntaxes. 352 00:31:15,060 --> 00:31:22,440 Aš esu gana įsitikinęs, tai, ką šis masyvas baigtis yra - Mes galime išbandyti jį. 353 00:31:43,290 --> 00:31:45,700 O, man reikia PHPWord. 354 00:31:53,960 --> 00:32:00,260 Tai maišant sintaksę, kur jūs nurodote, kas svarbiausia yra 355 00:32:00,260 --> 00:32:03,330 ir jums nereikia nurodyti, kas svarbiausia yra. 356 00:32:03,330 --> 00:32:05,520 Taigi 3 čia yra vertybė. 357 00:32:05,520 --> 00:32:08,080 Kurių aiškiai pasakė tai, ką jos pagrindinis bus. 358 00:32:08,080 --> 00:32:11,670 Ką manote jos pagrindinis bus? 359 00:32:11,670 --> 00:32:21,410 [Studentas] 0. >> Spėju, 0 tik todėl, kad pirmasis, mes nenurodomas. 360 00:32:21,410 --> 00:32:23,500 Mes iš tikrųjų gali padaryti porą tokių bylų. 361 00:32:23,500 --> 00:32:28,030 Taigi print_r spausdinti rekursinis. Jis bus atspausdintas visą masyvą. 362 00:32:28,030 --> 00:32:32,700 Tai būtų jei ten buvo bet spausdinti subarrays masyvo. 363 00:32:32,700 --> 00:32:36,630 Taigi print_r ($ masyvas); php.test.php. 364 00:32:36,630 --> 00:32:38,810 Ji atrodo kaip ji davė jam 0. 365 00:32:38,810 --> 00:32:43,530 Yra tikrai kažkas, kad nepamiršti, čia, bet mes grįžti į ją per sekundę. 366 00:32:43,530 --> 00:32:45,850 Bet kas, jei aš atsitikti, kad šį rodiklį 1? 367 00:32:45,850 --> 00:32:51,170 PHP nėra skirtumo tarp styginių indeksų ir sveikasis skaičius rodiklių, 368 00:32:51,170 --> 00:33:00,280 todėl šiuo metu aš tiesiog apibrėžta 1 indeksą Galiu padaryti tiek $ masyvas [1] ir $ masyvas ['1 '] 369 00:33:00,280 --> 00:33:06,250 ir tai bus tas pats puslapis ir tas pats raktas. 370 00:33:06,250 --> 00:33:13,000 Taigi dabar, ką jūs manote, 3 dalis bus? >> [Studentas] 2. >> [Bowden] Spėju, 2. 371 00:33:16,000 --> 00:33:18,690 Taip. Tai 2. 372 00:33:18,690 --> 00:33:24,790 Ką daryti, jei mes, tai yra 10, tai 4? Ką manote puslapis iš 3 bus? 373 00:33:27,360 --> 00:33:29,110 Aš galvoju, 11. 374 00:33:29,110 --> 00:33:33,060 Mano spėjimas, kad tai, kas PHP - ir aš manau, kad aš mačiau prieš tai - 375 00:33:33,060 --> 00:33:39,760 tai tiesiog stebi, kas aukščiausia indekso skaičiai, jis naudojamas iki šiol. 376 00:33:39,760 --> 00:33:44,230 Jis niekada priskirti string indeksas 3. Jis visada bus skaitmeninius indeksus. 377 00:33:44,230 --> 00:33:47,690 Taigi ji stebi aukščiausios jis priskirtas iki šiol, kuri būna, kad 10, 378 00:33:47,690 --> 00:33:52,540 ir ji ketina duoti 11-3. 379 00:33:52,540 --> 00:34:02,110 Ką aš sakiau anksčiau, atkreipkite dėmesį, kaip jis yra šio masyvo spausdinimas. 380 00:34:02,110 --> 00:34:06,850 Jis spausdina klavišas 10, 4 punktą, mygtukas 11, pagrindinis d. 381 00:34:06,850 --> 00:34:09,790 Ar net darykime 382 00:34:15,760 --> 00:34:22,489 Manau, aš ne įdėti 0, bet tai spausdinimas 1, 2, 3, 4. 383 00:34:22,489 --> 00:34:29,330 Ką daryti, jei aš pereinu čia? Arba leiskite faktiškai perjungti Šie 2. 384 00:34:29,330 --> 00:34:31,940 Dabar jis spausdina 2, 1, 3, 4. 385 00:34:31,940 --> 00:34:41,270 PHP matricos yra ne tik kaip savo įprastą maišos lentelės. 386 00:34:41,270 --> 00:34:45,570 Tai visiškai pagrįsta galvoti apie juos kaip maišos lentelės 99% laiko. 387 00:34:45,570 --> 00:34:53,790 Bet savo hash 'lentelės nėra ta tvarka, kuria viskas buvo įdėtos jausmas. 388 00:34:53,790 --> 00:34:56,639 Taigi, kuo greičiau įdėkite jį į savo maišos lentelės 389 00:34:56,639 --> 00:35:00,590 manyti, nėra susijęs sąrašas ir jūs galite spręsti per susietą sąrašą 390 00:35:00,590 --> 00:35:03,980 kuris buvo įtrauktas pirmasis. 391 00:35:03,980 --> 00:35:10,060 Bet čia mes įterpiamas 2 dalies pirmojoje ir jis žino, kai ji spausdinti šį matrica, 2 ateina pirmas. 392 00:35:10,060 --> 00:35:13,090 Jis nespausdinamas tik bet kokia tvarka. 393 00:35:13,090 --> 00:35:17,550 Techninių duomenų struktūra, kad ji yra užsisakyti žemėlapis, 394 00:35:17,550 --> 00:35:24,690 todėl žemėlapiai klavišus vertybes ir ji prisimena tvarką, kuria tie raktai buvo įdėta. 395 00:35:24,690 --> 00:35:31,600 Iš esmės tai yra kai kurių komplikacijų, kur jis erzina, kad iš tikrųjų - 396 00:35:31,600 --> 00:35:34,510 Tarkime, jūs turite masyvą 0, 1, 2, 3, 4, 5 397 00:35:34,510 --> 00:35:37,700 ir norite imti 2 rodyklėje. 398 00:35:37,700 --> 00:35:47,750 Vienas iš būdų tai daryti, galime pamatyti, kas, kad atrodo. 399 00:35:47,750 --> 00:35:50,410 0, 2, 1, 3, 4. 400 00:35:50,410 --> 00:35:54,880 Išjungimo atsitinka, siekiant panaikinti tiek kintamųjų ir masyvo rodiklius. 401 00:35:54,880 --> 00:35:58,630 Taigi išjungimo ($ masyvas [2]); 402 00:35:58,630 --> 00:36:03,430 Dabar, kas tai atrodys? 2 yra tiesiog dingo, todėl, kad puikiai gerai. 403 00:36:03,430 --> 00:36:11,670 Labiau erzina tai, jei norite, ką iš tikrųjų kaip masyvo. 404 00:36:11,670 --> 00:36:14,910 Aš įdėti atsitiktinių skaičių. 405 00:36:14,910 --> 00:36:20,400 Dabar pastebėti savo indeksus. 406 00:36:20,400 --> 00:36:26,860 Noriu, kad jis tiesiog būti kaip C masyvas, kur jis eina nuo 0 iki ilgis - 1 407 00:36:26,860 --> 00:36:30,810 ir aš galiu pakartoti per jį kaip toks. 408 00:36:30,810 --> 00:36:38,520 Bet kaip tik aš išjungimo antrą indeksą, kas buvo indeksu 3 nėra dabar tapo 2 rodyklėje. 409 00:36:38,520 --> 00:36:44,790 Vietoj to ji tiesiog pašalina šį indeksą ir dabar jūs 0, 1, 3, 4. 410 00:36:44,790 --> 00:36:48,740 Tai yra visiškai pagrįstas. 411 00:36:48,740 --> 00:36:53,950 Tai tiesiog erzina, ir jūs turite daryti tai, ko, pavyzdžiui, masyvo sudurti. Taip. 412 00:36:53,950 --> 00:36:57,200 >> [Studentas] Kas nutiktų, jei buvo už linijos 413 00:36:57,200 --> 00:36:59,630 ir jūs norite eiti per visus elementus? 414 00:36:59,630 --> 00:37:02,290 Kai jis trenkėsi 2, ar ji kada duoti? 415 00:37:02,290 --> 00:37:10,150 Iteracja per masyvo. Yra 2 būdai, galite tai padaryti. 416 00:37:10,150 --> 00:37:12,770 Galite naudoti for ciklas reguliarus. 417 00:37:12,770 --> 00:37:22,000 Tai dar vienas PHP painumas. 418 00:37:22,000 --> 00:37:27,420 Daugeliu kalbų, sakyčiau, kažkoks ilgio ar LEN ar kažką 419 00:37:27,420 --> 00:37:30,470 nurodant masyvo ilgį. 420 00:37:30,470 --> 00:37:32,820 PHP tai skaičius. 421 00:37:32,820 --> 00:37:36,160 Taigi skaičius ($ masyvas); $ i + +) 422 00:37:36,160 --> 00:37:42,950 Tegul tiesiog spausdinti ($ masyvas [$ i]); 423 00:37:45,920 --> 00:37:48,820 Pranešimas: Nenurodytas kompensuoti: 2. 424 00:37:48,820 --> 00:37:51,610 Tai tiesiog žlugti. 425 00:37:51,610 --> 00:38:03,020 Tai yra priežastis, kad didžioji dalis, jums niekada nereikės kartoti per masyvas panašaus į tai. 426 00:38:03,020 --> 00:38:07,110 Tai gali būti perdėta, bet jums niekada nereikės kartoti per masyvas panašaus į tai 427 00:38:07,110 --> 00:38:19,410 , nes PHP teikia foreach sintaksę, kur foreach ($ masyvas as $ item). 428 00:38:19,410 --> 00:38:31,830 Dabar, jei mes spausdinti ($ item); - we'll aptarti per sekundę -, kuris veikia puikiai baudą. 429 00:38:31,830 --> 00:38:38,960 Foreach taip, kad dirba, pirmasis argumentas yra masyvas, kad jūs iteravimu per. 430 00:38:38,960 --> 00:38:44,060 O antrasis argumentas punktas, per kiekvieną praeiti kilpa 431 00:38:44,060 --> 00:38:52,690 ji ketina priimti kitą dalyką masyve. Taigi nepamirškite, masyvas turi įsakymą. 432 00:38:52,690 --> 00:38:55,690 Už linijos pirmą kartą per punktas bus 123 433 00:38:55,690 --> 00:38:59,540 tada ji bus 12 tada jis bus 13 tada jis bus 23 tada jis bus 213. 434 00:38:59,540 --> 00:39:04,670 Ko gauti tikrai keista, kai jūs darote kažką panašaus foreach. 435 00:39:04,670 --> 00:39:07,480 Leiskite pamatyti, kas vyksta, nes jūs niekada neturėtų daryti. 436 00:39:07,480 --> 00:39:13,320 Ką daryti, jei mes išjungimo ($ masyvas [1]); 437 00:39:20,410 --> 00:39:26,030 Kad tikriausiai buvo tikėtasi. 438 00:39:26,030 --> 00:39:30,950 Jūs iteravimu per šio masyvo, ir kiekvieną kartą, kai jūs išjungimo Pirmieji indekso. 439 00:39:30,950 --> 00:39:39,720 Taigi indeksuoti kaip 0, pirmas dalykas, punktas įgauna reikšmę "0", todėl jis bus 123. 440 00:39:39,720 --> 00:39:44,630 Bet viduje už linijos išjungimo indeksas 1, taigi tai reiškia 12 dingo. 441 00:39:44,630 --> 00:39:57,480 Taigi spausdinti. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL yra tik naujos eilutės, bet tai techniškai daugiau nešiojamų 443 00:40:03,580 --> 00:40:08,890 nes naujų eilučių operacinė sistema "Windows" skiriasi nuo naujų eilučių, Mac ir UNIX. 444 00:40:08,890 --> 00:40:18,040 "Windows" naujos eilutės \ r \ n, o visur kitur jis linkęs tik \ n. 445 00:40:18,040 --> 00:40:25,150 "PHP_EOL yra sukonfigūruotas taip, kad ji naudoja, nepriklausomai nuo jūsų sistemos naujos eilutės yra. 446 00:40:25,150 --> 00:40:29,310 Taigi spausdinti, kad. Tegul ne print_r ($ masyvas) pabaigoje. 447 00:40:32,830 --> 00:40:37,390 Aš turėjau ne idėja, kad tai būtų toks elgesys. 448 00:40:41,740 --> 00:40:48,960 Elementas dar 12 vertės, nors mes išjungimo 12, kol mes kada nors gavo iš masyvo. 449 00:40:52,770 --> 00:40:58,840 Negalima imtis savo žodį apie tai, bet atrodo, if sukuria masyvo kopiją 450 00:40:58,840 --> 00:41:02,160 ir tada prekės prisiima visų tos kopijos reikšmių. 451 00:41:02,160 --> 00:41:07,760 Taigi, net jei pakeisite masyvo viduje už linijos, 452 00:41:07,760 --> 00:41:17,240 ji nerūpi. Prekių imsis pradines reikšmes. 453 00:41:17,240 --> 00:41:19,240 Pabandykime išjungimo jį. 454 00:41:19,240 --> 00:41:24,460 Ką daryti, jei tai yra $ masyvas [1] = "Sveiki"; 455 00:41:24,460 --> 00:41:31,770 Net jei mes įdėti "labas" į masyvo elementą niekada trunka nuo tos vertės. 456 00:41:31,770 --> 00:41:37,430 Yra ir kita sintaksė foreach kilpos 457 00:41:37,430 --> 00:41:45,900 kur jūs įdėti 2 kintamuosius atskirti rodykle. 458 00:41:45,900 --> 00:41:49,680 Šis pirmasis kintamasis bus raktas tos vertės, 459 00:41:49,680 --> 00:41:53,050 ir šis antrasis kintamasis bus pats tiksliai pozicija. 460 00:41:53,050 --> 00:42:01,610 Tai čia neįdomu, bet jei mes grįžti į mūsų pradiniu atveju "A" -> 1, 461 00:42:01,610 --> 00:42:06,090 "B" -> 1, 462 00:42:06,090 --> 00:42:14,470 čia, jei mes tiesiog kartoti kiekvienam kaip elementą masyvo punktas bus 1 kiekvieną kartą. 463 00:42:14,470 --> 00:42:18,170 Bet jei mes taip pat norime žinoti raktas, susijusios su šio elemento 464 00:42:18,170 --> 00:42:25,230 tada mes kaip $ key -> $ item. 465 00:42:25,230 --> 00:42:31,980 Taigi dabar mes galime padaryti print ($ key. ":". 466 00:42:31,980 --> 00:42:39,380 Dabar ji iteravimu ir spausdinti kiekvieną klavišą ir jos susijusi reikšmė. 467 00:42:39,380 --> 00:42:47,030 >> Papildomas dalykas, kurį galime padaryti foreach kilpos, jūs galite pamatyti šią sintaksę. 468 00:42:47,030 --> 00:42:54,770 Jungimo prieš kintamųjų pavadinimų linkę būti kaip PHP ar nuorodas. 469 00:42:54,770 --> 00:43:00,460 Tais atvejais, kai nuorodos yra labai panašus į rodykles, 470 00:43:00,460 --> 00:43:04,820 jūs neturite patarimų, todėl jūs niekada tiesiogiai susidoroti su atmintim. 471 00:43:04,820 --> 00:43:12,620 Bet jūs turite nuorodas, kur 1 kintamasis nurodo į tą patį, kaip ir kitas kintamasis. 472 00:43:12,620 --> 00:43:21,450 Viduje čia darykime $ item. Leiskite grįžti prie 1, 10. 473 00:43:21,450 --> 00:43:28,800 Darykime $ item + +; Tai vis dar egzistuoja, PHP. Jūs vis dar galite padaryti + +. 474 00:43:28,800 --> 00:43:38,260 php.test.php. Turiu jį spausdinti. print_r ($ masyvas); 475 00:43:38,260 --> 00:43:42,730 Mes spausdinti 2, 11. 476 00:43:42,730 --> 00:43:49,560 Jei aš tiesiog padaryti foreach ($ masyvas as $ item) prekė bus vertė 1 477 00:43:49,560 --> 00:43:54,190 pirmą kartą per kilpą. Ji bus žingsnis 1 į 2 ir tada baigsime. 478 00:43:54,190 --> 00:43:57,260 Taip, tada ji bus per antrą kilpą praeiti ir, kad elementas yra 10. 479 00:43:57,260 --> 00:44:01,570 Jis žingsniu punktas, 11, ir tada, kad tiesiog išmesti. 480 00:44:01,570 --> 00:44:06,670 Tada mes print_r ($ masyvas); ir pažiūrėkime, kad tai yra tik 1, 10. 481 00:44:06,670 --> 00:44:09,070 Todėl prieaugis, mes padarėme buvo prarasta. 482 00:44:09,070 --> 00:44:13,410 Bet foreach ($ masyvas & $ item) 483 00:44:13,410 --> 00:44:21,910 dabar šis elementas yra pati prekė, kaip šią teisę čia. Tai tas pats dalykas. 484 00:44:21,910 --> 00:44:26,820 Taigi $ item + + yra pakeisti masyvo 0. 485 00:44:29,330 --> 00:44:41,850 Iš esmės, jūs taip pat galite padaryti $ K -> $ item ir jūs galite padaryti $ masyvas [$ k] + +; 486 00:44:41,850 --> 00:44:48,650 >> Taigi, kitą daro, kad mes galime laisvai keisti elementą, 487 00:44:48,650 --> 00:44:54,070 tačiau tai neturi keisti savo pradinį masyvą. 488 00:44:54,070 --> 00:44:59,720 Bet jei mes naudojame k, kuris yra pagrindinis mūsų, tada mes galime tiesiog indeksas į mūsų masyvas naudojant tas raktas 489 00:44:59,720 --> 00:45:01,530 ir prieaugio, kad. 490 00:45:01,530 --> 00:45:05,410 Tai tiesiogiai keičia mūsų originalus masyvo. 491 00:45:05,410 --> 00:45:10,690 Jūs netgi galite padaryti, kad, jei dėl kažkokių priežasčių jūs norėjote galimybę keisti 492 00:45:10,690 --> 00:45:13,510 Tiesą sakant, tai yra visiškai pagrįsta. 493 00:45:13,510 --> 00:45:16,020 Tu nenori rašyti $ masyvas [$ k] + +, 494 00:45:16,020 --> 00:45:27,890 jūs tiesiog norėjau parašyti $ item + +, bet jūs vis dar norėjau pasakyti, if ($ k === "a") 495 00:45:27,890 --> 00:45:30,620 tada prieaugio elementą ir tada spausdinti mūsų masyvo. 496 00:45:30,620 --> 00:45:36,290 Taigi, dabar ką mes tikėtis print_r tai padaryti? Kokios vertybės turi būti atspausdintas? 497 00:45:36,290 --> 00:45:43,770 [Studentas] 2 ir 10. >> [Bowden] Tik jei raktas buvo "mes iš tikrųjų Užsakytos. 498 00:45:51,940 --> 00:45:55,670 >> Jūs tikriausiai labai retai, jei kada nors, reikės apibrėžti funkcijas PHP, 499 00:45:55,670 --> 00:46:03,370 , bet jūs galite pamatyti kažką panašaus, kur jūs apibrėžti kaip funkcija nesvarbu funkciją. 500 00:46:03,370 --> 00:46:09,900 Paprastai jums norėčiau pasakyti ($ foo $ bar) ir tada nustatyti jį, kad jis įrodo. 501 00:46:09,900 --> 00:46:17,580 Bet jei aš tai padaryti, tada tai reiškia, kad kokia ragina, nepriklausomai, 502 00:46:17,580 --> 00:46:25,110 kokia ragina Baz, kad pirmasis argumentas perduota bazių gali būti pakeistas. 503 00:46:25,110 --> 00:46:38,100 Darykime $ foo + +; 504 00:46:38,100 --> 00:46:48,020 ir viduje čia darykime Baz ($ item); 505 00:46:48,020 --> 00:46:52,250 Dabar mes vadiname funkciją. 506 00:46:52,250 --> 00:46:56,780 Argumentas atsižvelgiant, o tai reiškia, kad, jei mes pakeisime 507 00:46:56,780 --> 00:47:00,390 mes pakeisti dalykas, kuris buvo priimtas. 508 00:47:00,390 --> 00:47:04,420 Ir spausdinti tai, mes tikimės, kad - jei aš messed up sintaksę - mes turime 2, 11, 509 00:47:04,420 --> 00:47:06,300 todėl jis iš tikrųjų buvo padidinamas. 510 00:47:06,300 --> 00:47:08,790 Pranešimas turime 2 vietos nuorodas. 511 00:47:08,790 --> 00:47:13,050 Ką daryti, jei tai padarė? Ką tai reiškia? 512 00:47:13,050 --> 00:47:15,810 [Studentas] Tai bus pakeisti. >> Taip. 513 00:47:15,810 --> 00:47:18,290 Prekių yra tik masyve vertės kopija. 514 00:47:18,290 --> 00:47:26,670 Taigi objektas bus pakeisti į 2, o masyvas ['a'] vis dar yra 1. 515 00:47:26,670 --> 00:47:32,560 Arba ką daryti, jei galiu tai padaryti? 516 00:47:32,560 --> 00:47:39,260 Dabar daiktas yra siunčiamas kopija bazių. 517 00:47:39,260 --> 00:47:46,330 Taigi argumentą, kopija bus padidinamas iki 2, 518 00:47:46,330 --> 00:47:49,240 bet patį elementą niekada nebuvo padidinamas iki 2. 519 00:47:49,240 --> 00:47:52,880 Ir punktas yra tas pats, kaip masyvo grupes nepriklausomai, 520 00:47:52,880 --> 00:47:55,380 kad masyvas niekada padidinamas. 521 00:47:55,380 --> 00:47:57,960 Kad abi tos vietos reikia. 522 00:47:57,960 --> 00:48:03,830 >> PHP yra dažniausiai gana protingas apie tai. 523 00:48:03,830 --> 00:48:06,570 Jūs manote, aš noriu praeiti nuoroda 524 00:48:06,570 --> 00:48:09,560 Tai buvo iš tikrųjų klausimą vienoje iš psets. 525 00:48:09,560 --> 00:48:14,480 Tai buvo questions.txt dalykas, kur jis sakė, 526 00:48:14,480 --> 00:48:19,280 Kodėl norite perduoti šią struct remiantis? 527 00:48:19,280 --> 00:48:21,250 Koks buvo atsakymas į tai? 528 00:48:21,250 --> 00:48:25,100 [Studentas] Taigi jūs neturite kopijuoti kažką didelis. >> Taip. 529 00:48:25,100 --> 00:48:32,920 Struct gali būti savavališkai didelis, ir kai pereisite struct kaip argumentas 530 00:48:32,920 --> 00:48:36,800 reikia kopijuoti, kad visą Struct perduoti jį funkcijos, 531 00:48:36,800 --> 00:48:40,410 o jei jūs tiesiog praeiti struct remiantis 532 00:48:40,410 --> 00:48:46,530 tada jis tiesiog reikia nukopijuoti kaip argumento funkcijos 4-baitų adresą. 533 00:48:48,520 --> 00:48:52,320 PHP yra šiek tiek protingesni nei. 534 00:48:52,320 --> 00:49:00,650 , Jei turiu tam tikrą funkciją, ir galiu perduoti jai 1000 dalykų, masyvo, 535 00:49:00,650 --> 00:49:03,990 ar tai reiškia, kad ji ketina turite nukopijuoti visus 1000 iš tų dalykų, 536 00:49:03,990 --> 00:49:10,450 perduoti į funkciją? Ji neturi, tai padaryti nedelsiant. 537 00:49:10,450 --> 00:49:15,940 Jei šią funkciją viduje ji niekada iš tikrųjų keičia foo 538 00:49:15,940 --> 00:49:22,660 taip if ($ foo === "Sveiki") return true; 539 00:49:22,660 --> 00:49:26,460 Atkreipkite dėmesį, mes niekada iš tikrųjų pakeitė argumentas šios funkcijos viduje, 540 00:49:26,460 --> 00:49:30,010 , o tai reiškia, kad viskas, ką buvo priimtas kaip foo niekada reikia nukopijuoti 541 00:49:30,010 --> 00:49:32,100 nes jis ne ją keisti. 542 00:49:32,100 --> 00:49:39,240 Taigi, kaip PHP darbai yra argumentai visada priimtas remiantis 543 00:49:39,240 --> 00:49:42,170 kol jūs iš tikrųjų bando jį pakeisti. 544 00:49:42,170 --> 00:49:51,160 Dabar, jei aš sakau, $ foo + +; ji dabar padaryti pradinės foo kopiją ir keisti kopiją. 545 00:49:51,160 --> 00:49:53,090 Tai sutaupys šiek tiek laiko. 546 00:49:53,090 --> 00:49:58,210 Jei jūs niekada neliesti šią didelę masyvas, jūs niekada iš tikrųjų keisti, 547 00:49:58,210 --> 00:50:02,360 tai nereikia, kad kopija, 548 00:50:02,360 --> 00:50:06,640 o jei mes tiesiog įdėti šią ampersendo, tai reiškia, kad ji nėra net nukopijuokite jį 549 00:50:06,640 --> 00:50:08,640 , net jei jūs jį pakeisti. 550 00:50:08,640 --> 00:50:10,680 Toks elgesys yra vadinamas kopija-su-rašyti. 551 00:50:10,680 --> 00:50:17,380 Pamatysite jį ir kitose vietose, ypač jei vartojate operacinės sistemos kursą. 552 00:50:17,380 --> 00:50:23,880 Kopija-su-rašyti yra gana įprasta modelis, kur jums nereikia, kad kažkas kopiją 553 00:50:23,880 --> 00:50:26,650 išskyrus atvejus, kai tai iš tikrųjų keičiasi. Taip. 554 00:50:26,650 --> 00:50:29,520 [Studentas] Ką daryti, jei turėjo vidinį bandymo prieaugis, 555 00:50:29,520 --> 00:50:33,700 kad tik 1 elementas iš 1000 reikėtų keisti? 556 00:50:33,700 --> 00:50:38,770 Nesu tikras. 557 00:50:38,770 --> 00:50:51,250 Manau, kad būtų nukopijuoti visą dalykas, bet tai įmanoma, jis pakankamai išmanus, kad 558 00:50:51,250 --> 00:51:00,020 Tiesą sakant, tai, ką aš galvoju, yra įsivaizduoti, mes turėjome masyvą, kuris atrodo taip: $ masyvas2 = [ 559 00:51:00,020 --> 00:51:11,000 Tada į indeksą "a" yra masyvas [1 2 3 4], o indeksas "b" yra whatever masyvas. 560 00:51:11,000 --> 00:51:15,380 Man reikia kablelius tarp visų tų. Įsivaizduokite, kad yra kableliais. 561 00:51:15,380 --> 00:51:21,210 Tada "c" vertė 3. 562 00:51:24,210 --> 00:51:26,290 Gerai. 563 00:51:26,290 --> 00:51:33,440 Dabar galime pasakyti, mes $ Baz ($ masyvas2); 564 00:51:33,440 --> 00:51:36,540 Baz nėra į tai atsižvelgiant. 565 00:51:43,510 --> 00:51:47,370 Taigi $ foo ['c'] + +; 566 00:51:47,370 --> 00:51:52,340 Tai toks pavyzdys, kai mes perduodame masyvas2 kaip argumentas 567 00:51:52,340 --> 00:51:57,010 ir tada jis keičia tam tikrą indeksą masyvo, jį didinant. 568 00:51:57,010 --> 00:52:01,090 Aš tikrai neįsivaizduoju, ką PHP ketinate daryti. 569 00:52:01,090 --> 00:52:07,200 Jis gali būti lengvai padaryti visą dalykas kopiją, bet jei jis protingas, 570 00:52:07,200 --> 00:52:15,030 ji bus šių raktų kopiją tais atvejais, kai tai turės savo atskirą vertę 571 00:52:15,030 --> 00:52:20,620 bet tai gali vis dar su tuo pačiu masyvo 1,2,3,4 572 00:52:20,620 --> 00:52:22,320 ir tai gali dar su tuo pačiu masyvo. 573 00:52:22,320 --> 00:52:24,170 Aš iPad jį. 574 00:52:28,900 --> 00:52:45,950 Mes pereiname šiame masyve, kur šis vaikinas balų 3, Šis vaikinas taškus [1,2,3,4], 575 00:52:45,950 --> 00:52:51,350 Šis vaikinas [34, ...] 576 00:52:51,350 --> 00:52:58,590 Dabar, kai mes perduoti ją į bazių, mes pakeisti šią. 577 00:52:58,590 --> 00:53:03,550 Jei PHP yra protingas, jis gali tiesiog daryti - 578 00:53:11,850 --> 00:53:18,230 Mes vis dar kopijuoti šiek tiek atminties, bet jei ten buvo šitie didžiuliai įdėtos subarrays 579 00:53:18,230 --> 00:53:21,560 mes ne reikia nukopijuoti tiems. 580 00:53:21,560 --> 00:53:27,530 Aš nežinau, jei tai, ką ji daro, bet aš negaliu įsivaizduoti, kad tai, kad. 581 00:53:29,050 --> 00:53:36,690 Tai taip pat yra gana didelis privalumas C per PHP. 582 00:53:36,690 --> 00:53:40,320 >> PHP daro mūsų gyvenimą daug lengviau daug dalykų, 583 00:53:40,320 --> 00:53:45,060 bet jūs tipo neturi jokios idėjos, kaip gerai ji atliks 584 00:53:45,060 --> 00:53:52,530 nes aš neturiu po gaubtu idėja, kai jis šių dalykų kopijas, 585 00:53:52,530 --> 00:53:55,170 oh, kad bus pastovus laikas kopija, 586 00:53:55,170 --> 00:54:01,140 tai tiesiog ketina pakeisti 1 žymeklį, tai bus juokingai sunku linijinis kopija? 587 00:54:01,140 --> 00:54:03,000 Ką daryti, jei jis negali rasti vietos? 588 00:54:03,000 --> 00:54:06,760 Ji tada reikia paleisti šiukšlių surinkimo, gauti šiek tiek daugiau vietos? 589 00:54:06,760 --> 00:54:11,210 Ir šiukšlių surinkimo gali trukti nepagrįstai ilgai. 590 00:54:11,210 --> 00:54:13,600 In C jūs neturite jaudintis dėl šių dalykų. 591 00:54:13,600 --> 00:54:19,780 Kiekvienas linija rašote jums gali gana daug priežasčių, apie tai, kaip ji ketina atlikti. 592 00:54:26,800 --> 00:54:29,150 >> Leiskite pažvelgti atgal. 593 00:54:35,400 --> 00:54:37,520 Kaip malonu tai, kad jūs neturite kovoti su maišos funkcijų, 594 00:54:37,520 --> 00:54:39,010 nuorodytų sąrašus, ar ko nors panašaus? 595 00:54:39,010 --> 00:54:41,980 Kadangi darbo su maišos lenteles taip lengva dabar, čia yra smagus puzzle dirbti. 596 00:54:41,980 --> 00:54:45,920 Atverti failą pavadinimu unique.php ir rašyti PHP programą 597 00:54:45,920 --> 00:54:48,330 (Taip pat žinomas kaip "scenarijų"). 598 00:54:48,330 --> 00:54:55,700 Mes linkę juos vadinti scenarijus, jei jie trumpi dalykų, kad jums paleisti į komandų eilutę. 599 00:54:55,700 --> 00:55:02,950 Iš esmės, bet kalba, kad jums nereikia sudaryti, bet jūs ketinate paleisti vykdomąjį 600 00:55:02,950 --> 00:55:05,920 į komandų eilutę, galite skambinti, kad vykdomąjį scenarijų. 601 00:55:05,920 --> 00:55:08,510 Aš galėjau lygiai taip pat parašyti C programa, kuri daro tai, 602 00:55:08,510 --> 00:55:12,300 bet aš ne ją vadina scenarijus, nes aš pirmą kartą kaupia jį ir tada paleisti dvejetainis. 603 00:55:12,300 --> 00:55:15,480 Bet tai PHP programa mes ketiname skambinti scenarijų. 604 00:55:15,480 --> 00:55:23,830 Arba, jei mes ją parašė Python arba Perl ar Node.js arba bet iš tų dalykų, 605 00:55:23,830 --> 00:55:26,500 mes norime jiems skambinti visi scenarijai, nes galite paleisti juos į komandų eilutę 606 00:55:26,500 --> 00:55:30,040 bet mes ne renka juos. 607 00:55:30,860 --> 00:55:33,400 Galėtume tai padaryti gana greitai. 608 00:55:36,960 --> 00:55:41,480 Mes neketiname naudoti argv. Tegul tiesiog smūgis per tai. 609 00:55:41,480 --> 00:55:45,730 Skambinti ji yra unikali, parašyti programą. 610 00:55:45,730 --> 00:55:49,400 Galite manyti, kad įvestis bus būti vieną žodį eilutėje. 611 00:55:49,400 --> 00:55:52,020 Tiesą sakant, argv bus gana trivialus naudoti. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 Pirmas dalykas, pirma, mes norime patikrinti, ar mes buvo perduota 1 komandų eilutės argumentas. 614 00:56:13,750 --> 00:56:20,900 Lygiai taip pat, kaip ir galima buvo tikėtis argc ir argv C, mes vis dar turime, PHP. 615 00:56:20,900 --> 00:56:33,900 Taigi, jei ($ argc! == 2), tada aš ne su spausdinti pranešimą arba nieko. 616 00:56:33,900 --> 00:56:37,340 Aš tiesiog išeiti, klaidos kodas iš 1. 617 00:56:37,340 --> 00:56:41,340 Taip pat galėčiau grąžinti 1. 618 00:56:41,340 --> 00:56:53,180 Retai PHP yra šioje valstybėje, kur mes ne - 619 00:56:53,180 --> 00:56:57,820 Paprastai esate funkcija vadinama funkcija vadinama funkcija vadinama funkcijos. 620 00:56:57,820 --> 00:57:02,070 Ir jei kas nors negerai, ir jūs tiesiog norite viską, kad išeitumėte visiškai, 621 00:57:02,070 --> 00:57:05,680 išėjimas tik tikslas programą. 622 00:57:05,680 --> 00:57:08,160 Tai taip pat yra C. 623 00:57:08,160 --> 00:57:10,700 Jei esate funkcijos funkcija funkcijos funkcija 624 00:57:10,700 --> 00:57:17,540 , ir norite tiesiog nužudyti programą, galite skambinti išėjimą ir jis bus tiesiog išeiti. 625 00:57:17,540 --> 00:57:23,120 Bet PHP tai dar rečiau, kad mes esame šiuo aukščiausio lygio. 626 00:57:23,120 --> 00:57:26,090 Paprastai mes kažkokiu funkcijos viduje, todėl mes vadiname išėjimą 627 00:57:26,090 --> 00:57:29,650 , kad mes neturime grįžti iki 1 dalykas, kuris tada supranta, klaida 628 00:57:29,650 --> 00:57:32,270 kad grąžina, jei pripažįsta, įvyko klaida. 629 00:57:32,270 --> 00:57:35,270 Mes nenorime, kad spręsti, kad, todėl išeiti (1); 630 00:57:35,270 --> 00:57:38,240 grąža (1), šiuo atveju būtų lygiaverčiai. 631 00:57:38,240 --> 00:57:44,000 >> Tada tai, ką mes norime atidaryti norime fopen. 632 00:57:44,000 --> 00:57:46,760 Argumentai atrodo gana panašus. 633 00:57:46,760 --> 00:57:51,600 Mes norime fopen ($ argv [1], ir mes norime atidaryti jį skaityti. 634 00:57:51,600 --> 00:57:55,720 Kuri grąžina išteklius, mes ketiname skambinti f. 635 00:57:55,720 --> 00:58:02,180 Tai atrodo gana panašus kaip C ar jį tik mes neturime pasakyti failą *. 636 00:58:02,180 --> 00:58:06,170 Vietoj to mes tik pasakyti $ f. Gerai. 637 00:58:06,170 --> 00:58:17,190 Tiesą sakant, manau, kad tai netgi suteikia mums užuominą PHP funkcija vadinama failas. PHP failas. 638 00:58:17,190 --> 00:58:23,990 Ką ketina daryti perskaityti visą failą į masyvą. 639 00:58:23,990 --> 00:58:29,770 Jums net nereikia fopen jį. Ji ketina tai padaryti už jus. 640 00:58:37,450 --> 00:58:43,700 Taigi $ linijos = file ($ argv [1]); 641 00:58:43,700 --> 00:58:49,680 Dabar visi atitinkamos bylos linijų linijų. Dabar mes norime rūšiuoti eilutes. 642 00:58:49,680 --> 00:58:52,180 Kaip mes galime rūšiuoti eilutes? 643 00:58:52,180 --> 00:58:54,920 Mes rūšiuoti eilutes. 644 00:58:54,920 --> 00:58:58,080 Ir dabar mes galime atspausdinti juos, ar kas. 645 00:58:58,080 --> 00:59:05,580 Turbūt lengviausias būdas yra foreach ($ as $ linija linijos) echo $ linija; 646 00:59:05,580 --> 00:59:10,960 [Studentas] Ar ne mes net kirsti linijas nurodyti kažką į rūšiuoti? 647 00:59:10,960 --> 00:59:28,850 Tai vieta, kur tarsi turėtų būti apibrėžta kaip funkcija rūšiuoti (& $ masyvas). 648 00:59:28,850 --> 00:59:32,650 Kai Jūs skambinate funkciją jums nereikia perduoti ją nuorodą. 649 00:59:32,650 --> 00:59:36,900 Tai funkcija, kuri apibrėžia ją kaip nuoroda. 650 00:59:36,900 --> 00:59:40,900 Iš tikrųjų tai yra būtent tai, kas nutiko 651 00:59:40,900 --> 00:59:46,220 kai mes įdėti viską, kad mūsų serveriuose, kai mes Eime 5,3-5,4. 652 00:59:46,220 --> 00:59:53,800 Iki 5,4, tai buvo visiškai pateisinamas. 653 00:59:53,800 --> 00:59:58,740 Jos funkcija, neturi tikėtis, kad jį priimti kaip nuoroda, bet galite perduoti jį kaip nuoroda 654 00:59:58,740 --> 01:00:02,860 todėl, jei funkcija netyčia pakeisti jį, jis vis dar pakeistas. 655 01:00:02,860 --> 01:00:05,850 5,4 nesate turėjo tai padaryti. 656 01:00:05,850 --> 01:00:11,740 Taigi, dabar vienintelis būdas jums perduoti remiantis, jei ši funkcija aiškiai tai. 657 01:00:11,740 --> 01:00:19,840 Jei jūs nenorite, kad jis jį keisti, tada jums reikia padaryti $ = $ linijų ir pass kopijavimo kopijas. 658 01:00:19,840 --> 01:00:24,820 Taigi dabar eilutės bus išsaugota ir kopija bus pakeistas. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. Galbūt aš messed kažką daugiau. 660 01:00:31,460 --> 01:00:33,190 Netikėtas "rūšiuoti". 661 01:00:38,320 --> 01:00:43,850 Ten bus kažkas, kad tai atlieka už mus. 662 01:00:43,850 --> 01:00:45,820 Tai net ne ten. 663 01:00:45,820 --> 01:00:52,140 Atkreipkite dėmesį, kai jūs skaitote šį vadovą, kad tikimasi, kad pirmasis argumentas masyvas 664 01:00:52,140 --> 01:00:56,490 ir ji ėmėsi nuoroda. 665 01:00:58,160 --> 01:01:03,540 Kodėl tai skundžiasi, kad man? , Nes aš vis dar čia Ši funkcija rūšiuoti, kad aš nenoriu. 666 01:01:03,540 --> 01:01:09,210 Gerai, php.unique.php. Aš ne perduoti jį argumentą, nes aš neturiu failą. 667 01:01:09,210 --> 01:01:13,560 Tai test.php php.unique.php apie. 668 01:01:13,560 --> 01:01:19,080 Čia yra test.php visi atspausdinti gražioje rūšiuotų tvarka. 669 01:01:19,080 --> 01:01:24,600 Atkreipkite dėmesį,, kad rūšiuojami, kad yra tipo keistam kodo failą 670 01:01:24,600 --> 01:01:27,460 , nes visi mūsų tuščių eilučių ketinate atėjai, pirmas 671 01:01:27,460 --> 01:01:30,190 tada ketinate atvykti visų mūsų 1 lygio išpjovomis 672 01:01:30,190 --> 01:01:33,360 tada ateis mūsų be atspaudų. 673 01:01:33,360 --> 01:01:38,620 Taip. >> [Studentas] Taigi šaltinio kodo nebuvo priimtas remiantis? 674 01:01:38,620 --> 01:01:42,240 Yra tai, kad paprastai perduodama pagal vertę? 675 01:01:42,240 --> 01:01:50,240 [Bowden] Kai Jūs skambinate funkciją, ji niekada nustato, ar jis buvo priimtas remiantis. 676 01:01:50,240 --> 01:01:53,960 Tai funkcijos apibrėžimas, kuris nustato, ar jis buvo priimtas remiantis. 677 01:01:53,960 --> 01:01:59,450 Ir žiūri funkcijos apibrėžimo rūšiuoti arba tiesiog žiūri į tai, 678 01:01:59,450 --> 01:02:02,820 ji mano argumentą pateikiant nuorodą. 679 01:02:02,820 --> 01:02:07,160 Taigi, nepriklausomai nuo to, ar norite, kad jis į jį nuorodą, ji imasi ją nuorodą. 680 01:02:07,160 --> 01:02:10,200 Jis keičia vietoje masyvo. 681 01:02:10,200 --> 01:02:17,400 Tai tik neleidžiama. Jums neleidžiama atlikti šį darbą. >> [Studentas] O, gerai. 682 01:02:17,400 --> 01:02:22,410 [Bowden] Tai, rūšiuoti ketina imtis atskaitos linijas ir pakeisti jį. 683 01:02:22,410 --> 01:02:26,850 Ir vėl, jei nenoriu, kad tai padaryti, jūs galėtų rūšiavimo kopiją. 684 01:02:26,850 --> 01:02:35,850 Net ir šiuo atveju, kopijuoti nėra faktiškai linijų kopija. 685 01:02:35,850 --> 01:02:40,620 Jis tiesiog nurodo į tą patį, kol jis pirmą kartą gauna keistas, 686 01:02:40,620 --> 01:02:44,430 kur jis ketinate gauti pakeisti rūšiavimo funkciją, 687 01:02:44,430 --> 01:02:50,940 , kai dėl jo kopija-su-rašyti, dabar kopija, ketina būti. 688 01:02:57,500 --> 01:03:04,250 Jūs taip pat gali tai padaryti. Štai kita vieta, galite pamatyti ampersendo. 689 01:03:04,250 --> 01:03:07,190 Jūs matote jį foreach kilpos, jūs matote jį pareigų deklaracijų, 690 01:03:07,190 --> 01:03:10,040 ir pamatysite jį, kai tik priskiriant kintamuosius. 691 01:03:10,040 --> 01:03:12,350 Dabar mes esame pasiekę daro tai nieko 692 01:03:12,350 --> 01:03:15,600 nes kopija ir linijos yra tiesiog tas pats. 693 01:03:15,600 --> 01:03:19,940 Jūs galite naudoti linijų ir kopijuoti pakaitomis. 694 01:03:19,940 --> 01:03:25,430 Jūs galite padaryti išjungimo ($ kopiją) ir kad nėra neapibrėžtas linijų, 695 01:03:25,430 --> 01:03:29,120 jūs tiesiog prarasti savo nuorodą į tą patį. 696 01:03:29,120 --> 01:03:33,440 Taigi, šio punkto, dabar linijos yra vienintelis būdas galite pasiekti linijas. 697 01:03:36,450 --> 01:03:38,770 >> Turite klausimų? 698 01:03:41,000 --> 01:03:42,460 Taip. 699 01:03:42,460 --> 01:03:45,880 [Studentas] visiškai ne į temą, bet jūs neturite uždaryti PHP - >> Jūs neturite. 700 01:03:45,880 --> 01:03:47,730 Gerai. 701 01:03:47,730 --> 01:03:53,790 [Bowden] aš norėčiau eiti taip toli, kad pasakyti, kad tai bloga praktika jas uždaryti. 702 01:03:53,790 --> 01:03:57,580 Tai turbūt perdėta, ypač scenarijų, 703 01:03:57,580 --> 01:04:03,740 bet pažiūrėkime, kas atsitiks, jei aš tai padaryti. 704 01:04:03,740 --> 01:04:08,890 Kad nieko nedarė. Ką daryti, jei aš norėjau - [atsidūsta] 705 01:04:13,870 --> 01:04:16,960 Turiu išlaikyti argumentą. 706 01:04:19,000 --> 01:04:22,050 Šaudyti. Aš pašaukiau tai negerai. 707 01:04:24,340 --> 01:04:28,310 Taigi php.unique.php su argumentais. 708 01:04:28,310 --> 01:04:30,980 Dabar aš net nereikia. 709 01:04:34,520 --> 01:04:37,740 Aš perduoti svariu argumentu. 710 01:04:37,740 --> 01:04:42,050 Tai atspausdintas kokia ji spausdinimo. 711 01:04:45,260 --> 01:04:50,080 Aš spausdinti kopiją ir kopija neegzistuoja. Taip linijas. 712 01:04:53,650 --> 01:04:58,270 Jis atspausdintas viską, ir tada pastebėsite visą tą šiukšlių žemyn čia, 713 01:04:58,270 --> 01:05:06,690 nes PHP nieko, kad yra ne PHP žymes 714 01:05:06,690 --> 01:05:09,520 yra tik ketina tiesiog turi būti išspausdinti. 715 01:05:09,520 --> 01:05:18,050 Štai kodėl HTML, tai taip malonu, kad aš galiu padaryti div blah, blah, blah klasę ar kas, 716 01:05:18,050 --> 01:05:25,140 blah, blah, blah ir atlikite PHP kodą ir atlikite pabaigos div. 717 01:05:25,140 --> 01:05:36,460 Ir dabar spausdinti, tai aš gausiu savo gražią div iki viršaus, viską, PHP, spausdinti, div apačioje. 718 01:05:36,460 --> 01:05:43,510 Pražūtingas atsitinka, kai kažkas panašaus į tai, kuri yra gana dažni, 719 01:05:43,510 --> 01:05:47,930 tiesiog benamių naują eilutę failo apačioje. 720 01:05:47,930 --> 01:05:50,940 Jūs taip nemanau, tai būtų, kad spręsti didelis 721 01:05:50,940 --> 01:05:58,660 iki manote, kad tai, kad su naršyklėmis - 722 01:05:58,660 --> 01:06:03,880 >> Kaip nukreipimus darbą ar iš esmės bet koks antraštes darbas, 723 01:06:03,880 --> 01:06:07,980 kai jums padaryti jūsų prisijungti į svetainę ir siunčia atgal visi šios antraštės ir dalykų 724 01:06:07,980 --> 01:06:12,020 kaip atsakas 200 ar kovoti nukreipimų ar kokia, 725 01:06:12,020 --> 01:06:18,230 antraštės galioja tik iki duomenų pirmasis baitas siunčiamas. 726 01:06:18,230 --> 01:06:23,140 Galite peradresuoti tūkstančius kartų, bet kaip tik duomenų pirmasis baitas siunčiamas 727 01:06:23,140 --> 01:06:26,120 nesate vėl turėtų nukreipti. 728 01:06:26,120 --> 01:06:31,860 >> Jei turite benamių naujos eilutės failo apačioje 729 01:06:31,860 --> 01:06:37,260 tarkim, kad jūs naudojate šią funkciją, ir tada jūs norite - 730 01:06:41,580 --> 01:06:52,870 Tarkime, kad tai dar vienas failas, kuris yra index.php, ir jūs require_once kažką - 731 01:06:52,870 --> 01:06:56,920 Aš negaliu galvoti geru. 732 01:06:56,920 --> 01:07:04,740 Problema atsitinka, kai tai apačioje eilutė bus pakartotas. 733 01:07:04,740 --> 01:07:08,660 Jūs nenorite nieko dar buvo atkartojamos. 734 01:07:10,820 --> 01:07:15,700 Net jei jūs neketino nieko gauti atliepianti kažkas buvo gauti atkartojo 735 01:07:15,700 --> 01:07:17,990 ir taip dabar jūs nesate turėtų siųsti daugiau antraštes 736 01:07:17,990 --> 01:07:20,030 ir jūs ketinate gauti skundus. 737 01:07:22,170 --> 01:07:24,420 Jums tiesiog nereikia tuos uždarymo žymes. 738 01:07:24,420 --> 01:07:27,420 Jei planuojate daro kažką su HTML - 739 01:07:27,420 --> 01:07:30,490 ir tai visiškai pagrįsta žemai čia div kokia 740 01:07:30,490 --> 01:07:39,450 ir tada šiuo metu jums gali arba galite ne įtraukti juos. 741 01:07:39,450 --> 01:07:41,590 Jis tikrai ne klausimas. 742 01:07:41,590 --> 01:07:45,450 Bet PHP tai retai, jį uždaryti. 743 01:07:45,450 --> 01:07:50,400 Kai viskas yra PHP, absoliučiai viskas, 744 01:07:50,400 --> 01:07:55,460 jums nereikia tikrai reikia jį uždaryti / jums neturėtų uždaryti jį. 745 01:08:02,030 --> 01:08:05,720 >> Darbas su Styga yra daug gražiau nei C. 746 01:08:05,720 --> 01:08:09,470 PHP galite nurodyti eilutę su viengubų arba dvigubų kabučių. 747 01:08:09,470 --> 01:08:12,820 Su viengubomis kabutėmis jūs negalite naudoti "Escape" sekas. 748 01:08:12,820 --> 01:08:17,640 Nuolat pabėgti, blah, blah, blah. 749 01:08:19,920 --> 01:08:24,010 Taigi printf yra labai reti PHP. 750 01:08:24,010 --> 01:08:32,290 Manau, aš norėčiau naudoti printf, jei aš norėjau padaryti, kad dalykas rūšiuoti jums pset 5 sprintf ar kokia. 751 01:08:32,290 --> 01:08:36,060 Bet jūs norite padaryti 001.jpg ir 002.JPG. 752 01:08:36,060 --> 01:08:40,300 Taigi, kad dalykas rūšiuoti, kur aš tikrai norite formatuoti tekstą, aš norėčiau naudoti printf. 753 01:08:40,300 --> 01:08:44,689 Bet kitaip aš tiesiog naudokite simbolių eilučių sujungimas. 754 01:08:44,689 --> 01:08:47,000 Aš niekada iš tikrųjų naudoti printf. 755 01:08:49,229 --> 01:09:00,170 Mes tiesiog diferencijuojant tarp viengubomis kabutėmis ir dvigubų kabučių. 756 01:09:00,170 --> 01:09:07,490 Apostrofai, ji bus atspausdintas tiesiog didžiausias skirtumas yra. 757 01:09:07,490 --> 01:09:15,390 Yra ne char tipo duomenų PHP, skirtingai nuo C, todėl tai atitinka. 758 01:09:15,390 --> 01:09:17,970 Jie abu stygos. 759 01:09:17,970 --> 01:09:29,180 Ir malonus dalykas, apie viengubas kabutes eilutės galėčiau pasakyti "hello world!" blah, blah, blah, 760 01:09:29,180 --> 01:09:33,340 $ $ Wooo. 761 01:09:33,340 --> 01:09:38,260 Kas atsitinka, kai aš spausdinti, tai jis bus atspausdinti ją pažodžiui. 762 01:09:38,260 --> 01:09:40,680 Leiskite atsikratyti visų mūsų medžiagą. 763 01:09:40,680 --> 01:09:44,700 Taigi echo $ str1; 764 01:09:48,569 --> 01:09:56,570 Jis tiesiog atspausdintas iš tų dalykų, dolerio ženklai, 765 01:09:56,570 --> 01:09:58,770 Backslash n, kurį jūs manote, kad būtų naujų eilučių - 766 01:09:58,770 --> 01:10:01,500 visų tų dalykų jis spausdina pažodžiui. 767 01:10:01,500 --> 01:10:05,650 Vienintelis dalykas, kurį reikia pabėgti apostrofai 768 01:10:05,650 --> 01:10:09,470 nes kitaip būtų manau, kad tai uždarymo Viengubomis kabutėmis. 769 01:10:09,470 --> 01:10:15,050 Dvigubas kabutes, visiškai skirtingi. 770 01:10:20,300 --> 01:10:25,870 Mes jau sintaksės cluing mus į tai, kas eiti siaubingai negerai. 771 01:10:25,870 --> 01:10:36,190 php.unique. Undefined variable: Wooo nes tai interpretuojama kaip kintamojo "Wooo. 772 01:10:36,190 --> 01:10:42,400 Jums įterpti kintamuosius į kabutes - 773 01:10:42,400 --> 01:10:52,730 Tarkime, kad $ name = "Rob"; 774 01:10:52,730 --> 01:10:58,020 Taigi echo "Sveiki, mano vardas yra $ vardas!"; 775 01:10:58,020 --> 01:11:09,260 Ji pripažįsta tai kaip kintamasis. 776 01:11:09,260 --> 01:11:21,210 Kai aš paleisti, kad ir aš įterpti naują eilutę - Hi, my name is Rob! ir hello world! 777 01:11:21,210 --> 01:11:24,910 Tai yra, nes aš niekada pašalinti Wooo spausdinti virš. 778 01:11:24,910 --> 01:11:30,020 Yra 1 dar vienas žingsnis, kurį galite padaryti,. 779 01:11:30,020 --> 01:11:39,250 $ Masyvas = [1, 2, 3]; 780 01:11:39,250 --> 01:11:43,270 Ką daryti, jei noriu spausdinkite pirmą masyvo indeksą? 781 01:11:43,270 --> 01:11:45,150 Tai galite padaryti $ masyvas [0]. 782 01:11:45,150 --> 01:11:49,280 Sintaksės išryškinimas yra raktas. Kas tai yra ketinate daryti? 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 Sveiki, mano vardas yra 1! kuri yra ne tai, ką norėjau. 785 01:11:59,860 --> 01:12:05,050 Sintaksės išryškinimas melavo man. 786 01:12:05,050 --> 01:12:13,020 Pabandykime "" -> 1, "b" -> 2. 787 01:12:18,450 --> 01:12:21,440 Štai kaip aš noriu, kad rašyti jį. 788 01:12:26,350 --> 01:12:32,160 Netikėta viengubas kabutes (T_ENCAPSED blah, blah, blah, blah, blah). 789 01:12:32,160 --> 01:12:41,780 Idėja yra ta, kad tai ne pripažinti tai kaip masyvo. 790 01:12:41,780 --> 01:12:46,620 Ji manimi ne Pripažindama, kad tai masyvas indeksuojamas pagal raidę a. 791 01:12:46,620 --> 01:12:49,870 Jūs norite padaryti, kad apsuptas Garbanotasis petnešos, 792 01:12:49,870 --> 01:12:54,730 ir dabar, kokia yra šio garbanotas petnešomis bus interpoliuota 793 01:12:54,730 --> 01:13:00,340 kuris yra žodis, kurį mes naudojame stebuklingai įterpti šiuos kintamuosius į tinkamose vietose. 794 01:13:00,340 --> 01:13:04,280 Dabar daro tai, php.unique ir Sveiki, mano vardas yra 1! taip, kaip tikėtasi 795 01:13:04,280 --> 01:13:07,720 arba Hi, my name is Rob! 796 01:13:14,110 --> 01:13:23,130 Vienas dalykas, kad rūšies malonu apie viengubomis kabutėmis, kad - 797 01:13:23,130 --> 01:13:28,480 Yra keletas išlaidos interpoliuojant. 798 01:13:30,520 --> 01:13:35,100 Jei naudojate dvigubas kabutes, interpretatorius turi eiti per šią eilutę, 799 01:13:35,100 --> 01:13:41,500 įsitikinkite, kad: "O, čia yra kintamasis. Dabar man reikia eiti gauti šį kintamąjį ir įdėkite jį čia." 800 01:13:41,500 --> 01:13:48,930 Net jei jums nereikia naudoti bet kokiems kintamiesiems, 801 01:13:48,930 --> 01:13:52,220 nieko viduje iš šių dvigubų kabučių reikia interpoliuoti 802 01:13:52,220 --> 01:13:56,800 bet ji vis dar gali būti lėtesnis, nes ji turi eiti per dvigubų kabučių 803 01:13:56,800 --> 01:14:00,130 ieško dalykų, kuriuos reikia interpoliuojami. 804 01:14:00,130 --> 01:14:05,360 Taigi apostrofai gali būti šiek tiek greičiau, jei nieko nereikia interpoliuojami 805 01:14:05,360 --> 01:14:15,650 ir aš paprastai naudoti net Viengubomis kabutėmis "Sveiki, mano vardas yra". $ Masyvas [''] vistiek. 806 01:14:15,650 --> 01:14:20,430 Tai bus lygiavertis, ką turėjome anksčiau. 807 01:14:24,840 --> 01:14:28,440 Bet tai skonio reikalas. 808 01:14:28,440 --> 01:14:34,750 Jei naudojate PHP, jūs tikriausiai ne rūpi greičio skirtumas. 809 01:14:34,750 --> 01:14:39,480 Nėra pakankamai argumentuoti juos pradėti. 810 01:14:39,480 --> 01:14:43,030 >> Bet koks galutinis klausimų? 811 01:14:47,430 --> 01:14:51,710 >> Mes iš tikrųjų nebuvo net gauti per visa tai, tačiau ši medžiaga buvo nuobodu. 812 01:14:51,710 --> 01:14:59,080 Paskutinis dalykas, kad koks gražus PHP yra, kai jūs susiduriame su HTML, 813 01:14:59,080 --> 01:15:06,450 jūs naudosite jį šiek tiek, todėl gražus nuorodų sintaksę spausdinti kintamąjį. 814 01:15:32,400 --> 01:15:36,730 Nesukeliant PHP čia, tai vadinama trumpus žodžius. 815 01:15:36,730 --> 01:15:44,330 Oficialiai PHP 5.4, tai yra pasenusios. 816 01:15:44,330 --> 01:15:48,640 Jūs rekomenduojama įdėti php. 817 01:15:48,640 --> 01:15:55,770 Tai vis dar palaiko, tiek trumpus žodžius su 01:16:02,480 Tai yra pagal nutylėjimą palaikomą, todėl jūs galite naudoti juos, kaip norite, ir jie yra labai patogu. 819 01:16:02,480 --> 01:16:05,700 >> Turite klausimų? 820 01:16:07,780 --> 01:16:09,270 Gerai. 821 01:16:10,840 --> 01:16:13,800 >> Likti madingas, San Diego. 822 01:16:13,800 --> 01:16:16,070 [Chuckles] 823 01:16:18,620 --> 01:16:22,660 Bye. [Juokiasi] 824 01:16:24,350 --> 01:16:28,470 [Plojimai] [juokiasi] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]