1 00:00:00,000 --> 00:00:02,610 [Powered by Google Translate] [Sehemu ya 8 - Zaidi Starehe] 2 00:00:02,610 --> 00:00:04,910 [Rob Bowden - Chuo Kikuu cha Harvard] 3 00:00:04,910 --> 00:00:07,070 [Hii ni CS50. - CS50.TV] 4 00:00:11,520 --> 00:00:14,160 >> Hizi sehemu wiki maelezo ni kwenda kuwa pretty mfupi, 5 00:00:14,160 --> 00:00:19,070 hivyo mimi nina kwenda tu kuendelea kuongea, you guys ni kwenda kuendelea kuuliza maswali, 6 00:00:19,070 --> 00:00:22,720 na tutaweza kujaribu kujaza juu kama muda kiasi kama inawezekana. 7 00:00:22,720 --> 00:00:31,950 mengi ya watu wanadhani kwamba pset hii ni lazima si ngumu, lakini ni muda mrefu sana. 8 00:00:31,950 --> 00:00:37,070 spec pset yenyewe inachukua saa kusoma. 9 00:00:40,530 --> 00:00:45,730 Sisi kukupa mengi ya SQL unaweza uwezekano haja ya kutumia. 10 00:00:45,730 --> 00:00:50,520 Sisi kutembea wewe kupitia mengi ya hayo, hivyo ni lazima kuwa mbaya sana. 11 00:00:50,520 --> 00:00:54,560 Kuna mtu yeyote kuanza au kumaliza? 12 00:00:55,380 --> 00:00:59,710 Ni pset mwisho. Oh, Mungu wangu. 13 00:00:59,710 --> 00:01:05,400 Kawaida kuna JavaScript moja baada ya hii, lakini kalenda mabadiliko mambo 14 00:01:05,400 --> 00:01:09,560 hufanya kila kitu 1 wiki mfupi, na hatuna tena pset JavaScript. 15 00:01:09,560 --> 00:01:12,310 Sijui jinsi ambayo huathiri kama JavaScript inaenda kuonekana kwenye mtihani 16 00:01:12,310 --> 00:01:15,510 au Quiz 1. 17 00:01:15,510 --> 00:01:22,260 Mimi kufikiria itakuwa kitu kama unahitaji kujua mambo ya ngazi ya juu kuhusu JavaScript, 18 00:01:22,260 --> 00:01:26,460 lakini mimi shaka tunatarajia kutoa tu wewe moja kwa moja JavaScript code 19 00:01:26,460 --> 00:01:28,720 tangu wewe si alikuwa pset ndani yake. 20 00:01:28,720 --> 00:01:33,000 Lakini kwamba itakuwa stuff kwa ajili ya mapitio Jaribio wiki ijayo. 21 00:01:33,000 --> 00:01:36,320 >> Sehemu ya maswali. 22 00:01:36,320 --> 00:01:43,870 mengi ya mambo haya ni kiasi fulani hafifu kuchukuliwa, lakini tutaweza kujadili nini. 23 00:01:43,870 --> 00:01:50,220 Tofauti na C, PHP ni "dynamically-typed" lugha. Hii ina maana gani, kuuliza? 24 00:01:50,220 --> 00:01:53,830 Naam, kusema kwaheri kwa wote wa kuelea wale Char, int, na maneno mengine unahitaji kutumia 25 00:01:53,830 --> 00:01:56,190 wakati akitangaza vigezo na kazi katika C. 26 00:01:56,190 --> 00:02:00,420 Katika PHP, aina ya kutofautiana ni kuamua na thamani kwamba ni sasa kufanya. 27 00:02:00,420 --> 00:02:04,990 Hivyo kabla ya sisi aina hii code katika faili inayoitwa dynamic.php, 28 00:02:04,990 --> 00:02:12,670 PHP ni dynamically typed. Hiyo ni kweli. 29 00:02:12,670 --> 00:02:17,590 Sikubaliani na ukweli kwamba hiyo ina maana sisi ni kusema kwaheri Char, kuelea, int, 30 00:02:17,590 --> 00:02:20,620 na nyingine maneno. 31 00:02:20,620 --> 00:02:25,510 tofauti kati ya exact dynamically typed na mbadala, 32 00:02:25,510 --> 00:02:32,010 ambayo ni statically typed, ni kwamba dynamically typed, wote wa kuangalia aina yako na stuff 33 00:02:32,010 --> 00:02:37,350 hutokea wakati kukimbia, ambapo statically typed hutokea wakati kukusanya. 34 00:02:37,350 --> 00:02:43,030 neno tuli kwa ujumla inaonekana kuwa na maana ya mambo wakati kukusanya. 35 00:02:43,030 --> 00:02:48,170 Nadhani kuna matumizi mengine kwa ajili yake, lakini katika C wakati wewe kutangaza variable tuli, 36 00:02:48,170 --> 00:02:52,650 kuhifadhi yake ni zilizotengwa kwa wakati kukusanya. 37 00:02:52,650 --> 00:02:59,260 Hapa, dynamically typed tu ina maana kwamba - 38 00:02:59,260 --> 00:03:04,350 Katika C kama wewe kujaribu kuongeza string na integer, wakati wewe ni kukusanya, 39 00:03:04,350 --> 00:03:11,000 itakavyo kulalamika kwa sababu ni kwenda kusema kwamba huwezi kuongeza int na pointer. 40 00:03:11,000 --> 00:03:14,710 Ni tu si operesheni halali. 41 00:03:14,710 --> 00:03:21,170 Hiyo ni kitu kingine kwamba tutaweza kupata katika pili. 42 00:03:21,170 --> 00:03:24,860 Lakini kwamba aina ya kuangalia, ukweli kwamba analalamika wakati kukusanya, 43 00:03:24,860 --> 00:03:29,220 ni tuli aina ya kuangalia. 44 00:03:29,220 --> 00:03:35,220 Kuna lugha ambapo huna haja ya kusema Char, kuelea, int, na mambo yote hayo, 45 00:03:35,220 --> 00:03:40,940 lakini lugha unaweza kuwaambia kutoka muktadha wa kitu kile aina ni walidhani kuwa, 46 00:03:40,940 --> 00:03:43,980 lakini ni bado statically typed. 47 00:03:43,980 --> 00:03:49,000 Hivyo kama wewe kuchukua 51, OCaml, kamwe haja ya kutumia yoyote ya aina hizi, 48 00:03:49,000 --> 00:03:58,700 lakini bado itakuwa wakati kukusanya kusema huwezi kufanya hivyo kwa sababu wewe ni kuchanganya int na kamba. 49 00:03:58,700 --> 00:04:05,650 Dynamically typed tu ina maana kwamba wakati mwingine wakati wa muda kukimbia wewe ni kwenda kupata malalamiko. 50 00:04:05,650 --> 00:04:13,430 Kama wewe pia kutumika Java kabla, kwa ujumla, karibu yoyote Lugha C-aina 51 00:04:13,430 --> 00:04:20,070 inaenda statically typed, hivyo C, C + + Java, wale wote ni ujumla statically typed. 52 00:04:20,070 --> 00:04:22,910 Katika Java wakati kukusanya kitu na wewe ni kusema 53 00:04:22,910 --> 00:04:26,670 kamba s sawa kitu kipya ambacho si kamba, 54 00:04:26,670 --> 00:04:28,950 ambayo inaenda kulalamika kwa sababu wale aina tu si match up. 55 00:04:28,950 --> 00:04:31,180 Hiyo kwenda kulalamika wakati kukusanya. 56 00:04:31,180 --> 00:04:36,750 Lakini pia ina baadhi ya wakati nguvu mambo kama kama wewe kujaribu kutupwa kitu 57 00:04:36,750 --> 00:04:40,500 kwa aina hiyo ni maalum zaidi kuliko aina yake ya sasa, 58 00:04:40,500 --> 00:04:45,610 kuna kitu inaweza kufanya wakati kukusanya kuangalia kama kutupwa kwamba ni kwenda kufanikiwa. 59 00:04:45,610 --> 00:04:51,130 Java pia ina baadhi ya aina ya nguvu ya kuangalia kwamba haraka kama anapata kwa kuwa mstari wa kanuni 60 00:04:51,130 --> 00:04:54,130 wakati ni kweli utekelezaji, ni ya kwenda kufanya kutupwa, 61 00:04:54,130 --> 00:04:56,260 kuangalia kama kutupwa kwamba ilikuwa halali katika nafasi ya kwanza, 62 00:04:56,260 --> 00:04:59,890 na kama ilikuwa hivyo, basi ni kwenda kulalamika kwamba una aina batili. 63 00:04:59,890 --> 00:05:03,200 Aina Dynamic kuangalia. 64 00:05:03,200 --> 00:05:07,010 Aina hii katika faili inayoitwa dynamic.php. 65 00:05:10,130 --> 00:05:12,380 Dynamic.php. 66 00:05:14,580 --> 00:05:17,190 Mimi itabidi unzip kwamba formatting. 67 00:05:18,750 --> 00:05:21,880 Tuna variable, sisi kuweka kwa 7 integer, 68 00:05:21,880 --> 00:05:27,930 kisha tunakwenda magazeti hayo na s% - 69 00:05:27,930 --> 00:05:32,830 Oh, sisi ni kuchapa aina ya hivyo, hivyo gettype ni kwenda na kurudi aina ya kutofautiana. 70 00:05:32,830 --> 00:05:35,720 Sisi ni tu uchapishaji aina ya juu na juu tena. 71 00:05:35,720 --> 00:05:39,440 Sisi tu php.dynamic.php. 72 00:05:39,440 --> 00:05:45,920 Tutaweza kuona kwamba mabadiliko kutoka integer kwa kamba Boolean kama sisi kwenda kwa njia. 73 00:05:45,920 --> 00:05:54,590 Katika C hakuna Boolean data aina, hakuna kamba data aina. 74 00:05:54,590 --> 00:06:00,500 Kuna * Char na Boolean tu huelekea kuwa int au Char au kitu. 75 00:06:00,500 --> 00:06:05,690 Katika PHP aina hizi zipo, na hiyo ni moja ya faida kubwa ya PHP juu ya C - 76 00:06:05,690 --> 00:06:13,290 kwamba string shughuli ni kubwa rahisi katika PHP kuliko C. Wao tu kazi. 77 00:06:13,290 --> 00:06:18,290 >> Hivyo sisi kurudi hapa. 78 00:06:18,290 --> 00:06:21,260 Sisi mbio dynamic.php. 79 00:06:21,260 --> 00:06:26,710 Hii inatuambia mkalimani PHP, aitwaye php, kuendesha PHP code katika dynamic.php. 80 00:06:26,710 --> 00:06:30,250 Kama una makosa katika faili, mkalimani kukuambia! 81 00:06:30,250 --> 00:06:39,110 mkalimani, hii ni mwingine tofauti kubwa kati ya PHP na C. 82 00:06:39,110 --> 00:06:48,200 Katika C una kukusanya kitu fulani na kisha kukimbia kwamba faili compiled. 83 00:06:48,200 --> 00:06:50,490 Katika PHP kamwe kukusanya chochote. 84 00:06:50,490 --> 00:06:57,200 Hivyo mkalimani PHP ni kimsingi kusoma tu hii mstari kwa mstari. 85 00:06:57,200 --> 00:07:02,900 Ni hits var = 7 kisha ni hits printf basi ni hits var basi ni hits printf na kadhalika. 86 00:07:02,900 --> 00:07:10,910 Kuna ni kidogo ya kuandaa ni gani, na ni Caches matokeo 87 00:07:10,910 --> 00:07:15,510 hivyo kama wewe kukimbia script baadaye unaweza kufanya baadhi, 88 00:07:15,510 --> 00:07:19,280 lakini kimsingi ni mstari kwa mstari aina ya kitu. 89 00:07:19,280 --> 00:07:25,280 Hiyo ina maana kwamba mengi ya optimizations kwamba sisi kupata katika C, 90 00:07:25,280 --> 00:07:31,920 kama kuandaa, ni kwa ujumla tu compiler unaweza kufanya mengi ya tricks kwa wewe. 91 00:07:31,920 --> 00:07:36,110 Inaweza kuchukua nje vigezo outnyttjade, inaweza kufanya yote ya aina hii ya mambo, 92 00:07:36,110 --> 00:07:38,660 inaweza kufanya mkia recursion. 93 00:07:38,660 --> 00:07:42,550 Katika PHP wewe si kwenda kupata kwamba faida 94 00:07:42,550 --> 00:07:45,690 sababu tu kwenda kuanza utekelezaji mstari kwa mstari kwa mstari, 95 00:07:45,690 --> 00:07:49,950 na ni kweli haina kutambua mambo haya kwa urahisi 96 00:07:49,950 --> 00:07:54,440 tangu siyo 1 kubwa mkusanyiko kupita juu ya jambo na kisha utekelezaji; 97 00:07:54,440 --> 00:07:56,860 ni tu mstari kwa mstari. 98 00:08:00,730 --> 00:08:02,750 Basi hiyo ni mkalimani. 99 00:08:02,750 --> 00:08:06,840 >> Nyuma kwa kuandika wetu nguvu: pretty cool, eh? 100 00:08:06,840 --> 00:08:08,640 Wewe dhahiri hakuweza kufanya hivyo katika C! 101 00:08:08,640 --> 00:08:11,860 Sasa, kuona kama unaweza kufikiri aina ya kila moja ya maadili yafuatayo. 102 00:08:11,860 --> 00:08:14,760 Angalia hii kwa ajili ya kumbukumbu. 103 00:08:14,760 --> 00:08:19,420 Hivyo 3.50. Ni aina gani unafikiri kwamba kwenda kuwa? 104 00:08:24,480 --> 00:08:26,370 Hapa ni aina tuna. 105 00:08:26,370 --> 00:08:30,430 Tuna bools integers,, yaliyo pointi, masharti, arrays, vitu, 106 00:08:30,430 --> 00:08:38,370 na kisha rasilimali, ambayo ni aina ya hazieleweki. 107 00:08:38,370 --> 00:08:41,010 Nadhani kuna kweli mfano hapa. 108 00:08:41,010 --> 00:08:43,740 Kisha kuna null. Null ni aina maalum. 109 00:08:43,740 --> 00:08:47,140 Tofauti C ambapo null ni tu pointer na anwani 0, 110 00:08:47,140 --> 00:08:54,930 katika PHP, null ni aina yake ambapo halali tu kitu cha aina hiyo ni null. 111 00:08:57,560 --> 00:09:00,670 Hii ni muhimu zaidi kwa ajili ya kuangalia makosa. 112 00:09:00,670 --> 00:09:04,310 Katika C ambapo tulikuwa na suala hili ambapo kama wewe kurudi null, 113 00:09:04,310 --> 00:09:08,660 haina maana kwamba wewe ni kurudi pointer null au kutumia null kwa ishara ya makosa 114 00:09:08,660 --> 00:09:12,380 au yote ya kuchanganyikiwa kwamba tulikuwa katika hatua moja. 115 00:09:12,380 --> 00:09:18,440 Hapa, kurudi null ujumla maana yake ni kosa. 116 00:09:20,860 --> 00:09:27,300 mambo mengi pia kurejea uongo kwa makosa. 117 00:09:27,300 --> 00:09:33,140 Lakini uhakika ni aina null, kitu pekee ya aina null ni null. 118 00:09:33,140 --> 00:09:40,090 Kisha callback ni kama unaweza kufafanua baadhi ya majukumu bila majina. 119 00:09:40,090 --> 00:09:46,420 Huna kutoa kazi jina, lakini huwezi kuwa ili kukabiliana na kwamba hapa. 120 00:09:46,420 --> 00:09:53,940 Kuangalia aina kwamba hawana wanatarajia sisi kujua, 121 00:09:53,940 --> 00:09:59,000 unafikiri nini aina ya 3.50 ni? >> [Mwanafunzi] Kuelea. 122 00:09:59,000 --> 00:10:00,370 Yeah. 123 00:10:00,370 --> 00:10:06,290 Hivyo basi hapa, unafikiri nini aina ya hii ni? >> [Mwanafunzi] Array. 124 00:10:06,290 --> 00:10:09,890 Yeah. Wa kwanza alikuwa kuelea, moja ya pili ni safu. 125 00:10:09,890 --> 00:10:14,500 Ona kwamba safu hii si kama safu C 126 00:10:14,500 --> 00:10:19,610 ambapo una index 0 ina baadhi ya thamani, index 1 ina baadhi ya thamani. 127 00:10:19,610 --> 00:10:26,320 Hapa ni fahirisi, b, na c na maadili ni 1, 2, na 3. 128 00:10:26,320 --> 00:10:33,980 Katika PHP hakuna tofauti kati ya safu associative na tu safu ya mara kwa mara 129 00:10:33,980 --> 00:10:36,740 kama ungependa kufikiria hivyo katika C. 130 00:10:36,740 --> 00:10:43,040 Kuna tu hii, na chini ya Hood safu ya mara kwa mara ni safu associative 131 00:10:43,040 --> 00:10:50,000 ambapo 0 ramani kwa thamani baadhi njia hiyo ramani kwa thamani fulani. 132 00:10:50,000 --> 00:11:00,410 Kwa sababu hii, PHP inaweza pretty mbaya kwa kweli mambo haraka code / vigezo 133 00:11:00,410 --> 00:11:07,930 tangu wakati katika C unatumia safu unajua kwamba kupata mwanachama ni mara kwa mara wakati. 134 00:11:07,930 --> 00:11:11,860 Katika PHP kupata mwanachama ambaye anajua ni muda gani? 135 00:11:11,860 --> 00:11:18,970 Ni pengine mara kwa mara ikiwa ni hashes usahihi. 136 00:11:18,970 --> 00:11:21,620 Nani anajua nini ni kweli kufanya chini ya Hood? 137 00:11:21,620 --> 00:11:25,600 Wewe kweli haja ya kuangalia utekelezaji wa kuona jinsi itakavyo kukabiliana na kwamba. 138 00:11:25,600 --> 00:11:28,550 Hivyo basi fopen. 139 00:11:28,550 --> 00:11:36,420 Nadhani hapa hebu PHP mwongozo fopen kuangalia aina ya kurudi. 140 00:11:36,420 --> 00:11:41,260 Tunaona hapa unaweza kuangalia juu kiasi pretty kazi yoyote katika mwongozo PHP 141 00:11:41,260 --> 00:11:47,540 na hii ni aina ya ukurasa mtu wa PHP. 142 00:11:47,540 --> 00:11:51,060 aina kurudi ni kwenda kuwa rasilimali. 143 00:11:51,060 --> 00:11:56,050 Hiyo ndiyo sababu nikaona it up, kwa sababu sisi si kweli define rasilimali. 144 00:11:56,050 --> 00:12:04,110 wazo ya rasilimali, katika C wewe aina ya got * JALADA au chochote; 145 00:12:04,110 --> 00:12:07,200 katika PHP rasilimali ni JALADA yako *. 146 00:12:07,200 --> 00:12:10,360 Ni nini wewe kwenda kuwa kusoma kutoka, ni nini wewe kwenda kuwa kuandika. 147 00:12:10,360 --> 00:12:20,710 Ni kawaida ya nje, hivyo ni rasilimali unaweza kuvuta mambo kutoka na kutupa mambo. 148 00:12:20,710 --> 00:12:26,520 Na hatimaye, ni nini aina ya null? >> [Mwanafunzi] null. 149 00:12:26,520 --> 00:12:30,650 Yeah. Hivyo kitu tu kwamba ni null ni null. 150 00:12:30,650 --> 00:12:33,480 Null ni null. 151 00:12:35,490 --> 00:12:41,170 >> Moja hulka ya mfumo wa aina PHP (kwa bora au mbaya) ni uwezo wake wa juggle aina. 152 00:12:41,170 --> 00:12:44,390 Wakati kuandika mstari wa PHP kificho kwamba unachanganya maadili ya aina mbalimbali, 153 00:12:44,390 --> 00:12:46,670 PHP kujaribu kufanya kitu busara. 154 00:12:46,670 --> 00:12:48,920 Jaribu nje ya kila ya mistari ifuatayo ya PHP code. Nini kuchapishwa? 155 00:12:48,920 --> 00:12:51,000 Je, ni nini inatarajiwa? Kwa nini? 156 00:12:51,000 --> 00:12:58,600 Ukweli huu kuhusu PHP ni nini inafanya nini sisi kuwaita weakly typed. 157 00:12:58,600 --> 00:13:04,610 Weakly typed na nguvu typed, 158 00:13:04,610 --> 00:13:06,840 kuna matumizi tofauti kwa sheria hizo, 159 00:13:06,840 --> 00:13:12,020 lakini watu wengi kutumia weakly typed na nguvu typed kwa maana ya aina hii ya jambo 160 00:13:12,020 --> 00:13:15,920 ambapo ("1" + 2); kwamba kazi. 161 00:13:15,920 --> 00:13:18,290 Katika C ambayo si kazi. 162 00:13:18,290 --> 00:13:22,490 Unaweza kufikiria hili si kazi. 163 00:13:22,490 --> 00:13:29,200 mengi ya watu msichanganye kuandika nguvu na kuchapa dhaifu na kuchapa tuli na kuandika nguvu. 164 00:13:29,200 --> 00:13:34,050 Chatu ni mfano mwingine wa lugha hiyo dynamically typed. 165 00:13:34,050 --> 00:13:41,770 Unaweza kutupa karibu aina katika vigezo na ni kwenda kuamua wakati kukimbia 166 00:13:41,770 --> 00:13:44,680 checkings makosa yoyote. 167 00:13:44,680 --> 00:13:50,740 Katika Python itakavyo nitafanya hii na kuona ("1" + 2); 168 00:13:50,740 --> 00:13:55,920 na hii itakuwa kushindwa kwa sababu anasema huwezi kuongeza string na integer. 169 00:13:55,920 --> 00:14:00,860 Katika PHP, ambayo ni haki kama dynamically typed, hii si kushindwa. 170 00:14:00,860 --> 00:14:04,220 Kuandika dhaifu ina nini na ukweli kwamba anafanya mambo kwa aina 171 00:14:04,220 --> 00:14:07,800 kwamba si kweli kufanya maana lazima. 172 00:14:07,800 --> 00:14:17,420 Hivyo ("1" + 2); naweza kufikiria kwamba kuwa string 12, naweza kufikiria ni kuwa string 3, 173 00:14:17,420 --> 00:14:20,710 Naweza kufikiria ni kuwa 3 integer. 174 00:14:20,710 --> 00:14:24,530 Ni lazima si defined vizuri, na sisi ni pengine kwenda kuona hapa 175 00:14:24,530 --> 00:14:29,140 kwamba wakati sisi magazeti ("1" + 2); ni pengine ni kwenda kuishia kuwa tofauti 176 00:14:29,140 --> 00:14:32,320 kuliko uchapishaji (1 + "2"). 177 00:14:32,320 --> 00:14:39,700 Na hii huelekea kuwa, kwa maoni yangu, kwa kuwa mbaya. 178 00:14:39,700 --> 00:14:44,240 Hapa tunaweza kujaribu haya. 179 00:14:44,240 --> 00:14:48,740 Mwingine hila kidogo kuhusu PHP ni huna haja ya kweli kuandika kwenye faili. 180 00:14:48,740 --> 00:14:52,790 Ni haina kukimbia mode amri. 181 00:14:52,790 --> 00:14:57,710 Hivyo php-r, basi tunaweza kutupa katika amri hapa: 182 00:14:57,710 --> 00:15:06,610 "Magazeti ('1 '+ 2);" na mimi itabidi kutupa mstari mpya. 183 00:15:19,550 --> 00:15:23,970 Hii printed 3. 184 00:15:31,100 --> 00:15:35,330 Inaonekana kama Prints 3 na ni 3 integer. 185 00:15:35,330 --> 00:15:38,420 Hivyo sasa hebu jaribu njia nyingine kote: 186 00:15:38,420 --> 00:15:42,970 "Magazeti (1 + '2 '); 187 00:15:45,560 --> 00:15:50,490 Sisi kupata 3, na ni pia kwenda kuwa integer 3? Mimi uaminifu hawana wazo. 188 00:15:50,490 --> 00:15:54,030 Inaonekana kama kwamba ni thabiti. 189 00:15:54,030 --> 00:15:59,550 Kuna kamwe nafasi yoyote ya kuwa ni 12 string au kitu kama hicho 190 00:15:59,550 --> 00:16:08,080 kwa sababu PHP, tofauti na JavaScript Java pia, 191 00:16:08,080 --> 00:16:11,670 ina operator tofauti kwa ajili ya concatenation. 192 00:16:11,670 --> 00:16:14,930 Concatenation katika PHP ni dot. 193 00:16:14,930 --> 00:16:22,950 Hivyo uchapishaji (1 '2 '.); Ni kwenda kutupa 12. 194 00:16:25,790 --> 00:16:32,420 Hii inaelekeza kusababisha machafuko ambapo watu kujaribu kufanya kitu kama str + = 195 00:16:32,420 --> 00:16:37,840 baadhi kitu kingine kwamba wanataka kuongeza juu ya mwisho wa kamba zao, na kwamba itakuja kushindwa. 196 00:16:37,840 --> 00:16:40,770 Unahitaji kufanya str =. 197 00:16:42,000 --> 00:16:46,240 Hivyo usisahau concatenation katika PHP ni dot. 198 00:16:46,240 --> 00:16:52,100 Mambo mengine ya kujaribu: magazeti ("CS" + 50); 199 00:16:55,750 --> 00:17:03,610 Nimekuwa niliwaambieni kwamba hakuna matumaini ya hii kusababisha CS50 200 00:17:03,610 --> 00:17:06,119 tangu concatenation si +. 201 00:17:06,119 --> 00:17:08,440 Unafikiri hii ni kwenda kuishia kuwa? 202 00:17:10,359 --> 00:17:13,460 Mimi uaminifu na kabisa hakuna wazo. 203 00:17:14,250 --> 00:17:16,460 Inaonekana kama ni 50 tu. 204 00:17:16,460 --> 00:17:21,490 Ni anaona kamba, na I bet kama sisi kuweka 123CS - 205 00:17:21,490 --> 00:17:29,640 Ni anaona kamba ya kwanza, inajaribu kusoma integer kutoka humo au idadi kutoka humo. 206 00:17:29,640 --> 00:17:31,710 Katika kesi hiyo ni anaona 123CS. 207 00:17:31,710 --> 00:17:35,190 "Hiyo haina maana kama integer, hivyo mimi nina kwenda tu kufikiri ya 123." 208 00:17:35,190 --> 00:17:38,580 Hivyo 123 + 50 ni kwenda kuwa 173. 209 00:17:38,580 --> 00:17:40,740 Na hapa ni kuanza kusoma hii kama integer. 210 00:17:40,740 --> 00:17:45,690 Haina kuona kitu, hivyo tu chipsi kama 0. Hivyo 0 + 50 ni kwenda kuwa 50. 211 00:17:45,690 --> 00:17:51,600 Hii mimi nina kuchukua anaenda kufanya kitu sawa. 212 00:17:51,600 --> 00:17:54,310 Mimi nina mawazo 99. 213 00:17:54,310 --> 00:17:57,580 Yeah, kwa sababu ni kwenda kuchukua kwanza - 214 00:18:12,880 --> 00:18:15,730 Hivyo 99. 215 00:18:15,730 --> 00:18:21,970 Hapa (10/7), kama hii walikuwa C, gani kwamba kurudi? 216 00:18:23,700 --> 00:18:29,630 [Mwanafunzi] 1. >> Yeah, itakuwa 1 kwa sababu 10/7 ni kugawa integers 2. 217 00:18:29,630 --> 00:18:32,910 integer kugawanywa na integer ni kwenda na kurudi integer. 218 00:18:32,910 --> 00:18:37,750 Ni hawezi kurudi 1 uhakika chochote kwamba itakuwa, hivyo tu kwenda na kurudi 1. 219 00:18:37,750 --> 00:18:46,120 Hapa uchapishaji (10/7); itakavyo kweli kutafsiri kwamba. 220 00:18:46,120 --> 00:18:53,760 Na hii ina maana kwamba kama kweli wanataka kufanya rounding integer na mambo kama hayo, 221 00:18:53,760 --> 00:18:59,950 unahitaji kufanya magazeti (sakafu (10/7)); 222 00:18:59,950 --> 00:19:08,460 Katika C ni pengine weird kwamba unaweza kuwategemea truncation integer mara kwa mara, 223 00:19:08,460 --> 00:19:12,260 lakini katika PHP huwezi kwa sababu itakuwa moja kwa moja kugeuka ndani kuelea. 224 00:19:13,430 --> 00:19:17,610 Na kisha (7 + kweli); unafikiri kwamba kwenda kuwa? 225 00:19:18,550 --> 00:19:23,640 Mimi guessing 8 ikiwa ni kwenda kutafsiri kweli kama 1. 226 00:19:23,640 --> 00:19:25,740 Inaonekana kama ni 8. 227 00:19:25,740 --> 00:19:31,710 >> Hivyo chochote tumefanya katika dakika 10 iliyopita unapaswa kabisa kamwe kufanya. 228 00:19:31,710 --> 00:19:39,870 Utaona kificho kwamba hana huu. 229 00:19:39,870 --> 00:19:42,700 Haina kuwa kama moja kwa moja kama hii. 230 00:19:42,700 --> 00:19:47,240 Unaweza kuwa na vigezo 2, na 1 variable hutokea kwa kuwa string 231 00:19:47,240 --> 00:19:51,310 na kutofautiana nyingine hutokea kwa kuwa int, na kisha kuongeza vigezo haya pamoja. 232 00:19:51,310 --> 00:20:00,120 Tangu PHP ni dynamically typed na itakuwa si kufanya lolote kuangalia aina kwa wewe 233 00:20:00,120 --> 00:20:03,640 na tangu ni weakly typed na tangu itakuwa tu moja kwa moja kutupa mambo haya pamoja 234 00:20:03,640 --> 00:20:11,490 na kila kitu tu kazi, ni vigumu hata kujua kuwa kutofautiana hii ni lazima string sasa, 235 00:20:11,490 --> 00:20:14,930 hivyo mimi si lazima kuongeza kwa variable huu, ambayo ni integer. 236 00:20:18,780 --> 00:20:24,560 Njia bora ni kama variable ni kamba, kuitunza kama string milele. 237 00:20:24,560 --> 00:20:26,980 Kama kutofautiana ni int, kuitunza kama int milele. 238 00:20:26,980 --> 00:20:30,770 Kama unataka kukabiliana na integers na masharti, 239 00:20:30,770 --> 00:20:36,970 unaweza kutumia varsint - kwamba ni JavaScript. 240 00:20:36,970 --> 00:20:42,520 Intval. Mimi kufanya hili wakati wote. PHP na JavaScript mimi kuchanganya kila kitu. 241 00:20:42,520 --> 00:20:47,600 Hivyo intval ni kwenda na kurudi thamani integer ya kutofautiana. 242 00:20:47,600 --> 00:20:56,550 Kama sisi kupita katika "magazeti (intval ('123 ')); kupata 123. 243 00:21:06,820 --> 00:21:15,850 Intval yenyewe si kwenda kufanya kuangalia kwa sisi kuwa ni peke integer. 244 00:21:15,850 --> 00:21:20,460 Mwongozo PHP, kuna tu wengi kazi zilizopo, 245 00:21:20,460 --> 00:21:26,560 hivyo hapa nadhani nini napenda kutumia ni is_numeric kwanza. 246 00:21:26,560 --> 00:21:32,590 Mimi guessing kwamba alirudi uongo. 247 00:21:32,590 --> 00:21:35,780 Hiyo ni jambo lingine tuna kwenda juu ni ===. 248 00:21:37,850 --> 00:21:44,020 Hivyo is_numeric ('123df '), wewe bila kufikiri ya kwamba kama is_numeric. 249 00:21:44,020 --> 00:21:46,720 Katika C ingekuwa iterate juu ya wahusika wote 250 00:21:46,720 --> 00:21:50,410 na kuangalia kuona kama tabia ya kila ni tarakimu au chochote. 251 00:21:50,410 --> 00:21:53,850 Hapa is_numeric ni kwenda kufanya hivyo kwa ajili yetu, 252 00:21:53,850 --> 00:21:56,520 na ni kurudi uongo. 253 00:21:56,520 --> 00:22:02,120 Hivyo wakati mimi kuchapishwa kwamba, kuchapishwa kitu, hivyo hapa mimi kulinganisha kuona, 254 00:22:02,120 --> 00:22:05,490 gani kutokea kwa kuwa uongo? Na hivyo sasa ni kuchapa 1. 255 00:22:05,490 --> 00:22:10,060 Inavyoonekana ni Prints 1 kama kweli badala ya uchapishaji wa kweli kama kweli. 256 00:22:10,060 --> 00:22:15,790 Nashangaa kama mimi kufanya print_r. Hapana, bado anafanya 1. 257 00:22:15,790 --> 00:22:26,760 >> Tukirudi kwenye ===, == bado lipo, 258 00:22:26,760 --> 00:22:32,260 na kama wewe kuzungumza na Tommy yeye itabidi kusema == ni kikamilifu faini. 259 00:22:32,260 --> 00:22:37,700 Mimi nina kwenda kusema kwamba == ni ya kutisha na kamwe kutumia ==. 260 00:22:37,700 --> 00:22:44,870 Tofauti ni kwamba == inalinganishwa mambo 261 00:22:44,870 --> 00:22:48,450 ambapo inaweza kuwa kweli hata kama wao siyo aina moja, 262 00:22:48,450 --> 00:22:53,810 ambapo === inalinganishwa na mambo ya kwanza ni hundi ni wao aina moja? 263 00:22:53,810 --> 00:22:58,010 Ndiyo. Sawa, sasa mimi naenda kuona kama kweli kulinganisha na kuwa sawa. 264 00:22:58,010 --> 00:23:08,890 Unaweza kupata weird mambo kama 10 sawa - basi s kuona nini kwamba anasema. 265 00:23:08,890 --> 00:23:15,570 Hivyo ('10 '== '1 E1'); 266 00:23:15,570 --> 00:23:17,980 Hii anarudi kweli. 267 00:23:17,980 --> 00:23:21,420 Je, mtu yeyote kuwa guesses yoyote kwa nini hii anarudi kweli? 268 00:23:25,180 --> 00:23:27,120 Ni si tu kuhusu hiyo. Labda hii ni hint. 269 00:23:27,120 --> 00:23:33,170 Lakini kama mimi kubadili kwamba kwa f - darn hivyo! Naendelea kutumia quotes mbili. 270 00:23:33,170 --> 00:23:38,780 sababu quotes mbili ni yelling saa yangu ni kwa sababu nimekuwa kuweka hii katika quotes mbili. 271 00:23:38,780 --> 00:23:43,850 Hivyo mimi anaweza kutoroka quotes mbili katika hapa, lakini enda quotes iwe rahisi. 272 00:23:43,850 --> 00:23:49,120 Hivyo ('10 '== '1 F1'); haina magazeti ya kweli. ('10 '== '1 E1'); Prints kweli. 273 00:23:49,120 --> 00:23:56,330 [Mwanafunzi] Je, ni hex? >> Ni si hex, lakini ni karibu kwamba ni kama - 274 00:23:56,330 --> 00:24:01,060 1e1, kisayansi nukuu. 275 00:24:01,060 --> 00:24:07,950 Ni inatambua 1e1 kama 1 * 10 ^ 1 au chochote. 276 00:24:07,950 --> 00:24:11,510 Wale ni sawa integers. 277 00:24:11,510 --> 00:24:15,930 Kama sisi kufanya === kisha itakuja kuwa uongo. 278 00:24:15,930 --> 00:24:28,490 Mimi kwa kweli sielewi kama sisi kufanya == nini kuhusu (10 na '10abc ');? Wote haki. Basi hiyo ni kweli. 279 00:24:28,490 --> 00:24:35,940 Hivyo tu kama wakati wewe gani (10 + '10abc '); na itakuwa 20, 280 00:24:35,940 --> 00:24:38,800 hapa (10 == '10abc '); ni kweli. 281 00:24:38,800 --> 00:24:45,350 Hata mbaya ni mambo kama (uongo == null); ni kweli 282 00:24:45,350 --> 00:24:52,210 au (uongo == 0); ni kweli, (uongo == []); 283 00:24:52,210 --> 00:25:00,970 Kuna weird kesi ya - Hiyo ni moja ya kesi hizo weird. 284 00:25:00,970 --> 00:25:08,110 Ona kwamba (uongo == []); ni kweli. 285 00:25:08,110 --> 00:25:11,950 ('0 '== Uongo); ni kweli. 286 00:25:11,950 --> 00:25:16,090 ('0 '== []); Ni uongo. 287 00:25:16,090 --> 00:25:19,090 Hivyo == ni kwa njia yoyote elekezi. 288 00:25:19,090 --> 00:25:26,830 inaweza kuwa sawa na b na inaweza kuwa sawa na c, 289 00:25:26,830 --> 00:25:29,340 lakini b wanaweza kuwa sawa na c. 290 00:25:29,340 --> 00:25:35,580 Hiyo ni chukizo kwangu, na unapaswa daima kutumia ===. 291 00:25:35,580 --> 00:25:38,590 [Mwanafunzi] Je, tunaweza kufanya ==! Kama vile? >> [Bowden] Ndiyo. 292 00:25:38,590 --> 00:25:44,600 sawa itakuwa! = na ==!. 293 00:25:44,600 --> 00:25:48,230 Hii ni kweli kuletwa juu katika spec pset 294 00:25:48,230 --> 00:25:52,000 ambapo mengi ya kurudi utendaji - 295 00:25:52,000 --> 00:25:53,890 Mwongozo PHP ni nzuri kuhusu hili. 296 00:25:53,890 --> 00:25:59,140 Ni unaweka katika sanduku kubwa nyekundu, "Hii atarudi uongo kama kuna kosa." 297 00:25:59,140 --> 00:26:03,940 Lakini wanaorejea 0 ni kitu kikamilifu busara kurudi. 298 00:26:03,940 --> 00:26:08,250 Fikiria juu ya kazi yoyote ambayo inatarajiwa kurudi integer. 299 00:26:11,250 --> 00:26:17,880 Hebu sema kazi hii ni walidhani kuhesabu idadi ya mistari katika faili au kitu. 300 00:26:17,880 --> 00:26:23,490 Katika hali ya kawaida, unaweza kupita kazi hii faili 301 00:26:23,490 --> 00:26:27,120 na ni kwenda na kurudi integer ambayo inawakilisha idadi ya mistari. 302 00:26:27,120 --> 00:26:30,820 Hivyo 0 ni namba kikamilifu busara kama faili ni tupu. 303 00:26:30,820 --> 00:26:36,810 Lakini nini kama wewe kupita faili batili na kazi hufanyika kurudi uongo 304 00:26:36,810 --> 00:26:38,860 kama wewe kupita faili batili? 305 00:26:38,860 --> 00:26:46,500 Kama wewe tu kufanya == wewe si kutofautisha kati ya kesi faili batili na faili tupu. 306 00:26:48,870 --> 00:26:51,350 Daima kutumia ===. 307 00:26:55,690 --> 00:26:58,000 Hiyo yote ya wale. 308 00:26:58,000 --> 00:27:01,660 >> Katika PHP, aina safu ni tofauti na kile wewe kutumika katika C. 309 00:27:01,660 --> 00:27:06,650 Hakika, unaweza kuwa tayari niliona hii hapo juu wakati tuliona kwamba huu ni wa safu aina. 310 00:27:06,650 --> 00:27:15,640 syntax bracket ni mpya kama ya PHP 5.4, ambayo ni toleo newest wa PHP. 311 00:27:15,640 --> 00:27:36,960 Kabla ya hii wewe daima alikuwa kuandika array ('' -> 1, 'b' -> 2. 312 00:27:36,960 --> 00:27:41,160 Hiyo ilikuwa kuujenga kwa safu. 313 00:27:41,160 --> 00:27:45,950 Sasa PHP ina hatimaye kuja karibu na syntax nice ya mabano tu za mraba, 314 00:27:45,950 --> 00:27:50,900 ambayo ni kiasi tu bora kuliko safu. 315 00:27:50,900 --> 00:27:54,480 Lakini kwa kuzingatia PHP 5.4 ni toleo jipya, 316 00:27:54,480 --> 00:27:59,090 unaweza kukutana na maeneo ambayo hawana hata PHP 5.3. 317 00:27:59,090 --> 00:28:08,220 Zaidi ya majira ya sisi mbio katika suala hili ambapo PHP 5.3 ilikuwa nini tulikuwa juu ya appliance, 318 00:28:08,220 --> 00:28:14,480 lakini server kwamba sisi uliotumika daraja wetu wote kitabu na kuwasilisha na mambo ambayo yote kwa 319 00:28:14,480 --> 00:28:16,750 ilikuwa PHP 5.4. 320 00:28:16,750 --> 00:28:23,060 Bila kujua hii, sisi maendeleo katika 5.3, alisukuma kwa 5.4, 321 00:28:23,060 --> 00:28:25,660 na sasa wote wa hakuna ghafla ya maadili ya kazi zetu 322 00:28:25,660 --> 00:28:28,680 sababu kuna kilichotokea kuwa mabadiliko kati ya 5.3 na 5.4 323 00:28:28,680 --> 00:28:31,030 ambayo si nyuma sambamba, 324 00:28:31,030 --> 00:28:35,770 na sisi kwenda na kurekebisha mambo yote yetu kwamba si kazi kwa PHP 5.4. 325 00:28:39,210 --> 00:28:42,320 Kwa darasa hili, tangu appliance gani kuwa PHP 5.4, 326 00:28:42,320 --> 00:28:45,490 ni kikamilifu faini ya kutumia mabano mraba. 327 00:28:47,240 --> 00:28:50,440 Lakini kama wewe ni kuangalia juu ya mambo karibu mtandao, 328 00:28:50,440 --> 00:28:54,880 kama wewe ni kuangalia juu ya baadhi ya aina ya mambo ya safu, uwezekano mkubwa wewe utaenda kuona 329 00:28:54,880 --> 00:29:02,020 Spell nje safu syntax kuujenga tangu kwamba imekuwa karibu tangu PHP alizaliwa 330 00:29:02,020 --> 00:29:07,340 na mraba bracket syntax imekuwa karibu kwa kipindi cha miezi michache 331 00:29:07,340 --> 00:29:10,020 au wakati wowote 5.4 alikuja karibu. 332 00:29:10,020 --> 00:29:12,710 Hii ni jinsi gani ya index. 333 00:29:12,710 --> 00:29:30,610 Tu kama katika C jinsi wewe ungekuwa index kwa mabano mraba kama $ safu [0], $ safu [1], $ safu [2], 334 00:29:30,610 --> 00:29:36,320 wewe index njia sawa kama wewe kutokea kwa kuwa fahirisi yako kuwa masharti. 335 00:29:36,320 --> 00:29:40,440 Hivyo $ safu [''] na $ safu ['b']. 336 00:29:40,440 --> 00:29:47,410 $ Safu [b]. Kwa nini hii ni makosa? 337 00:29:52,490 --> 00:29:59,870 Ni pengine kuzalisha onyo lakini bado kazi. PHP huelekea kufanya hivyo. 338 00:29:59,870 --> 00:30:04,890 Ni huelekea tu, "Mimi naenda kuwaonyeni kuhusu hili, lakini nina kwenda tu na kuendelea 339 00:30:04,890 --> 00:30:07,550 "Na kufanya chochote naweza." 340 00:30:07,550 --> 00:30:11,500 Ni pengine kutafsiri hii kwa kamba, 341 00:30:11,500 --> 00:30:15,000 lakini inawezekana kwamba wakati fulani katika kipindi cha mtu alisema 342 00:30:15,000 --> 00:30:20,180 define b kuwa 'HELLO DUNIANI'. 343 00:30:20,180 --> 00:30:28,740 Hivyo sasa b inaweza kuwa safu ya mara kwa mara na $ [b] mapenzi kweli kuwa kufanya 'HELLO DUNIANI'. 344 00:30:28,740 --> 00:30:32,380 Nadhani katika hatua hii, au angalau wetu mazingira ya PHP, 345 00:30:32,380 --> 00:30:37,870 kama wewe kujaribu index katika safu na muhimu kwamba haipo, itatoweka. 346 00:30:37,870 --> 00:30:40,150 Sidhani itakuwa tu kuwaonya. 347 00:30:40,150 --> 00:30:44,560 Au angalau unaweza kuweka hivyo kwamba si tu kuwaonya ninyi, ni tu sawa sawa juu inashindwa. 348 00:30:44,560 --> 00:30:49,290 >> njia kuangalia kuona kama kuna kweli ni index vile ni isset. 349 00:30:49,290 --> 00:30:54,690 Hivyo isset ($ safu ['HELLO DUNIANI']) atarudi uongo. 350 00:30:54,690 --> 00:30:59,160 isset ($ safu ['b']) atarudi kweli. 351 00:31:06,830 --> 00:31:09,880 Unaweza kuchanganya syntaxes haya. 352 00:31:15,060 --> 00:31:22,440 Nina uhakika pretty nini safu hii ingekuwa kuishia kuwa ni - Tunaweza mtihani ni nje. 353 00:31:43,290 --> 00:31:45,700 Oh, mimi haja PHPWord. 354 00:31:53,960 --> 00:32:00,260 Hii ni kuchanganya syntax ambapo wewe bayana nini ni muhimu 355 00:32:00,260 --> 00:32:03,330 na huna bayana nini ni muhimu. 356 00:32:03,330 --> 00:32:05,520 Hivyo 3 haki hapa ni thamani. 357 00:32:05,520 --> 00:32:08,080 Wewe si wazi alisema nini ufunguo wake ni kwenda kuwa. 358 00:32:08,080 --> 00:32:11,670 Unafikiri ufunguo wake ni kwenda kuwa? 359 00:32:11,670 --> 00:32:21,410 [Mwanafunzi] 0. >> Mimi guessing 0 tu kwa sababu ni moja ya kwanza sisi si maalum. 360 00:32:21,410 --> 00:32:23,500 Tunaweza kweli kufanya michache ya kesi hizi. 361 00:32:23,500 --> 00:32:28,030 Hivyo print_r ni magazeti ya kujirudia. Itakuwa magazeti safu nzima. 362 00:32:28,030 --> 00:32:32,700 Ingekuwa magazeti subarrays wa safu kama kulikuwa na yeyote. 363 00:32:32,700 --> 00:32:36,630 Hivyo print_r ($ safu); php.test.php. 364 00:32:36,630 --> 00:32:38,810 Ni haina kuangalia kama ni akampa 0. 365 00:32:38,810 --> 00:32:43,530 Kuna kweli kitu cha kukumbuka hapa, lakini tutaweza kupata nyuma yake katika pili. 366 00:32:43,530 --> 00:32:45,850 Lakini nini kama mimi kutokea kwa kufanya hii index 1? 367 00:32:45,850 --> 00:32:51,170 PHP haina kutofautisha kati ya fahirisi kamba na fahirisi integer, 368 00:32:51,170 --> 00:33:00,280 hivyo katika hatua hii nimekuwa tu defined index 1 na mimi wanaweza kufanya wawili safu $ [1] na $ safu ['1 '] 369 00:33:00,280 --> 00:33:06,250 na itakuwa sawa na index ufunguo huo. 370 00:33:06,250 --> 00:33:13,000 Hivyo sasa unafikiri 3 ni kwenda kuwa? >> [Mwanafunzi] 2. >> [Bowden] Mimi guessing 2. 371 00:33:16,000 --> 00:33:18,690 Yeah. Ni 2. 372 00:33:18,690 --> 00:33:24,790 Nini kama sisi alifanya hivyo ni 10, hii ni 4? Unafikiri index ya 3 ni kwenda kuwa? 373 00:33:27,360 --> 00:33:29,110 Mimi nina mawazo 11. 374 00:33:29,110 --> 00:33:33,060 Dhana yangu kama yale PHP gani - na nadhani nimepata kuona hii kabla - 375 00:33:33,060 --> 00:33:39,760 je, ni kuvaa tu wimbo wa nini juu numeric index ni kutumika hadi sasa ni. 376 00:33:39,760 --> 00:33:44,230 Ni kamwe kwenda hawawajui index kamba 3. Ni daima kuwa index numeric. 377 00:33:44,230 --> 00:33:47,690 Hivyo anaendelea kufuatilia kwa moja juu ni kupewa hivyo mbali, ambayo hufanyika kuwa 10, 378 00:33:47,690 --> 00:33:52,540 na ni kwenda kutoa 11-3. 379 00:33:52,540 --> 00:34:02,110 Kile alisema kabla, taarifa ya njia ni uchapishaji hii safu. 380 00:34:02,110 --> 00:34:06,850 Ni Prints 10 muhimu, muhimu 4, muhimu 11, muhimu d. 381 00:34:06,850 --> 00:34:09,790 Au hata hebu kufanya - 382 00:34:15,760 --> 00:34:22,489 Mimi nadhani hawakutia 0, lakini ni uchapishaji 1, 2, 3, 4. 383 00:34:22,489 --> 00:34:29,330 Nini kama mimi kubadili hapa? Au hebu kweli kubadili hizi 2. 384 00:34:29,330 --> 00:34:31,940 Sasa Prints 2, 1, 3, 4. 385 00:34:31,940 --> 00:34:41,270 PHP ya arrays si tu kama meza yako mara kwa mara hash. 386 00:34:41,270 --> 00:34:45,570 Ni kikamilifu busara kufikiri wao kama meza hash 99% ya muda. 387 00:34:45,570 --> 00:34:53,790 Lakini katika meza yako hash hakuna maana ya utaratibu ambao walikuwa mambo kuingizwa. 388 00:34:53,790 --> 00:34:56,639 Hivyo kwa haraka kama wewe kuingiza katika meza yako hash, 389 00:34:56,639 --> 00:35:00,590 kudhani hakuna orodha wanaohusishwa na unaweza kuhukumu ndani ya orodha wanaohusishwa 390 00:35:00,590 --> 00:35:03,980 ambayo ilikuwa kuingizwa kwanza. 391 00:35:03,980 --> 00:35:10,060 Lakini hapa sisi kuingizwa 2 ya kwanza na anajua wakati ni uchapishaji nje hii safu kwamba 2 anakuja kwanza. 392 00:35:10,060 --> 00:35:13,090 Haina magazeti ni nje katika tu ili yeyote. 393 00:35:13,090 --> 00:35:17,550 kiufundi data muundo kwamba ni kwa kutumia ramani ni amri, 394 00:35:17,550 --> 00:35:24,690 hivyo ni ramani funguo kwa maadili na anakumbuka utaratibu ambao funguo hizo kuingizwa. 395 00:35:24,690 --> 00:35:31,600 Kimsingi ni kwa baadhi ya matatizo ambapo ni annoying kweli - 396 00:35:31,600 --> 00:35:34,510 Hebu sema una safu 0, 1, 2, 3, 4, 5 397 00:35:34,510 --> 00:35:37,700 na unataka kuchukua nje index 2. 398 00:35:37,700 --> 00:35:47,750 Njia moja ya kufanya hivyo, hebu angalia nini kwamba inaonekana kama. 399 00:35:47,750 --> 00:35:50,410 0, 2, 1, 3, 4. 400 00:35:50,410 --> 00:35:54,880 Unset kinachotokea kwa unset vigezo wote na fahirisi safu. 401 00:35:54,880 --> 00:35:58,630 Hivyo unset ($ safu [2]); 402 00:35:58,630 --> 00:36:03,430 Sasa nini hii kwenda kuangalia kama? 2 ni tu gone, ili kikamilifu faini. 403 00:36:03,430 --> 00:36:11,670 Zaidi annoying ni kama unataka mambo ya kweli kuwa kama safu. 404 00:36:11,670 --> 00:36:14,910 Mimi itabidi kuweka namba random. 405 00:36:14,910 --> 00:36:20,400 Sasa taarifa fahirisi yangu. 406 00:36:20,400 --> 00:36:26,860 Mimi nataka tu kuwa kama safu C ambapo unaendelea kutoka 0 kwa urefu - 1 407 00:36:26,860 --> 00:36:30,810 na siwezi iterate juu yake kama vile. 408 00:36:30,810 --> 00:36:38,520 Lakini kwa haraka kama mimi unset index pili, nini ilikuwa katika index 3 haina sasa kuwa index 2. 409 00:36:38,520 --> 00:36:44,790 Badala yake tu kuondosha kwamba index na sasa wewe kwenda 0, 1, 3, 4. 410 00:36:44,790 --> 00:36:48,740 Hii ni kikamilifu kuridhisha. 411 00:36:48,740 --> 00:36:53,950 Ni tu annoying na kufanya mambo kama ganga safu. Yeah. 412 00:36:53,950 --> 00:36:57,200 >> [Mwanafunzi] Nini kingetokea kama alikuwa kwa kitanzi 413 00:36:57,200 --> 00:36:59,630 na wewe alitaka kwenda juu ya mambo yote? 414 00:36:59,630 --> 00:37:02,290 Wakati hit 2, ingekuwa yatoa milele? 415 00:37:02,290 --> 00:37:10,150 Iterating juu ya safu. Kuna njia 2 unaweza kufanya hivyo. 416 00:37:10,150 --> 00:37:12,770 Unaweza kutumia mara kwa mara kwa kitanzi. 417 00:37:12,770 --> 00:37:22,000 Hii ni nyingine intricacy ya PHP. 418 00:37:22,000 --> 00:37:27,420 Lugha nyingi, napenda kusema, na aina fulani ya urefu au len au kitu 419 00:37:27,420 --> 00:37:30,470 ikionyesha urefu wa safu. 420 00:37:30,470 --> 00:37:32,820 Katika PHP ni kuhesabu. 421 00:37:32,820 --> 00:37:36,160 Hivyo kuhesabu ($ safu); $ i + +) 422 00:37:36,160 --> 00:37:42,950 Hebu tu magazeti ($ safu [$ i]); 423 00:37:45,920 --> 00:37:48,820 Tangazo: Undefined kukabiliana: 2. 424 00:37:48,820 --> 00:37:51,610 Ni tu kwenda kushindwa. 425 00:37:51,610 --> 00:38:03,020 Hii ni sababu ya kwamba, kwa sehemu kubwa, kamwe haja iterate juu ya safu kama hii. 426 00:38:03,020 --> 00:38:07,110 Inaweza kuwa ni exaggeration, lakini kamwe haja iterate juu ya safu kama hii 427 00:38:07,110 --> 00:38:19,410 kwa sababu PHP hutoa syntax yake foreach ambapo foreach ($ safu kama $ bidhaa). 428 00:38:19,410 --> 00:38:31,830 Sasa kama sisi magazeti ($ item); - we'll kujadili katika pili - kwamba kazi kikamilifu faini. 429 00:38:31,830 --> 00:38:38,960 njia ambayo foreach ni kazi ni hoja ya kwanza ni safu ya kwamba wewe ni iterating juu. 430 00:38:38,960 --> 00:38:44,060 Na hoja ya pili, item, njia ya kila mwanya wa kwa kitanzi 431 00:38:44,060 --> 00:38:52,690 ni kwenda kuchukua juu ya jambo la pili katika safu. Hivyo kumbuka safu ina utaratibu. 432 00:38:52,690 --> 00:38:55,690 mara ya kwanza kupitia kwa kitanzi, item ni kwenda kuwa 123 433 00:38:55,690 --> 00:38:59,540 basi itakuwa 12 basi itakuwa 13 basi itakuwa 23 basi itakuwa 213. 434 00:38:59,540 --> 00:39:04,670 Mambo kupata kweli weird wakati wa kufanya kitu kama foreach. 435 00:39:04,670 --> 00:39:07,480 Hebu kuona nini kinatokea kwa sababu wewe kamwe kufanya hivyo. 436 00:39:07,480 --> 00:39:13,320 Nini kama sisi unset ($ safu [1]); 437 00:39:20,410 --> 00:39:26,030 Hiyo ilikuwa pengine ilivyotarajiwa. 438 00:39:26,030 --> 00:39:30,950 Wewe ni juu ya safu hii iterating, na kila wakati wewe ni unsetting index kwanza. 439 00:39:30,950 --> 00:39:39,720 Hivyo kwa index 0, jambo la kwanza, item inachukua thamani 0, hivyo ni kwenda kuwa 123. 440 00:39:39,720 --> 00:39:44,630 Lakini ndani ya kitanzi kwa sisi unset index 1, hivyo kwamba maana ya 12 ni gone. 441 00:39:44,630 --> 00:39:57,480 Hivyo magazeti. PHP_EOL. 442 00:39:57,480 --> 00:40:03,580 PHP_EOL ni tu newline, lakini ni ya kitaalam zaidi portable 443 00:40:03,580 --> 00:40:08,890 tangu newlines katika Windows ni tofauti na newlines juu ya Mac na UNIX. 444 00:40:08,890 --> 00:40:18,040 On Windows newline ni \ r \ n, ambapo kila mahali pengine huelekea tu kuwa \ n. 445 00:40:18,040 --> 00:40:25,150 PHP_EOL kimeundwa ili anatumia chochote newline ya mfumo wako ni. 446 00:40:25,150 --> 00:40:29,310 Hivyo magazeti kwamba. Hebu si print_r ($ safu) mwishoni. 447 00:40:32,830 --> 00:40:37,390 Mimi nilikuwa na wazo kwamba itakuwa tabia. 448 00:40:41,740 --> 00:40:48,960 Item bado inachukua thamani 12 ingawa sisi unset 12 kabla ya sisi milele got ni kutoka safu. 449 00:40:52,770 --> 00:40:58,840 Msiwafanye neno langu juu ya hili, lakini inaonekana kama foreach inajenga nakala ya safu 450 00:40:58,840 --> 00:41:02,160 na kisha item inachukua maadili yote ya nakala ya kwamba. 451 00:41:02,160 --> 00:41:07,760 Hivyo hata kama wewe kurekebisha safu ndani kwa kitanzi, 452 00:41:07,760 --> 00:41:17,240 itakuwa si huduma. Item itachukua juu ya maadili ya awali. 453 00:41:17,240 --> 00:41:19,240 Hebu jaribu unsetting yake. 454 00:41:19,240 --> 00:41:24,460 Nini kama hii ni $ safu [1] = "hello"; 455 00:41:24,460 --> 00:41:31,770 Hata ingawa sisi kuweka "hello" katika safu, item kamwe inachukua thamani hiyo. 456 00:41:31,770 --> 00:41:37,430 Kuna mwingine syntax kwa foreach matanzi 457 00:41:37,430 --> 00:41:45,900 ambapo wewe kuweka vigezo 2 waliojitenga na mshale. 458 00:41:45,900 --> 00:41:49,680 Hii variable kwanza ni kwenda kuwa ufunguo wa thamani kwamba, 459 00:41:49,680 --> 00:41:53,050 na hii variable pili ni kwenda kuwa sawa exact bidhaa. 460 00:41:53,050 --> 00:42:01,610 Hii ni uninteresting hapa, lakini kama sisi kwenda nyuma ya kesi yetu ya awali ya '-> 1, 461 00:42:01,610 --> 00:42:06,090 'B' -> 1, 462 00:42:06,090 --> 00:42:14,470 hapa kama sisi tu iterate kwa kila safu kama bidhaa, bidhaa ni kwenda kuwa 1 kila wakati. 463 00:42:14,470 --> 00:42:18,170 Lakini kama sisi pia wanataka kujua muhimu zinazohusiana na bidhaa kwamba 464 00:42:18,170 --> 00:42:25,230 kisha sisi kufanya kama $ muhimu -> $ item. 465 00:42:25,230 --> 00:42:31,980 Hivyo sasa tunaweza kufanya magazeti ($ muhimu. ':'. 466 00:42:31,980 --> 00:42:39,380 Sasa ni juu ya iterating na uchapishaji kila ufunguo na thamani yake kuhusishwa. 467 00:42:39,380 --> 00:42:47,030 >> Jambo ziada tunaweza kufanya katika foreach matanzi ni unaweza kuona hii syntax. 468 00:42:47,030 --> 00:42:54,770 Ampersands kabla majina variable huwa na kuwa jinsi gani PHP rejea. 469 00:42:54,770 --> 00:43:00,460 Ambapo marejeo ni sawa na kuyatumia, 470 00:43:00,460 --> 00:43:04,820 huna kuyatumia, hivyo kamwe kukabiliana na kumbukumbu moja kwa moja. 471 00:43:04,820 --> 00:43:12,620 Lakini una kumbukumbu ambapo 1 variable inahusu kitu sawa kama variable mwingine. 472 00:43:12,620 --> 00:43:21,450 Ndani ya hapa hebu kufanya $ item. Turudi kwa 1, 10. 473 00:43:21,450 --> 00:43:28,800 Hebu kufanya $ item + +; Kwamba bado lipo katika PHP. Unaweza bado kufanya + +. 474 00:43:28,800 --> 00:43:38,260 php.test.php. Nina magazeti hayo. print_r ($ safu); 475 00:43:38,260 --> 00:43:42,730 Sisi magazeti 2, 11. 476 00:43:42,730 --> 00:43:49,560 Kama nilikuwa tu kufanyika foreach ($ safu kama $ bidhaa) kisha item itakuwa thamani 1 477 00:43:49,560 --> 00:43:54,190 mara ya kwanza kwa njia ya kitanzi. Itakuwa increment 1-2 na kisha sisi ni kosa. 478 00:43:54,190 --> 00:43:57,260 Hivyo basi itakuwa kupitia kupita ya pili ya kitanzi na bidhaa kwamba ni 10. 479 00:43:57,260 --> 00:44:01,570 Ni nyongeza item 11, na kisha hiyo tu kutupwa mbali. 480 00:44:01,570 --> 00:44:06,670 Kisha sisi print_r ($ safu); na hebu angalia kwamba hii ni 1 tu, 10. 481 00:44:06,670 --> 00:44:09,070 Hivyo increment tulifanya waliopotea. 482 00:44:09,070 --> 00:44:13,410 Lakini foreach ($ safu kama & $ bidhaa) 483 00:44:13,410 --> 00:44:21,910 sasa bidhaa hii ni bidhaa hiyo kama haki hii hapa. Ni kitu kimoja. 484 00:44:21,910 --> 00:44:26,820 Hivyo $ item + + ni kubadilisha safu 0. 485 00:44:29,330 --> 00:44:41,850 Kimsingi, unaweza pia kufanya $ k -> $ bidhaa na unaweza kufanya $ safu [$ k] + +; 486 00:44:41,850 --> 00:44:48,650 >> Hivyo njia nyingine ya kufanya hivyo, sisi ni huru ya kurekebisha kipengele, 487 00:44:48,650 --> 00:44:54,070 lakini si kurekebisha safu yetu ya awali. 488 00:44:54,070 --> 00:44:59,720 Lakini kama sisi kutumia k, ambayo ni muhimu yetu, basi tunaweza tu index katika safu yetu ya kutumia ufunguo 489 00:44:59,720 --> 00:45:01,530 na increment kwamba. 490 00:45:01,530 --> 00:45:05,410 Hii zaidi moja kwa moja hugeuza safu yetu ya awali. 491 00:45:05,410 --> 00:45:10,690 Unaweza hata kufanya hivyo kama kwa sababu baadhi ya alitaka uwezo wa kurekebisha - 492 00:45:10,690 --> 00:45:13,510 Kweli, huu ni kikamilifu kuridhisha. 493 00:45:13,510 --> 00:45:16,020 Wewe hakutaka kuwa na kuandika $ safu [$ k] + +, 494 00:45:16,020 --> 00:45:27,890 wewe tu alitaka kuandika $ item + + lakini bado alitaka kusema kama ($ k === 'a') 495 00:45:27,890 --> 00:45:30,620 kisha increment bidhaa na kisha magazeti safu yetu. 496 00:45:30,620 --> 00:45:36,290 Hivyo sasa nini tunatarajia print_r kufanya? Nini maadili lazima kuchapishwa? 497 00:45:36,290 --> 00:45:43,770 [Mwanafunzi] 2 na 10. >> [Bowden] tu ikiwa muhimu ilikuwa 'je sisi kweli kwamba magazeti. 498 00:45:51,940 --> 00:45:55,670 >> Pengine ni kwa nadra sana, kama milele, itakuwa haja ya kufafanua kazi katika PHP, 499 00:45:55,670 --> 00:46:03,370 lakini unaweza kuona kitu sawa ambapo unaweza kufafanua kazi kama chochote kazi. 500 00:46:03,370 --> 00:46:09,900 Kawaida ungependa kusema ($ foo, $ bar) na kisha kufafanua kuwa chochote. 501 00:46:09,900 --> 00:46:17,580 Lakini kama mimi kufanya hivi, basi hiyo ina maana kwamba kila wito chochote, 502 00:46:17,580 --> 00:46:25,110 chochote wito bazi, hivyo hoja ya kwanza kupita kwa bazi inaweza kubadilishwa. 503 00:46:25,110 --> 00:46:38,100 Hebu kufanya $ foo + +; 504 00:46:38,100 --> 00:46:48,020 na ndani ya hapa hebu kufanya bazi ($ item); 505 00:46:48,020 --> 00:46:52,250 Sasa sisi ni wito kazi. 506 00:46:52,250 --> 00:46:56,780 Hoja ni kuchukuliwa kwa kumbukumbu, ambayo ina maana kwamba kama sisi kurekebisha 507 00:46:56,780 --> 00:47:00,390 sisi ni kubadilisha kitu kwamba ilipitishwa in 508 00:47:00,390 --> 00:47:04,420 Na uchapishaji huu tunatarajia - isipokuwa mimi messed up syntax - tulipata 2, 11, 509 00:47:04,420 --> 00:47:06,300 hivyo ilikuwa kweli incremented. 510 00:47:06,300 --> 00:47:08,790 ILANI tunahitaji marejeo katika maeneo 2. 511 00:47:08,790 --> 00:47:13,050 Nini kama alifanya hivyo? Hii ina maana gani? 512 00:47:13,050 --> 00:47:15,810 [Mwanafunzi] Ni yatabadilika. >> Yeah. 513 00:47:15,810 --> 00:47:18,290 Dondoo ni nakala ya thamani katika safu. 514 00:47:18,290 --> 00:47:26,670 Hivyo bidhaa kubadilika na 2, lakini safu ['a'] bado kuwa 1. 515 00:47:26,670 --> 00:47:32,560 Au nini kama mimi kufanya hili? 516 00:47:32,560 --> 00:47:39,260 Sasa bidhaa ni alimtuma kama nakala bazi. 517 00:47:39,260 --> 00:47:46,330 Hivyo nakala ya hoja itakuwa incremented kwa 2, 518 00:47:46,330 --> 00:47:49,240 lakini bidhaa yenyewe ilikuwa kamwe incremented kwa 2. 519 00:47:49,240 --> 00:47:52,880 Na bidhaa ni kitu kimoja kama safu bracket chochote, 520 00:47:52,880 --> 00:47:55,380 hivyo safu kwamba alikuwa kamwe incremented. 521 00:47:55,380 --> 00:47:57,960 Hivyo wote wale maeneo haja yake. 522 00:47:57,960 --> 00:48:03,830 >> PHP ni kawaida pretty smart kuhusu hili. 523 00:48:03,830 --> 00:48:06,570 Unaweza kufikiri nataka kupita kwa kumbukumbu - 524 00:48:06,570 --> 00:48:09,560 Hii ilikuwa kwa kweli ni swali juu ya mmoja wa psets. 525 00:48:09,560 --> 00:48:14,480 Ilikuwa ni jambo questions.txt ambapo alisema, 526 00:48:14,480 --> 00:48:19,280 Kwa nini wapate unataka kupita hii struct kwa kumbukumbu? 527 00:48:19,280 --> 00:48:21,250 Jibu lilikuwa nini kwa hiyo? 528 00:48:21,250 --> 00:48:25,100 [Mwanafunzi] Basi huna nakala jambo kubwa. >> Yeah. 529 00:48:25,100 --> 00:48:32,920 struct inaweza kuwa kubwa kiholela, na wakati kupita katika struct kama hoja 530 00:48:32,920 --> 00:48:36,800 inahitaji kwamba nakala struct nzima kupita kwa kazi, 531 00:48:36,800 --> 00:48:40,410 lakini kama wewe tu kupita kwa rejea struct 532 00:48:40,410 --> 00:48:46,530 basi unahitaji tu nakala anuani 4-Byte kama hoja kwa kazi. 533 00:48:48,520 --> 00:48:52,320 PHP ni kidogo nadhifu zaidi ya hiyo. 534 00:48:52,320 --> 00:49:00,650 Kama mimi na baadhi ya kazi na mimi kupita kwa hiyo safu ya mambo 1000, 535 00:49:00,650 --> 00:49:03,990 haina maana kwamba ni kwenda kuwa na nakala zote 1,000 wa mambo hayo 536 00:49:03,990 --> 00:49:10,450 kupita ndani ya kazi? Haina kufanya hivyo mara moja. 537 00:49:10,450 --> 00:49:15,940 Kama ndani ya kazi hii ni kweli kamwe hugeuza foo, 538 00:49:15,940 --> 00:49:22,660 hivyo kama ($ foo === 'hujambo') kurudi kweli.; 539 00:49:22,660 --> 00:49:26,460 Angalia sisi kamwe kweli iliyopita ndani ya hoja ya kazi hii, 540 00:49:26,460 --> 00:49:30,010 ambayo ina maana kwamba kila ilipitishwa katika kama foo kamwe mahitaji kunakiliwa 541 00:49:30,010 --> 00:49:32,100 sababu ni si kubadilisha hilo. 542 00:49:32,100 --> 00:49:39,240 Hivyo njia PHP matendo ni hoja ni daima kupita kwa kumbukumbu 543 00:49:39,240 --> 00:49:42,170 mpaka kweli kujaribu kurekebisha. 544 00:49:42,170 --> 00:49:51,160 Sasa kama mimi kusema $ foo + +, ni sasa kufanya nakala ya awali ya foo na kurekebisha nakala. 545 00:49:51,160 --> 00:49:53,090 Hii anaokoa muda. 546 00:49:53,090 --> 00:49:58,210 Kama wewe ni kamwe kugusa hii safu mkubwa, wewe kamwe kweli kurekebisha, 547 00:49:58,210 --> 00:50:02,360 haina haja ya kufanya nakala, 548 00:50:02,360 --> 00:50:06,640 lakini kama sisi tu ya kuweka hii ampersand kwamba maana haina hata nakala yake 549 00:50:06,640 --> 00:50:08,640 hata kama huna kurekebisha. 550 00:50:08,640 --> 00:50:10,680 Tabia hii inaitwa nakala-on-andika. 551 00:50:10,680 --> 00:50:17,380 Utaona katika maeneo mengine, hasa kama wewe kuchukua mfumo wa uendeshaji shaka. 552 00:50:17,380 --> 00:50:23,880 Copy-on-kuandika ni mfano pretty kawaida ambapo huna haja ya kufanya nakala ya kitu 553 00:50:23,880 --> 00:50:26,650 isipokuwa ni hasa kubadilisha. Yeah. 554 00:50:26,650 --> 00:50:29,520 [Mwanafunzi] Nini kama alikuwa na increment ndani ya mtihani, 555 00:50:29,520 --> 00:50:33,700 hivyo tu 1 kipengele nje ya 1000 bila haja ya kuwa iliyopita? 556 00:50:33,700 --> 00:50:38,770 Mimi nina uhakika. 557 00:50:38,770 --> 00:50:51,250 Nadhani ingekuwa nakala jambo nzima, lakini inawezekana ni smart kutosha kwamba - 558 00:50:51,250 --> 00:51:00,020 Kweli, kile Mimi nina mawazo ni kufikiria tulikuwa safu kwamba inaonekana kama hii: $ array2 = [ 559 00:51:00,020 --> 00:51:11,000 Kisha index '' ni safu ya [1 2 3 4], na index 'b' ni safu ya chochote. 560 00:51:11,000 --> 00:51:15,380 Nahitaji koma kati ya wale wote. Fikiria kuna koma. 561 00:51:15,380 --> 00:51:21,210 Kisha 'c' ni 3 thamani. 562 00:51:24,210 --> 00:51:26,290 Sawa. 563 00:51:26,290 --> 00:51:33,440 Sasa hebu sema sisi kufanya $ bazi ($ array2); 564 00:51:33,440 --> 00:51:36,540 ambapo bazi haina kuchukua hii kwa kumbukumbu. 565 00:51:43,510 --> 00:51:47,370 Hivyo $ foo ['c'] + +; 566 00:51:47,370 --> 00:51:52,340 Huu ni mfano vile ambapo sisi ni kupita array2 kama hoja 567 00:51:52,340 --> 00:51:57,010 na kisha ni kubadilisha index maalum ya safu na incrementing yake. 568 00:51:57,010 --> 00:52:01,090 Mimi uaminifu hawana wazo nini PHP ni kwenda kufanya. 569 00:52:01,090 --> 00:52:07,200 Ni urahisi kutengeneza nakala ya jambo nzima, lakini kama ni smart, 570 00:52:07,200 --> 00:52:15,030 itafanya nakala ya funguo hizi ambapo hii itakuwa na thamani yake tofauti 571 00:52:15,030 --> 00:52:20,620 lakini hii bado anaweza kumweka kwa safu moja 1,2,3,4 572 00:52:20,620 --> 00:52:22,320 na hii bado anaweza kumweka kwa safu moja. 573 00:52:22,320 --> 00:52:24,170 Mimi itabidi iPad yake. 574 00:52:28,900 --> 00:52:45,950 Sisi kupita katika safu hii ambapo guy hii pointi 3, pointi hii guy [1,2,3,4], 575 00:52:45,950 --> 00:52:51,350 guy hii pointi [34, ...] 576 00:52:51,350 --> 00:52:58,590 Sasa kwa kuwa tuko kupita kuifanya katika bazi, sisi ni kubadilisha huu. 577 00:52:58,590 --> 00:53:03,550 Kama PHP ni smart, inaweza tu kufanya - 578 00:53:11,850 --> 00:53:18,230 Sisi bado alikuwa na nakala baadhi ya kumbukumbu, lakini kama kulikuwa na hizi kubwa subarrays nested 579 00:53:18,230 --> 00:53:21,560 sisi hakuwa na haja ya nakala hizo. 580 00:53:21,560 --> 00:53:27,530 Sijui kama kwamba ni nini hivyo, lakini siwezi kufikiria kufanya hivyo. 581 00:53:29,050 --> 00:53:36,690 Hii pia ni faida kubwa ya pretty C zaidi PHP. 582 00:53:36,690 --> 00:53:40,320 >> PHP hufanya maisha rahisi sana kwa mambo mengi, 583 00:53:40,320 --> 00:53:45,060 lakini wewe aina ya kuwa na kabisa hakuna wazo jinsi vizuri kufanya mapenzi 584 00:53:45,060 --> 00:53:52,530 kwa sababu mimi sielewi chini ya Hood wakati ni kutengeneza nakala hii ya mambo, 585 00:53:52,530 --> 00:53:55,170 oh, ni kwamba anaenda kuwa mara kwa mara wakati nakala, 586 00:53:55,170 --> 00:54:01,140 ni tu kwenda na mabadiliko 1 pointer, ni kwenda kuwa ridiculously vigumu linear nakala? 587 00:54:01,140 --> 00:54:03,000 Nini kama hawezi kupata nafasi? 588 00:54:03,000 --> 00:54:06,760 Je, ni basi haja ya kuendesha ukusanyaji takataka ili kupata baadhi ya nafasi zaidi? 589 00:54:06,760 --> 00:54:11,210 Na ukusanyaji takataka inaweza kuchukua muda mrefu kiholela. 590 00:54:11,210 --> 00:54:13,600 Katika C huna na wasiwasi juu ya mambo haya. 591 00:54:13,600 --> 00:54:19,780 Kila line moja ya kuandika unaweza pretty much sababu kuhusu jinsi itakavyo kufanya. 592 00:54:26,800 --> 00:54:29,150 >> Hebu kuangalia nyuma katika haya. 593 00:54:35,400 --> 00:54:37,520 Jinsi nice ni kwamba huna kukabiliana na majukumu hash, 594 00:54:37,520 --> 00:54:39,010 wanaohusishwa orodha, au jambo kama hilo? 595 00:54:39,010 --> 00:54:41,980 Tangu kufanya kazi kwa meza hash ni rahisi sasa, hapa puzzle fun kufanya kazi. 596 00:54:41,980 --> 00:54:45,920 Kufungua faili inayoitwa unique.php na ndani yake kuandika mpango PHP 597 00:54:45,920 --> 00:54:48,330 (Pia inajulikana kama "script"). 598 00:54:48,330 --> 00:54:55,700 Sisi huwa na kuwaita scripts kama uko mfupi mambo ambayo wewe kukimbia katika mstari amri. 599 00:54:55,700 --> 00:55:02,950 Kimsingi, lugha yoyote kwamba huwezi kukusanya lakini wewe ni kwenda kukimbia executable 600 00:55:02,950 --> 00:55:05,920 katika mstari amri, unaweza wito kwamba script kutekelezwa. 601 00:55:05,920 --> 00:55:08,510 Mimi nilikuwa tu kama vile kuandika mpango C kwamba gani hii, 602 00:55:08,510 --> 00:55:12,300 lakini mimi si kuiita script tangu mimi kwanza kukusanya yake na kisha kukimbia binary. 603 00:55:12,300 --> 00:55:15,480 Lakini mpango huu PHP tunakwenda kuwaita script. 604 00:55:15,480 --> 00:55:23,830 Au kama sisi aliandika katika Python au Perl au Node.js au yeyote mambo hayo, 605 00:55:23,830 --> 00:55:26,500 tunatarajia kuwaita wote scripts kwa sababu wewe kukimbia nao katika mstari amri 606 00:55:26,500 --> 00:55:30,040 lakini hatuwezi kukusanya yao. 607 00:55:30,860 --> 00:55:33,400 Tunaweza kufanya hili pretty haraka. 608 00:55:36,960 --> 00:55:41,480 Sisi si kwenda kutumia argv. Hebu tu pigo kwa njia hii. 609 00:55:41,480 --> 00:55:45,730 Simu yake ya kipekee, kuandika mpango. 610 00:55:45,730 --> 00:55:49,400 Unaweza kudhani kwamba pembejeo yana neno moja kwa kila mstari. 611 00:55:49,400 --> 00:55:52,020 Kweli, argv itakuwa pretty yasiyo na maana na matumizi. 612 00:56:03,730 --> 00:56:06,720 unique.php. 613 00:56:08,550 --> 00:56:13,750 Jambo la kwanza kwanza, tunataka kuangalia kama sisi wamekuwa kupita 1 amri-line hoja. 614 00:56:13,750 --> 00:56:20,900 Just kama ungependa kutarajia argc na argv katika C, bado tuna wale katika PHP. 615 00:56:20,900 --> 00:56:33,900 Hivyo kama ($ 2 argc ==!) Basi mimi si kukabiliana na uchapishaji ujumbe au kitu chochote. 616 00:56:33,900 --> 00:56:37,340 Mimi itabidi exit, kosa code ya 1. 617 00:56:37,340 --> 00:56:41,340 Mimi naweza pia kurejea 1. 618 00:56:41,340 --> 00:56:53,180 Mara chache katika PHP ni wewe katika hali hii ambapo sisi ni saa - 619 00:56:53,180 --> 00:56:57,820 Kawaida uko katika kazi kuitwa na kazi kuitwa na kazi kuitwa na kazi. 620 00:56:57,820 --> 00:57:02,070 Na kama kitu fulani kitaenda vibaya na wewe tu unataka kutoka kila kitu kabisa, 621 00:57:02,070 --> 00:57:05,680 exit tu mwisho wa mpango. 622 00:57:05,680 --> 00:57:08,160 Hii pia lipo katika C. 623 00:57:08,160 --> 00:57:10,700 Kama uko katika kazi katika kazi katika kazi katika kazi 624 00:57:10,700 --> 00:57:17,540 na unataka kuua tu mpango, unaweza kupiga exit na itakuwa tu exit. 625 00:57:17,540 --> 00:57:23,120 Lakini katika PHP ni zaidi nadra kuwa sisi ni katika ngazi hii ya juu. 626 00:57:23,120 --> 00:57:26,090 Kawaida tuko ndani ya baadhi ya aina ya kazi, hivyo sisi kuwaita exit 627 00:57:26,090 --> 00:57:29,650 hivyo kwamba hatuna kurudi up 1 jambo basi anatambua kuna kosa 628 00:57:29,650 --> 00:57:32,270 hivyo kwamba anarudi juu kama kwamba inatambua kulikuwa na hitilafu. 629 00:57:32,270 --> 00:57:35,270 Hatutaki kukabiliana na kwamba, hivyo exit (1); 630 00:57:35,270 --> 00:57:38,240 kurudi (1), katika kesi hii itakuwa sawa. 631 00:57:38,240 --> 00:57:44,000 >> Kisha ni nini tunataka kufungua tunataka fopen. 632 00:57:44,000 --> 00:57:46,760 hoja ni kwenda kuangalia pretty sawa. 633 00:57:46,760 --> 00:57:51,600 Tunataka fopen ($ argv [1], na tunataka kufungua kwa kusoma. 634 00:57:51,600 --> 00:57:55,720 Hiyo anarudi rasilimali ambayo sisi ni kwenda kuwaita f. 635 00:57:55,720 --> 00:58:02,180 Hii inaonekana pretty sawa na jinsi C gani ila hatuna kusema JALADA *. 636 00:58:02,180 --> 00:58:06,170 Badala yake sisi tu kusema $ f. Sawa. 637 00:58:06,170 --> 00:58:17,190 Kweli, nadhani hata hii inatupa ladha kama kwa PHP kazi kuitwa faili. PHP File. 638 00:58:17,190 --> 00:58:23,990 Nini hii ni kwenda kufanya ni kusoma faili nzima katika safu. 639 00:58:23,990 --> 00:58:29,770 Huna hata haja ya fopen yake. Ni kwenda kufanya hivyo kwa ajili yenu. 640 00:58:37,450 --> 00:58:43,700 Hivyo $ mistari = faili ($ argv [1]); 641 00:58:43,700 --> 00:58:49,680 Sasa yote ya mistari ya faili ni katika mistari. Sasa tunataka kutatua mistari. 642 00:58:49,680 --> 00:58:52,180 Tunawezaje kutatua mistari? 643 00:58:52,180 --> 00:58:54,920 Sisi aina mistari. 644 00:58:54,920 --> 00:58:58,080 Na sasa tunaweza magazeti yao au chochote. 645 00:58:58,080 --> 00:59:05,580 Pengine njia rahisi ni foreach ($ mistari kama $ line) echo $ kamba; 646 00:59:05,580 --> 00:59:10,960 [Mwanafunzi] Je, si sisi hata kuvuka mistari na referencing kitu katika aina? 647 00:59:10,960 --> 00:59:28,850 Hii ni pale ambapo aina itakuwa hufafanuliwa kama kazi ya aina (& $ safu). 648 00:59:28,850 --> 00:59:32,650 Wakati wewe piga kazi huna kupita kwa kumbukumbu. 649 00:59:32,650 --> 00:59:36,900 Ni kazi ambayo amefafanua ni kama kuchukua ni kama kumbukumbu. 650 00:59:36,900 --> 00:59:40,900 Hii ni kweli hasa ni nini potoka 651 00:59:40,900 --> 00:59:46,220 wakati sisi kuweka kila kitu kwa server yetu wakati sisi akaenda 5.3-5.4. 652 00:59:46,220 --> 00:59:53,800 Hadi 5.4, hii ilikuwa kikamilifu kuridhisha. 653 00:59:53,800 --> 00:59:58,740 kazi hatarajii kuchukua kama rejea, lakini unaweza kupita kama rejea 654 00:59:58,740 --> 01:00:02,860 hivyo kama kazi haina kutokea kwa kurekebisha, ni bado iliyopita. 655 01:00:02,860 --> 01:00:05,850 Kama ya 5.4, wewe si zinatakiwa kufanya hii. 656 01:00:05,850 --> 01:00:11,740 Hivyo sasa njia pekee ya kupita kwa kumbukumbu ni kama kazi waziwazi hufanya. 657 01:00:11,740 --> 01:00:19,840 Kama hutaki ni kurekebisha, basi unahitaji kufanya $ nakala = $ mistari na nakala kupita. 658 01:00:19,840 --> 01:00:24,820 Hivyo sasa mistari itahifadhiwa na nakala tutageuzwa. 659 01:00:27,670 --> 01:00:31,460 php.unique.php. Nipate messed up kitu. 660 01:00:31,460 --> 01:00:33,190 Zisizotarajiwa 'aina'. 661 01:00:38,320 --> 01:00:43,850 Itakuja kuwa kitu ambacho gani hii kwa ajili yetu. 662 01:00:43,850 --> 01:00:45,820 Si hata huko. 663 01:00:45,820 --> 01:00:52,140 Angalia wakati wewe kusoma mwongozo kwamba hoja ya kwanza inatarajiwa kuwa safu 664 01:00:52,140 --> 01:00:56,490 na ni kuchukuliwa kwa kumbukumbu. 665 01:00:58,160 --> 01:01:03,540 Kwa nini hii kulalamika kwangu? Kwa sababu mimi na aina hii ya kazi bado katika hapa kwamba sitaki. 666 01:01:03,540 --> 01:01:09,210 Okay, php.unique.php. Sikuweza kupita hoja kwa sababu sina faili. 667 01:01:09,210 --> 01:01:13,560 Ni juu ya php.unique.php test.php. 668 01:01:13,560 --> 01:01:19,080 Hapa ni test.php wote kuchapishwa ili nzuri Iliyopangwa. 669 01:01:19,080 --> 01:01:24,600 Ona kwamba sorted ili ni aina ya weird kwa faili code 670 01:01:24,600 --> 01:01:27,460 kwa sababu wote wa mistari yetu tupu yatakuja kwanza 671 01:01:27,460 --> 01:01:30,190 basi yatakuja yote ya 1 indentations ngazi wetu 672 01:01:30,190 --> 01:01:33,360 kisha kuja wote wa indentations yetu hakuna. 673 01:01:33,360 --> 01:01:38,620 Yeah. >> [Mwanafunzi] Basi kwa chanzo code haikuwa kupita kwa kumbukumbu? 674 01:01:38,620 --> 01:01:42,240 Ni kwamba kwa ujumla wanapita thamani? 675 01:01:42,240 --> 01:01:50,240 [Bowden] Wakati wewe piga kazi, kamwe huamua kama ni ilipitishwa na kumbukumbu. 676 01:01:50,240 --> 01:01:53,960 Ni ufafanuzi kazi ambayo huamua kama ni ilipitishwa na kumbukumbu. 677 01:01:53,960 --> 01:01:59,450 Na kuangalia ufafanuzi kazi ya aina au kuangalia tu hii, 678 01:01:59,450 --> 01:02:02,820 inachukua hoja kwa kumbukumbu. 679 01:02:02,820 --> 01:02:07,160 Hivyo bila kujali kama wewe unataka kuchukua ni kwa kumbukumbu, ni gani kuchukua kwa kumbukumbu. 680 01:02:07,160 --> 01:02:10,200 Ni hugeuza safu katika mahali. 681 01:02:10,200 --> 01:02:17,400 Hii si tu kuruhusiwa. Huna ruhusa ya kufanya hivyo. >> [Mwanafunzi] Oh, okay. 682 01:02:17,400 --> 01:02:22,410 [Bowden] Hii, aina ni kwenda kuchukua mistari ukihusishwa na kurekebisha. 683 01:02:22,410 --> 01:02:26,850 Na tena, kama hakutaka kufanya hivyo, unaweza kufanya nakala ya aina. 684 01:02:26,850 --> 01:02:35,850 Hata katika kesi hii, nakala ni kweli si nakala ya mistari. 685 01:02:35,850 --> 01:02:40,620 Ni tu anazungumzia kitu hivyo mpaka kwanza anapata iliyopita, 686 01:02:40,620 --> 01:02:44,430 ambapo ni kwanza kwenda kupata iliyopita katika kazi ya aina, 687 01:02:44,430 --> 01:02:50,940 ambapo, kwa sababu ni nakala-on-kuandika, sasa nakala ya nakala inaenda kufanywa. 688 01:02:57,500 --> 01:03:04,250 Unaweza pia kufanya hili. Hiyo ni sehemu nyingine unaweza kuona ampersand. 689 01:03:04,250 --> 01:03:07,190 Unaweza kuona ni katika matanzi foreach, unaweza kuona ni katika maazimio ya kazi, 690 01:03:07,190 --> 01:03:10,040 na unaweza kuona ni wakati tu assigning vigezo. 691 01:03:10,040 --> 01:03:12,350 Sasa sisi kuwa yametimia chochote kwa kufanya hivi 692 01:03:12,350 --> 01:03:15,600 kwa sababu nakala na mistari ni literally kitu kimoja. 693 01:03:15,600 --> 01:03:19,940 Unaweza kutumia mistari na nakala ya kubadilishana. 694 01:03:19,940 --> 01:03:25,430 Unaweza kufanya unset ($ nakala), na kwamba haina mistari unset, 695 01:03:25,430 --> 01:03:29,120 wewe tu kupoteza kumbukumbu yako kwa kitu kimoja. 696 01:03:29,120 --> 01:03:33,440 Hivyo kama ya hatua hii, sasa mistari ni njia pekee unaweza kupata mistari. 697 01:03:36,450 --> 01:03:38,770 >> Maswali? 698 01:03:41,000 --> 01:03:42,460 Yeah. 699 01:03:42,460 --> 01:03:45,880 [Mwanafunzi] Kabisa off topic, lakini huna kuifunga PHP na - >> Wewe hawana. 700 01:03:45,880 --> 01:03:47,730 Sawa. 701 01:03:47,730 --> 01:03:53,790 [Bowden] napenda kwenda mbali kama kusema ni mbaya mazoezi kwa karibu yao. 702 01:03:53,790 --> 01:03:57,580 Kwamba pengine exaggeration, hasa katika script, 703 01:03:57,580 --> 01:04:03,740 lakini hebu angalia nini kinatokea kama mimi kufanya hili. 704 01:04:03,740 --> 01:04:08,890 Kwamba alifanya kitu. Nini kama alitaka - [sighs] 705 01:04:13,870 --> 01:04:16,960 Mimi haja ya kupita hoja. 706 01:04:19,000 --> 01:04:22,050 Risasi. Mimi kuitwa ni makosa. 707 01:04:24,340 --> 01:04:28,310 Hivyo php.unique.php na hoja. 708 01:04:28,310 --> 01:04:30,980 Sasa mimi si hata haja hii. 709 01:04:34,520 --> 01:04:37,740 Mimi itabidi kupita hoja halali. 710 01:04:37,740 --> 01:04:42,050 Hii printed chochote ni uchapishaji. 711 01:04:45,260 --> 01:04:50,080 Mimi nina kuchapa nakala na nakala haipo. Hivyo mistari. 712 01:04:53,650 --> 01:04:58,270 Ni kuchapishwa kila kitu, na kisha taarifa Junk hii yote chini hapa, 713 01:04:58,270 --> 01:05:06,690 kwa sababu katika kitu chochote PHP kwamba ni nje ya tags PHP 714 01:05:06,690 --> 01:05:09,520 ni kwenda tu kuchapishwa literally. 715 01:05:09,520 --> 01:05:18,050 Hiyo ndiyo sababu HTML, ni hivyo nice kwamba naweza kufanya div blah, blah, blah darasa au chochote, 716 01:05:18,050 --> 01:05:25,140 blah, blah, blah na kisha kufanya baadhi ya kanuni PHP na kisha kufanya mwisho div. 717 01:05:25,140 --> 01:05:36,460 Na sasa uchapishaji hii mimi kupata div yangu nzuri juu juu, kila kitu PHP kuchapishwa, div chini. 718 01:05:36,460 --> 01:05:43,510 Maafa wakati kitu kama hii kinatokea, ambayo ni pretty kawaida, 719 01:05:43,510 --> 01:05:47,930 tu newline kupotea chini ya faili. 720 01:05:47,930 --> 01:05:50,940 Wewe bila kufikiri itakuwa kuwa kubwa ya mpango huo 721 01:05:50,940 --> 01:05:58,660 mpaka kuzingatia ukweli kwamba pamoja na browsers - 722 01:05:58,660 --> 01:06:03,880 >> Jinsi redirects kazi au kimsingi kazi yoyote headers, 723 01:06:03,880 --> 01:06:07,980 wakati wa kufanya uhusiano wako na tovuti na inapeleka nyuma wote hawa headers na mambo 724 01:06:07,980 --> 01:06:12,020 kama majibu 200 au majibu redirect au chochote, 725 01:06:12,020 --> 01:06:18,230 headers ni halali tu mpaka Byte kwanza ya data ni alimtuma. 726 01:06:18,230 --> 01:06:23,140 Unaweza kuelekeza maelfu ya nyakati, lakini haraka kama Byte kwanza ya data ni alimtuma 727 01:06:23,140 --> 01:06:26,120 wewe si walidhani redirect tena. 728 01:06:26,120 --> 01:06:31,860 >> Kama una newline kupotea chini ya faili 729 01:06:31,860 --> 01:06:37,260 na hebu kusema kwamba matumizi ya kazi hii na kisha unataka - 730 01:06:41,580 --> 01:06:52,870 Hebu kusema ni faili nyingine kwamba index.php na wewe require_once kitu - 731 01:06:52,870 --> 01:06:56,920 Siwezi kufikiria mfano mzuri wa hayo. 732 01:06:56,920 --> 01:07:04,740 suala kinachotokea wakati mstari huu chini anapata aliunga. 733 01:07:04,740 --> 01:07:08,660 Hutaki chochote zimerejewa bado. 734 01:07:10,820 --> 01:07:15,700 Hata kama wewe hakuwa na nia ya juu ya kitu chochote kupata aliunga, kitu gani kupata aliunga 735 01:07:15,700 --> 01:07:17,990 na hivyo sasa wewe si walidhani kutuma headers yoyote zaidi 736 01:07:17,990 --> 01:07:20,030 na wewe ni kwenda kupata malalamiko. 737 01:07:22,170 --> 01:07:24,420 Wewe tu hawana haja tags wale kufunga. 738 01:07:24,420 --> 01:07:27,420 Kama mpango juu ya kufanya kitu kwa HTML - 739 01:07:27,420 --> 01:07:30,490 na ni kikamilifu busara kufanya chini hapa div chochote 740 01:07:30,490 --> 01:07:39,450 na kisha katika hatua hii unaweza au huwezi pamoja nao. 741 01:07:39,450 --> 01:07:41,590 Ni kweli haina jambo. 742 01:07:41,590 --> 01:07:45,450 Lakini katika maandiko ya PHP ni nadra kwa kulifunga. 743 01:07:45,450 --> 01:07:50,400 Wakati kila kitu ni PHP, kabisa kila kitu, 744 01:07:50,400 --> 01:07:55,460 wewe si kweli wanahitaji kuifunga / unapaswa kulifunga. 745 01:08:02,030 --> 01:08:05,720 >> Kushughulika na masharti ni nicer kuliko katika C. 746 01:08:05,720 --> 01:08:09,470 Katika PHP unaweza specify string kwa quotes moja au mbili. 747 01:08:09,470 --> 01:08:12,820 Pamoja na quotes moja huwezi kutumia "kutoroka" Mwandamano. 748 01:08:12,820 --> 01:08:17,640 Daima kutoroka, blah, blah, blah. 749 01:08:19,920 --> 01:08:24,010 Hivyo printf ni nadra sana katika PHP. 750 01:08:24,010 --> 01:08:32,290 Mimi nadhani ingekuwa kutumia printf ikiwa mimi alitaka kufanya aina ya kitu - katika pset 5 wewe kutumika sprintf au chochote. 751 01:08:32,290 --> 01:08:36,060 Lakini unataka kufanya 001.jpg na 002.jpg. 752 01:08:36,060 --> 01:08:40,300 Hivyo kwa kuwa aina ya kitu ambapo mimi kweli wanataka formatting Nakala napenda kutumia printf. 753 01:08:40,300 --> 01:08:44,689 Lakini vinginevyo mimi ingekuwa tu kutumia kamba concatenation. 754 01:08:44,689 --> 01:08:47,000 Mimi kamwe kweli kutumia printf. 755 01:08:49,229 --> 01:09:00,170 Sisi ni tu kutofautisha kati ya maelezo quotes moja na quotes mbili. 756 01:09:00,170 --> 01:09:07,490 tofauti kubwa ni kwamba enda quotes, itakuwa kuchapishwa literally. 757 01:09:07,490 --> 01:09:15,390 Hakuna data Char aina katika PHP, tofauti na C, hivyo hii ni sawa na hii. 758 01:09:15,390 --> 01:09:17,970 Wao ni wote masharti. 759 01:09:17,970 --> 01:09:29,180 Na kitu kizuri kuhusu masharti moja quote ni mimi naweza kusema 'hujambo dunia!' blah, blah, blah, 760 01:09:29,180 --> 01:09:33,340 $ $ Wooo. 761 01:09:33,340 --> 01:09:38,260 Nini kinatokea wakati mimi magazeti hii itakuwa ni magazeti yake halisi. 762 01:09:38,260 --> 01:09:40,680 Hebu kujikwamua yote ya mambo yetu. 763 01:09:40,680 --> 01:09:44,700 Hivyo echo $ str1; 764 01:09:48,569 --> 01:09:56,570 Ni literally printed wote wa mambo hayo: dola ishara, 765 01:09:56,570 --> 01:09:58,770 backslash n, ambayo unaweza kudhani itakuwa newlines - 766 01:09:58,770 --> 01:10:01,500 wote wa mambo hayo ni Prints literally. 767 01:10:01,500 --> 01:10:05,650 Kitu tu unahitaji kutoroka ni moja quotes 768 01:10:05,650 --> 01:10:09,470 kwa sababu vinginevyo kudhani ni kufunga quotes moja. 769 01:10:09,470 --> 01:10:15,050 Double quotes, tofauti kabisa. 770 01:10:20,300 --> 01:10:25,870 Sisi tayari kuona syntax mwangaza ni cluing sisi juu ya nini kuhusu kwenda vibaya sana. 771 01:10:25,870 --> 01:10:36,190 php.unique. Undefined variable: wooo kwa sababu hii ni kufasiriwa kama variable kuitwa wooo. 772 01:10:36,190 --> 01:10:42,400 Quotes Double basi wewe Insert vigezo katika - 773 01:10:42,400 --> 01:10:52,730 Hebu sema $ jina = "Rob"; 774 01:10:52,730 --> 01:10:58,020 Hivyo echo "Hi, jina langu ni $ jina!"; 775 01:10:58,020 --> 01:11:09,260 Ni inatambua hii kama variable. 776 01:11:09,260 --> 01:11:21,210 Wakati mimi kukimbia kwamba - Nami Insert newline - Hi, jina langu ni Rob! na hujambo ulimwengu! 777 01:11:21,210 --> 01:11:24,910 Hii ni kwa sababu mimi kamwe kuondolewa uchapishaji wa wooo hapo juu. 778 01:11:24,910 --> 01:11:30,020 Kuna 1 zaidi hatua unaweza kufanya. 779 01:11:30,020 --> 01:11:39,250 $ Safu = [1, 2, 3]; 780 01:11:39,250 --> 01:11:43,270 Nini kama nataka magazeti index ya kwanza ya safu? 781 01:11:43,270 --> 01:11:45,150 Unaweza kufanya $ safu [0]. 782 01:11:45,150 --> 01:11:49,280 syntax mwangaza ni kidokezo. Nini hii kwenda kufanya? 783 01:11:52,320 --> 01:11:54,510 php.unique. 784 01:11:54,510 --> 01:11:59,860 Hi, jina langu ni 1! ambayo si nini nilitaka. 785 01:11:59,860 --> 01:12:05,050 Syntax mwangaza alisema uongo kwangu. 786 01:12:05,050 --> 01:12:13,020 Hebu jaribu '' -> 1, 'b' -> 2. 787 01:12:18,450 --> 01:12:21,440 Hayo ni jinsi mimi ingekuwa kuandika. 788 01:12:26,350 --> 01:12:32,160 Zisizotarajiwa moja quote (T_ENCAPSED blah, blah, blah, blah, blah). 789 01:12:32,160 --> 01:12:41,780 Wazo ni kwamba siyo kutambua hili kama sehemu ya safu. 790 01:12:41,780 --> 01:12:46,620 Siyo akitambua hili kama safu indexed na barua. 791 01:12:46,620 --> 01:12:49,870 Wewe unataka kufanya hivyo kuzungukwa na braces curly, 792 01:12:49,870 --> 01:12:54,730 na sasa chochote ni katika hii brace curly itakuwa interpolated, 793 01:12:54,730 --> 01:13:00,340 ambayo ni neno sisi kutumia kwa ajili ya kuingiza vigezo magically hizi katika maeneo ya kulia. 794 01:13:00,340 --> 01:13:04,280 Sasa kufanya hivyo, php.unique, na Hi, jina langu ni 1! kama ilivyotarajiwa 795 01:13:04,280 --> 01:13:07,720 au Hi, jina langu ni Rob! 796 01:13:14,110 --> 01:13:23,130 Jambo moja kwamba ni aina ya nice kuhusu quotes moja ni kwamba - 797 01:13:23,130 --> 01:13:28,480 Kuna baadhi ya gharama kwa interpolating. 798 01:13:30,520 --> 01:13:35,100 Kama matumizi ya quotes mbili, mkalimani ina kwenda juu ya hii kamba, 799 01:13:35,100 --> 01:13:41,500 kuhakikisha kwamba, "Oh, hapa variable Sasa mimi haja ya kwenda kupata kwamba kutofautiana na kuingiza hapa.". 800 01:13:41,500 --> 01:13:48,930 Hata kama wewe si kutumia vigezo yoyote, 801 01:13:48,930 --> 01:13:52,220 kitu ndani ya hizi quotes mbili inahitaji interpolated, 802 01:13:52,220 --> 01:13:56,800 lakini bado itakuwa polepole kwa sababu ya mahitaji ya kwenda juu ya quotes mbili 803 01:13:56,800 --> 01:14:00,130 kuangalia mambo ambayo yanahitaji interpolated. 804 01:14:00,130 --> 01:14:05,360 Hivyo moja quotes inaweza kuwa kidogo kwa kasi kama hakuna mahitaji ya kuwa interpolated, 805 01:14:05,360 --> 01:14:15,650 na mimi huwa hata kutumia quotes moja kwa ajili ya, 'Hi, jina langu ni'. $ Safu ['a'] anyway. 806 01:14:15,650 --> 01:14:20,430 Hiyo itakuwa sawa na kile sisi alikuwa mbele. 807 01:14:24,840 --> 01:14:28,440 Lakini ni suala la upendeleo. 808 01:14:28,440 --> 01:14:34,750 Kama unatumia PHP, pengine hawajali kuhusu tofauti kasi. 809 01:14:34,750 --> 01:14:39,480 Kuna si ya kutosha kufikiri yao nje kwa kuanzia. 810 01:14:39,480 --> 01:14:43,030 >> Maswali yoyote ya mwisho? 811 01:14:47,430 --> 01:14:51,710 >> Sisi kwa kweli hakuwa na hata kupata njia yake yote, lakini mambo haya alikuwa boring. 812 01:14:51,710 --> 01:14:59,080 Jambo la mwisho kwamba aina ya nice katika PHP ni wakati wewe ni kushughulika na HTML, 813 01:14:59,080 --> 01:15:06,450 utasikia kutumia ni kidogo, hivyo nice syntax mkato kwa kuchapa kutofautiana. 814 01:15:32,400 --> 01:15:36,730 Bila kuweka PHP hapa, hii inaitwa mfupi tags. 815 01:15:36,730 --> 01:15:44,330 Rasmi kama ya PHP 5.4, hii imepungua thamani. 816 01:15:44,330 --> 01:15:48,640 Wewe ni ilipendekeza kuweka php. 817 01:15:48,640 --> 01:15:55,770 Hii bado mkono, vitambulisho hivyo fupi na <=? Ni bado kikamilifu faini. 818 01:15:55,770 --> 01:16:02,480 Ni kwa default mkono, hivyo unaweza kutumia hizi kama unataka, na wao ni pretty rahisi. 819 01:16:02,480 --> 01:16:05,700 >> Maswali yoyote? 820 01:16:07,780 --> 01:16:09,270 Wote haki. 821 01:16:10,840 --> 01:16:13,800 >> Kaa classy, ​​San Diego. 822 01:16:13,800 --> 01:16:16,070 [Chuckles] 823 01:16:18,620 --> 01:16:22,660 Bye. [Atacheka] 824 01:16:24,350 --> 01:16:28,470 [Applause] [atacheka] 825 01:22:46,460 --> 01:22:49,460 >> [CS50.TV]