1 00:00:00,000 --> 00:00:02,400 [Powered by Google Translate] [PHP syntax] 2 00:00:02,400 --> 00:00:04,400 [Tommy MacWilliam] [Chuo Kikuu cha Harvard] 3 00:00:04,400 --> 00:00:07,400 [Hii ni CS50.] [CS50.TV] 4 00:00:07,400 --> 00:00:10,080 >> Katika video hii, tutaweza kuanzisha PHP - 5 00:00:10,080 --> 00:00:12,820 moja ya lugha tutaweza kutumia katika CS50 6 00:00:12,820 --> 00:00:15,480 kama sisi mpito kwa maendeleo ya mtandao. 7 00:00:15,480 --> 00:00:19,250 PHP anasimama kwa HyperText PHP Processor, 8 00:00:19,250 --> 00:00:23,440 au PHP HyperText Processor HyperText Processor, 9 00:00:23,440 --> 00:00:24,880 na mimi itabidi kuacha hapo. 10 00:00:24,880 --> 00:00:29,280 PHP ni kifupi kujirudia, ambayo nadhani ni kweli kutisha. 11 00:00:29,280 --> 00:00:32,020 >> Hivyo, hebu kuandika 'hello dunia katika PHP, 12 00:00:32,020 --> 00:00:37,240 ambayo itakuwa tofauti kidogo kuliko 'dunia hello' katika C kwamba tumekuwa kuja kujua na kupenda. 13 00:00:37,240 --> 00:00:40,330 Badala ya kujenga faili inayoitwa hello.c, 14 00:00:40,330 --> 00:00:42,990 tutaweza kujenga hello.php. 15 00:00:42,990 --> 00:00:52,430 Yote ya kanuni wetu PHP itakuwa zilizomo kati ya . 16 00:00:52,430 --> 00:00:56,160 Kama tuna yoyote kanuni PHP kwamba iko 17 00:00:56,160 --> 00:00:59,140 nje ya hizi delimiters, itakuwa si nitafanya. 18 00:00:59,140 --> 00:01:01,740 Tunaweza kuwa kama wengi wa vitalu haya PHP 19 00:01:01,740 --> 00:01:05,090 kama tunataka ndani ya faili moja PHP. 20 00:01:05,090 --> 00:01:09,000 Katika PHP hakuna haja kwa kazi kuu. 21 00:01:09,000 --> 00:01:15,540 Badala yake, yetu kanuni PHP utaendeshwa ili inaonekana katika faili wetu PHP. 22 00:01:15,540 --> 00:01:20,970 Wote C na PHP na 'printf' kazi kwa outputting data. 23 00:01:20,970 --> 00:01:27,270 Lakini katika PHP, hatuna haja ya # ni pamoja na files yoyote header kama standardIO.h. 24 00:01:27,270 --> 00:01:31,830 Hiyo ni kwa sababu katika PHP hatutakuwa kuandaa kanuni zetu. 25 00:01:31,830 --> 00:01:35,560 Wakati sisi aliandika C kanuni workflow yetu wakijifanya kuwa kufungua 26 00:01:35,560 --> 00:01:39,560 moja au zaidi c. au. h files, kubadilisha yao, kuandaa yao, 27 00:01:39,560 --> 00:01:41,980 na kuendesha binary kusababisha. 28 00:01:41,980 --> 00:01:45,800 Angalia video compilers kwa habari zaidi juu ya mchakato huu. 29 00:01:45,800 --> 00:01:51,480 >> Tofauti na C, PHP ni kufasiriwa - lugha - kuliko ulioandaliwa. 30 00:01:51,480 --> 00:01:54,080 Hiyo ina maana kwamba kanuni PHP sisi kuandika 31 00:01:54,080 --> 00:01:57,360 utaendeshwa kupitia mpango maalum iitwayo mkalimani, 32 00:01:57,360 --> 00:02:00,440 ambayo kwa upande kutekeleza kanuni yetu. 33 00:02:00,440 --> 00:02:03,020 Kuendesha kanuni wetu PHP, 34 00:02:03,020 --> 00:02:07,860 tutaweza kutuma pamoja na mkalimani PHP ambayo itakuwa kushughulikia utekelezaji wake, 35 00:02:07,860 --> 00:02:11,260 badala ya kuandaa kanuni kwa mashine. 36 00:02:11,260 --> 00:02:13,450 Hebu angalia mkalimani katika hatua. 37 00:02:13,450 --> 00:02:17,010 Tutaweza kufungua terminal na kukimbia amri PHP 38 00:02:17,010 --> 00:02:21,130 ikifuatiwa na njia ya faili PHP tunatarajia kukimbia. 39 00:02:21,130 --> 00:02:25,690 Tutaweza kusema, 'php hello.php'. 40 00:02:25,690 --> 00:02:30,200 Na kuna sisi kwenda. Kuna pato la mpango wetu PHP. 41 00:02:30,200 --> 00:02:33,460 Sisi hakuwa na haja ya kukusanya faili wetu PHP wakati wote. 42 00:02:33,460 --> 00:02:37,280 Badala yake, tulikuwa na mpango mwingine - mkalimani PHP - 43 00:02:37,280 --> 00:02:40,070 nitafanya sourcecode kwamba sisi aliandika. 44 00:02:40,070 --> 00:02:43,280 >> PHP anaweza kufanya mengi zaidi kuliko tu printf. 45 00:02:43,280 --> 00:02:46,490 Hebu kuandika baadhi ya programu PHP ngumu zaidi. 46 00:02:46,490 --> 00:02:52,240 syntax kwa constructs - kama kama, mwingine, wakati, kwa, na kubadili - 47 00:02:52,240 --> 00:02:55,440 ni sawa katika PHP na C. 48 00:02:55,440 --> 00:03:01,180 Tu kama C, kila aina ya constructs hizi anatumia braces ya kutenga miili yao, 49 00:03:01,180 --> 00:03:04,420 na kama tu katika C, kila line sisi kuandika 50 00:03:04,420 --> 00:03:06,830 lazima mwisho na semicolon; 51 00:03:06,830 --> 00:03:10,700 Hata hivyo, vigezo ni kubebwa kidogo tofauti katika PHP. 52 00:03:10,700 --> 00:03:15,630 Kwanza, kila vigezo katika PHP lazima kuanza na ishara ya dola. 53 00:03:15,630 --> 00:03:18,700 Inaonekana kidogo weird mara ya kwanza, lakini utasikia kupata kutumika yake. 54 00:03:18,700 --> 00:03:22,150 Pili, PHP ni lugha loosely-typed 55 00:03:22,150 --> 00:03:24,570 ambayo ina maana huna haja ya kupanga orodha 56 00:03:24,570 --> 00:03:27,640 aina ya kutofautiana wakati wewe kujenga yake. 57 00:03:27,640 --> 00:03:33,430 Ambapo katika C d haja ya kusema int x = 5; 58 00:03:33,430 --> 00:03:38,650 au Char y = 'a'; 59 00:03:39,250 --> 00:03:44,790 katika PHP tunaweza tu kusema $ x = 5; 60 00:03:44,790 --> 00:03:48,930 na $ y = 'a',. 61 00:03:48,930 --> 00:03:52,360 hiyo inatumika kwa kazi. 62 00:03:52,360 --> 00:04:01,290 Badala ya kusema f int () {mwili wa kazi yetu}, 63 00:04:01,290 --> 00:04:12,160 katika PHP tunakwenda kusema kazi f () {mwili wa kazi yetu}. 64 00:04:12,160 --> 00:04:17,579 Hatuna haja ya kupanga bayana aina ya kurudi ya kazi f yetu. 65 00:04:17,579 --> 00:04:22,070 Kazi katika PHP pia hawana kurudi aina moja 66 00:04:22,070 --> 00:04:23,840 kila wakati wao ni kunyongwa. 67 00:04:23,840 --> 00:04:27,940 Kwa mfano, tunaweza kuandika kazi kwamba anarudi uongo juu ya kosa 68 00:04:27,940 --> 00:04:29,750 na aina nyingine kama ikifanikiwa. 69 00:04:29,750 --> 00:04:33,060 >> Hii inaweza pia kutusaidia kuandika kazi zaidi ya kurefusha maisha. 70 00:04:33,060 --> 00:04:35,710 Kwa mfano, tunaweza kuandika moja kuongeza kazi 71 00:04:35,710 --> 00:04:39,200 kwamba anaweza kurudi integer kama integers 2 wanapewa 72 00:04:39,200 --> 00:04:41,250 au kuelea kama ikifungwa 2 wanapewa. 73 00:04:41,250 --> 00:04:45,530 Katika C, tunatarajia haja ya kuandika 2 majukumu tofauti ya kufanya hili. 74 00:04:45,530 --> 00:04:49,230 Wakati katika C sisi kutumia kuyatumia kwa ajili ya kuongeza na masharti, 75 00:04:49,230 --> 00:04:52,170 hatutakuwa na uwezo wa kutumia kuyatumia katika PHP. 76 00:04:52,170 --> 00:04:58,030 Badala yake, wote wawili arrays na masharti ni kujengwa katika aina katika PHP. 77 00:04:58,030 --> 00:04:59,660 Wao ni kujengwa haki ndani ya lugha. 78 00:04:59,660 --> 00:05:02,270 Kujenga safu katika PHP tunaweza kusema, 79 00:05:02,270 --> 00:05:11,280 $ Safu = (1, 2, 3); 80 00:05:11,280 --> 00:05:19,400 au kwa urahisi zaidi $ = [1, 2, 3];. 81 00:05:19,400 --> 00:05:24,990 Tunaweza index katika safu hii kwa kutumia sentensi sawa kwamba sisi ni kutumika kutoka C. 82 00:05:24,990 --> 00:05:31,780 Kupata kipengele kwanza tutaweza kusema, $ [0];. 83 00:05:31,780 --> 00:05:36,290 PHP pia ina kujengwa katika msaada kwa ajili ya arrays associative. 84 00:05:36,290 --> 00:05:41,460 Arrays associative ni tu kama hash muundo wa meza data tumekuwa tayari kuona - 85 00:05:41,460 --> 00:05:44,060 wao ramani muhimu kwa thamani. 86 00:05:44,060 --> 00:05:46,070 >> Hebu tuangalie mfano. 87 00:05:46,070 --> 00:06:14,740 Tunaweza kusema, $ wafanyakazi = ["mwalimu" => "david", "tf" => "tommy"];. 88 00:06:14,740 --> 00:06:21,020 Hapa, nina safu associative na funguo 2 - mwalimu na tf. 89 00:06:21,020 --> 00:06:24,910 mshale mara mbili, au sawa-zaidi-kuliko, 90 00:06:24,910 --> 00:06:29,660 hutumiwa kwa tofauti ya muhimu na thamani yake sambamba. 91 00:06:29,660 --> 00:06:41,830 Hivyo, thamani ya wafanyakazi $ ["tf"] ni kamba "tommy". 92 00:06:41,830 --> 00:06:44,430 maadili ya safu associative - 93 00:06:44,430 --> 00:06:47,540 kiasi kama yoyote safu nyingine - inaweza kuwa ya aina yoyote. 94 00:06:47,540 --> 00:07:23,370 Kwa mfano, tunaweza kusema, $ wafanyakazi = ["mwalimu" => "david", "TFS" => ["tommy", "kuwaibia"]];. 95 00:07:23,370 --> 00:07:27,810 Sasa thamani ya 'TFS' ni safu. 96 00:07:27,810 --> 00:07:33,030 Hiyo ina maana kwamba maadili ndani ya safu moja associative inaweza kuwa ya aina mbalimbali. 97 00:07:33,030 --> 00:07:36,750 >> PHP arrays pia hawana urefu fasta, 98 00:07:36,750 --> 00:07:40,200 ili tuweze kuongeza au kuondoa mambo kutoka safu. 99 00:07:40,200 --> 00:07:49,130 Hebu sema tuna safu rahisi kama $ = [1, 2, 3];. 100 00:07:49,130 --> 00:07:51,860 Kuongeza kipengele mpya ya safu hii, 101 00:07:51,860 --> 00:07:57,160 tunaweza kusema, $ a [] = 4;. 102 00:07:57,160 --> 00:08:03,630 Sasa safu yetu ina mambo manne - [1, 2, 3, 4]. 103 00:08:03,630 --> 00:08:06,980 Kumbuka kwamba kama sisi alitaka kufanya kitu kama hiki katika C, 104 00:08:06,980 --> 00:08:09,610 tunatarajia kuwa na kutenga nzima mwezi safu, 105 00:08:09,610 --> 00:08:12,400 nakala yaliyomo safu yetu ya kwanza ndani yake, 106 00:08:12,400 --> 00:08:15,870 na kisha kuweka kipengele mwisho wa safu mpya ya thamani yetu mpya. 107 00:08:15,870 --> 00:08:18,390 Hii ni rahisi sana katika PHP. 108 00:08:18,390 --> 00:08:21,230 Kama safu yetu ni safu associative, 109 00:08:21,230 --> 00:08:24,810 tunaweza tu kufafanua ufunguo mpya ya kujenga kipengele 110 00:08:24,810 --> 00:08:26,250 kama haipo bado. 111 00:08:26,250 --> 00:08:30,010 Kama tuna safu yetu mapema - $ wafanyakazi - 112 00:08:30,010 --> 00:08:38,679 tunaweza kusema $ wafanyakazi ["jumla"] = 3;. 113 00:08:38,679 --> 00:08:43,330 Sasa tuna muhimu mpya na thamani ya 3. 114 00:08:43,330 --> 00:08:46,460 >> Kupata idadi ya vipengele katika safu, 115 00:08:46,460 --> 00:08:48,230 tunaweza kutumia 'kuhesabu' kazi. 116 00:08:48,230 --> 00:08:56,100 Tukisema, kuhesabu ($);, ambayo itakuwa na thamani ya 4. 117 00:08:56,100 --> 00:09:01,930 Katika PHP, tunaweza kujenga masharti kutumia nukuu mara mbili au moja, 118 00:09:01,930 --> 00:09:04,470 hivyo wote wa vigezo hizi ni masharti. 119 00:09:04,470 --> 00:09:21,780 $ S1 = "kamba"; $ S2 = 'mwingine kamba';. 120 00:09:21,780 --> 00:09:23,920 Nini tofauti kati ya hizi mbili? 121 00:09:23,920 --> 00:09:26,950 Naam, ni pretty kawaida wanataka ni pamoja na 122 00:09:26,950 --> 00:09:29,600 thamani ya ndani ya kutofautiana wa kamba. 123 00:09:29,600 --> 00:09:34,390 Njia moja ya kufanya hili itakuwa kutumia PHP ya dot operator, 124 00:09:34,390 --> 00:09:36,630 ambayo concatenates masharti. 125 00:09:36,630 --> 00:09:38,680 Tunaweza kufanya kitu kama hii - 126 00:09:38,680 --> 00:09:53,800 $ N = 5; $ s = 'n ni' $ n.;. 127 00:09:53,800 --> 00:09:57,430 Hapa wetu n kutofautiana ni integer. 128 00:09:57,430 --> 00:10:00,020 Lakini wakati sisi concatenate ni pamoja na kamba, 129 00:10:00,020 --> 00:10:04,110 PHP moja kwa moja kubadilisha kwa kamba kwa ajili yetu. 130 00:10:04,110 --> 00:10:09,090 Au tunaweza tu kutumia quotes mbili kuweka kutofautiana katika kamba yenyewe. 131 00:10:09,090 --> 00:10:19,290 Tunaweza kusema, $ s = "n ni $ n";. 132 00:10:19,290 --> 00:10:24,040 Sasa thamani ya $ s itakuwa 'n ni 5'. 133 00:10:24,040 --> 00:10:34,250 Kama sisi kutumia quotes moja badala yake, kama katika $ s = 'n ni $ n'; 134 00:10:34,250 --> 00:10:39,670 thamani ya s itakuwa 'n ni $ n';. 135 00:10:39,670 --> 00:10:43,720 thamani ya n si kuwa mbadala kama sisi kutumia quotes moja, 136 00:10:43,720 --> 00:10:47,150 lakini itakuwa kama sisi kutumia quotes mbili. 137 00:10:47,150 --> 00:10:51,800 Kama tunataka kutumia quotes mara mbili kwa pamoja na thamani ya safu katika kamba, 138 00:10:51,800 --> 00:10:55,060 tutaweza haja ya ni pamoja na braces curly kuzunguka safu, kama hii - 139 00:10:55,060 --> 00:11:14,470 $ S = "{$ wafanyakazi ['taarifa']}";. 140 00:11:14,470 --> 00:11:20,350 >> Hebu sasa tuangalie kijisehemu kidogo katika C na kutafsiri kwa PHP. 141 00:11:20,350 --> 00:11:25,410 Hapa, sisi ni kujenga kazi ambayo Prints nje barua ya kamba, 142 00:11:25,410 --> 00:11:27,310 tabia moja kwa kila mstari. 143 00:11:27,310 --> 00:11:32,250 Hebu kufanya kitu kimoja katika PHP. 144 00:11:32,250 --> 00:11:36,530 Kwanza, tutaweza haja yetu delimiters PHP. 145 00:11:36,530 --> 00:11:39,000 Wakati sisi kazi yetu kujenga, 146 00:11:39,000 --> 00:11:42,740 hatuna haja ya kutaja kurudi wake aina au aina ya hoja yake. 147 00:11:42,740 --> 00:11:46,890 S yetu kutofautiana lazima pia kuanza kwa ishara ya dola. 148 00:11:46,890 --> 00:11:51,590 PHP ya strlen kazi inatupa urefu wa kamba, 149 00:11:51,590 --> 00:11:55,660 tu kama ya C strlen inatupa urefu wa kamba. 150 00:11:55,660 --> 00:11:59,060 Chini ya kofia ingawa, kazi hizi ni kweli tofauti kidogo 151 00:11:59,060 --> 00:12:03,010 tangu kamba ni aina kujengwa katika katika PHP. 152 00:12:03,010 --> 00:12:06,930 syntax ya yetu 'kwa' kitanzi ni sawa. 153 00:12:06,930 --> 00:12:13,530 >> Katika PHP, tunaweza pia kutumia safu nukuu kupata wahusika wa kamba. 154 00:12:13,530 --> 00:12:19,350 Sasa tunaweza kutumia kazi magazeti ya magazeti ya nje ya kila aina mbili wa kamba. 155 00:12:19,350 --> 00:12:23,080 Na magazeti kazi PHP ya, hatuna haja ya kuwa na wasiwasi kuhusu placeholders - 156 00:12:23,080 --> 00:12:28,200 kama% c d au% - wakati tunataka magazeti nje ya kutofautiana kwamba si kamba. 157 00:12:28,200 --> 00:12:33,590 Badala yake, tunaweza tu kupita variable ya aina yoyote kwa kazi magazeti, 158 00:12:33,590 --> 00:12:36,810 na itakuwa kuongoka kwa kamba na kuonyeshwa. 159 00:12:36,810 --> 00:12:43,430 Na hiyo ni! Hebu sasa kukimbia faili wetu na 'php print.php'. 160 00:12:43,430 --> 00:12:48,160 Na kuna pato tuliona kutoka mpango wetu C. 161 00:12:48,160 --> 00:12:52,120 >> PHP pia inasaidia kujenga iitwayo 'foreach' kitanzi. 162 00:12:52,120 --> 00:12:54,800 Kitanzi 'foreach' ni kama tu 'kwa' kitanzi, 163 00:12:54,800 --> 00:12:59,080 lakini anaongeza kidogo cha sukari kisintaksia ya kufanya mambo zaidi someka. 164 00:12:59,080 --> 00:13:03,690 Hapa, sisi ni kujenga safu mpya inayoitwa '$ safu'. 165 00:13:03,690 --> 00:13:10,090 Sasa tunaweza kusema, foreach ($ safu kama $ simu), 166 00:13:10,090 --> 00:13:12,390 na tunaweza magazeti nje ya $ idadi. 167 00:13:12,390 --> 00:13:20,650 Wakati sisi kukimbia hii faili - php foreach.php-tunaweza kuona kila idadi ya line yake mwenyewe. 168 00:13:20,650 --> 00:13:26,700 >> Wakati sisi aliandika C kanuni, ilikuwa ni mara nyingi na manufaa kwa kuandaa kanuni zetu katika files tofauti. 169 00:13:26,700 --> 00:13:29,170 Katika PHP, tunaweza kufanya kitu kimoja. 170 00:13:29,170 --> 00:13:33,870 Hebu sema tuna kazi chache katika faili iitwayo math.php. 171 00:13:33,870 --> 00:13:38,900 Kama mimi nataka kutumia kazi hizo katika mwingine faili PHP, kama calculator.php, 172 00:13:38,900 --> 00:13:44,110 Naweza kutumia require_once PHP ya () kazi. 173 00:13:44,110 --> 00:13:47,110 Require_once ni kama # pamoja. 174 00:13:47,110 --> 00:13:52,050 Wakipewa njia ya faili, itakuwa kimsingi nakala na kuweka yaliyomo 175 00:13:52,050 --> 00:13:54,930 ya kwamba faili katika faili ya sasa. 176 00:13:54,930 --> 00:14:00,150 Require_once kuhakikisha kwamba kila faili ni pamoja na ndani ya faili sasa mara moja tu, 177 00:14:00,150 --> 00:14:05,680 ambayo inaweza kuwa na manufaa kama una mkusanyiko mkubwa wa mafaili ya PHP wanaohitaji kila mmoja. 178 00:14:05,680 --> 00:14:07,750 Hebu tuangalie mfano. 179 00:14:07,750 --> 00:14:12,620 Hapa tuna mkusanyiko wa kazi ya kwamba Ningependa kutumia katika faili mwingine. 180 00:14:12,620 --> 00:14:14,990 Hebu tuangalie jinsi ambavyo tunaweza kuvitumia. 181 00:14:14,990 --> 00:14:20,700 On line 3, sisi ni wanaohitaji math.php. 182 00:14:20,700 --> 00:14:27,170 '__DIR__' Ni mara kwa mara maalum anayewakilisha saraka ya sasa 183 00:14:27,170 --> 00:14:33,440 tangu math.php na calculator.php ziko katika saraka ya sawa. 184 00:14:33,440 --> 00:14:38,010 Baada ya sisi kuhitaji math.php, tunaweza kutumia kazi 185 00:14:38,010 --> 00:14:41,690  kama inavyoelezwa tumekuwa nao katika calculator.php. 186 00:14:41,690 --> 00:14:47,440 Hebu kukimbia hii na 'php calculator.php'. Mkuu! 187 00:14:47,440 --> 00:14:50,880 >> Hiyo ni kwa ajili ya kuanzishwa zetu kwa syntax PHP ya. 188 00:14:50,880 --> 00:14:53,700 Ili kujua zaidi, angalia PHP.net. 189 00:14:53,700 --> 00:14:59,470 PHP ina mengi ya kazi kujengwa katika, na bahati nyaraka zake ni kubwa kweli kweli. 190 00:14:59,470 --> 00:15:02,680 Jina langu ni Tommy, na hii ni CS50. 191 00:15:02,680 --> 00:15:04,680 [CS50.TV] 192 00:15:04,680 --> 00:15:14,000 >> ... Bracket, mimi niko nje ya chumba. Damn it! Hii ni video ya mwisho ambapo mimi kutumia maneno makubwa katika kanuni.