[Powered by Google Translate] [PHP syntax] [Tommy MacWilliam] [Chuo Kikuu cha Harvard] [Hii ni CS50.] [CS50.TV] Katika video hii, tutaweza kuanzisha PHP - moja ya lugha tutaweza kutumia katika CS50 kama sisi mpito kwa maendeleo ya mtandao. PHP anasimama kwa HyperText PHP Processor, au PHP HyperText Processor HyperText Processor, na mimi itabidi kuacha hapo. PHP ni kifupi kujirudia, ambayo nadhani ni kweli kutisha. Hivyo, hebu kuandika 'hello dunia katika PHP, ambayo itakuwa tofauti kidogo kuliko 'dunia hello' katika C kwamba tumekuwa kuja kujua na kupenda. Badala ya kujenga faili inayoitwa hello.c, tutaweza kujenga hello.php. Yote ya kanuni wetu PHP itakuwa zilizomo kati ya . Kama tuna yoyote kanuni PHP kwamba iko nje ya hizi delimiters, itakuwa si nitafanya. Tunaweza kuwa kama wengi wa vitalu haya PHP kama tunataka ndani ya faili moja PHP. Katika PHP hakuna haja kwa kazi kuu. Badala yake, yetu kanuni PHP utaendeshwa ili inaonekana katika faili wetu PHP. Wote C na PHP na 'printf' kazi kwa outputting data. Lakini katika PHP, hatuna haja ya # ni pamoja na files yoyote header kama standardIO.h. Hiyo ni kwa sababu katika PHP hatutakuwa kuandaa kanuni zetu. Wakati sisi aliandika C kanuni workflow yetu wakijifanya kuwa kufungua moja au zaidi c. au. h files, kubadilisha yao, kuandaa yao, na kuendesha binary kusababisha. Angalia video compilers kwa habari zaidi juu ya mchakato huu. Tofauti na C, PHP ni kufasiriwa - lugha - kuliko ulioandaliwa. Hiyo ina maana kwamba kanuni PHP sisi kuandika utaendeshwa kupitia mpango maalum iitwayo mkalimani, ambayo kwa upande kutekeleza kanuni yetu. Kuendesha kanuni wetu PHP, tutaweza kutuma pamoja na mkalimani PHP ambayo itakuwa kushughulikia utekelezaji wake, badala ya kuandaa kanuni kwa mashine. Hebu angalia mkalimani katika hatua. Tutaweza kufungua terminal na kukimbia amri PHP ikifuatiwa na njia ya faili PHP tunatarajia kukimbia. Tutaweza kusema, 'php hello.php'. Na kuna sisi kwenda. Kuna pato la mpango wetu PHP. Sisi hakuwa na haja ya kukusanya faili wetu PHP wakati wote. Badala yake, tulikuwa na mpango mwingine - mkalimani PHP - nitafanya sourcecode kwamba sisi aliandika. PHP anaweza kufanya mengi zaidi kuliko tu printf. Hebu kuandika baadhi ya programu PHP ngumu zaidi. syntax kwa constructs - kama kama, mwingine, wakati, kwa, na kubadili - ni sawa katika PHP na C. Tu kama C, kila aina ya constructs hizi anatumia braces ya kutenga miili yao, na kama tu katika C, kila line sisi kuandika lazima mwisho na semicolon; Hata hivyo, vigezo ni kubebwa kidogo tofauti katika PHP. Kwanza, kila vigezo katika PHP lazima kuanza na ishara ya dola. Inaonekana kidogo weird mara ya kwanza, lakini utasikia kupata kutumika yake. Pili, PHP ni lugha loosely-typed ambayo ina maana huna haja ya kupanga orodha aina ya kutofautiana wakati wewe kujenga yake. Ambapo katika C d haja ya kusema int x = 5; au Char y = 'a'; katika PHP tunaweza tu kusema $ x = 5; na $ y = 'a',. hiyo inatumika kwa kazi. Badala ya kusema f int () {mwili wa kazi yetu}, katika PHP tunakwenda kusema kazi f () {mwili wa kazi yetu}. Hatuna haja ya kupanga bayana aina ya kurudi ya kazi f yetu. Kazi katika PHP pia hawana kurudi aina moja kila wakati wao ni kunyongwa. Kwa mfano, tunaweza kuandika kazi kwamba anarudi uongo juu ya kosa na aina nyingine kama ikifanikiwa. Hii inaweza pia kutusaidia kuandika kazi zaidi ya kurefusha maisha. Kwa mfano, tunaweza kuandika moja kuongeza kazi kwamba anaweza kurudi integer kama integers 2 wanapewa au kuelea kama ikifungwa 2 wanapewa. Katika C, tunatarajia haja ya kuandika 2 majukumu tofauti ya kufanya hili. Wakati katika C sisi kutumia kuyatumia kwa ajili ya kuongeza na masharti, hatutakuwa na uwezo wa kutumia kuyatumia katika PHP. Badala yake, wote wawili arrays na masharti ni kujengwa katika aina katika PHP. Wao ni kujengwa haki ndani ya lugha. Kujenga safu katika PHP tunaweza kusema, $ Safu = (1, 2, 3); au kwa urahisi zaidi $ = [1, 2, 3];. Tunaweza index katika safu hii kwa kutumia sentensi sawa kwamba sisi ni kutumika kutoka C. Kupata kipengele kwanza tutaweza kusema, $ [0];. PHP pia ina kujengwa katika msaada kwa ajili ya arrays associative. Arrays associative ni tu kama hash muundo wa meza data tumekuwa tayari kuona - wao ramani muhimu kwa thamani. Hebu tuangalie mfano. Tunaweza kusema, $ wafanyakazi = ["mwalimu" => "david", "tf" => "tommy"];. Hapa, nina safu associative na funguo 2 - mwalimu na tf. mshale mara mbili, au sawa-zaidi-kuliko, hutumiwa kwa tofauti ya muhimu na thamani yake sambamba. Hivyo, thamani ya wafanyakazi $ ["tf"] ni kamba "tommy". maadili ya safu associative - kiasi kama yoyote safu nyingine - inaweza kuwa ya aina yoyote. Kwa mfano, tunaweza kusema, $ wafanyakazi = ["mwalimu" => "david", "TFS" => ["tommy", "kuwaibia"]];. Sasa thamani ya 'TFS' ni safu. Hiyo ina maana kwamba maadili ndani ya safu moja associative inaweza kuwa ya aina mbalimbali. PHP arrays pia hawana urefu fasta, ili tuweze kuongeza au kuondoa mambo kutoka safu. Hebu sema tuna safu rahisi kama $ = [1, 2, 3];. Kuongeza kipengele mpya ya safu hii, tunaweza kusema, $ a [] = 4;. Sasa safu yetu ina mambo manne - [1, 2, 3, 4]. Kumbuka kwamba kama sisi alitaka kufanya kitu kama hiki katika C, tunatarajia kuwa na kutenga nzima mwezi safu, nakala yaliyomo safu yetu ya kwanza ndani yake, na kisha kuweka kipengele mwisho wa safu mpya ya thamani yetu mpya. Hii ni rahisi sana katika PHP. Kama safu yetu ni safu associative, tunaweza tu kufafanua ufunguo mpya ya kujenga kipengele kama haipo bado. Kama tuna safu yetu mapema - $ wafanyakazi - tunaweza kusema $ wafanyakazi ["jumla"] = 3;. Sasa tuna muhimu mpya na thamani ya 3. Kupata idadi ya vipengele katika safu, tunaweza kutumia 'kuhesabu' kazi. Tukisema, kuhesabu ($);, ambayo itakuwa na thamani ya 4. Katika PHP, tunaweza kujenga masharti kutumia nukuu mara mbili au moja, hivyo wote wa vigezo hizi ni masharti. $ S1 = "kamba"; $ S2 = 'mwingine kamba';. Nini tofauti kati ya hizi mbili? Naam, ni pretty kawaida wanataka ni pamoja na thamani ya ndani ya kutofautiana wa kamba. Njia moja ya kufanya hili itakuwa kutumia PHP ya dot operator, ambayo concatenates masharti. Tunaweza kufanya kitu kama hii - $ N = 5; $ s = 'n ni' $ n.;. Hapa wetu n kutofautiana ni integer. Lakini wakati sisi concatenate ni pamoja na kamba, PHP moja kwa moja kubadilisha kwa kamba kwa ajili yetu. Au tunaweza tu kutumia quotes mbili kuweka kutofautiana katika kamba yenyewe. Tunaweza kusema, $ s = "n ni $ n";. Sasa thamani ya $ s itakuwa 'n ni 5'. Kama sisi kutumia quotes moja badala yake, kama katika $ s = 'n ni $ n'; thamani ya s itakuwa 'n ni $ n';. thamani ya n si kuwa mbadala kama sisi kutumia quotes moja, lakini itakuwa kama sisi kutumia quotes mbili. Kama tunataka kutumia quotes mara mbili kwa pamoja na thamani ya safu katika kamba, tutaweza haja ya ni pamoja na braces curly kuzunguka safu, kama hii - $ S = "{$ wafanyakazi ['taarifa']}";. Hebu sasa tuangalie kijisehemu kidogo katika C na kutafsiri kwa PHP. Hapa, sisi ni kujenga kazi ambayo Prints nje barua ya kamba, tabia moja kwa kila mstari. Hebu kufanya kitu kimoja katika PHP. Kwanza, tutaweza haja yetu delimiters PHP. Wakati sisi kazi yetu kujenga, hatuna haja ya kutaja kurudi wake aina au aina ya hoja yake. S yetu kutofautiana lazima pia kuanza kwa ishara ya dola. PHP ya strlen kazi inatupa urefu wa kamba, tu kama ya C strlen inatupa urefu wa kamba. Chini ya kofia ingawa, kazi hizi ni kweli tofauti kidogo tangu kamba ni aina kujengwa katika katika PHP. syntax ya yetu 'kwa' kitanzi ni sawa. Katika PHP, tunaweza pia kutumia safu nukuu kupata wahusika wa kamba. Sasa tunaweza kutumia kazi magazeti ya magazeti ya nje ya kila aina mbili wa kamba. Na magazeti kazi PHP ya, hatuna haja ya kuwa na wasiwasi kuhusu placeholders - kama% c d au% - wakati tunataka magazeti nje ya kutofautiana kwamba si kamba. Badala yake, tunaweza tu kupita variable ya aina yoyote kwa kazi magazeti, na itakuwa kuongoka kwa kamba na kuonyeshwa. Na hiyo ni! Hebu sasa kukimbia faili wetu na 'php print.php'. Na kuna pato tuliona kutoka mpango wetu C. PHP pia inasaidia kujenga iitwayo 'foreach' kitanzi. Kitanzi 'foreach' ni kama tu 'kwa' kitanzi, lakini anaongeza kidogo cha sukari kisintaksia ya kufanya mambo zaidi someka. Hapa, sisi ni kujenga safu mpya inayoitwa '$ safu'. Sasa tunaweza kusema, foreach ($ safu kama $ simu), na tunaweza magazeti nje ya $ idadi. Wakati sisi kukimbia hii faili - php foreach.php-tunaweza kuona kila idadi ya line yake mwenyewe. Wakati sisi aliandika C kanuni, ilikuwa ni mara nyingi na manufaa kwa kuandaa kanuni zetu katika files tofauti. Katika PHP, tunaweza kufanya kitu kimoja. Hebu sema tuna kazi chache katika faili iitwayo math.php. Kama mimi nataka kutumia kazi hizo katika mwingine faili PHP, kama calculator.php, Naweza kutumia require_once PHP ya () kazi. Require_once ni kama # pamoja. Wakipewa njia ya faili, itakuwa kimsingi nakala na kuweka yaliyomo ya kwamba faili katika faili ya sasa. Require_once kuhakikisha kwamba kila faili ni pamoja na ndani ya faili sasa mara moja tu, ambayo inaweza kuwa na manufaa kama una mkusanyiko mkubwa wa mafaili ya PHP wanaohitaji kila mmoja. Hebu tuangalie mfano. Hapa tuna mkusanyiko wa kazi ya kwamba Ningependa kutumia katika faili mwingine. Hebu tuangalie jinsi ambavyo tunaweza kuvitumia. On line 3, sisi ni wanaohitaji math.php. '__DIR__' Ni mara kwa mara maalum anayewakilisha saraka ya sasa tangu math.php na calculator.php ziko katika saraka ya sawa. Baada ya sisi kuhitaji math.php, tunaweza kutumia kazi  kama inavyoelezwa tumekuwa nao katika calculator.php. Hebu kukimbia hii na 'php calculator.php'. Mkuu! Hiyo ni kwa ajili ya kuanzishwa zetu kwa syntax PHP ya. Ili kujua zaidi, angalia PHP.net. PHP ina mengi ya kazi kujengwa katika, na bahati nyaraka zake ni kubwa kweli kweli. Jina langu ni Tommy, na hii ni CS50. [CS50.TV] ... Bracket, mimi niko nje ya chumba. Damn it! Hii ni video ya mwisho ambapo mimi kutumia maneno makubwa katika kanuni.