DOUG LLOYD: Felly rydym wedi gwneud llawer o waith yn C, ac C yn 'n sylweddol oera iaith oherwydd ei fod yn rhoi i chi y gallu i ddeifio mewn gwirionedd lefel isel yn eich rhaglenni. Rydym yn cael i wneud pethau fel 'n sylweddol munud fel drin beit unigol o gof. Dwyn i gof bod pwyntyddion 'n sylweddol caniatáu hyblygrwydd hwnnw i ni. Ond bob amser mae angen i ni gael y lefel honno mân-gronyn o fanylion yn ein rhaglenni? Nid yw yn ôl pob tebyg, dde? Ac os ydym yn mynd i gael cyfaddawd rhwng bod yn gallu gwneud iawn, iawn pethau munud ac yn wir, yn wir pethau mawr nad oes rhaid i ni feddwl am, nid oes rhaid i ni i weithredu y syniadau fawr iawn os maent yn barod a adeiladwyd yn i ni, Yn gyffredinol, ar gyfer adeiladu mawr rhaglenni neu brosiectau mawr, yn ôl pob tebyg rydyn ni'n mynd i or- o fod wedi ei adeiladu mwy o bethau iaith mewn i ni, yn hytrach na chael y pethau lefel isel. A dyna lle PHP 'n sylweddol yn dod i mewn. Yn awr, un o'r rhesymau rydym yn addysgu PHP yn CS50 yw ei fod yn ysbrydolwyd drwm gan C. Ac yn wir, yn fy marn i, mae mewn gwirionedd dau Ieithoedd progenitor sy'n yn gyffredin iawn y dyddiau hyn. C a Lisp. Ac maen nhw'n ieithoedd progenitor oherwydd bod pob raglennu modern eraill iaith sydd wedi datblygu ers hynny ei ysbrydoli gan un neu mae'r syntactically arall. PHP yn debyg iawn syntactically i C, tra bod ieithoedd fel y Cynllun, er enghraifft, a oedd yn efallai eich bod wedi clywed am, ei ysbrydoli drwm gan iaith Gelwir Lisp, sydd yn iaith hŷn. Felly y rheswm rydym yn dysgu PHP yn CS50 yw bod, trwy wybod C fel y bôn wrth i chi ei wneud ar hyn o bryd, codi PHP, sy'n rhoi i chi y gallu i wneud pethau ar lefel llawer uwch na C yn ei wneud, nid yw bod llawer o'r rhwystr, oherwydd eich bod eisoes yn cael y Syniad sylfaenol y gystrawen. C wedi bod o gwmpas ers bron i 45 mlynedd yn y fan hon. PHP wedi bod o gwmpas ers tua 20 mlynedd. Ac yn y 25 mlynedd yn y canol, rhaglenwyr benderfynol y byddent yn llawer yn hytrach wedi galluoedd lefel uwch, ac mae'r camgymeriadau a brwydrau o'r 20 mlynedd yn y canol arwain at PHP a ieithoedd modern eraill. PHP yn dewis gwych o iaith ar gyfer meddalwedd bod allow-- am meddalwedd that-- lle rydych yn angen i ni wneud pethau sydd yn C yn gymhleth mewn gwirionedd. Felly, er enghraifft, yn gweithio gyda llinynnau yn C yn gymhleth iawn, oherwydd fel y gwyddom, llinynnau yn C yn wir yn unig araeau o gymeriadau. Nid yw'n fath ddata adeiledig yn. Neu efallai yn fwy sylfaenol, rhywbeth nad oeddem hyd yn oed yn cwmpasu yn C, beth os ydych angen ei wneud rhywfaint o rwydweithio cyfrifiadurol? Iawn? C sydd â'r gallu i wneud hynny, ond mae mor arcane ac mor anodd i wneud mewn gwirionedd. Oni fyddai'n braf pe y Roedd gan iaith, ffordd hawdd adeiledig yn i weithredu rhwydweithio? A PHP yn iaith sy'n gwneud hynny, neu'n hwyluso hynny, yn eithaf ychydig yn fwy. Fel y dywedais, PHP yn hysbrydoli drwm iawn gan C. Mae'r gystrawen yn debyg iawn. Ac felly dylai gobeithio yn gwneud y trosglwyddo o un i'r llall ychydig yn feddalach na'r rhai Efallai ieithoedd eraill fod. I ddechrau ysgrifennu PHP, jyst agor i fyny ffeil gyda'r estyniad ffeil .php. Yn dechnegol nid yw hyn yn ofynnol mewn gwirionedd, ond os ydych am bethau fel cystrawen gan amlygu yn IDE, fel math hwnnw enwau, neu enwau amrywiol, swyddogaethau, eich bod yn gwybod, y geiriau allweddol yr iaith yn cael eu hamlygu mewn lliw penodol, rydych yn gyffredinol am enwi eich ffeiliau gyda estyniad ffeil penodol. Felly rydym wedi enwi ein ffeil gyda .php estyniad, ond yna hefyd gyda PHP, yr holl cod PHP yn ysgrifennu yn y ffeil gael ei hamgáu yn y rhain PHP amffinyddion a welwn yma ar y sgrin. Angle braced? Php i ddechrau. Yna, rydym yn ysgrifennu ein holl PHP cod y mae arnom eisiau yn y canol. Ac wedyn ? bachyn ongl i gau. Os nad ydym yn gwneud hyn, yna beth sy'n mynd i ddigwydd? Nid yw'n mynd i ddamwain. Nid yw'n mynd i 'n sylweddol yn difetha ein rhaglen. Ond nid yw'n mynd i gael yr effaith yr ydym am. Beth sy'n mynd i ddigwydd, mewn gwirionedd, yw bod pan fyddwn yn ceisio rhedeg y rhaglen hon, popeth nid rhwng amffinyddion y rhai yn mynd i gael ei argraffu allan air am air. Nid yw'n mynd i mewn gwirionedd yn gweithredu y cod, mae'n mynd i ychydig ei hargraffu air am air. Nawr, pam yn wir? Felly C yn yr hyn a elwir fel iaith llunio. Mae'n debyg eich bod yn gyfarwydd â y cam o wneud eich rhaglenni, troi'r ffeiliau .c a ffeiliau .h i mewn i cyflawnadwy sengl gyda gwneuthuriad, yn enwedig gan ddefnyddio Chlang fel ein compiler. PHP, fodd bynnag, nid yw'n cael gyfwerth hwn. PHP yn hyn a elwir yn iaith dehongli. A beth mae hynny'n ei olygu? Wel, mae'n golygu nad oes gennym i drosi ein cod ffynhonnell i zeros a rhai ymlaen llaw. Yn hytrach, mae 'na rhaglen, a elwir hefyd yn PHP, sy'n deall PHP a Gall fath o yn ei gwneud yn ar y hedfan. Nid yw hyn yn wir yn union gywir, ond mae'n cyfatebiaeth 'n bert da o'r hyn sy'n digwydd. Mae'n dehongli rhai sero a rhai ar y hedfan. Ac felly os nad yw'n gwybod sut i brosesu rhywbeth, os nad yw'n gwybod sut i proses PHP, mae'n debyg eisiau rhoi hynny testun i mewn 'na, dde? Mae'n debyg y byddwch eisiau rhoi y cod yn yno, hyd yn oed os nad yw'n rhwng PHP-- y amffinyddion PHP. But-- felly nid yw'n mynd ei ddileu ar eich rhan, dim ond ei fod yn mynd i daflu bôn. Felly, mae'n mynd i argraffu allan i'r sgrin. Mae hyn yn ymddangos fel ei fod yn ddrwg peth, ond mewn gwirionedd mae'n mynd i fod yn wirioneddol peth da, fel yr ydym chi helpu gweld pan fyddwn yn sôn am Datblygu gwefan PHP, oherwydd mae'n golygu y gallwn intersperse PHP a HTML. Gallwn eu defnyddio gyda'i gilydd i creu tudalen we yn fwy deinamig. Ond yn fwy am hynny yn y 'n fideo ar datblygu'r we PHP. Felly beth yw cystrawen PHP? Dyna beth y fideo hwn yn gyfle i chi. Gadewch i ni siarad am y peth. Felly, i ddechrau, newidynnau. Newidynnau PHP yn bodoli. Mae dim ond dau fawr gwahaniaethau o C. Y cyntaf yw bod yna dim rhagnodwr math. Nid oes rhaid i ni ddweud int, torgoch, arnofio, holl bethau hynny. Nid oes rhaid i ni wneud hynny anymore. PHP yn iaith fodern. Gall chyfrif i maes beth rydych yn ceisio ei wneud neu wneud orau dyfalu ynghylch yr hyn yr ydych yn ceisio ei wneud. Felly dyna 'n bert' n glws. Y peth arall yw bod yr holl newidyn wedi enwau i ddechrau ag arwydd doler. Dyna dim ond rhywbeth i ddod i arfer â. Mae'n ychydig yn rhyfedd, gan fod 'i' fel y gall PHP deall beth newidyn a beth sydd ddim. Felly pob enw newidyn yn dechrau gyda arwydd doler. Felly, yn C gallem ddweud rhywbeth fel hyn, int x = 54. Nid oes rhaid i ni wneud hynny bellach yn PHP. Gallwn dim ond dweud $ x = 54. A gallem ddweud, er enghraifft, yn C, pe baem wedi punt-yn cynnwys y .h CS50 ffeil flaen, gallem ddweud ymadrodd llinyn = "Mae hyn yn CS50." Nid oes rhaid i ni wneud hynny yn PHP, er. Gallwn dim ond dweud $ ymadrodd = "Mae hyn yn CS50." Ac yn wir, llinyn yn awr adeiledig yn fath data yn PHP, neu yn hytrach PHP yn deall beth llinyn yn. Mae'n wahân amrywiaeth o gymeriadau fel y mae yn C. Eich holl hoff Datganiadau amodol o C yn dal ar gael i chi eu defnyddio. Felly dim trawsnewidiad mawr yno. Gallwn say-- gallwn gael os yw datganiadau fel hyn. os $ y 43, neu $ z = 15. Felly dyna eithaf syml. Gallwn gael os a arall. Gallwn gael os a arall os. Ac yn sylwi ar rywbeth 'n bert' n glws yma, ac mae hyn yn fath o un o'r rhai manteision o PHP yn erbyn C, rhybudd pa swyddogaeth nid ydym yn defnyddio yma? Rydym yn defnyddio == i gymharu â amrywiol, $ enw, i llinyn. Ni allem wneud hynny yn C, dde? Roedd yn rhaid i ddefnyddio swyddogaeth o'r enw StrComp neu StrEndComp neu unrhyw o'i gefndryd cysylltiedig. Ac felly eisoes rydym yn gweld manteision hyn. Nid oes rhaid i ni wneud rhywbeth fel gwirion neu unintuitive efallai fel galw swyddogaeth o'r enw StrComp os Fi jyst am brofi a yw gwerth yn dychwelyd llinyn. Gallwn i jyst arfer hafal hafal, fel y gallwn i wneud unrhyw beth arall. Felly mae yna fantais. Weithiau, gyda llaw, efallai y byddwch gweld arall os fel un gair, elseif. Ac mae hynny'n iawn yn PHP yn ogystal. Felly weithiau efallai y byddwch yn gweld bod. Dyw hi ddim yn typo. PHP mewn gwirionedd yn deall elseif. Nid wyf yn gwybod pam eu bod penderfynu gweithredu hynny, ond fel yr ydym wedi gweld sawl gwaith drwy gydol ein fideos hyd yn hyn, rydym rhaglenwyr wrth fy modd os gallwn wneud pethau yn gyflym, felly cael gwared ar y gofod yn fantais fawr yn ôl pob golwg. Felly dyna os a elseif. Mae gennym hefyd y gweithredwr deiran, dwyn i gof colon marc cwestiwn, am ffurflen fer 'n sylweddol os arall neu ganghennog amodol. Ac i bob golwg, yn hyn, yr hyn yr ydym yn ceisio ei wneud yma yn cael ei aseinio y newidyn $ Llythyr naill ai'n gywir neu'n anghywir, gan ddibynnu a $ var yn gymeriad yr wyddor. Felly, mae hyn yn eithaf tebyg i isalpha ein bod yn gyfarwydd â oddi wrth C. Mae hyn yn fath o gyfwerth yn PHP. Mae'r swyddogaeth yn ôl pob golwg Gelwir ctype_alpha, ond dyna sut yr ydym yn ei wneud yn PHP. Felly, mae hyn i gyd yn mynd i fod yn, os $ Var yn llythyr, $ llythyr yn wir. Os nad yw $ var yn llythyr, $ Llythyr yn ffug. Mae gennym hefyd ddatganiadau switsh o hyd. Rydym yn galw i gof y rhai o C hefyd. Ar y brig yno, dyna sut rydym yn ei wneud rhywbeth fel get int neu gael linyn. Felly PHP wedi bod a adeiladwyd yn. Nid oes angen y llyfrgell CS50 Rydym anymore. Gallwn jyst arfer 'r readline swyddogaeth. Beth sy'n mynd i wneud yw argraffu y neges, "Mae eich cyflwr, os gwelwch yn dda, "ac yna amrantu brydlon aros i'r defnyddiwr i fewnbynnu rhywfaint o wybodaeth. Nawr sylwi ar beth arall gallwn ei wneud gyda switsh. Os ydych chi wedi ei ddefnyddio o'r blaen, Efallai y byddwch yn cofio bod newid wedi'i gyfyngu 'n bert lawer i gyfanrifau a cymeriadau, ond erbyn hyn gallwn ddefnyddio llinynnau. Ac yn wir, y datganiad switsh yn PHP yn eithaf ychydig yn fwy hyblyg na'i gefnder o C. Dolenni. Yn union fel conditionals, i gyd eich hen ffefrynnau yn dal i fod yno. Mae gennym tra ddolenni sy'n cyfrif 1-100 yn yr achos hwn. Rydym wedi gwneud tra dolenni sy'n cyfrif 1-100, ac mae gennym i ddolenni sy'n cyfrif 1-100. Felly nid oes naid fawr yno. Mae'r gystrawen yn eithaf yn union yr un fath, ac eithrio yn awr rydym yn ei ddefnyddio newidyn arwydd doler yn lle hynny o ddatgan newidynnau cyfanrif neu rhywbeth fel 'na ar gyfer ein cownteri. Dyma lle mae pethau'n cael llawer gwell na C, er. Araeau. Felly cofio pan oeddem siarad am C, er mwyn i ni dyfu ac yn crebachu set o wybodaeth, roedd angen i ddidoli o fethu â chydymffurfio i'r syniad hwn o restr cysylltiedig, oherwydd araeau C yn sefydlog o ran maint. Ni allem eu crebachu. Ni allem eu tyfu. Roedd yn rhaid i ailddyrannu cof ac yn gwneud yr holl gwallgofrwydd hwn neu ddefnyddio rhestrau cysylltiedig, a oedd yn cymryd cryn le ychydig yn fwy. Ond yn PHP, araeau yn Nid yw sefydlog o ran maint anymore. Gallant dyfu a gallant crebachu. Felly unwaith eto, mae'r rhain yn 20 mlynedd a oedd yn bodoli rhwng y datganiad cyntaf o C a'r PHP datganiad cyntaf, rydym yn penderfynu eich bod, yn gwybod, byddai'n wirioneddol wych pe gallem wneud hyn. Ac felly rydym yn rhoi ar waith yma. Felly nid araeau PHP yn sefydlog yn maint, ac oherwydd nad PHP yn gwneud 'n sylweddol gael rhaglennydd blaen-wynebu syniadau o fathau, gallwn gymysgu mathau o ddata yn ein araeau, hefyd. Felly, nid oes gennym hyd yn oed i ddefnyddio pob cyfanrifau neu'r holl bwyntiau fel y bo'r angen, gallwn gael cymysgedd o holl gwahanol fathau mewn amrywiaeth sengl. Datgan amrywiaeth yn eithaf syml. Mae'n union fel unrhyw newidyn arall. $ Nums = array (1, 2, 3, 4), array bod yn swyddogaeth sy'n adeiladu i mewn PHP sy'n yn creu amrywiaeth ar eich cyfer. Mae hyn yn creu amrywiaeth o bedwar gwerthoedd, niferoedd yn yr achos hwn, a elwir yn $ Nums. Ac mae mwy nag un ffordd i wneud hynny. Ac rydym yn mynd i gweld hyn yn llawer yn PHP. PHP wedi cael ei ddatblygu gan lawer o wahanol pobl ac yn tyfu ac yn tyfu ac yn tyfu. Fel arfer, does dim ond dau neu tair ffordd i wneud rhywbeth yn PHP, mae fel arfer yn hoffi 10 neu 20. Dyma 'jyst cyffredin arall ffordd i ddatgan arae. $ Nums = sgwâr braced 1, 2, 3, 4. Felly mae hyn yn fath o debyg i ongl C br-- nodiant Brace cyrliog, yn hytrach. $ - neu a fyddai'n Nums int sgwâr cromfachau hafal Brace cyrliog 1, 2, 3, 4. Yn PHP mae'n $ Nums = sgwâr cromfachau 1, 2, 3, 4. Ond mae'r ddau o'r enghreifftiau hyn yma roi i mi amrywiaeth o bedwar yn yr achos hwn cyfanrifau. Beth os wyf am i dacio rhywbeth ar hyn o bryd? Wel gallaf ddweud $ Nums 4, sy'n unwaith eto, rydym yn dal i gyfrif o 0 yma yn PHP, yn y pumed elfen y rhesi. Gallaf ddweud bod. Dydw i ddim yn mynd i ddioddef GEY fai, oherwydd mae fy array yn unig mynd i dyfu i ddarparu ar gyfer hynny. Dyna 'n bert' n glws, dde? Ac yn wir, nid oes angen i Rwyf hyd yn oed nodi lle yr wyf am ei roi. Gallaf ddweud hyn, a dim ond tac yn iawn ar hyd y diwedd, neu gallwn hyd yn oed yn unig dweud $ Nums 20 neu 1,000. Nid oes llawer o bwys. Mae'n dal i fod yn jyst yn mynd i tac yn iawn ar hyd y diwedd. Felly yr wyf yn gallu tyfu, ac as-- rydym yn ddim yn mynd i orchuddio mewn yma, ond gallaf Splice neu stribed elfennau allan y rhesi, yn ogystal, a bydd yr amrywiaeth crebachu i ddarparu ar y lle yn awr goll neu yn wag. Mae ffordd arall o tac rhywbeth ar amrywiaeth, sydd yn swyddogaeth o'r enw array_push. Felly unwaith eto, dim ond y syniad hwn o fod yn gallu gwneud pethau llawer o wahanol ffyrdd. Felly, rydym wedi gweld tair ffordd wahanol yn awr i dacio elfen arall ar arae. Felly, mae hyn yn ychwanegu elfen arall hyd at ddiwedd y rhesi $ Nums. A gallwn gymysgu i fyny ein fathau o ddata. Er mwyn imi gael amrywiaeth o beidio 1, 2, 3, 4, ond 1, yn wir, 3, 4, lle bo gwir yw Boole, ac yna os wyf am tac ar yr elfen arall at y array, efallai llinyn, y llinyn "pump," Gallwn wneud hynny. Ac yn awr y byddai fy array fod yn 1, yn wir, 3, 4, pump. Mae'r gair pump, nid yw'r cyfanrif 5. Felly, mae llawer o hyblygrwydd yno. Mae hyblygrwydd yn cael hyd yn oed yn well, fodd bynnag, oherwydd PHP wedi cefnogaeth am rywbeth Gelwir amrywiaeth cysylltiadol. Ac rydym fath o siarad yn fras araeau am cysylltiadol yn C yng nghyd-destun tablau hash, gan fod pa araeau cysylltiadol mewn gwirionedd i gyd am yn gwneud allwedd mapiadau gwerth pâr. Ac yn yr achos hwn, mae'r keys-- os rydym yn gyfarwydd â rhesi o C, yr allweddi niferoedd mynegai. 0, 1, 2, 3. Ac mae'r gwerthoedd yn yr hyn yr ydym yn canfod bod array 0, array 1, array 2, ac yn y blaen. Felly yr allweddi yn cael eu mynegeion, ac mae'r gwerthoedd yn yr hyn sydd yn y lleoliad hwnnw array, a nodir gan y mynegai. Ond mewn PHP, nid oes gennym i wneud hyn syniad o amrywiaeth 0, array 1, array 2 anymore. Gallwn yn awr yn defnyddio geiriau go iawn i fapio allweddi i werthoedd. Ac felly y gallwn i ddweud rhywbeth fel hyn. Gallwn greu amrywiaeth gan ddefnyddio'r cystrawen braced sgwâr fel a ganlyn. $ Pizzas = braced sgwâr "Caws" ac yna y math hwn o dwbl nodiant saeth, 8.99, "pepperoni," saeth 10.99-- 9.99, ac yn y blaen. Ac felly yr hyn sy'n digwydd yma? Beth ydw i'n ei wneud mewn gwirionedd? Im 'yn creu mapiadau gwerth pâr allweddol. Felly, yn lle dweud, er enghraifft, pizzas 0, darnau 1, pizzas 2, Erbyn hyn gallaf ddweud pizzas caws, pizzas pepperoni, ac yn cyfeirio at y gwerthoedd gysylltiedig â hwy. Felly dyma yw ein allweddi mewn gwyrdd. Caws, pepperoni, llysiau, cyw iâr byfflo. Dyma 'r saeth sy'n gwneud hwn mapio gwerth pâr allweddol. Ac yna dyma gwerthoedd yn y lleoliad hwnnw array. Felly mae fel dweud array 0 yn dychwelyd 8.99. Yr hyn sy'n allweddol yw 0. Mae'r gwerth yn 8.99. Erbyn hyn gallaf ddweud caws array, neu yn hyn achos caws pizzas, caws yn allweddol, a'r hyn yr wyf yn dod o hyd at caws pizzas yw 8.99. Dyna y gwerth yr wyf yn dod o hyd yno. Felly, yr wyf yn gallu dweud pethau yn hoffi. Caws $ pizza = 7.99. Dweud Rwy'n cael sêl. Rwyf am dis-- Rwyf am i ollwng pris y pizza caws. Neu gallaf ddefnyddio'r llysiau pizza fel rhan o amod, neu gallaf ychwanegu elfen newydd at fy array, yn union fel y gallwn i wneud yn flaenorol. Gallaf ychwanegu elfen newydd i hyn arae cysylltiadol gyda'r allwedd "cig moch" a gwerth 13.49. Ond mae hyn yn cyflwyno math o broblem, os ydych yn meddwl am y peth am eiliad. Sut y byddem yn ailadrodd trwy amrywiaeth hon? Iawn? Yn C, byddem yn unig yn cael ar gyfer dolen, fel arfer, bod Byddai rhedeg o 0 i'r maint y rhesi minws 1. Mae gan y casgliad elfennau n mewn o, y mynegeion dilys yn 0 i n minws 1. Felly, gallem ddefnyddio ar gyfer dolen i gamu trwy bob elfen unigol. Ond nid yw hynny'n wir yn yr achos anymore, dde? Nawr lle mae gennym pâr gwerth allweddol mapiadau lle yr allweddi yn cael eu geiriau, sut rydym yn ailadrodd dros yr holl o'r geiriau? Wel, yn ffodus, PHP wedi yn ffordd i ddelio â hyn hefyd, ac felly byddwn yn neidio yn ôl i dolennau am ail i gyflwyno pedwerydd fath o ddolen sy'n yn bodoli mewn enw PHP dolen foreach. A beth dolen foreach yn ei wneud yw yn y bôn yr un syniad. Gallwch ei ddefnyddio ar gyfer unrhyw fath o amrywiaeth. Ond yn y bôn y un syniad fel ar gyfer dolen, ac eithrio yn hytrach na defnyddio rhifau mynegai, 'ch jyst cael y gystrawen 'n annaearol lle byddwch yn ffonio bob elfen unigol enw at ddibenion y ddolen hon. Felly, yn yr achos hwn, foreach ($ arae â $ allweddol). Yn y bôn, fel bod nodiadau sylwadau, tu mewn y ddolen foreach, mae'n mynd i fynd dros bob un elfen o $ array, sydd fel arfer mynd i fod amrywiaeth cysylltiadol, ond gall mewn gwirionedd fod yn unrhyw fath o amrywiaeth eich bod am yn PHP. A phob tro, wrth mae i ddolen i chi efallai wedi dweud $ array cromfachau sgwâr $ I, fe allech chi jyst dweud $ allweddol. Er mwyn i $ allweddol yn dod yn alias ar gyfer pob mynegai o'ch PHP array cysylltiadol, ac felly y gallwch ei ddefnyddio fel 'na. Felly, er enghraifft, rydym wedi bellach yn cael ein array pizzas. Rydw i wedi fath o guddio ei i mewn i'r gornel yno fel y gallwn ei ddefnyddio i wneud yn enghraifft gyflym. Os wyf yn dweud foreach ($ pizzas fel $ Pizza), yn dda, beth sy'n digwydd? Wel, dw i'n mynd i ailadrodd drwy bob elfen unigol y rhesi $ pizzas, ac wrth wneud hynny, dw i'n mynd i alw pob elfen, pan dwi tu mewn o gorff hynny ar gyfer dolen, $ pizza. Felly dyna fath o sefyll-i-mewn, galw i gof, y $ pizza yn stand-mewn am ddweud $ Pizzas cromfachau sgwâr $ ff pe baem yn defnyddio ar gyfer dolen, lle'r ydym Gallai mynd o $ i = 0 i, yn yr achos hwn, $ Ff = 3. Os nad oedd gennym barau gwerth allweddol yma, byddai hyn yn elfen 0, 1, 2, 3, a byddem yn defnyddio ar gyfer dolen i fynd $ Pizzas 0, $ pizzas 1, $ pizzas 2, $ Pizzas 3. Felly, yn awr yn unig $ pizza yn dirprwyo ar gyfer y allweddol unigol. Felly beth mae hyn yn mynd i argraffu? Dw i'n argraffu $ pizza. Beth ydw i'n mynd i ddod o hyd at-- os wyf yn argraffu $ pizzas, $ i? Iawn? Os ydw i'n mynd i'w hargraffu yr elfen ith o pizzas, beth ydw i'n mynd i argraffu? Rydw i'n mynd i argraffu'r gwerthoedd yn y lleoliad hwnnw, dde? Fel pe baem yn gwneud hyn yng nghyd-destun C, Nid ydym fel arfer yn defnyddio ein iterator amrywiol, int i = 0, fi yn llai na 3, ff ++, i argraffu 0, 1, 2, 3. Rydym yn argraffu array 0, array 1, array 2, array 3. Ac felly beth mae hyn yn argraffu allan yw hyn. Mae'n y rhestr o brisiau. 8.99, 9.99, 10.99, 11.99. Erbyn hyn, mae nodyn hwylus yma. Nid yw dolen foreach yn ei wneud o reidrwydd argraffu pethau mewn trefn. Dyw hi ddim yn gwarantu. Mae fel arfer yn ei wneud. Fel arfer mae'n seiliedig ar y drefn y pa elfennau yn cael eu hychwanegu at y casgliad, felly dim ond yn cadw hynny mewn cof. Efallai na fydd yn mewn trefn. Ond bydd dolen foreach ailadrodd ar draws pob elfen unigol y rhesi o dan sylw. Yn yr achos hwn, unwaith eto, bod amrywiaeth yn $ pizzas. Gallaf newid y gystrawen, fodd bynnag, os Rwyf am i'r allwedd a gwerth. Yn hytrach na dweud $ pizzas fel $ pizza, gallaf ddweud hyn. Ac os ydych yn edrych ar yr hyn yr wyf i wedi mewn gwyrdd yma, mae'n edrych fel mapio gwerth pâr allweddol. Ac felly os you-- hyd yn oed os nad ydych yn hollol siŵr beth mae'n mynd i wneud, mae'n debyg y gallwch ddyfalu bod $ topin yn mynd i fod yn allweddol yn yr achos hwn ac $ Pris yn mynd i fod gwerth. Felly dw i'n amnewid yn awr bob elfen o $ pizzas fel pâr gwerth allweddol, ac yn awr y gallaf gyfeirio at y allweddol ac gwerth, a allai mewn 'n hylaw, er enghraifft, fel a ganlyn. "A cyfan" - mae hyn yn llawer o argraffu mynd ymlaen Yma-- "A cyfan" ychwanegu "pizza costau $" pris, ac yna Rwy'n argraffu cyfnod a slaes n. Felly nawr, rhybudd eto yr wyf yn cael mynediad at allwedd, $ topin, ac mae gwerth, $ pris. Felly, gallwch chi ddyfalu beth mae hyn yn yn mynd i argraffu? Mae llawer o ddatganiadau print, ond dim ond un slaes n, felly mae'n mynd i argraffu rhywbeth ar yn entire-- ar un llinell o god. Os gallaf gyfeirio at yr allwedd a gwerth, ac yna yn awr, yn hytrach na dim ond bod yn gallu argraffu'r prisiau, Gallaf argraffu rhywbeth fel hyn. "Mae pizza caws cyfan yn costio $ 8.99." Ac yn awr rwy'n ei ddefnyddio bob un o'r keys-- caws, pepperoni, llysiau, byfflo chicken-- a'r gwerthoedd. 8.99, 9.99, 10.99, 11.99 Felly bod yn unig ffordd wahanol i wneud dolen foreach bod yn hytrach na jyst roi mynediad i chi i'r gwerthoedd, 'i jyst yn rhoi you-- ei fod yn rhoi i chi mynediad at yr allweddi a gwerthoedd. Felly argraffu gwybodaeth. Rwyf eisoes wedi gwneud hynny ychydig o ffyrdd gwahanol, efallai eich bod wedi sylwi. Roedd y ddwy swyddogaeth rydym wedi bennaf gweld yn argraffu a adlais. Ac ar gyfer 'n bert lawer bob pwrpas a dibenion, eu bod yn union yr un fath. They're-- mae 'na cynnil iawn gwahaniaeth sydd ddim hyd yn oed yn werth mynd i mewn, ond yn y bôn ym mhob man gallwch ddefnyddio print mae'n debyg y gallwch eu defnyddio adleisio hefyd. Ac nid yr unig ddau hynny. PHP wedi llawer o wahanol ffyrdd i argraffu pethau allan, ac mae ganddo hefyd ffyrdd o integreiddio newidynnau i ganol llinyn. Felly cofio o C, a ydych cofio beth swyddogaeth gallwn ei ddefnyddio i gymryd lle newidynnau i mewn i bethau rydym eisiau argraffu? Mae'n debyg eich bod yn defnyddio hyn gweithredu cryn dipyn. printf, dde? Felly, mae hyn yn beth oedd gennym o'r blaen y tu mewn o'r cyd-destun ein dolen foreach. Roedd gennym bump hyn Datganiadau print ar wahân, oherwydd dyna oedd yr unig ffordd rwy'n wir yn gwybod ar y pryd sut i argraffu negeseuon. Nid oeddwn yn gwybod sut i integreiddio'r $ amrywiol topin i mewn i fy cod PHP. Wel, os Fi jyst cymryd dyfalu gwyllt, printf, mae'n mewn gwirionedd byddai wedi gweithio. printf yn swyddogaeth y gallaf eu defnyddio yn PHP, yn union fel y gallaf ddefnyddio mewn C. Ac felly rhywbeth fel hyn, printf, eto, yr ydym yn gyfarwydd â hynny. Y% s cyntaf yn cael ei ddisodli gyda gwerth o $ topin. Mae'r ail% s yn cael ei ddisodli gyda gwerth o $ pris. Ac felly rwy'n interpellating, sydd ychydig yn ffordd ffansi o ddweud fy mod yn glynu y newidynnau i mewn i'r lleoliad. Felly rwy'n plygio mewn $ topin lle mae'r % s coch yn a $ pris lle mae'r% glas s yw, ac yna byddwn yn cael y neges, "Mae pizza caws cyfan yn costio $ 8.99." Nid yn yr unig ffordd y gallaf ei wneud, er. Efallai y byddwn am ddefnyddio'r dull hwn. Mae hyn mewn gwirionedd yr hyn sydd fwyaf cyffredin Gelwir interpellation amrywiol. Gallaf ddefnyddio adlais. Gallwn i ddefnyddio print hefyd, fel y byddwn yn gweld. Ond beth sy'n digwydd yma? Yn gyntaf oll, rhaid i mi ddianc rhag y arwydd ddoler. Oherwydd cofiwch, pan oeddem mewn gwirionedd argraffu allan y prisiau y pizzas, Roeddwn yn mewn gwirionedd yn eu fformatio fel ffigurau ariannol gydag arwydd doler. Ond rydym yn defnyddio arwyddion doler hefyd i gynrychioli enwau amrywiol mewn PHP, ac yn enwedig pan dwi gan ddefnyddio'r dull hwn o cyrliog newidyn Brace Dull interpellation, mae angen i mi i ddianc fy arwydd doler fel nad yw'n gwneud yn meddwl Rwy'n siarad am newidyn. Mae'n mynd i mewn gwirionedd, llythrennol argraffu arwydd doler. Felly fath o analogize i yr hyn a welwch ar y diwedd yno. Nid yw'n gwneud mewn gwirionedd print slaes n, dde? Mae'n brintiau allan gymeriad llinell newydd. Mae hyn yn yw-- nid yw'n mynd i print arwydd doler slaes, mae'n mynd i argraffu yn unig cymeriad arwydd doler. Un syniad. Escape dilyniannau, beth gelwir y pethau hyn. Ond yn sylwi nad wyf yn ei wneud unrhyw fath o% s dirprwyon, Im 'jyst yn llythrennol yn llenwi yn y newidynnau hyn. Ac felly yn this-- beth fyddai'n digwydd yma yw bod gwerth o $ topping-- eto, jyst cadw â'r hyn yr ydym wedi bod yn Byddai siarad am gaws mor far-- cael blygio i mewn 'na. A byddai $ pris yn beth bynnag yw gwerth ar pizzas, cromfachau sgwâr, caws, sef 8.99. Ac felly byddai hyn hefyd yn argraffu "Mae pizza caws cyfan yn costio $ 8.99." Ac fel y dywedais, gallwn ddefnyddio argraffu yma yn lle adlais, ac ymarferoldeb yn 'n bert lawer yn union yr un fath. Byddai'n argraffu'r yr un peth. Mae ffordd arall i wneud hynny, ac mae hyn yn fantais arall o PHP yn gweithio gyda llinynnau. Gallwn wneud concatenation llinyn. Gallem wneud hyn yn C, hefyd, gan ddefnyddio swyddogaeth a elwir yn strcat, ond unwaith eto, roedd rhaid i ni yn galw swyddogaethau ar wahân. Roedd hyn yn llanast cyfan i wneud. Bu'n rhaid i ni bunt-yn cynnwys string.h. Roedd yn cynhyrchu, dde? Ond erbyn hyn y gallaf jyst arfer hon gweithredwr dot i concatenate llinynnau at ei gilydd. Felly rwy'n gydgadwyno'r "A cyfan" a Yna, beth bynnag yw gwerth o $ topin yw, ac yna un arall llinyn, "costau pizza $" ac yna gydgadwyno'r beth bynnag gwerth o $ pris yn, ac yna ar y diwedd iawn dwi'n tacio ar gyfnod slaes n. Ac felly byddai hyn hefyd argraffu "A cyfan" - unwaith eto, os ydym yn sôn am y cyntaf elfen o'r array-- pizzas "Mae pizza caws cyfan yn costio $ 8.99." Cyfnod, slaes n, unwaith eto, gyda y $ topin a $ dirprwyo ar ei ran pris am yr hyn rydym wedi a nodir yn ein foreach dolen gan fod y mapio gwerth pâr allweddol. Gall PHP trin swyddogaethau. Roedd Swyddogaethau fath o rhan annatod o C, fel y gwelsom. Fel newidynnau, nid oes angen i ni'n nodi'r math dychwelyd y swyddogaeth, am nad yw'n wir bwys. Ac nid ydym yn pennu'r fathau o ddata o unrhyw baramedrau, oherwydd nad ydynt yn ei wneud mewn gwirionedd mater, fel yr ydym wedi ei weld yn PHP. Mae pob swyddogaeth yn cael ei gyflwyno gyda'r allweddair swyddogaeth. Dyna sut yr ydym yn nodi at PHP bod yr hyn rydym yn sôn am yn swyddogaeth. Ac nid oes raid i ni yn delio â phrif o gwbl, oherwydd bod y cyfieithydd, mae'r PHP cyfieithydd ar y pryd, yn gweithio o'r top i'r gwaelod, beth bynnag. Os y gwêl gallwch wneud swyddogaeth galwadau, mae'n chi helpu mynd ddod o hyd i'r swyddogaeth alwad, hyd yn oed os daw yn nes ymlaen. Ond mae'n mynd i ddarllen o'r top i'r gwaelod, felly peidiwch angen i ni bennu, dyma lle i chi ddechrau. Rydych yn dechrau ar linell 1 eich PHP ac yn gweithio i lawr oddi yno. Felly dyma yw sut y byddem yn creu swyddogaeth o'r enw hard_square. Mae'n debyg cymryd un paramedr, a rwy'n galw $ x. Mae'r swyddogaeth hon yn gymhleth yn unig i ddarlunio gwahanol bethau. Mae gennym werthoedd dychwelyd. Im 'yn defnyddio ar gyfer dolen yma. Ond yn y bôn yn unig, beth mae hyn yn gyfystyr â dim ond $ x amseroedd $ x. Yr hyn rwy'n mewn gwirionedd yn gwneud dim ond ychwanegu x i 0 x amserau neu $ x i sero amseroedd $ x. Ond mae'n effeithiol yn union yr un fath â lluosi $ x amseroedd $ x. Rwy'n dal i ddychwelyd gwerth, yn yr $ canlyniad yr achos, ac rwyf wedi gwneud swyddogaeth yn PHP. Dyma sut y byddwch yn ei ddefnyddio mewn cyd-destun. Felly efallai fy mod y tu mewn o ryw ffeil PHP. Hysbysiad mewn glas yno y Rwyf wedi defnyddio fy amffinyddion PHP, bachyn ongl php marc cwestiwn. Yn rhwng y rhai hynny i gyd o mae'r PHP yr wyf am ei ysgrifennu. Felly dw i'n ôl pob golwg yn mynd i get-- Rydw i'n mynd i annog y defnyddiwr i roi rhif, storio mi fod amrywiol, storio yn y newidyn $ x, beth bynnag y maent yn rhoi i mi. Yna dwi'n mynd i adleisio hard_square o'r gwerth hwnnw, ac i bob golwg yn mynd i dacio ar linell newydd yn ogystal, ac yna yn ddiweddarach ar byddaf diffinio swyddogaeth hard_square felly bod pan fyddaf yn gwneud y ffonio i hard_square, mae'n gwybod beth rwy'n siarad amdano. Yn awr, gallwn hefyd wneud rhywbeth fel hyn. Mae hyn ychydig yn wahanol. Mae'n bron yn union yr un fath â'r hyn a welsom o'r blaen, ac eithrio lle dweud ychydig $ x yno gan fod y paramedr i hard_square, I ddim yn dweud $ x = 10. Felly, mae hyn yn enghraifft o rhaglennu amddiffynnol, warchod eich rhaglenni yn erbyn defnyddwyr maleisus. Mae hwn yn un ffordd o wneud rhyw wall gwirio nad wnaethom mewn gwirionedd gael fel opsiwn yn C. Rydym byth gallai pennu'r gwerth diofyn o rywbeth. Rydym bob amser wedi i wirio a oedd y, er enghraifft, os ydym yn gwneud galwad i GetString, roedd yn y rhan fwyaf priodol os yn syth ar ôl i ni gwirio bod, gwirio ein bod a oedd y llinyn bod y defnyddiwr yn rhoi i ni Nid yn hafal i null, oherwydd nid oes arnom eisiau dechrau gweithio gyda llinyn null. Yma, mae hyn yn ffordd i warchod yn erbyn hynny. Os nad yw'r defnyddiwr yn rhoi rhywbeth i ni rywsut, yr hyn rydym yn mynd i'w wneud? Wel, byddwn yn dim ond dweud beth bynnag nad oeddent yn rhoi i ni, rydym yn jyst yn mynd i dopio i mewn 10 yn lle hynny. Felly, os nad oeddent yn rhoi gwerth i ni, dim ond yn defnyddio 10 yn ddiofyn. Ac felly dyma, sylwi bod fy mod yn gwneud a ffonio i hard_square, ond does dim brydlon i'r defnyddiwr, dde? Im 'jyst yn gwneud galwad wag. Ond mae fy swyddogaeth hard_square yn disgwyl paramedr. Beth mae hyn yn mynd i argraffu? Mae'n mynd i argraffu 100, dde? Oherwydd nad yw'r defnyddiwr yn gwneud rhoi unrhyw beth i mi. Ac felly Im 'jyst yn mynd i gymryd yn ganiataol bod 10-- 10 yw gwerth rhagosodedig. Ac felly byddai hyn yn argraffu allan o 100 ar ei linell ei hun. Nid oes rhaid i ffeiliau PHP i fod yr un un ffeil. Gallwch gyfuno ffeiliau lluosog at ei gilydd, yn union fel y gallwch yn C. Y ffordd gwnaethom hynny oedd yn nodweddiadol i wneud yn C #include i gael ffeiliau header tynnu i mewn. Nid ydym yn gwneud hynny yn PHP. Rydym yn gwneud rhywbeth o'r enw require_once. Ac yna mae gyfan hon beth, beth sy'n __dir__ hwn? Dyna dim ond yn arbennig amrywiol, neu gyson arbennig, mewn gwirionedd, sy'n nodi beth eich cyfeiriadur cyfredol yw. Ac felly mae'n mynd i edrych yn eich cyfeiriadur cyfredol am ffeil o'r enw cs50.php yn yr enghraifft hon yma, ac mae'n mynd i gadw y ffeil ar frig eich rhaglen PHP, gan dybio eich bod yn rhoi'r gwneud yn ofynnol unwaith y bydd llinell ar frig eich ffeil PHP. Felly PHP yn cael ei ddefnyddio yn bennaf, ond na chaiff ei ddefnyddio yn gyfan gwbl, fel iaith ar gyfer rhaglenni ar y we. Mae hynny'n wir sut y daeth iddo fod. Ond mae'n llawn iaith, fel rydym wedi gweld. Rydym wedi gweld 'n bert lawer yr holl bethau y gall ei wneud sy'n debyg i C, a gall wneud yn andros o llawer mwy na hynny. Ond am ei fod yn iaith llawn ac rydym yn Gall wneud rhaglennu llinell gorchymyn ynddo. Gall Rydym yn cynnal rhaglenni llinell orchymyn. Y cyfan sydd ei angen i redeg gorchymyn Rhaglen llinell sy'n ysgrifennu yn PHP yw bod gennych cyfieithydd PHP. Felly mae'n fath o debyg i cael compiler ar eich system os ydych am i lunio eich cod C i'w droi'n ffeiliau gweithredadwy. Mae angen i chi gael cyfieithydd PHP sy'n bodoli ar eich system fel y gallwch ddehongli ffeiliau PHP. Gan dybio ydych yn, ac fel arfer Gelwir cyfieithydd hwn yn cael ei PHP, ac mae fel arfer yn ei sypiedig ag y rhan fwyaf o llwytho i lawr neu osodiadau o PHP y gallwch ei gael ar-lein, ac yn sicr enw'r cyfieithydd PHP gennym yn CS50, IDE. Mae'r holl chi ei wneud yw ffeil php fath. A beth yw eich rhaglen mynd i'w wneud yw ei fod yn mynd i redeg drwy y cyfieithydd, 'i' mynd i anwybyddu popeth sy'n Nid yw yn y canol sylw mark-- neu, php ongl braced marc cwestiwn, y amffinyddion PHP, a'i hargraffu, a bydd yn dehongli a gweithredu'r cod tu mewn i'ch amffinyddion PHP. Felly gadewch i ni alw draw i IDE CS50 a gael golwg ar un neu ddau o ffeiliau PHP, rhedeg un neu ddau o ffeiliau PHP, yn gorchymyn rhyngwyneb llinell o CS50 IDE. Felly dyma ni yn IDE CS50, ac rwyf wedi cymryd y rhyddid o agor ffeil o'r enw hello1.php. Ac i bob golwg, cynnwys y ffeil yn unig y amffinyddion PHP yno, ac yn y canol, adlais ("helo, byd"). Mae hon yn rhaglen PHP eithaf syml. Im 'jyst yn mynd i sgrolio i lawr at fy ffenestr terfynell yma, ac yr wyf i'n mynd i deipio php hello1.php, daro chofnoda. Helo Byd. Dyna mae'n debyg yr hyn yr oeddem yn disgwyl iddo ei wneud, dde? Gadewch i ni fynd i fyny ac yn cymryd un arall yn edrych ar raglen. hello2.php. 'N bert lawer yr un peth, Nid yw llawer yn digwydd yma. Y tro hwn, fodd bynnag, dw i'n mynd i ysgogi defnyddiwr i roi eu henwau i mi. Im 'yn arfer y swyddogaeth honno readline eto. $ Enw = readline. Dyna'r brydlon, "Beth yw dy enw?" Mae'n debyg fy mod argraffu iddo ar ei linell ei hun. Ac yna, felly y llinell isod fydd yn cael y brydlon lle gall y defnyddiwr fynd i mewn eu henw. Ac yna Im 'yn arfer ychydig o interpellation amrywiol yma ar-lein 3 i'w argraffu "Helo" ac beth bynnag y mathau defnyddiwr. Felly mae hyn yn cyfateb i ddweud, Helo, coma,% s os ydym yn defnyddio printf yn C. Felly gadewch i ni fynd a dehongli rhaglen hon. Felly unwaith eto, 'n annhymerus' sgrolio i lawr at fy ffenestr terfynell. hello2.php php. Beth yw dy enw? Doug. Helo, Doug. Rwyf hefyd yn cael un arall ffeil o'r enw hello3.php. Rydw i'n mynd i glirio fy sgrin gyda Rheoli L, ac yr wyf i'n mynd i weithredu hynny. Beth yw dy enw? Doug. Helo, Doug. Felly mae'r ymddygiad yn union yr un fath i hello2.php, ond pam y caiff ei hello3.php? Wel, dyma y gwahaniaeth. Yn yr achos hwn, rhybudd hynny ar-lein o 1 yma, Mae gen i rywbeth nad dyna rhwng y amffinyddion PHP. Im 'jyst yn argraffu out-- neu yr wyf yn jyst deipio, "Beth yw dy enw?" Pan fydd y cyfieithydd PHP gweld hyn, mae'n wedi ddim syniad sut i ddehongli fel PHP, ac felly yn hytrach na methu, dim ond mae'n mynd i boeri allan. Felly sylwi ar linell 3 awr, fy ngalwad i readline, does dim brydlon anymore. Im 'jyst mewn gwirionedd yn mynd i'r canlynol-- pryd y cyfieithydd PHP gweld hyn, mae'n mynd i argraffu "Beth yw dy enw?" Yna mae'n ei weld, oh, OK, here's-- popeth arall yn mynd i fod dehongli fel PHP, felly dyna pam mae hyn yn gweithio. Nid oes rhaid i mi i ysgogi o reidrwydd y canlynol-- defnyddiwr tu mewn readline, Gallaf ei gael y tu allan o'r amffinyddion PHP ac yn caniatáu i'r cyfieithydd i ddim ond ei hargraffu i mi. Felly nid oes mewn gwirionedd yn unig yn rhaid i chi cael un set o amffinyddion PHP yn eich rhaglen. Gallwch mewn gwirionedd yn cael nifer ohonynt, agor ac yn eu cau yn ôl yr angen. Felly, gadewch i ni edrych mewn un neu ddau o raglenni mewn IDE CS50 lle rydym dangos y syniad hwn o gael setiau lluosog o PHP delimited. Iawn, felly dwi wedi agor ffeil Gelwir add1.php yma. Ac yn sylwi ar yr hyn sy'n digwydd yma. Yn union fel o'r blaen, mae gen i PHP sengl set o amffinyddion. Rydw i'n mynd i argraffu'r neges, "Rhowch rif i mi." Yna Rydw i'n mynd i ddarllen llinell a ei storio yn y $ num1 amrywiol. Yna dwi'n mynd i argraffu eto. Rhowch ail rif mi. Darllenwch llinell o'r defnyddiwr, storio beth bynnag y maent yn teipio mewn yn $ num2. Ychwanegwch nhw at ei gilydd ac yn storio'r yn arwain at newidyn a elwir $ swm, ac yna argraffu, "Mae'r Swm y ddau rif yw, "ac yna interpellate yno y $ swm amrywiol. Felly gadewch i ni jyst hidla hon drwy'r cyfieithydd i gadarnhau bod hyn yn hyn yr ydym yn ei ddisgwyl. add1.php php. Rhowch rif, 3 mi. Os gwelwch yn dda roi ail rif, 4 mi. Swm y ddau rif yw 7. Dyna 3 ynghyd â 4. IAWN? Felly dim byd ofnadwy ffansi yno. Ac yn awr gadewch i ni agor add2.php. Yma, mae gen i un neu ddau o PHP amffinio setiau yno, dde? Llinellau 1, 3-- llinellau 1 a 3 Nid oes gan amffinyddion PHP. Felly, pan fydd y cyfieithydd gweld nhw, 'i' jyst mynd i boeri allan yn union hyn yr wyf wedi ei deipio yno. Felly dyna lle dwi'n gwneud popeth fy anogaeth. Ar linellau 2 a 4, rydym yn gweld yr union math php o amffinyddion $ gyfarwydd?, felly y ddau llinellau ar mynd i weithredu fel PHP. Ac yna ar-lein 5, mae gennyf hyn peth rhyfedd i'r dde yma, dde? Mae'r bachyn ongl question mark hafalnod. 'N annhymerus' hyd yn oed yn chwyddo i mewn ychydig ymhellach. Gallwch weld hyn yn beth rwy'n siarad am iawn yno, $ hon? =. Mae'n ymddangos bod ei fod mor gyffredin bod y rheswm ein bod yn agor i fyny set o PHP amffinyddion yw argraffu werth. A dyna'r cyfan yr ydym yn mynd i'w wneud. Ond mae hyd yn oed llaw-fer ar gyfer hynny. $? = Yn llaw-fer PHP dros ddweud rhywbeth fel $? PHP adleisio'r swm o num1 a num2. Felly, mae hyn yn unig yw arall llaw-fer am hynny. Felly, os wyf yn rhedeg y rhaglen hon, add2.php php. 'N annhymerus' chwyddo i lawr ychydig. Rhowch rif, 4 mi. Os gwelwch yn dda roi ail rif mi. A gan nad wyf yn wir yn poeni am fathau o ddata yn PHP, gallaf ddweud 4.8. Swm y ddau rif yn 8.8. Swyddogaeth honno yn ymddwyn 'n bert lawer yn union yr un fath ag y byddem yn ei ddisgwyl, yn ogystal. Ac mae gen i un yn fwy hagor hyd yma a elwir yn dice.php. Rhowch gynnig ar hyn eto. Mae gen i un mwy yma o'r enw dice1.php, sydd hefyd, gweld, Mae gan y cwestiwn hwnnw bachyn ongl nodi nodiant hafalnod i mewn 'na, ond yn sylwi bod yn yr achos hwn rwy'n ffonio'r rand swyddogaeth, a oedd wrth i chi Efallai y disgwyl yn cynhyrchu rhif ar hap. "Rydych yn rholio," ac mae'n mynd i cyfrifo rhywfaint rhif ar hap, mod 6 + 1. Felly bydd yn rhoi rhif i mi yn yr ystod o 1 i 6. Cofiwch y byddai mod 6 rhoi i mi mae nifer yn yr ystod o 0 i 5, ond os ydw i'n efelychu rholiau dis, sef yr hyn rwy'n ei wneud yma, Nid wyf am dis hyn i fynd o 0 i 5, yr wyf am dis sy'n mynd 1-6. Ac felly mae hyn yn ffordd o gael fi yn yr ystod o 1 i 6. Rwy'n gwneud hyn ddwywaith. Felly, mae'n debyg yr wyf yn rholio dau ddis yn y rhaglen hon. Felly byddaf yn glir fy sgrîn, a byddaf yn gwneud dice1.php php. Rydych yn rholio 4 a 2. Ac os wyf yn rhedeg y rhaglen unwaith eto, byddwch yn rholio o 5 a 5. Felly, bob tro rwy'n rhedeg y rhaglen, Im 'yn cael gwahanol rifau, oherwydd bob tro y byddaf yn ei wneud felly, mae'n dechrau drosodd. Mae'n mynd i greu newydd set o rifau ar hap i mi. Felly, os ydym yn ei ddefnyddio i cynnal rhaglenni o C, maen nhw wedi arfer teipio ./ y enwi o raglen, dde? Dyna sut yr ydym wedi gwneud popeth o'n rhaglenni yn C hyd yn hyn. Gallwn wneud hyn yn PHP yn ogystal drwy ychwanegu rhywbeth o'r enw yn shebang i frig ein ffeil PHP. Rwy'n gwybod ei fod yn fath o air gwirion. Mae'n byr ar gyfer bang hash. Dyna y ddau gyntaf cymeriadau yno. Cofiwch rydym yn galw pwynt ebychnod yn aml chlec mewn gwyddoniaeth gyfrifiadurol. Mae gallent hefyd fod ar gyfer bang miniog. Mae cwpl ffyrdd o ddehongli. Ond mae'n bôn yn fath arbennig o'r ennyn bod y cyfieithydd PHP deall fel, oh, yr wyf am chi i weithredu rhaglen hon, sydd yn ôl pob golwg / defnyddwyr / bin / php, a oedd yn mewn gwirionedd lle mae'r cyfieithydd PHP yn byw yn benodol ar ein system. Felly it's-- hyn sy'n digwydd yma yw y cyfieithydd yn deall, o, Im 'yn ôl pob golwg i fod i ddefnyddio yn y rhaglen hon i redeg y ffeil hon. Ac felly mae'n caniatáu i chi i sgipio dros y cam o orfod dweud something.php php. Mae un dal arall yma, sef os ydym am ein rhaglenni i yn gweithio fel y disgwylir, rydym yn angen i ni wneud rhywbeth o'r enw newid caniatâd ffeil. A byddwn yn go-- ac rydym yn siarad ychydig ychydig mwy caniatâd newidiadau ynghylch ffeil yn ein fideo ar MVC, ond digon yw dweud bod hyn yn beth sydd angen i chi ei wneud er mwyn gwneud eich ffeiliau gweithredadwy .php. Felly, gadewch i ni edrych ar hyn fel ein henghraifft terfynol drosodd yn CS50 IDE. Felly dyma yn IDE Mae gen i ddwy ffeil yn hyn Cyfeiriadur PHP sy'n ymddangos i beidio â bod Gelwir .php. Mae gen i swyddogaeth o'r enw add-- Mae gen i ffeil o'r enw add3 a ffeil o'r enw dice2. Felly gadewch i ni gymryd cyflym edrych ac yn agor add3. Ac fel y gwelwch, ar y dechrau o fy ffeil gen i shebang hwn, dde? Mae'r pwynt hash ebychnod marc. Yn awr, wnewch chi helpu hefyd efallai sylwi bod am ryw reswm, Nid oes gennyf unrhyw gystrawen tynnu sylw anymore, ac mae hyn yn hyn yr wyf yn cyfeirio at gynharach, sef, os nad wyf yn enwi fy ffeil .php, nid oes gennyf y fantais cystrawen tynnu sylw anymore. Yn unig Gelwir y ffeil add3. Fel y gallaf ei redeg yn nes ymlaen gyda ./ add3 ac nid ./ add3.php. Felly mae'r reason-- mae'n dal i fod iawn, mae'n dal i fod yn ddilys PHP, ond nid yw'n tynnu sylw at cystrawen, oherwydd na elwir y ffeil something.php. Dyna'r unig wahaniaeth go iawn yma, yn ogystal â'r shebang. Felly, gadewch i ni weld beth sy'n digwydd pan Yr wyf yn ceisio rhedeg y rhaglen hon. ./ Add3, yn union fel yr wyf byddai gyda C. Bash. ./ Caniatâd add3 gwadu. Mae hyn yn yr hyn yr ydych chi'n mynd i weld a ydych yn anghofio i ddefnyddio'r gorchymyn chmod i newid caniatadau 'r ffeil. Fel mae'n troi allan, PHP rheolaidd Ni ellir ffeiliau yn unig yn cael ei weithredu. Gellir eu dehongli, ond rydym yn gwneud rhywbeth ychydig yn wahanol yma. Rydym yn gweithredu arno. Ac felly mae angen i mi ychwanegu caniatâd i weithredu, chmod a + x i add3. Yna, gallaf ddweud ./ add3. Rhowch rif i mi. 5, 6. Swm y ddau rif yw 11. Yn yr un modd, yr wyf eisoes wedi chmoded dice2, fel y gallaf jyst deipio ./ dice2, chi rholio 1 a 1, yr ydych rholio a 5 a 4, ac yn y blaen. Felly dyna 'n bert lawer y syniad o gystrawen PHP, dde? Mae yna lawer i gael drwy, yr wyf yn gwybod. Ond gobeithio eich bod wedi gweld yn awr fod PHP Nid yw iawn bod yn wahanol i C ac yn wir yn rhoi'r gallu i ni cymryd pethau i fyny hollt neu ddau. Nid oes rhaid inni wir i chi boeni gormod about-- nad ydym yn ei wneud mewn gwirionedd rhaid i chi boeni gormod am manylion lefel isel yr ydym yn roedd yn rhaid i chi boeni am gyda C, dde? Gallwn ganolbwyntio ar y uchaf stwff lefel sy'n PHP yn caniatáu i ni ei wneud ac i gymryd i ganiataol y bydd yn gweithio i ni. Felly mae'n rhoi'r gallu i ni yn awr, trawsnewid o C i PHP, i wneud rhaglenni sydd yn llawer mwy gymhleth ac efallai yn llawer mwy cadarn. Felly, yr wyf yn gobeithio eich bod wedi gweithio hwyl gyda PHP, ac rwy'n Doug Lloyd. Mae hyn yn CS50.