DOUG Lloyd: Pra, ne kemi bërë shumë punë në C, dhe C është një really cool gjuha sepse ajo ju jep aftësia për të zhyten vërtetë Niveli i ulët në programet tuaja. Ne kemi marrë për të bërë gjëra si me të vërtetë minuta si manipulimin bytes individuale të kujtesës. Kujtojnë se pointers të vërtetë na lejojë që fleksibilitet. Por nuk kemi gjithmonë duhet të ketë se niveli gjobë-kokërr të detajuar në programet tona? Ndoshta jo, e drejtë? Dhe në qoftë se ne do të kemi një tregti-off mes të qenit në gjendje të bëjë vërtetë, të vërtetë minutë gjërat dhe vërtetë, të vërtetë gjëra të mëdha që ne nuk duhet të mendojnë lidhje, ne nuk kemi për të zbatuar këto ide të vërtetë të madhe në qoftë se ata janë ndërtuar tashmë në për ne, në përgjithësi për ndërtimin madh programet ose projektet e mëdha, ne jemi ndoshta do të gaboj në anën e kanë më shumë gjëra gjuhë e ndërtuar në për ne, në vend që sende të nivelit të ulët. Dhe kjo është ajo ku PHP vërtetë vjen në. Tani, një nga arsyet që mësojmë PHP në CS50 është se është e frymëzuar kryesisht nga C. Dhe në fakt, sipas mendimit tim, janë me të vërtetë dy gjuhë stërgjysh që janë shumë të zakonshme në ditët e sotme. C dhe LISP. Dhe ata janë gjuhë progenitor sepse çdo programe të tjera moderne gjuhë që ka zhvilluar që nga atëherë është e frymëzuar nga një ose sintaktikisht tjetër. PHP është shumë e ngjashme sintaksore C, ndërsa gjuhë si Skema, për shembull, e cila ju mund të keni dëgjuar, është frymëzuar shumë nga një gjuhë quajtur Lisp, e cila është një gjuhë më të vjetër. Pra, arsyeja që ne mësojnë PHP në CS50 është se, duke ditur C si thelbësisht si ju bëni në këtë pikë, picking up PHP, e cila i jep ti Aftësia për të bërë shumë më të larta gjëra të nivelit se C bën, nuk është e se shumë nga një pengesë, sepse ju tashmë keni Ideja themelore e sintaksës. C ka qenë rreth e rrotull për gati 45 vjet në këtë pikë. PHP ka qenë rreth e rrotull për rreth 20 vjet. Dhe në atë 25 vjet në mes, programuesit vendosur se ata do shumë më tepër kanë aftësi të nivelit të lartë, dhe gabimet dhe luftërat nga 20 vjet në mes çoi në PHP dhe gjuhë të tjera moderne. Një zgjedhje e madhe e PHP gjuhë për software që allow-- për software that-- ku ju duhet të bëni gjëra që në C janë në të vërtetë të komplikuara. Kështu për shembull, duke punuar me vargjet në C është shumë e komplikuar, sepse siç e dimë, vargjet në C janë me të vërtetë vetëm vargjeve të karaktereve. Kjo nuk është një ndërtuar në lloj të dhënave. Apo ndoshta më thelbësisht, diçka që ne nuk e mbulojnë edhe në C, çfarë nëse ju duhet të bëni disa rrjeteve kompjuterike? Në rregull? C ka aftësinë për të bërë atë, por ajo është aq e errët dhe aq e vështirë për të vërtetë të bëjë. Nuk do të jetë mirë në qoftë se gjuha kishte një ndërtuar-në, mënyrë të lehtë për zbatimin e rrjeteve? Dhe PHP është një gjuhë që e bën atë, ose lehtëson se, mjaft pak më shumë. Siç thashë, PHP është shumë i rëndë frymëzuar nga C. Sintaksa është shumë i ngjashëm. Dhe kështu ajo duhet të shpresojmë të bëjë tranzicioni nga njëri-tjetrit pak më të butë se disa gjuhë të tjera mund të jetë. Për të filloni të shkruani PHP, sapo hapur një skedë me zgjerimin Php file. Teknikisht kjo nuk është e kërkohet në fakt, por në qoftë se ju doni gjëra të tilla si sintaksë theksuar në IDE, kështu që atë lloj emrat, ose emrat e ndryshueshme, funksionet, ju e dini, fjalë kyçe të gjuhës janë të theksuara në një ngjyrë të veçantë, ju në përgjithësi duan të emrit fotografi tuaj me një shtrirje të veçantë skedar. Pra, ne kemi emrin tonë skedë me një Php zgjatje, por pastaj edhe me PHP, gjithë kodi PHP kemi shkruar në atë Dosja duhet të jetë mbyllur në këto PHP përndarësit që ne shohim këtu në ekran. Kllapa kënd? Php për të filluar. Atëherë kemi shkruar të gjithë PHP tonë Kodi që ne duam në mes. Dhe pastaj ? kllapa kënd të mbyllur. Nëse ne nuk e bëjmë këtë, atëherë çfarë do të ndodhë? Kjo nuk do të rrëzimit. Kjo nuk do të me të vërtetë të shkatërrojnë programin tonë. Por kjo nuk do të ketë efekti që ne duam. Çfarë do të ndodhë, me të vërtetë, është se kur ne të përpiqemi dhe të drejtuar këtë program, gjithçka jo në mes këtyre përndarësit do të jenë të shtypura jashtë fjalë për fjalë. Kjo nuk do të në fakt ekzekutojë kodin, ajo do të vetëm print it out fjalë për fjalë. Tani, pse është kështu? Pra, C është ajo që është e njohur si një gjuhë hartuar. Ju ndoshta jeni njohur me hapi i bërë programet tuaja, duke e kthyer fotografi .c dhe fotografi .H në një ekzekutues të vetme me make, në veçanti duke përdorur Tingëllimë si përpilues tonë. PHP, edhe pse, nuk ka kanë këtë ekuivalent. PHP është ajo që quhet një Gjuha e interpretuar. Dhe çfarë do të thotë kjo? E pra, kjo do të thotë që ne nuk kemi për të kthyer kodi ynë burim në zero dhe ato paraprakisht. Përkundrazi, ka një program, e cila është quajtur edhe PHP, që kupton dhe PHP mund të lloj të bëjë atë të fluturojnë. Kjo nuk është me të vërtetë saktësisht e saktë, por kjo është një analogji mjaft të mirë e asaj që po ndodh. Është interpretuar ato zero dhe ato të fluturojnë. Dhe kështu në qoftë se ajo nuk e di si për një proces diçka, në qoftë se ajo nuk e di se si për të Procesi PHP, ju ndoshta të kërkuar për të vënë atë tekst në atje, apo jo? Ju ndoshta të kërkuar për të vënë kodin në atje, edhe nëse ajo nuk është në mes PHP-- të përndarësit PHP. But-- kështu që nuk do për të fshirë atë për ju, ajo është vetëm do të në thelb të hidhni atë. Kështu ajo do të shtypura ajo jashtë në ekran. Kjo duket si ajo është një e keqe gjë, por në fakt është do të jetë një të vërtetë gjë e mirë, si ne do të shih kur flasim për Mjete Zhvillimi PHP, sepse kjo do të thotë që ne mund të shpërndaj PHP dhe HTML. Ne mund t'i përdorë ato së bashku për të krijojë një web faqe më dinamike. Por më shumë se në video mbi web zhvillim PHP. Pra, çfarë është sintaksa e PHP? Kjo është ajo që kjo video është mbi të gjitha. Le të flasim për këtë. Pra, për të filluar, variablave. Variablat PHP ekzistojnë. Nuk janë vetëm dy të mëdha dallimet nga C. E para është se nuk ka asnjë lloj Specifier. Ne nuk duhet të them int, char, noton, të gjitha këto gjëra. Ne nuk duhet të bëjmë atë më. PHP është një gjuhë moderne. Ajo mund të kuptoj se çfarë ju jeni duke u përpjekur për të bërë ose të bëjë një më të mirë me mend se si për atë që ju jeni duke u përpjekur për të bërë. Pra, kjo është shumë e bukur. Gjëja tjetër është se të gjitha variabël Emrat duhet të fillojë me një shenjë dollar. Kjo është vetëm diçka për të marrë të përdoret për të. Është pak e çuditshme, sepse është në mënyrë që PHP mund të kuptoni çfarë është një ndryshore dhe çfarë nuk është. Pra, çdo emër ndryshueshme fillon me një shenjë dollar. Pra në C mund të themi diçka si ky, int x = 54. Ne nuk duhet të bëjmë që më në PHP. Ne mund të themi vetëm $ x = 54. Dhe ne mund të themi, për shembull, në C, nëse do të kishim kile-përfshirë .H CS50 header file, mund të themi fraza string = "Kjo është CS50." Ne nuk duhet të bëjmë që në PHP, pse. Ne mund të themi vetëm $ fraza = "Kjo është CS50." Dhe në fakt, varg është tani një ndërtuar në lloj të dhënave në PHP, ose më mirë PHP kupton çfarë është një string është. Është i veçantë nga një grup e karaktereve si ajo është në C. Të gjitha të preferuar Deklaratat e kushtëzuara nga C janë ende në dispozicion për ju për të përdorur. Pra, nuk ka tranzicion i madh atje. Ne mund say-- ne mund të kemi nëse deklarata si kjo. nëse $ y 43, ose $ z = 15. Pra, kjo është shumë i thjeshtë. Ne mund të kemi nëse dhe tjetër. Ne mund të kemi nëse dhe tjetër në qoftë se. Dhe vini re diçka shumë e bukur këtu, dhe kjo është lloj i një prej atyre Avantazhet e PHP kundrejt C, njoftimin çfarë funksioni ne nuk jeni duke përdorur këtu? Ne jemi duke përdorur == për të krahasuar një ndryshueshme, emri $, për një varg. Ne nuk mund ta bëjë këtë në C, e drejtë? Ne kishim për të përdorur një funksion të quajtur StrComp ose StrEndComp ose ndonjë nga kushërinjtë e saj lidhur. Dhe kështu tashmë shohim këto avantazhe. Ne nuk kemi të bëjmë diçka si budalla apo ndoshta unintuitive si thërrasë një funksion të quajtur StrComp në qoftë se unë vetëm dua të provuar nëse një vlerë e barabartë me një varg. Unë mund të përdorin vetëm të barabartë të barabartë, si unë mund të bëni ndonjë gjë tjetër. Pra, ka një avantazh. Ndonjëherë, nga rruga, ju mund të shih tjetër në qoftë se si një fjalë, elseif. Dhe kjo është në rregull në PHP si. Kështu që ndonjëherë ju mund të shihni se. Kjo nuk është një typo. PHP fakt kupton elseif. Unë nuk e di pse ata vendosi të zbatojë atë, por siç e kemi parë shumë herë të gjithë videot tona deri më tani, ne programuesit duan atë nëse ne mund të bëjmë gjëra të shpejt, kështu duke u shpëtoj prej asaj hapësire është me sa duket një përparësi e madhe. Pra, kjo është nëse dhe elseif. Ne gjithashtu kemi operatorin tresh, pikëpyetje kujtojnë zorrës së trashë, për formën e vërtetë të shkurtër, nëse tjetër ose kushtëzuar bronkial. Dhe me sa duket, në këtë, ajo që ne jemi duke u përpjekur për të bërë këtu është caktojë ndryshueshme Letra $ qoftë e vërtetë apo e rreme, varësi të faktit nëse $ var është një karakter alfabetik. Pra, kjo është shumë e ngjashme me isalpha se ne jemi të njohur me nga C. Kjo është lloj i ekuivalent në PHP. Funksioni është me sa duket quajtur ctype_alpha, por kjo është si të bëjmë atë në PHP. Pra, e gjithë kjo do të jetë është, në qoftë se $ var është një letër, $ letër është e vërtetë. Nëse $ var nuk është një letër, $ letër është e rreme. Ne gjithashtu kemi kaloni deklarata ende. Ne kujtojmë ato nga C, si edhe. Në krye atje, kjo është se si të bëjmë diçka si get int ose të merrni string. Pra, PHP ka që ndërtuar në. Ne nuk kemi nevojë bibliotekën CS50 më. Ne mund të përdorni vetëm linja leximi funksion. Çfarë kjo do të bëni është të shtypura jashtë mesazhit "shtetin tuaj, ju lutem ", dhe pastaj keq shpejtë duke pritur për përdoruesit për të dhëna disa informata. Tani vini re çfarë tjetër ne mund të bëjmë me të kaluar. Nëse e keni përdorur atë më parë, ju mund të kujtojnë se kaloni është i kufizuar shumë e shumë të numrave të plotë dhe karaktere, por tani ne mund të përdorim vargje. Dhe në fakt, deklarata kaloni në PHP është mjaft pak më fleksibël se kushëriri i tij nga C. Sythe. Ashtu si conditionals, të gjithë preferuarat tuaja të vjetra janë ende atje. Ne ketë, ndërsa sythe që numërimin nga 1 deri në 100 në këtë rast. Kemi të bëjmë, ndërsa sythe që numërimi nga 1 deri në 100, dhe ne kemi për sythe që numërimi nga 1 deri në 100. Pra, jo kërcim të madh atje. Sintaksa është goxha shumë të njëjtë, përveç tani ne jemi duke përdorur dollar shenjë e ndryshueshme në vend i deklaruar variablat integer ose diçka si kjo për sportelet tona. Ja ku gjërat bëhen një shumë më mirë se C, edhe pse. Vargjeve. Pra, kujtoj kur ishim flet për C, në mënyrë për ne që të rritet dhe tkurret grupe të informacionit, ne kemi nevojë për të zgjidhur të parazgjedhur për këtë idenë e një listë të lidhura, sepse C vargjeve janë fiksuar në madhësi. Ne nuk mund të tkurret ato. Ne nuk mund të rriten ata. Ne kishim për të rialokuar kujtesës dhe të bëjë të gjithë këtë çmenduri ose të përdorin listat e lidhura, të cilat të marrë një hapësirë ​​mjaft pak më shumë. Por në PHP, vargjeve janë nuk fiksuar në madhësi më. Ata mund të rriten dhe ata mund të tkurret. Pra, përsëri, këto 20 vjet që ka ekzistuar midis lirimin e parë e C dhe PHP parë lirimin, ne kemi vendosur që, ju e dini, ajo do të jetë me të vërtetë i madh në qoftë se ne mund të bëjmë këtë. Dhe kështu që ne kemi zbatuar këtë. Pra vargjeve PHP nuk janë të fiksuara në madhësia, dhe për shkak se nuk ka të vërtetë PHP kanë programues front-ballafaqohet nocionet e llojeve, ne mund të përzierje lloje të të dhënave në vargjeve tona, too. Pra, ne nuk duhet të përdorin të gjitha integers ose të gjitha pikat e lundrues, ne mund të kemi një përzierje e të gjitha lloje të ndryshme në një grup të vetëm. Deklaruar një grup është shumë i thjeshtë. Është vetëm si çdo variabël tjetër. $ Nums = grup (1, 2, 3, 4), array duke qenë një funksion që është ndërtuar në PHP që do të krijojë një rrjet për ju. Kjo krijon një grup prej katër vlerave, Numrat në këtë rast, i quajtur Nums $. Dhe ka më shumë se një mënyrë për të bërë atë. Dhe ne jemi duke shkuar për shohin këtë shumë në PHP. PHP është zhvilluar nga shumë të ndryshme njerëzit dhe rritet dhe rritet dhe rritet. Ka zakonisht jo vetëm dy ose Tre mënyra për të bërë diçka në PHP, ka zakonisht si 10 ose 20. Këtu është vetëm një tjetër të përbashkët mënyrë për të deklaruar një grup. $ Nums = katrore kllapa 1, 2, 3, 4. Pra, kjo është lloj i ngjashëm me kënd C br-- simbol kaçurrel Braçe, në vend. $ - ose ajo do të jetë Nums INT katror kllapa është e barabartë me mbajtëse kaçurrel 1, 2, 3, 4. Në PHP është Nums $ = katror kllapa 1, 2, 3, 4. Por të dy këto shembuj këtu më jep mua një grup i katër në këtë rast integers. Çka nëse unë dua të litar diçka në tani? Edhe unë mund të them vetëm $ Nums 4, e cila përsëri, ne jemi ende duke numëruar nga 0 këtu në PHP, do të jetë i pesti element i vektorit. Unë mund të them vetëm se. Unë nuk jam duke shkuar për të vuajnë një Seg faji, sepse array im është i drejtë do të rritet për të akomoduar atë. Kjo është shumë e bukur, e drejtë? Dhe në fakt, unë nuk kam nevojë as për të specifikojë ku unë dua të vënë atë. Unë mund të them vetëm këtë dhe vetëm litar atë të drejtë deri në fund, ose unë mund edhe vetëm thonë Nums $ 20 ose 1,000. Kjo nuk ka rëndësi. Është ende vetëm do të litar atë të drejtë deri në fund. Kështu që unë mund të rritet, dhe as-- ne jemi nuk do ta mbulojë atë në këtu, por unë mund të ngjitur ose shirrita elemente nga array si dhe, dhe array do të tkurret për të akomoduar që tani mungojnë ose bosh hapësirë. Nuk është një tjetër mënyrë për të litar diçka mbi një rrjet, i cili është një funksion i quajtur array_push. Pra, përsëri, vetëm kjo ideja e të qënit në gjendje të bëjë gjëra shumë mënyra të ndryshme. Pra, ne kemi parë tri mënyra të ndryshme tani në litar një element tjetër në një rrjet. Pra, kjo shton një tjetër element me fundin e vektorit Nums $. Dhe ne mund të përzierje deri lloje të të dhënave tona. Kështu që unë mund të ketë një grup të mos 1, 2, 3, 4, por 1, e vërtetë, 3, 4, ku vërtetë është një Boolean, dhe pastaj në qoftë se unë dua të litar në një tjetër element për këtë grup, ndoshta një varg, string "pesë" Unë mund ta bëjë këtë. Dhe tani array ime do jetë 1, e vërtetë, 3, 4, pesë. Fjala pesë, jo numër i plotë 5. Pra, një shumë e fleksibilitetit atje. Fleksibiliteti merr edhe më të mirë, edhe pse, sepse PHP ka mbështetje për diçka quajtur një koleksion asociative. Dhe ne lloj biseduar paksa Vargjeve për asociative në C në kontekstin e tabelave hash, sepse çfarë vargjeve asociative janë me të vërtetë të gjithë për të janë duke bërë çelës mappings palë vlerë. Dhe në këtë rast, në qoftë se keys-- ne jemi të njohur me vargjeve nga C, çelësat janë numrat e Indeksi. 0, 1, 2, 3. Dhe vlerat janë ato që ne gjejmë se array 0, array 1, array 2, dhe kështu me radhë. Pra, çelësat janë të indekseve, dhe vlerat janë ajo që është në atë vend array, specifikuar nga ky indeks. Por në PHP, ne nuk kemi për të bërë këtë Nocioni i grup 0, 1 grup, array 2 më. Ne tani mund të përdorin fjalë aktuale në hartë çelësat për vlerat. Dhe kështu që unë mund të them diçka si kjo. Unë mund të krijojë një rrjet duke përdorur Sintaksa katror kllapa si më poshtë. $ pizzas = kllapa katrore "djathë" dhe pastaj ky lloj i shigjetë simbol të dyfishtë, 8.99 ", spec djegës," shigjetë 10.99-- 9,99, dhe kështu me radhë. Dhe kështu që çfarë po ndodh këtu? Çfarë jam unë në fakt duke bërë? Unë jam duke krijuar Planifikime të çelësit palë vlerë. Pra, në vend të thënë, për shembull, pizzas 0, copa 1, 2 pizzas, Unë tani mund të them pizzas djathë, pizzas spec djegës, dhe i referohen vlerave të lidhur me to. Kështu që këtu janë çelësat tanë në të gjelbër. Djathë, spec djegës, perime, mish pule buall. Këtu është shigjeta që e bën kjo mapping kyç palë vlerë. Dhe pastaj këtu janë vlerat në atë vend array. Pra, kjo është si duke thënë koleksion 0 është e barabartë me 8.99. Çelësi është 0. Vlera është 8.99. Unë tani mund të them djathë grup, ose në këtë rast pizzas djathë, djathë është çelësi, dhe ajo që unë gjej në pizzas djathë është 8.99. Kjo është vlera që unë gjej atje. Kështu që unë mund të them gjëra të tilla si. djathë pica $ = 7.99. Thonë se unë jam i të paturit e një shitje. Unë dua dis-- unë dua të bjerë çmimi i pica djathë. Ose unë mund të përdorni perime pica si pjese e nje gjendjeje, ose unë mund të shtoni një element të ri për tim grup, ashtu si unë mund të bëjë më parë. Unë mund të shtoni një element të ri për këtë array associative me kyç "proshutë" dhe vlera 13.49. Por ky lloj paraqet një problem, në qoftë se ju mendoni rreth saj për një të dytë. Si do të iterate nëpër këtë grup? E drejtë? Në C, ne do të kemi vetëm një për lak, në mënyrë tipike, që do të drejtuar nga 0 me Madhësia e vektorit minus 1. Array ka elemente n ne te, The tregues vlefshme janë 0 deri n minus 1. Pra, ne mund të përdorni një për lak në hap përmes çdo element të vetëm. Por kjo nuk është e vërtetë më, e drejtë rasti? Tani ku ne kemi vlerë çift kyç mappings ku çelësat janë fjalët, si nuk kemi iterate mbi të gjitha fjalët? E pra, për fat të mirë, PHP ka një mënyrë për t'u marrë me këtë shumë, dhe kështu ne do të hidhen përsëri të sythe për një të dytë për të futur një lloj i katërt i lak që ekziston në PHP quajtur një lak foreach. Dhe çfarë një lak foreach nuk është kjo është në thelb e njëjta ide. Ju mund të përdorni atë për çdo lloj të vektorit. Por kjo është në thelb njëjtën ide si një për lak, përveç në vend të përdorimit numrat e Indeksi, ju vetëm kanë këtë sintaksë pazakontë ku ju e quani çdo element të vetëm një emër për qëllime të këtij lak. Pra, në këtë rast, foreach ($ array si $ çelës). Në thelb, si ai koment shënime, brenda atij lak foreach, ajo do të shkojë mbi çdo të vetme element $ array, e cila është në mënyrë tipike do të jetë një grup associative, por mund të vërtetë të jetë çdo lloj grup që ju doni në PHP. Dhe çdo herë që në një për lak ju fuqi kanë thënë se $ array kllapa katrore $ unë, ju mund të them vetëm $ kyç. Kështu që $ kyç të bëhet një alias për çdo Indeksi i shoqeruar tuaj PHP grup, dhe kështu që ju mund ta përdorni atë si kjo. Kështu për shembull, ne kemi tani mori pizzas array tonë. Unë e kam lloj i tucked atë në këndin atje kështu që ne mund ta përdorin atë për të bërë një shembull të shpejtë. Nëse unë them foreach ($ pizzas si $ pica), mirë, çfarë po ndodh? E pra, unë jam duke shkuar për të iterate nëpër çdo element i vetëm i pizzas array $, dhe duke bërë këtë, unë jam duke shkuar për të thirrur çdo element, kur unë jam brenda e trupit të cilat për lak, $ pica. Pra, kjo është lloj i një qëndrim-në, kujtojnë, se $ pica është një qëndrim-në për të thënë pica $ kllapa katrore $ i në qoftë se ne kemi qenë duke përdorur një për lak, ku ne mund të shkojnë nga $ i = 0 to, në këtë rast, $ i = 3. Në qoftë se ne nuk kemi palë kryesore me vlerë ketu, kjo do të jetë element 0, 1, 2, 3, dhe ne do të përdorim një për lak për të shkuar $ pizzas 0, $ 1, $ pica pica 2, $ pizzas 3. Kështu që tani vetëm $ pica është zëvendësuar për këtë kyç individuale. Pra, çfarë është kjo do të shtypura nga? Unë jam shtypjen nga $ pica. Çfarë jam unë do të gjej at-- në qoftë se unë të shtypura nga $ pizzas, $ unë? E drejtë? Në qoftë se unë jam duke shkuar për të shkruar elementi ith i pizzas, çfarë jam unë do të shtypura? Unë jam duke shkuar për të shtypur jashtë Vlerat në atë vend, apo jo? Ashtu si në qoftë se ne ishim duke bërë kjo në kontekstin e C, ne zakonisht nuk e përdorin iterator tonë ndryshueshme, int i = 0, i është më pak se 3, i ++, për të shtypur nga 0, 1, 2, 3. Ne jemi shtypjen nga array 0, array 1, array 2, 3 array. Dhe kështu ajo që kjo kopje jashtë është kjo. Kjo është lista e çmimeve. 8.99, 9.99, 10.99, 11.99. Tani një shënim të shpejtë këtu. Një lak foreach nuk do të shtypura nga gjërat në rregull. Kjo nuk është e garantuar. Kjo zakonisht e bën. Kjo është zakonisht në bazë të rendit në të cilat elementet janë shtuar në grup, kështu që vetëm të mbajnë këtë në mendje. Ajo nuk mund të jetë në rregull. Por një lak foreach do të iterate nëpër çdo element të vetme e array në fjalë. Në këtë rast, përsëri, se array është $ pizzas. Unë mund të ndryshojë sintaksë, edhe pse, në qoftë se Unë dua si çelësin dhe vlerën. Në vend të thënë pizzas $ si $ pica, unë mund të them këtë. Dhe në qoftë se ju shikoni në atë që unë kam theksuara në të gjelbër këtu, kjo duket si një kyç hartës palë vlerë. Dhe kështu që nëse ju, duke filluar edhe në qoftë se ju nuk jeni plotësisht i sigurt se çfarë do të bëjë, ju mund ndoshta me mend se $ klasës së parë do të jetë çelësi në këtë rast dhe çmimi $ do të jetë vlera. Kështu që unë jam duke zëvendësuar tani çdo element prej $ pizzas si një palë e vlerës kyç, dhe tani unë mund t'i referohet në kyçe dhe vlera, e cila mund të jetë në dispozicion, për shembull, si më poshtë. "Një e tërë", - kjo është një shumë e shtypjen ndodh here-- "në tërësi" klasës së parë "Pizza kushton $" çmimin, dhe pastaj Unë të shtypura nga një periudhë dhe një n backslash. Deri tani, njoftimi përsëri unë të kenë qasje në një çelës, $ klasës së parë, dhe një vlerë, çmim $. Kështu që mund të ju me mend se çfarë ky do të shtypura nga? Nuk është një shumë e deklaratave të shtypura, por ka vetëm një backslash n, kështu ajo do të shkruar diçka në një entire-- në një linjë të vetme të kodit. Në qoftë se unë mund t'i referohet kyçe dhe vlera, atëherë tani, në vend të vetëm duke qenë në gjendje të shtypura nga çmimet, Unë mund të shtypura nga diçka si kjo. "Një e tërë pica djathë kushton 8,99 $." Dhe tani unë jam duke përdorur të gjitha të keys-- djathë, spec djegës, perime, buall chicken-- dhe vlerat. 8.99, 9.99, 10.99, 11.99 Pra kjo është vetëm një mënyrë të ndryshme për të bërë një lak foreach që në vend të vetëm duke i dhënë juve akses të vlerave, ajo vetëm jep ju, duke filluar kjo ju jep qasje në çelësat dhe vlerat. Pra, shtypjen informacion. Unë e kam bërë tashmë atë një çift të mënyra të ndryshme, ju mund të keni vënë re. Të dy funksione ne kemi kryesisht parë janë të shtypura dhe jehonë. Dhe për shumë e shumë të gjitha qëllimet dhe qëllime, ata janë të njëjtë. They're-- ka një shumë delikate Dallimi që nuk është edhe vlerë duke marrë në, por në thelb kudo ju mund të përdorni të shtypura ju ndoshta mund të përdorni jehonë si. Dhe kjo nuk është vetëm dy të. PHP ka një shumë të ndryshme mënyra për të shtypur gjëra jashtë, dhe ajo gjithashtu ka mënyra për të integruar Variablat në mes të vargut. Pra kujtojnë nga C, a mbani mend se çfarë funksioni ne mund të përdorim për të zëvendësuar variablat në gjërat që ne duam të shtypura jashtë? Ju ndoshta përdorni këtë funksionojë mjaft shumë. printf, e drejtë? Pra, kjo është ajo që kemi pasur më parë brenda e kontekstit të lak foreach tonë. Ne kishim këto pesë deklarata të veçanta të shtypura, sepse kjo ishte e vetmja mënyrë unë vërtetë e dinte në atë kohë si për të shtypur mesazhe. Unë nuk e di se si për të integruar $ ndryshueshme klasës së parë në kodin tim PHP. E pra, në qoftë se unë vetëm të marrë një guess egër, printf, ai në fakt do të kishte punuar. printf është një funksion që unë mund të përdorni në PHP, ashtu si unë mund ta përdorin atë në C. Dhe kështu që diçka si kjo, printf, përsëri, ne jemi të njohur me atë. I pari% s është zëvendësuar me vlerën e $ klasës së parë. E dyta% s është zëvendësuar me vlerën e çmimit $. Dhe kështu që unë jam interpellating, e cila është vetëm një mënyrë e sofistikuar i thënë se unë jam i fërkimit Variablat në atë vend. Kështu që unë jam mbylljen në $ klasës së parë ku kuqe% s është dhe çmimi $ ku blu% s është, dhe pastaj unë do të merrni mesazhin, "Një e tërë pica djathë kushton 8,99 $." Jo vetmja mënyrë që unë mund të bëj atë, edhe pse. Ndoshta unë do të duan të përdorin këtë metodë. Kjo është në fakt ajo është më së shpeshti quajtur interpelancën ndryshueshme. Unë mund të përdorin një jehonë. Unë mund të përdorin një të shtypura shumë, si ne do të shohim. Por çfarë po ndodh këtu? Para së gjithash, unë duhet të shpëtuar shenjën e dollarit. Sepse mos harroni, kur ishim në fakt shtypjen nga çmimet e pizzas, Unë kam qenë në fakt formatimin ato si Shifrat monetare me një shenjë dollar. Por, ne jemi duke përdorur shenja të dollarit edhe për të përfaqësuar emrat e ndryshueshme në PHP, dhe në mënyrë të veçantë kur unë jam duke përdorur këtë metodë e kaçurrel ndryshueshme Braçe Metoda interpelanca, kam nevojë për për të shpëtuar shenjë im dollar kështu që nuk ka mendoj se unë jam duke folur për një ndryshore. Ajo do të në fakt, fjalë për fjalë të shkruar një shenjë dollar. Kështu lloj analogji atë për çfarë ju shihni në fund atje. Ajo nuk ka të vërtetë print backslash n, e drejtë? Ajo kopje nga një karakter të ri vijë. Kjo is-- kjo nuk do të print dollar backslash shenjë, ajo do të shtypura nga vetëm një karakter shenjë dollar. Njëjtën ide. Arratisjes sekuenca, çfarë këto gjëra janë quajtur. Por vini re se unë nuk jam duke bërë çdo lloj i% s zëvendësime, Unë jam vetëm fjalë për fjalë mbylljen në këto variabla. Dhe kështu në this-- çfarë do të ndodhte këtu është se vlera e $ topping-- përsëri, vetëm duke e mbajtur me atë që ne kemi qenë duke folur për djathë në mënyrë far-- do të merrni mbyllën në atje. Dhe çmimi $ do të jetë çdo gjë që është vlerë në pizzas, kllapa katrore, djathë, e cila ishte 8.99. Dhe kështu kjo do të shtypura nga "Një e tërë pica djathë kushton 8,99 $." Dhe si i tha, unë mund të përdorni shtypura këtu në vend të jehonë, dhe funksionalitetin jetë shumë e shumë të njëjtë. Ajo do të shtypura nga të njëjtën gjë. Nuk është një tjetër mënyrë për të bërë atë, dhe kjo është një tjetër avantazh i PHP punuar me vargjet. Ne mund të bëjmë string varg. Ne mund të bëjmë këtë në C, gjithashtu, duke përdorur një funksion të quajtur strcat, por prapë, ne kishim për të telefononi funksionet ndara. Ishte kjo rrëmujë e tërë për të bërë. Ne kishim për kile-përfshirë string. Kjo ishte një prodhim, e drejtë? Por tani unë mund të përdorni vetëm këtë operator dot të lidh vargje së bashku. Kështu që unë jam concatenating "tërësi" dhe atëherë çfarëdo vlera e $ klasës së parë është, dhe pastaj një tjetër string, "kostot pica $" dhe pastaj concatenating çfarëdo vlera e çmimit $ është, dhe pastaj në fund unë jam i tacking në periudhë backslash n. Dhe kështu kjo do të shtypura nga "një e tërë" - përsëri, në qoftë se ne jemi duke folur për të parë element i kësaj array-- Pizzas "Një e tërë pica djathë kushton 8,99 $." Periudha, backslash n, përsëri, me klasës së parë $ dhe $ çmimi zëvendësuese për atë që kishim specifikuar në foreach tonë loop si kyç hartës palë vlerë. PHP mund të trajtojë funksionet. Funksionet ishin lloj i integrale në C, siç e pamë. Si variabla, ne nuk kemi nevojë të të specifikojë llojin e kthimit të funksionit, për shkak se ajo nuk ka të vërtetë rëndësi. Dhe ne nuk do të specifikojë Llojet e të dhënave të çdo parametrave, sepse ata nuk e bëjnë me të vërtetë çështje, siç kemi parë në PHP. Çdo funksion është futur me fjalen funksion. Kjo është se si ne të tregojnë se PHP ajo që ne jemi duke folur rreth është një funksion. Dhe ne nuk duhet të merren me kryesore në të gjitha, sepse përkthyesi, PHP përkthyesi, punon nga lart poshtë, pavarësisht. Nëse ajo e sheh se ju mund të bëni një telefonatë funksion, ajo do të shkoni gjeni thirrjen funksion, edhe nëse ajo vjen më vonë. Por kjo do të lexoni nga lart fund, kështu që ne nuk kemi nevojë të specifikojë, këtu është ajo ku ju filloni. Ju filloni on line 1 e juaj PHP dhe të punojnë poshtë nga atje. Kështu që këtu është se si ne do të krijojë një funksion të quajtur hard_square. Ajo me sa duket merr një parametër, që unë jam duke e quajtur $ x. Ky funksion është i komplikuar vetëm për të ilustruar gjëra të ndryshme. Ne ende kemi vlera të kthimit. Unë jam duke përdorur një për lak këtu. Por kjo është në thelb vetëm, atë që kjo arrin në është vetëm $ x kohët $ x. Ajo që unë jam duke bërë në fakt është vetëm duke shtuar x për x 0 herë ose $ x për të zero kohët $ x. Por kjo është në mënyrë efektive saktësisht e njëjtë si shumëzuar $ x herë $ x. Unë ende mund të kthehen një vlerë, në këtë $ rezultat rast, dhe unë kam bërë një funksion në PHP. Ja se si ju mund të përdorni atë në kontekst. Kështu që ndoshta unë jam në brendësi të një skedar PHP. Vini re në blu atje se Unë e kam përdorur përndarësit mia PHP, kllapa kënd pikëpyetje php. Në mes atyre janë të gjithë të PHP që unë dua të shkruaj. Kështu që unë jam duke shkuar me sa duket për të get-- Unë jam duke shkuar për të menjëhershëm të përdoruesit për të më jepni një numër, dyqan që ndryshueshme, dyqan në atë variabël $ x, çdo gjë që ata më dha. Atëherë unë jam duke shkuar për echo hard_square e kësaj vlere, dhe me sa duket do në gozhdë në një linjë të re si edhe, dhe pastaj më vonë unë do të saktësimit të funksionit hard_square kështu që kur kam bërë thirrje për hard_square, ai e di se çfarë jam duke folur rreth. Tani, unë mund të bëj diçka si kjo. Kjo është pak më ndryshe. Është pothuajse saktësisht të njëjtë si ajo që pamë më parë, përveç në vend të thënë vetëm $ x atje si parametri hard_square, Unë jam duke thënë $ x = 10. Pra, ky është një shembull i programimit mbrojtëse, ruajtjen programet tuaja kundër përdoruesit me qëllim të keq. Kjo është një mënyrë për të bërë disa gabime kontrolluar se ne nuk ka të vërtetë kanë si një opsion në C. Ne kurrë nuk mund të të përcaktojë vlerën e parazgjedhur të diçkaje. Ne gjithmonë kishte për të kontrolluar nëse, për shembull, nëse kemi bërë një thirrje për të getString, ajo ishte më e përshtatshme në qoftë se menjëherë pas ne kontrolluar se, ne kontrolluar nëse vargun që përdoruesi na dha nuk është e barabartë me null, sepse ne nuk duam të fillojë duke punuar me një varg null. Këtu, kjo është një mënyrë për të mbrojtur kundër kësaj. Nëse shfrytëzuesi nuk na japin diçka disi, çfarë do të bëjmë? E pra, ne do të themi vetëm çfarëdo ata nuk na japin, ne jemi vetëm do të vihet në prizë 10 në vend. Pra, nëse ata nuk na japin një vlerë, vetëm përdorni 10 by default. Dhe kështu këtu, vëreni se unë jam duke e bërë një thirrje për hard_square, por nuk ka asnjë të shpejtë për përdoruesit, e drejtë? Unë jam vetëm duke bërë një telefonatë bosh. Por funksioni im hard_square është në pritje të një parametër. Çfarë është kjo do të shtypura nga? Ajo do të shtypura nga 100, e drejtë? Sepse përdoruesi nuk ka më jep asgjë. Dhe kështu që unë jam vetëm duke shkuar për të marrë se 10-- 10 është vlera e parazgjedhur. Dhe kështu kjo do të shtypura nga 100 në linjën e vet. PHP fotografi nuk duhet të të jetë vetëm një file të vetëm. Ju mund të kombinoni fotografi të shumta së bashku, ashtu si ju mund të në C. Mënyra ne e bëmë atë në C është zakonisht për të bërë një # Include për të marrë fotografi header nxorrën në. Ne nuk e bëjmë këtë në PHP. Ne bëjmë diçka të quajtur require_once. Dhe pastaj nuk ka kjo e tërë gjë, çfarë është kjo __dir__? Kjo është vetëm një të veçantë ndryshueshme, ose konstante të veçantë, me të vërtetë, kjo specifikon çfarë Lista juaj e tanishme është. Dhe kështu ajo do të duken në directory tuaj të tanishme për një skedar të quajtur cs50.php në këtë shembull këtu, dhe ajo do të rrinë këtë dosje në krye të programit tuaj PHP, duke supozuar që ju vënë nevojë dikur vijë në krye të dosjes tuaj PHP. Pra, PHP është përdorur kryesisht, por nuk përdoret ekskluzivisht, si një gjuhë për programimin e web-bazuar. Kjo është me të vërtetë se si ajo erdhi në jetë. Por kjo është një e plotë gjuhës, siç e kemi parë. Ne kemi parë shumë e shumë të gjitha gjërat që ajo mund të bëjë që janë të ngjashme me C, dhe kjo mund të bëjë një dreq e shumë më tepër se kaq. Por për shkak se ajo është një gjuhë e plotë dhe ne mund të bëni komandën programe linjë në të. Ne mund të drejtuar programet command line. E gjithë kjo është e nevojshme për të drejtuar një komandë Programi linjë që është shkruar në PHP është se ju keni një përkthyes PHP. Pra, kjo është lloj i ngjashëm me të paturit e një përpilues në sistemin tuaj në qoftë se ju doni të përpiloni kodin tuaj C për ta kthyer atë në fotografi të ekzekutueshme. Ju duhet të keni një përkthyes PHP që ekziston në sistemin tuaj kështu që ju mund të interpretoni PHP fotografi. Duke supozuar se ju bëni, dhe zakonisht ky përkthyes quhet PHP, dhe kjo është bundled zakonisht me më shkarkime apo instalimet e PHP që ju mund të merrni në internet, dhe sigurisht emri i përkthyesit PHP ne kemi në CS50, IDE. Të gjithë ju bëni është të shkruani php skedar. Dhe çfarë programi juaj të do të bëni është ajo e duke shkuar për të drejtuar përmes përkthyesi, është do të injorojnë çdo gjë që është jo në mes fjalë mark-- ose, kënd kllapa pyetje shenjë php, të përndarësit PHP, dhe print it out, dhe ajo do të interpretojë dhe zbatojë Kodi brenda përndarësit tuaj PHP. Pra, le të pop mbi të CS50 IDE dhe kanë një vështrim në disa PHP dosjeve, drejtimin e një çift të PHP fotografi, në Komanda Line Interface i CS50 IDE. Pra, këtu ne jemi në CS50 IDE, dhe unë kam marrë guximin e hapjes së një skedar të quajtur hello1.php. Dhe me sa duket, përmbajtja e këtij Dosja janë vetëm përndarësit PHP atje, dhe në mes, echo ("hello, bota"). Ky është një program shumë e thjeshtë PHP. Unë jam vetëm do të lëvizni poshtë në dritaren time terminal këtu, dhe unë jam duke shkuar për të tipit php hello1.php, hit enter. Përshendetje Botë. Kjo është ndoshta ajo që ne ishim pritur që ajo të bëjë, apo jo? Le të ngjitemi menjëherë dhe ta tjetër shikoni në një program. hello2.php. Shumë e shumë të njëjtën gjë, jo shumë po ndodh këtu. Këtë herë, edhe pse, unë jam duke shkuar për të nxitur përdoruesit të më jepni emrat e tyre. Unë jam duke përdorur këtë funksion linja leximi përsëri. Emri $ = linja leximi. Kjo është e shpejtë: "Cili është emri yt?" Me sa duket unë jam shtypje ajo në linjën e vet. Dhe pastaj, kështu vija poshtë që do të jetë i shpejtë ku përdoruesi mund të hyjë në emrin e tyre. Dhe atëherë unë jam duke përdorur një grimë të vogël e Interpelanca e ndryshueshme këtu on line 3 të shtypura nga "hello" dhe çfarëdo lloje përdorues. Pra, kjo është analoge me thënë: Përshëndetje, presje,% s në qoftë se ne ishim duke përdorur printf në C. Pra, le të shkojë dhe të interpretojnë këtë program. Pra, përsëri, unë do të lëvizni poshtë në dritaren time terminal. hello2.php php. Si e ke emrin? Doug. Përshëndetje, Doug. Unë gjithashtu kanë një tjetër file i quajtur hello3.php. Unë jam duke shkuar për të pastruar tim Ekran me Kontrollit L, dhe unë jam duke shkuar për të ekzekutuar atë. Si e ke emrin? Doug. Përshëndetje, Doug. Pra, sjellja është identike me hello2.php, por pse është hello3.php? E pra, këtu është dallimi. Në këtë rast, njoftimi që on line 1 këtu, Kam diçka që nuk është në mes të përndarësit PHP. Unë jam vetëm shtypjen out-- ose unë vetëm shtypur: "Cili është emri yt?" Kur PHP përkthyesi sheh këtë, ajo ka asnjë ide se si për të interpretuar atë si PHP, dhe kështu që në vend të dështuar, ajo është vetëm do të fol drejt. Pra, vini re on line 3 tani, thirrjes time për linja leximi, nuk ka më të shpejtë. Unë jam vetëm duke shkuar në fakt to-- kur PHP përkthyesi sheh këtë, ajo do të shtypura nga "Si e ke emrin?" Pastaj ai e sheh, oh, OK, here's-- çdo gjë tjetër do të jetë interpretohet si PHP, kështu kjo është arsyeja pse kjo funksionon. Unë nuk duhet të domosdoshmërisht të shpejtë to-- përdorues brenda linja leximi, Unë vetëm mund të ketë atë jashtë e përndarësit PHP dhe të lejojë përkthyes të vetëm print it out për mua. Pra, ju në fakt nuk kanë vetëm të ketë një sërë përndarësit PHP në programin tuaj. Ju në fakt mund të ketë disa prej tyre, hapjen dhe mbylljen e tyre sipas nevojës. Pra, le të marrin një vështrim në një çift të programeve në CS50 IDE ku ne ilustruar këtë ide të pasurit grupe të shumta të PHP përkufizuar. OK, kështu që unë e kam hapur një fotografi këtu i quajtur add1.php. Dhe vini re çfarë po ndodh këtu. Ashtu si më parë, unë kam një PHP vetme të vendosur të përndarësit. Unë jam duke shkuar për të shtypur jashtë Mesazhi: "Më jepni një numër." Atëherë unë jam duke shkuar për të lexuar një linjë dhe ruajtur atë në $ num1 ndryshueshme. Atëherë unë jam duke shkuar për të shtypur jashtë përsëri. Më jepni një numër të dytë. Lexoni një vijë nga përdoruesit, dyqan çdo gjë që ata shtypur në në $ num2. Shtoni ato së bashku dhe ruajtur atë të rezultojë në një ndryshore të quajtur shuma $, dhe pastaj të shtypura nga se " shuma e këtyre dy numrave është, "dhe pastaj interpelancë atje shuma ndryshueshme $. Pra, le të vetëm të drejtuar këtë përmes përkthyesit për të konfirmuar se kjo është ajo që ne presim. add1.php php. Ju lutem më jepni një numër, 3. Ju lutem më jepni një numër të dytë, 4. Shuma e këtyre dy numrave është 7. Kjo është 3 plus 4. NE RREGULL? Pra, asgjë tmerrësisht i zbukuruar atje. Dhe tani le të hapur add2.php. Këtu, unë kam marrë një çift të PHP përkufizuar vendos atje, apo jo? Lines 1, 3-- linjat e 1 dhe 3 nuk kanë përndarësit PHP. Pra, kur përkthyesi i sheh ata, kjo është vetëm do të nxjerr nga goja saktësisht ajo që unë kam shtypur atje. Pra, kjo është ajo ku unë jam duke bërë të gjithë nxitur tim. Në linjat 2 dhe 4, ne shohim shumë $ njohur? php lloj përndarësit, kështu që këto dy linja janë duke shkuar për të ekzekutuar si PHP. Dhe pastaj në linjë 5, unë kam këtë gjë e pazakontë të drejtë këtu, apo jo? Kjo kllapa kënd pikëpyetje shenjë të barabartë. Unë do të zoom edhe në pak më tej. Ju mund të shihni se kjo është ajo që unë jam duke folur për të drejtë atje, këtë $? =. Ajo rezulton se ajo është aq e zakonshme që arsyeja që ne të hapë një sërë PHP përndarësit është për të shtypur nga një vlerë. Dhe kjo është e gjitha ne jemi duke shkuar për të bërë. Por ka edhe stenografi për atë. $? = Është PHP stenografi për të thënë diçka si $? php echo shuma e num1 dhe num2. Pra, kjo është vetëm një tjetër stenografi për atë. Pra, nëse unë të drejtuar këtë program, add2.php php. Unë do të zoom poshtë pak. Ju lutem më jepni një numër, 4. Ju lutem, jepni një numër të dytë. Dhe pasi që unë nuk e kujdesit të vërtetë në lidhje me Llojet e të dhënave në PHP, unë mund të them 4.8. Shuma e këtyre dy numrave është 8.8. Se funksioni sillet pretty much të njëjtë si ne do të presim, gjithashtu. Dhe unë kam një shumë të hapur këtu i quajtur dice.php. Provoni këtë përsëri. Unë kam një shumë këtu quhet dice1.php, e cila gjithashtu, shih, ka këtë pyetje kllapa kënd shënuar simbol barabartë shenjë në atje, por vini re se në këtë rast unë jam i duke e quajtur rand funksion, e cila si ti mund të presin gjeneron një numër të rastit. "Ti mbështjellë një", dhe ajo do të të llogaritur disa numër të rastit, mod 6 + 1. Kështu që do të më jepni numrin në rangun nga 1 deri ne 6. Mos harroni se mod 6 do të më japësh një numër në intervalin nga 0 në 5, por në qoftë se unë jam duke simuluar rrotullon zare, cila është ajo që unë jam duke bërë këtu, Unë nuk dua këto zare për të shkuar nga 0 në 5, I duam zarin që shkojnë nga 1 deri ne 6. Dhe kështu kjo është një mënyrë për të marrë më në rangun nga 1 deri ne 6. Unë jam duke bërë këtë dy herë. Pra, me sa duket unë jam kodrina dy zare në këtë program. Kështu që unë do të pastruar ekranin tim, dhe unë do të bëj php dice1.php. Ju mbështjellë një 4 dhe një 2. Dhe në qoftë se unë të drejtuar programin përsëri, ju rrokullisi një 5 dhe një 5. Kështu që çdo herë që unë të drejtuar programin, Unë jam marrë numra të ndryshëm, sepse çdo herë që unë bëj kështu, është duke filluar gjatë. Ajo do të gjenerojë një të ri vendosur e numrave të rastit për mua. Pra, nëse ne jemi duke përdorur për të drejtimin e programeve nga C, ne jemi duke përdorur për të shtypur ./ emri i një programi, e drejtë? Kjo është se si ne kemi bërë të gjithë programet tona në C deri tani. Ne mund ta bëjmë këtë në PHP si edhe duke shtuar diçka të quajtur një mesele në krye të dosjes sonë PHP. Unë e di se kjo është lloj i një fjalë pa kuptim. Është e shkurtër për hash zhurmë. Kjo është dy shkronja e parë atje. Mos harroni që ne e quajmë pikë thirrje shpesh një zhurmë në shkenca kompjuterike. Ajo gjithashtu mund të jetë për zhurmë të mprehtë. Ka disa mënyra për të interpretuar atë. Por kjo është në thelb një lloj të veçantë të urdhëroj që PHP përkthyesi e kupton si, oh, unë dua ju për të ekzekutuar këtë program, e cila është me sa duket / user / bin / php, e cila është në fakt ku PHP përkthyesi veçanërisht jeton në sistemin tonë. Pra it's-- çfarë ndodh këtu është përkthyesi kupton, oh, Unë jam duke menduar për të përdorur sa duket në këtë program për të drejtuar këtë fotografi. Dhe kështu që ju lejon për të kaloni mbi hapin e të pasurit për të thënë php something.php. Ka një kapur të tjera ketu, i cili është që, nëse dua programet tona për punojnë siç pritej, ne duhet të bëni diçka të quajtur një ndryshim leje skedar. Dhe ne do të go-- dhe flasim pak pak më shumë për fotografi ndryshime leje në video tonë në MVC, por mjafton të thonë se kjo është ajo që ju duhet të bëni në mënyrë që të bëjë tuaj Php fotografi të ekzekutueshme. Pra, le të marrin një vështrim në këtë si shembulli ynë përfundimtar mbi në CS50 IDE. Kështu që këtu në IDE Unë kam dy fotografi në këtë PHP Lista që nuk duket të jetë quajtur Php. Unë kam një funksion të quajtur add-- Unë kam një skedar të quajtur add3 dhe një file i quajtur dice2. Pra, le të marrin një shpejtë shikoni dhe të hapë add3. Dhe si ju mund të shihni, në fillim e dosjen time unë kam këtë mesele, e drejtë? Kjo pikë shenjë hash thirrje. Tani, ju do të ndoshta vini re se për disa arsye, Unë nuk kam ndonjë sintaksë theksuar më, dhe kjo është ajo që unë aludoi për më herët, e cila ishte se në qoftë se unë nuk e përmendur dosjen time Php, unë nuk kam dobi i sintaksës theksuar më. Kjo skedë është quajtur vetëm add3. Kështu që unë mund të kandidojë atë më vonë në me ./ add3 dhe jo ./ add3.php. Pra reason-- është ende gjobë, ajo është ende e vlefshme PHP, por kjo nuk është sintaksë theksuar, sepse Ky skedar nuk quhet something.php. Ky është i vetmi ndryshim i vërtetë këtu, plus mesele. Pra, le të shohim se çfarë ndodh kur Unë të përpiqet dhe të drejtuar këtë program. ./ Add3, ashtu si unë do të me C. Bash. ./ Leje add3 mohuar. Kjo është ajo që ju do të jeni për të parë nëse ju harroni të përdorni komandën chmod për të ndryshuar lejet e file. Siç rezulton, PHP rregullta fotografi nuk mund të ekzekutohet. Ato mund të interpretohet, por ne jemi duke bërë diçka pak më ndryshe këtu. Ne jemi ekzekutimin e tij. Dhe kështu që unë duhet të shtoni leje e ekzekutimit, chmod a + x për add3. Atëherë unë mund të them ./ add3. Ju lutem, jepni një numër. 5, 6. Shuma e këtyre dy numrave është 11. Në mënyrë të ngjashme, unë kam chmoded tashmë dice2, kështu që unë thjesht mund të shtypni ./ dice2, ju rrokullisi një 1 dhe një 1, ju rrokullisi një 5 dhe një 4, dhe kështu me radhë. Pra, kjo është shumë e shumë Ideja e një sintaksë PHP, e drejtë? Ka shumë për të marrë përmes, unë e di. Por shpresojmë se ju kam parë tani se PHP nuk është me të vërtetë aq të ndryshëm nga C dhe me të vërtetë na jep mundësinë për të marrë gjërat një nivel ose dy. Ne të vërtetë nuk kanë për t'u shqetësuar shumë? Për ne nuk të vërtetë duhet të shqetësohen shumë për detaje të nivelit të ulët ne duhej të shqetësohen për me C, e drejtë? Ne mund të përqëndrohen në të larta sende nivel që PHP na lejon për të bërë dhe për të marrë për dhënë që ajo do të punojë për ne. Pra, kjo na jep mundësinë për tani, tranzicion nga C në PHP, për të bërë programe që janë shumë më të kompleks dhe ndoshta shumë më të fuqishme. Kështu që unë shpresoj se ju keni fun pune me PHP, dhe unë jam Doug Lloyd. Kjo është CS50.