[Powered by Google Translate] [Adran 8] [Llai cyfforddus] [Nate Hardison] [Harvard University] [Mae hyn yn CS50.] [CS50.TV] Croeso i'n hail i adran olaf. Yn yr wythnos hon rydym ni'n mynd i siarad am PHP, ac yna yr wythnos nesaf byddwn yn gwneud adolygiad bach ar gyfer Cwis 1. Rydym yn mynd i ddechrau ar dudalen 3 y broblem yn gosod pecyn, a byddwn yn gweithio drwy'r adran o'r cwestiynau yn eithaf cyflym. Ar dudalen 3, rydym yn dechrau siarad am y gwahaniaeth rhwng C a PHP yn yr ystyr bod PHP yn iaith ddynamig deipio, tra bod C yn cael ei deipio llonydd, ac mae wedi unrhyw un yn gyflym iawn gwneud unrhyw codio mewn rhywbeth tebyg i PHP neu Python neu Ruby o'r blaen, JavaScript? Hollol newydd? Iawn. Mae pob un o'r ieithoedd hyn yr wyf newydd grybwyll yn wahanol iawn o ieithoedd fel C a C + + a Java yn yr ystyr bod pan fyddwch yn datgan newidyn nid oes rhaid i chi ddatgan pa fath o amrywiol ydyw, felly yn C roeddem yn sownd gorfod bob amser yn dweud hyn yn mynd i fod yn newidyn int, neu mae hyn yn mynd i fod yn newidyn * torgoch, tra gyda PHP, gyda Python, gyda Ruby, gyda llawer o ieithoedd hyn yn fwy modern nad oes rhaid i chi wneud hynny o gwbl. 'Ch jyst ddatgan eich amrywiol, ac yn achos PHP i chi ddatgan ei fod yn amrywiol gan prefixing gyda arwydd $, ac yna y math y newidyn yn cael ei benderfynu gan ba bynnag gwerth y mae'n ei dal, sy'n fath o oer. I chwarae o gwmpas gyda hyn ychydig ychydig, mae gennym sampl PHP cod dde yma rhwng y tagiau dechrau a diwedd. Rydym yn defnyddio'r math hwn o fel HTML yn yr ystyr y rydym wedi cael y cromfachau ongl yma i agor a chau. Byddwch yn gweld hyn gyda HTML. Byddwch yn gweld yr un math o gystrawen gyda XML hefyd. Mae hyn yn dangos dechrau bloc PHP. Mae hyn php? Yn benodol i PHP. Rydym yn cau popeth gyda?> Yn ogystal. Gadewch i ni agor ffeil yn ein offer gan ddefnyddio pa bynnag yr hoffech. Yn y pecyn y mae'n ei ddweud i alw dynamic.php. Mewn gwirionedd, gallwch alw beth bynnag yr hoffech, ond bydd yr enw ffeil yn dod i fyny ac yn bwysig yn ddiweddarach, felly dim ond cofiwch beth bynnag ydych yn ei alw. Rydw i'n mynd i newid drosodd i'r offer, ac rwy'n mynd i wneud cyfeiriadur ar gyfer adran 9 Yr wyf yn credu ein bod chi yn awr. A byddwn yn mynd i mewn i adran 9, ac yr wyf i'n mynd i ddefnyddio gedit. Gadewch i ni weld, gedit, a dw i'n mynd i alw dynamic.php mwynglawdd. Boom. O fewn dynamic.php, gan fod hyn yn ffeil PHP ac rydw i am i'r hyn drwy'r cyfieithydd PHP Angen i mi ddechrau popeth i ffwrdd â'r rhai tagiau agored, felly dwi'n mynd i ddechrau rheini yn iawn i ffwrdd, roi fy hun ychydig o le rhwng y tagiau, ac yna y pwynt yr ymarfer hwn oedd i chwarae o gwmpas gyda swyddogaeth hon a elwir gettype, felly gettype, swyddogaeth hon i'r dde yma. Hysbysiad nad oes dim tanlinellu neu ofod neu cysylltnod neu unrhyw beth fel 'na gwahanu'r 2 Geiriau, cael a theipiwch, dim ond un gair yn gyfan gwbl. Ond beth fydd hyn yn ei wneud yw os ydw i'n pasio mewn newidyn i gettype, dweud $ var neu $ x, Bydd hyn yn dweud i mi fath o ffurf debugging hyn y mae'r enw o'r math hwnnw. Rydym yn mynd i arbrofi yma. Yn benodol, os ydych yn edrych yn ôl ar y fanyleb pset rydym wedi cael ychydig o linellau gwahanol o god yma. Yn y llinell gyntaf o god rydym yn ymgychwyn y newidyn, $ var, i fod yn hafal i 7, ac yna mae gennym y llinell hon printf sy'n dweud hey, var printf yn wag. Printf yn un o'r nifer o ffyrdd y gallwn argraffu pethau yn PHP. Yn aml, byddwch yn gweld y swyddogaeth adlais ddefnyddio yn lle printf, ond printf rydym ni i gyd yn gyfarwydd â wedi eu codio yn C am gyfnod. Beth allwch chi ei wneud mewn gwirionedd yw gadewch i ni weld os bydd gwaith copi a gludo. Rydw i'n mynd i roi cynnig ar hyn. Byddwn yn mynd yn ôl dros i'r ddyfais. Iawn, a dyna ni. Ac mae gofod yn ffynci ychydig, ond yma rydym yn mynd. Rydym wedi cael y cod yn y fan hon. [Myfyrwyr] A yw'n arddull ddim yn dda i tab hyn? Mae'n ddrwg gennym? [Myfyrwyr] A yw'n confensiynol i tab hyn? Iawn, felly Sam yn gofyn os yw'n gonfensiwn i tab neu beidio. Yn nodweddiadol, ie. Yn yr achos hwn rwyf wedi dewis peidio. Onest, byddwch yn gweld pethau gwahanol ymhlith rhaglenwyr gwahanol. PHP yn cael ei ddefnyddio fel arfer yn aml mewn cyfuniad â HTML ac ieithoedd eraill, ac felly weithiau bydd y argraffu edrych yn ffynci ychydig os ydych yn indent o fewn PHP dechrau a diwedd tagiau. Mae'n dibynnu'n hollol. Yn yr achos hwn nid yw'r copi a gludo yn gludwch y tabiau i mewn i mi, ond mae'n bendant yn ei wneud, fel y dywedasoch, yn ei gwneud yn gliriach. Mae pob hawl, os byddwch yn arbed y cod hwn yn dynamic.php yna beth allwch chi ei wneud yw dod i lawr i ffenestr eich terfynell lle fy mod yn iawn i lawr yma yn gedit, ac i wneud yr hyn sy'n cyfateb Llunio defnyddio i wneud ac yna rhedeg eich cod yn C cyfan sy'n rhaid ei wneud gyda'r ffeil PHP yn cychwyn y cyfieithydd PHP, sydd yn rhaglen bach o'r enw PHP, a'r ddadl rydych chi'n ei roi i'r cyfieithydd y ffeil rydych am ei ddehongli. Yn yr achos hwn, dynamic.php. Wps, lle ro ei roi? O, rwy'n ei roi yn adran 9, a dyma fi. Dyna pam. Nawr, os byddaf yn rhedeg hynny eto rydym yn gweld hynny yn fy galwad swyddogaeth gettype 1 var yn gyfanrif. Yn y nesaf un var yn llinyn, ac yna yn y traean var yn Boole. Beth sy'n ddiddorol am hyn yw os ydym yn sgrolio yn ôl i fyny rydym yn gweld bod mae'r rhain yn fathau tebyg i'r rhai a oedd gennym yn C. Cawsom ints yn C. Rydym yn fath o llinynnau oedd yn C, felly nid oedd llinynnau math hollol legit yn yr ystyr bod ein llinyn CS50 oedd yn beth? Mae'n ddrwg gennym? Missy? [Missy] Torgoch *. Yeah, yr oedd y * torgoch a ddefnyddiwyd gennym. Ar y cychwyn cyntaf y semester oeddem yn defnyddio'r math llinyn, ond yr oedd mewn gwirionedd yn * torgoch o dan y cwfl. Rydym yn unig deipio diffinio hynny, ond yn PHP hyn llinynnau yn union fath. Does dim mwy o hyn stwff math * torgoch. Byddwch yn gweld y gallwn wneud llawer mwy o bethau gyda llinynnau haws o lawer mewn PHP nag y gallem yn C, ac yna yn olaf, mae gennym y math hwn boolean, a'r gwahaniaeth mawr yma yw bod os ydym yn sgrolio yn ôl i lawr rydym yn gweld bod yr enw o'r mathau hyn yn awr yn cyfanrif, llinyn, ac yn hytrach na boolean, int a bool ac wrth i chi godi gwahanol ieithoedd rhaglennu, gan dybio bod ar ryw adeg yn eich bywyd byddwch yn dod i gysylltiad â rhai gwahanol byddwch yn sylwi pethau rhyfedd fel hyn lle mae C yn galw ints gyfanrifau. Mae rhai alw yn gyfanrifau. Mae termau eraill y byddwch yn rhedeg i mewn. Int Fawr gwelsom heddiw yn SQL. Mae yna hefyd nifer ac yna bool, boolean, pob math o wahaniaethau yno. Nid yw hyn yn ofnadwy o ddiddorol, ond nawr rwy'n mynd i roi ychydig o amser- os ydym yn chwyddo yn ôl allan-i weithio drwy'r ymarfer hwn ar waelod tudalen 3 lle mae'n gofyn pa fathau yn cyfateb i'r gwerthoedd hyn yma yn y gwaelod. Mae gennym 3.50. Mae gennym y peth iawn yma, sydd yn ddiddorol. Nid ydym wedi gweld hynny o'r blaen, ond os ydych chi wedi bod yn dilyn ar hyd mewn darlith mae'n debyg eich bod eisoes yn gwybod beth yw hynny. Yna, mae gennym hyn, y mae hyn yn fath o ffynci. Rydych yn cydnabod hyn. Beth yw hyn yn C? Sam? Beth fyddai hyn yn rhoi i chi yn C? Byddai'n agor ffeil o'r enw dynamic.php a'i wneud yn ddarllenadwy. Yeah, a beth fyddai'r math o amrywiol y byddem yn pennu hyn? Seren Ffeil >>. Yn union, byddem yn aseinio hyn i seren ffeil. Mae hyn yn PHP cyfreithlon hefyd. Rhedeg hynny. Weld beth sy'n digwydd pan fyddwch yn trosglwyddo hynny i gettype. Ac yna hefyd edrych ar yr hyn null yw, beth a allai fod yn PHP. 'N annhymerus' yn rhoi i chi munudau. Gallwch llythrennol copïo a gludo gwerthoedd hyn mewn, ac yna byddwn yn gwneud galwad ar hap ychydig ar eich a gweld beth wnaethoch chi. [Myfyrwyr] Mae gen i gwestiwn. << Yeah. Yn un o'r darlithoedd dywedodd David mae yna rywbeth y gallwch ei roi ar frig eich ffeil fel nad oes rhaid i chi deipio i mewn PHP bob tro. Beth oedd hynny? Mae'n debyg ei fod yn siarad am y, bang bang bunt y hash. Mae'n gyfarwyddeb, os ydych yn nodi eich ffeil fel gweithredadwy yna beth mae'n ei wneud yw pan fyddwch yn gweithredu y ffeil bydd yn dweud wrth y rhaglen gragen i ddefnyddio'r cyfieithydd PHP i ddehongli cynnwys y ffeil. Y cwestiwn yn beth oedd y llinell hon arbennig y gallem gynnwys ar frig ein ffeiliau PHP i beidio gorfod cynnwys y llinell hon PHP neu y gorchymyn PHP pryd bynnag rydym eisiau i weithredu y ffeil? A allwch chi mewn gwirionedd yn gwneud hyn gyda criw o ffeiliau gwahanol. Yr wyf yn credu ei fod yn dibynnu ar ble y deuaidd PHP yn cael ei storio, ond yn aml usr / bin / php yn lle da i ddechrau. Gallwch ffigur hwn yn union drwy fynd yn ôl i lawr at eich offer a theipio pa php. Y gorchymyn a ffigurau allan pan fyddwch yn gweithredu deuaidd neu orchymyn lle mae'r ffeil cyfatebol yw. Mae hyn yn dweud wrthyf fod y PHP yn wirioneddol aliasing y ffeil ddeuaidd sydd wedi ei storio mewn usr / bin, a dyna lle mae llawer o'r binaries system yn cael eu gosod. Er enghraifft, os wyf yn sgrolio i fyny i ben, a minnau bellach wedi rhoi hyn #! llinell yma Gallaf sgroliwch i lawr, a gallaf geisio rhedeg dynamic.php, ond rwy'n cael gwall hwn am ganiatâd yn cael ei wrthod, a beth mae hynny'n ei olygu yw nad yw hyn ffeil ar hyn o bryd roi caniatâd gweithredadwy. Dyw hi ddim yn marcio fel ffeil y gall rhywun ei redeg. Pan fyddwch yn rhedeg gwneud neu Clang a gennych chi gweithredadwy ohono y casglwr oedd yn ddigon craff i wybod bod hey, rwy'n adeiladu weithredadwy. Mae'n debyg y byddwch eisiau eu gweithredu ynddi, felly byddai'n yn awtomatig ffurfweddu caniatâd i chi. Nid yw hyn yn wir, fodd bynnag, pan fyddwch yn creu ffeil arferol o'r dechrau, y rheswm yn cael ei arfer nad ydych am gael unrhyw ffeil ar eich system fod yn cyflawnadwy, er mwyn i chi mewn gwirionedd yn rhaid i chi fynd i mewn ac yn ei wneud â llaw. Y ffordd hawsaf o wneud hyn yw gyda'r gorchymyn chmod, a chmod + x yn dweud ychwanegwch y bit gweithredadwy oherwydd bod y darn darllen, ysgrifennu y darn a'r darn gweithredadwy, r, w a x, a bydd yn dweud chmod + x troi ar y darn gweithredadwy am hynny y ffeil yr ydym yn pennu, a fydd yn yr achos hwn fod yn dynamic.php. [Myfyrwyr] A yw hynny'n arnodd ar gyfer pawb? Gadewch i ni wirio hyn allan, felly sut yr wyf yn gwirio i weld y caniatâd? Ydych chi'n gwybod sut y byddwn yn gwirio i weld y caniatâd o ffeil? [Ymateb y myfyrwyr Anghlywadwy] Mae'n ddrwg gennym? >> [Myfyrwyr] XSD. XSD yn rhoi i ni y ffeil yn haciau. Bydd rhestru'r holl ffeil, cafodd yr-l, dangos i mi yr holl ffeiliau yn fy cyfeiriadur math o yn eu rhestru verbose hir, ac felly dyma rydym yn gweld bod y ffeil dynamic.php Newidiwyd fis Tachwedd diwethaf 5ed am 4:21 PM. Mae perchennog y ffeil yn cael ei jharvard. Dyna y defnyddiwr sy'n cael ei mewngofnodi Dyna y defnyddiwr wyf yn gweithio fel, ac os ydych hefyd yn y peiriant ydych hefyd yn gweithio fel jharvard defnyddiwr. Rydych chi yn y grŵp myfyrwyr, ac mae'r rhain yn bethau y byddwch yn gweld yn ddigon aml. Gallwn fynd i mewn i lawer o fanylder yma, ond ar gyfer y rhan fwyaf beth rydych am edrych arno pan fyddwch chi'n edrych i weld a yw ffeil yn weithredadwy yn bennaf y defnyddiwr pwy sy'n berchen ar y ffeil, y perchennog, felly mae hyn yn jharvard, ac yna mae gennym y darnau caniatâd dros yma ar y chwith, a'r ffordd i ddarllen hyn yw bod y rhan olaf fel arfer yn cael ei ddefnyddio ar gyfer marcio ai peidio-o leiaf yn yr achos hwn Bydd y rhan olaf yn aml yn cael eu gosod i ad i ddangos fod y ffeil yn gyfeiriadur ac nid dim ond ffeil arferol. Yna y 3 darnau cywir yma penderfynu ar y caniatadau perchennog y ffeil, felly yn yr achos jharvard, fel perchennog y ffeil y gellir, darllen ac ysgrifennu y ffeil, ond mae yna dash yn dweud na all jharvard gweithredu y ffeil hon. Mae'r 3 nesaf darnau ar gyfer y grŵp, felly mae hwn yn grŵp myfyrwyr, felly pe bai defnyddwyr lluosog ar fy offer, ac roedd gennym defnyddwyr lluosog fel rhan o'r grŵp myfyrwyr, yna gallan nhw i gyd ddarllen y ffeil, ond ni allant ei ysgrifennu, ac yn yr un modd unrhyw un arall, y byd dim ond darllen y ffeil hon hefyd. Mae 'na dda, writeup hir am hyn, fel y gallwch ddarllen ar-lein. Yn y set problem spec rydym yn mynd i mewn i hyn yn fwy manwl. [Myfyrwyr] A yw'r y 218 gan gyfeirio at y byd? Mae'r 218-oddi ar ben fy mhen rwy'n anghofio, ond dim. Gadewch i ni weld. Yr wyf yn blanking ar y hyn o bryd. Yn ôl i'r hyn yr ydym ar fin ei wneud â hyn + chmod x lle rydym yn awyddus i roi caniatâd cyflawnadwy dynamic.php, a'r cwestiwn oedd a fyddai hyn yn rhoi caniatâd gweithredadwy i bawb neu i jharvard yn unig, a gallwn weld hyn drwy rhedeg y gorchmynion a theipio ls-l, ac yn awr rydym yn gweld ei fod yn marcio fel gweithredadwy. Byddwch yn gweld bod newid lliw. Nawr dynamic.php ei restru yn wyrdd, ac mae'n edrych fel yr ateb i'r cwestiwn yw beth, Charlotte? [Charlotte] Dim ond jharvard. >> Dim ond jharvard, yeah. Os ydym yn awyddus i droi y rhan gweithredadwy ar gyfer pawb sut y gallai rydym yn ei wneud hynny? Unrhyw syniadau? >> A + x? Yeah, yn union. Charlotte Dywedodd y gallwn ei wneud chmod o x + o dynamic.php, ac yn awr os ydym yn rhedeg ls-l gwelwn fod y darnau gweithredadwy yn cael eu troi yn wir ar gyfer pawb. A allwch chi ei wneud mewn gwirionedd y gwrthwyneb i hyn, fel y gallwch droi i ffwrdd i bawb ddefnyddio minws. Nawr mae'n ei droi i ffwrdd, ac yn awr gallwn droi yn ôl ar gyfer jharvard fel y gallwn mewn gwirionedd ei redeg yn awr, ac yn awr ydych yn gweld pan fyddwn yn rhedeg y cod hwn yn arbennig #! lein ar y top, #! llinell, wrth y gragen, dweud wrth ein terfynell hey, pan fydd y ffeil yn cael ei redeg, defnyddio / usr / bin / php i ddehongli y ffeil ac yna ei argraffu y cynnyrch. [Gwestiwn myfyrwyr Anghlywadwy] Cadarn, gadewch i mi sgrolio yn ôl i fyny. Yn union fel hyn. Byddwch yn gweld pob un o'r cyfarwyddebau yn dechrau gyda'r bunt ac yna y pwynt ebychnod, weithiau'n cael ei alw'n shebang, bang hash. [Myfyrwyr] Sut rydym yn rhedeg gyda php dynamic.php cyn i ni ei wneud yn weithredadwy? Y cwestiwn oedd sut rydym yn rhedeg hyn trwy ddefnyddio PHP deuaidd er nad dynamic.php yn weithredadwy? Mae hyn yn super bwysig oherwydd mae hyn yn union sut y mae'n mynd i weithio pan fyddwch yn ysgrifennu 7 yn broblem. Nid yw'r rhan fwyaf o'r amser ffeiliau PHP yn uniongyrchol gweithredadwy. Mae'r ffordd sy'n gweithio yw oherwydd ei fod yn y deuaidd PHP sy'n gweithredadwy. Mae'r cyfieithydd yw'r peth sy'n cael ei weithredu, ac felly yr hyn y mae'n ei wneud yn llythrennol slurping yn holl gynnwys ein ffeil dynamic.php a llinell yn mynd drwy linell a gweithredu rhai gorchmynion, fel ei fod yn defnyddio ein ffeiliau PHP fel rhestr o gyfarwyddiadau. Dyw hi ddim yn uniongyrchol gweithredu arno. Dyna lle'r ydym yn dweud bod y ffeiliau hyn yn cael eu dehongli yn ystod amser rhedeg. Mae'n iaith amser rhedeg yn hytrach na rhywbeth sydd wedi penderfynu ar amser Casglu, nad yw iaith a luniwyd fel C. A oes modd i gael ei redeg iaith amser i weithredu fel pe ei fod yn Llunio iaith amser, yn hoffi os oes gennych yr holl rhedeg ei wneud ar y gweinydd yn hytrach na-eich bod yn gwybod beth wyf yn ei olygu? Ie, felly y cwestiwn yw a oes ffordd i gael amser yn rhedeg ieithoedd i weithredu mwy fel mathau amser Casglu o ieithoedd? Ac mae, yr wyf yn golygu, mae hwn yn faes o ymchwil gweithredol ar gyfer llawer o'r cwmnïau hyn. Yr wyf yn credu Facebook wedi gwneud llawer o waith gyda PHP a llunio i lawr, gan ei gwneud yn gyflymach, gwneud y gorau ei gan fod eu safle yn cael ei hadeiladu ar PHP. Os ydych wedi bod yn dilyn node.js o gwbl, sy'n fath o gyfieithydd JavaScript i fod yn gallu rhedeg JavaScript tu allan i'r porwr, y tu allan i'ch porwr gwe, oherwydd yn draddodiadol byddai JavaScript jyst hidla tu mewn Firefox neu Chrome, a byddai'n cael ei ddefnyddio i wneud animeiddiadau oeri yn digwydd ar dudalen ar y we ac yn gwneud eich tudalen ar y we deinamig. Sydd wedi bod yn adeiladu ar lawer o waith sydd Google wedi gwneud i wneud JavaScript a C + + rhwymo at ei gilydd, felly mae 'na lot o waith ymchwil gweithredol i cael yr ieithoedd hyn i ryngweithio a gwneud y gorau iddynt, yn bennaf oherwydd y gall cymaint o bobl cod yn PHP a JavaScript oherwydd ei fod yn llawer haws. Mae'n llawer brafiach. Nid oes gennych awgrymiadau. Nid oes yn rhaid mathau fel y bo'r angen o gwmpas. Maent yn awyddus i gael budd o ieithoedd hyn amser Casglu gyda'r holl gwirio math a chyflymder a chof chynefod isaf a'r holl tra'n parhau i gynnal hyblygrwydd a rhwyddineb defnydd o'r rhai newydd. Nôl at ein cynllun gwreiddiol o ymosod. Rydym wedi cael rhai o'r cwestiynau hyn yma yn ein set problem fanyleb. Gadewch i ni fynd drwyddynt yn gyflym iawn, a byddwn yn mynd o amgylch yr ystafell. Charlotte, pa fath yw 3.50? [Charlotte] Mae hynny'n ddwbl. >> Mae'n dwbl. Jimmy, beth yw hyn un nesaf? >> Mae amrywiaeth. Mae amrywiaeth, awesome, a Jared, beth yw'r fopen? [Jared] Mae'n adnodd. >> Mae'n adnodd. Dyna fath o un yn newydd, yn seren ffeil, nid ffeil. Mae'n adnodd yw'r math yn PHP, ac Mae'n ddrwg gen i, Ella, mae'r null olaf yw beth? Nwl. Null, sut mae'n cael ei sillafu mewn PHP? >> Yr un ffordd. Yr un ffordd, priflythrennau? >> Yeah. Yeah, popeth yn iawn. Yma rydym yn mynd, rydym wedi cael dwbl, rydym wedi got array, mae gennym adnodd, ac yna rydym wedi cael null. Gadewch i ni weld nawr ydych chi wedi gweld- gadewch i ni weld, felly rwyf bellach ddyfalu beth yr wyf hefyd am ei wneud yw tynnu i fyny y dudalen gwefan hon i'r dde yma, mae hyn php.net / llaw, felly os ydych yn guys yn yr un ac yn agor porwr gwe. Rydw i'n mynd i dynnu i fyny Chrome, yn rhoi'r mewn Rwyf eisiau dangos hwn i chi nid yn unig oherwydd gallwn siarad drwy'r dydd am y mathau a'r holl bethau hwyl ond yn hytrach oherwydd mae hyn yn y llawlyfr PHP, ac mae yna lawer o rhaglenwyr PHP i maes 'na. Mae llawer o wefannau allan yna PHP, ac o ganlyniad, mae llawer o ddogfennau ar PHP, a'r llawlyfr, y php.net, yn lle da iawn i fynd pryd bynnag y byddwch chi'n cael cwestiynau am beth yw'r ffordd orau o wneud X yn PHP neu beth yw swyddogaeth yn edrych? Dim ond math o gael gyfarwydd â'r hyn hwn yn edrych fel oherwydd byddwch yn dod yma yn aml, ychydig ar gyfer problem gosod 7. Os ydych yn darfod i fyny yn gwneud prosiect terfynol sy'n defnyddio PHP bydd hyn yn lle byddwch yn dod yn dda iawn gyfarwydd â hwy. Yn aml, mae'r ffordd y mae pobl yn gwneud hyn yw eu bod yn defnyddio Google i chwilio am y safle, ac nid ydynt yn defnyddiwch y blwch chwilio sydd ar i fyny yma yn y dde uchaf, sy'n fath o bach. Os ydych chi'n Googling o gwmpas am rywbeth i'w wneud gyda PHP a byddwch yn gweld un o'r cysylltiadau llaw pop i fyny, gallwch fel arfer yn dibynnu ar y fel adnodd eithaf da. Awesome, felly allan o'r mathau hyn, yn unig allan o chwilfrydedd, pa rai yr ydym wedi gweld? Unrhyw beth nad ydym wedi'i weld yma? [Myfyrwyr] Adnoddau. >> Gwelsom adnoddau â'r alwad fopen. [Myfyrwyr] Objects. Gwrthrychau >> nid ydym wedi gweld yn sicr. Callbacks nid ydym wedi gweld. Mae rhai o'r rhain ffug-fathau. Rydym yn bendant dim ond gwelodd cyfanrif a dwbl. Doedden ni ddim yn gweld rhai o'r lleill, felly os ydym cliciwch ar gyfanrifau gallwn weld a oes unrhyw gyfanrifau eraill eu bod yma? Ydyn nhw i gyd-felly cyfanrif, cyfanrif, cyfanrif. Mae rhai ieithoedd wedi mathau cyfanrif yn fwy, fel y gwelsom ar MySQL heddiw roedd int ac yna int mawr. Cool. Felly, llawlyfr PHP. Gadewch i ni fynd yn ôl at ein problem manyleb set, a byddwn yn awr yn sgroliwch i lawr i dudalen 4. Un o'r pethau sy'n digwydd pan fyddwch yn cael yr ieithoedd hyn nad ydynt yn cael y teipio sefydlog, felly mae'r ieithoedd lle mae'n rhaid i chi ddatgan y math o hyd amrywiol blaen eich bod yn cael ei achosion lle y gallai fyddwch yn dechrau cael newidynnau o wahanol fathau rhyngweithio â'i gilydd, a PHP yn gwneud y peth lle mae'n ceisio gwneud yr hyn y mae'n ystyried i fod y peth mwyaf synhwyrol i'w wneud pan fydd gennych 2 fath gwahanol yn rhyngweithio â'i gilydd. Er enghraifft, os edrychwn ar y llinellau hyn o god iawn yma gwelwch ein bod wedi cael yr hyn sy'n digwydd pan rydym yn ceisio ychwanegu y llinyn 1 i 2 cyfanrif. Beth sy'n digwydd os ydym yn ceisio ac yn ychwanegu llinyn nad yw'n werth rhifol ond cymeriadau yn hytrach gwirioneddol, CS at y nifer 50? Yna byddwn yn gweld a oes unrhyw beth gwahanol sy'n digwydd pan yn hytrach na ychwanegu llinyn i nifer rydym yn ychwanegu rhif i llinyn, ac yn y blaen ac yn y blaen at y pwynt lle rydym yn cael rhyw fath o stwff od iawn yma, lle mae gennym 7 + wir. Yr hyn y mae'r Heck mae hynny'n ei olygu? Os ydych yn guys mynd yn ei flaen a gludo rhai o'r cod hwn i mewn i'ch offer. Gallwch gadw mewn dynamic.php. Gawn ni weld beth sy'n digwydd. [Myfyrwyr] Dim ond defnyddio nid print, printf? Yeah, felly fe welwch fod print hefyd yn swyddogaeth ddilys ar gyfer argraffu yn PHP. Mae yna nifer o wahanol ffyrdd o wneud hynny. Byddwn yn gweld gyda chwpl o'r enghreifftiau yn nes ymlaen ar ôl i ni ddechrau siarad am y broblem unigryw ein bod ni'n mynd i ysgrifennu ac yna crynodiadau problem y ein bod ni'n mynd i ysgrifennu er bod gennym fopen a mmap nad yn aml y ffordd symlaf i ddarllen yn y cynnwys o ffeil. PHP Mae llawer o hyn holdovers C-debyg. [Myfyrwyr] Pan allaf ei roi yn mhob un o'r 6 o'r pethau hynny dim ond cael un rhif fel allbwn. [Nate H.] Pan fyddwch yn gwneud yr holl 6 o'r pethau hyn. Gadewch i ni weld a yw oherwydd ei fod yn bosibl- un peth yw nad yw'r galwadau print yn cael eu terfynu ar y diwedd gyda llinellau newydd. Does dim llinell newydd gwahanu pob un o'r galwadau hyn print, felly efallai eich bod yn cael un rhif mawr, ac mae'n wirioneddol dim ond cyfuniad o gymeriadau llinell newydd. [Myfyrwyr] Iawn, sut ydw i'n gwneud yn siŵr- Wel, mae yna griw o ffyrdd gwahanol. Gallech llaw roi mewn print o gymeriad llinell newydd, adlais o gymeriad llinell newydd, argraffu o linell newydd. [Myfyrwyr] Felly adlais yn yr un peth â printf? Printf yn debyg C printf lle rydych chi'n argraffu llinyn fformatio. Rydych yn cyflenwi y llinyn fformat ac yna yr holl newidynnau dalfan. Mae'n aml yn rhywbeth nad yw'n cael ei ddefnyddio- gadewch i ni weld, fel ymwadiad, Yr wyf yn llai cyfarwydd â'r PHP nag yr wyf fi gyda ieithoedd eraill ar y we, a phan rwyf wedi rhaglennu yn PHP wyf nad ydynt fel arfer yn defnyddio printf oherwydd fy mod yn ei chael yn gyflymach i ddefnyddio'r galluoedd llinyn rhyngosodiad bod ganddo, y byddwn yn mynd i mewn a byddaf yn dangos i chi mewn dim ond ail, ond yn C rydym yn fath o orfod gwneud hyn beth hacky i'w gael i argraffu yn briodol. Gallwch mewn gwirionedd yn rhoi newidynnau yn uniongyrchol i mewn llinynnau yn PHP. Printf yn fath o rhy hir ar gyfer hyn yr wyf yn ei wneud fel arfer. Do, Ella. [Ella] Yn gyffredinol, os ydych yn cael gwall gramadegu mae hynny'n ei olygu- fel ar C nid yw'n dweud wrthych yn union ble y camgymeriad a beth ydyw, felly mae hynny'n ei olygu edrych drwy eich cod cyfan a chyfrif 'ii maes? Mae'n arfer targedu'n fwy na hynny. Rwy'n credu yn yr achos hwnnw oedd ychydig oddi, felly yr wyf yn meddwl yn yr achos hwnnw ein bod yn colli hanner colon. Roedd yn ceisio gwneud synnwyr o bopeth, felly fel yr ieithoedd hyn dehongli, y cyfieithydd yn mynd i roi cynnig ac yn gwneud ei orau i wneud gwaith popeth yn briodol. Byddwch yn gweld, er enghraifft, yn JavaScript wnewch chi helpu yn aml-linell datganiadau ben gyda hanner colon yn union fel y maent yn ei wneud yn PHP, yn union fel y maent yn ei wneud yn C. Mewn JavaScript rhai o'r cyfieithwyr ar y pryd JavaScript Bydd mewn llawer o'r porwyr roi hanner colon i chi os ydych yn digwydd bod ar goll iddynt. Byddant yn ceisio darparu ar gyfer rhywfaint o annibendod ar eich rhan. Dyna lle y gallai fod yn ceisio ac yn ceisio ac yn ceisio gwneud pethau'n gweithio, ac yna yn olaf bydd yn cyrraedd pwynt lle mae'n dweud iawn, Ni allaf wneud pethau'n gweithio ar roi help, a dyna lle byddwch yn cael rhif llinell a allai ymddangos yn ychydig oddi ar y lle union. Iawn, felly gadewch i ni fynd drwy hyn yn gyflym iawn. Rydym yn gadael i ffwrdd gyda Ella, felly gadewch i ni fynd drosodd i Missy, a Missy, beth mae print o linyn 1 a rhif 2 rhoi i chi? [Missy] 3. >> 3. Ydy hynny'n gwneud synnwyr? Trefnu o? A yw'n rhoi rhif? A yw'n rhoi llinyn? [Missy] Mae rhif. >> Mae'n rhif. Ond mae'n argraffu, felly mae'n mynd i roi rhyw fath o linyn. Un peth y gallwn ei wneud i wirio hyn yw os ydym yn ei wneud $ var = 1 + 2 ac yna rydym yn dweud adlais o gettype, felly rydym yn defnyddio trydydd math o argraffu yma. Nawr gallwn weld beth sy'n digwydd yma. Dyma beth sydd gennym yw ein bod yn cael cyfanrif allan o hyn. Hyd yn oed er ein bod yn ychwanegu y llinyn i nifer, nad oeddem yn cael llinyn allan ohono, yn union fel Missy meddai. Roeddem yn cael gyfanrif. Iawn, felly gadewch i ni weld, nesaf i fyny, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Ydy hynny'n gwneud synnwyr? [Kevin] Yeah. [Nate H.] Pam? Pam ei fod yn gwneud synnwyr i chi? [Kevin] Oherwydd mai dim ond cael y llinyn, yn cael sero gwerth rhif. Yeah, gwych. Math o sefyllfaoedd amwys, ond mae'n dda i wybod beth sy'n digwydd. Stella, beth sy'n digwydd nesaf gyda rhif 1 + llinyn 2? [Stella] 3. >> 3 eto. Ac yn yr achos hwn, rydyn ni'n cael llinyn neu rif? Gadewch i ni roi cynnig arni hon. Unrhyw un yn gyflymach na fi yn cael yr ateb? Charlotte? O, rwy'n didn't-iawn, gadewch i ni weld, rydym yn mynd i wneud yr un math o beth lle'r ydym wedi cael nifer yn ogystal â llinyn, ac rydym yn mynd i adleisio math, weld yr hyn a gawn. Rydym hefyd yn cael yn gyfanrif. Nid oes ots pa un yw'r llinyn, pa un yw'r rhif. Rydym yn dal yn mynd i gael cyfanrif. Mae'n dal yn mynd i wneud yr hyn y gallem ei ddisgwyl. Mae pob hawl, felly Sam, beth tua 90 + 9 boteli o gwrw ar y wal? [Sam] 99. >> 99. Dim boteli o gwrw ar y wal, er. Mae'n rhoi gwybodaeth i ni ychydig mwy am yr hyn sy'n digwydd. [Sam] Os ydych wedi ysgrifennu 9 mewn llythyrau yna byddai gennych 90, dde? [Nate H.] Yeah. Y cwestiwn oedd, os byddem yn ysgrifenedig 9 allan fel N-I-N-E byddem wedi gotten 99 neu 90? Byddem yn cael 90. Mae'n llythrennol ond yn chwilio am gymeriadau digid. Dyw hi ddim yn ddigon craff i adnabod geiriau rhif a bod pethau. Ydw. [Myfyrwyr] A oes y fath beth â stereoteipio yn PHP? Mae yna, ac mae'n union y ffordd y byddech yn ei wneud yn C. Beth tua 10/7, Charlotte? [Charlotte] 1.4285. [Nate H.] Yeah, felly beth allai fod yn syndod am hyn? Beth fyddai'n digwydd os byddwch yn gwneud hyn un math o beth yn C, os ydych yn gwneuthum 10/7 yn C? [Charlotte] Ni fyddai ond yn rhoi i chi-yn dibynnu ar sut rydych typecasted Amcana byddai'n rhoi i chi dim ond nifer cyfyngedig o ddigidau ar ôl y degol. Yeah, felly mae nifer cyfyngedig o ddigidau ar ôl y degol. Beth arall fydd-y byddai'n rhoi i chi unrhyw digid ar ôl y degol? Yn aml, felly unwaith eto, yn dibynnu ar sut yr ydych chi'n ei stereoteipio gall fod neu ni all drosi i nifer pwynt arnawf. Yma, roedd yn fath o 'n glws fod yn gwneud hynny. Pe baem wedi dangos i chi hyn yn ôl pan fyddwn yn dechrau gwneud y math hwn o stwff yn C mae'n debyg y byddai wedi gwneud synnwyr ychydig yn fwy nad yw'n unig yn mynd i 1. Ac yna yn olaf, Jamie, beth am 7 + yn wir? [Jamie] 8. >> 8. Beth mae hynny'n ei olygu? Amcana 'i jyst yn rhoi gwir werth o 1. Yeah. Beth fydd yn digwydd os byddwn yn newid hynny i gau? [Myfyrwyr] 7. Yeah, felly cofiwch lle'r ydym yn siarad am y gwerthoedd binary, 1 yn ar, 0 bod i ffwrdd? Nawr rydym wedi gwir yw 1, 0 yn ffug, ac efallai nad ydych wedi gweld hyn yn yr enghreifftiau C ein bod wedi gwneud hyn semester yn y gorffennol, ond yn hanesyddol nid yw'r math bool yn C wedi bod yn fath go iawn, felly mae pobl wedi defnyddio 0 ac 1 yn y lle y gwir a ffug. Mae hyn yn amlygiad o hynny. Iawn, felly mae'r rhan un bwysig am hyn i gyd yw bod gennym y mathau gwahanol hyn. Gallant ryngweithio â'i gilydd. Gallant yn aml yn rhyngweithio â'i gilydd mewn ffyrdd sy'n neis, fel yr ydym wedi gweld yma. Mae'n braf gallu cael llinyn 1 a rhif 2, ychwanegwch nhw at ei gilydd a chael 3. Mae hynny'n gwneud synnwyr. Fodd bynnag, pan fyddwch yn ysgrifennu gwefannau, ac yn enwedig pan fyddwch yn prosesu mewnbwn defnyddwyr, felly ddweud eich bod wedi ysgrifennu ffurflen ar y we sy'n casglu gwybodaeth gan y defnyddiwr ac wedyn yn mynd i brosesu ar y diwedd yn ôl, ar yr ochr gweinydd yn eich PHP cod os ydych chi'n disgwyl y gwerth y mae'r defnyddiwr deipio a'i chyflwyno at eich ffurflen i fod yn gyfanrif neu i fod yn rhif pwynt arnawf neu rywbeth fel 'na mae angen i chi benodol fwrw ac yna gwneud rhywfaint o wirio fath. Nid ydych am i ddim ond yn dibynnu ar y math jyglo system i wneud i bethau weithio allan, yn enwedig am resymau diogelwch a dim ond ar gyfer cadernid eich gwefan. Dim ond rhywbeth i gadw mewn cof bod pryd bynnag y byddwch chi'n trin data ffurflen, unrhyw beth sy'n dod yn y post neu superglobals get gwneud yn siŵr eich bod bob amser yn dilysu ac addasu ac typecast hynny. Ac yn union fel yr oeddem yn sôn am hyn o bryd yn ôl y stereoteipio yn PHP yn union yr un fath ag yn C lle mae gennych y cromfachau ac yna y math. Cadwch hynny mewn cof. Un swyddogaeth a fydd yn dod yn ddefnyddiol pan fyddwch chi'n gwneud hyn yn cael ei rydym wedi bod yn defnyddio-ac mae hyn yn fath o fel o'r neilltu- rydym wedi bod yn defnyddio'r swyddogaeth hon gettype dde yma at chyfrif i maes y math o newidyn, ac er bod hyn yn gyfleus ar gyfer debugging ac i weld pa fath newidyn yn nad ydych chi eisiau defnyddio hw n, er enghraifft, mewn cyflwr lle eich bod yn gwirio i weld os gettype o $ var = cyfanrif gwneud rhywbeth. Mae hyn yn wael, ddrwg, ddrwg. Yn hytrach, mae swyddogaethau hyn a elwir yn gyfanrif, yn llinyn, yw amrywiaeth yr ydych am ei ddefnyddio yn lle hynny, felly yn yr achos hwn beth fyddwn i'n awyddus i wneud yn lle y boi iawn yma yn cael ei defnyddio yn var gyfanrif. Ac maen nhw'n aml yn * is_ yn yr ystyr y gallech gymryd lle'r * gyda cyfanrif, llinyn, et cetera, a dim ond i wneud yn siwr iawn gyflym a yw hyn yn int php. Edrych fel y gallwch ei wneud naill ai yn int neu'n mae cyfanrif hefyd? Ie, alias, enwau eraill cyfanrif mor int. Cool. Sut ydym ni'n gwneud? Gadewch i ni codi'r cyflymder ychydig. Nawr rydym yn mynd i siarad am arrays, fel y gallwch weld yn y rhan nesaf o'r fanyleb ydym yn siarad am sut araeau yn PHP ychydig yn wahanol nag y maent yn C. Mewn gwirionedd, maen nhw'n fath o gyfuniad o y araeau eich bod wedi dod i wybod a chariad yn C lle mae popeth yn yr un math storio yn olynol ac yn contiguously mewn cof, ac mae gennych y mynegeion rhifol. Mae gennych fynegai 0, mynegai 1, mynegai 2, a ydych yn storio gwerthoedd yn y mynegeion. Byddwch hefyd yn C, pan fyddwch yn ysgrifennu Speller, mae llawer ohonoch wnaeth y dull y tablau hash, ac rydych yn gweld bod yna cawsom math gwahanol o storio lle yr oeddem yn mapio allwedd i werth, felly pan fyddwch yn ceisio cadw rhywbeth yn y tabl hash bu'n rhaid i chi nodi eich bod eisiau ei storio gyda allweddol penodol, ac mae'r allwedd honno pennu lleoliad y gwerth a lle byddai'n cael ei storio. Rydych chi wedi got math o ddau cysyniadau hynny yn digwydd ar yr un pryd mewn amrywiaeth PHP, ac o ganlyniad, rydym yn aml yn galw'r rhain yn araeau cysylltiadol lle rydym yn cysylltu allwedd mewn gwerth. Yn y rhan nesaf byddwn yn sôn am amrywiaeth PHP syml lle mae gennym allweddi a, b, c ac, holl linynnau, mapio i'r 1 cyfanrifau, 2, a 3. A allwch chi gael allweddi o fathau gwahanol. Gallwch gael rhai allweddi sy'n tannau, mae rhai allweddi sydd yn gyfanrifau. Gallwch gael werthoedd o wahanol fathau. Gallwch gael gwerth sy'n llinyn, mae gwerth sy'n cyfanrif, gwerth sy'n gwrthrych neu arall array, er enghraifft, i gyd yn yr un gwrthrych amrywiaeth, sy'n fath o 'n annaearol. Nid oes rhaid i chi gael amrywiaeth sydd wedi jyst got un math o elfen ynddo. Gallwch gael llawer o wahanol bethau yn digwydd yno. Y peth arall i'w nodi yw bod pan fyddwch yn gweld rhywbeth fel hyn yn eich cod, sydd yn PHP ddilys i ddatgan amrywiaeth yn union fel hyn, 0, 1, 2, 3, 4, 5, a fydd yn datgan $ ymgychwyn arr i fod yn y casgliad. Ond beth rydych chi mewn gwirionedd yn cael o dan y cwfl yn y math hwn o ymhlyg cenhedlaeth o allweddi lle'r ydym wedi cael 0 i 0, 1-1, 2 i 2, 3 i 3. Ac mae'n troi allan hyd yn oed os oes gennych amrywiaeth fel y boi yma lle mae gennych b, ac c wrth i'r allweddi ac yna byddwch yn dechrau defnyddio'r amrywiaeth dull gwthio i ddechrau defnyddio'r casgliad fel simnai, fel y gallwch weld bod y gwrthrych amrywiaeth, mae'r amrywiaeth yn wirioneddol dod yn gorlwytho. Gallwn ei ddefnyddio fel arae. Gallwn ei ddefnyddio fel tabl hash. Gallwn ei ddefnyddio fel pentwr. Pan fyddwch yn dechrau gwthio pethau ar y casgliad Bydd y peth cyntaf y byddwch yn gwthio ymlaen i hyn fod yn mynegai 0 ac yna mynegai 1 a mynegai 2. Gallwch gael y math hwn o genhedlaeth ymhlyg o allweddi oni bai eich bod yn nodi yn eu benodol. Mae'r ffordd y byddwch yn nodi allweddi yn benodol, wrth gwrs, yw drwy ddefnyddio'r nodiant braced, sy'n debyg i araeau ac eithrio yn hytrach na dim ond caniatáu mynegeion cyfanrif mewn yma, yn awr rydym yn gadael i unrhyw beth. Os ydych chi am eich allwedd i fod yn llinyn, byddech yn nodi fel hyn. Os ydych chi am iddo fod yn int, gallwch nodi hynny gyda'r int rydych am ei ddefnyddio. Cwestiynau ar bod hyd yn hyn? Un o'r pethau neis am y syniad hwn yw y gallwch ond yn un werth ei storio gyda allweddol penodol. Os awn yn ôl dros at ein offer-gadewch i mi ddileu rhai o'r pethau hyn. A gadewch i ni ddweud fy mod ymgychwyn arae i fod yn 0, 1, 2, wneud. Os wyf yn awr yn gwybod, er enghraifft, os wyf yn adleisio $ arr [0] Rydw i'n mynd i gael y 0 gwerth hargraffu, a gan y gall dim ond byth fod yn un gwerth ei storio ar gyfer allweddol penodol os byddaf yn storio rhywbeth ar $ arr [0], dyweder, yna byddaf yn gwybod pryd Ategaf $ arr [0] eto Dydw i ddim yn mynd i gael 0 hargraffu fel o'r blaen. Im 'yn unig yn mynd i gael. Felly, mae hyn yn y bôn yn dweud na allaf gael $ arr [0] storio 2 werth gwahanol. Ni all storio yn 0 a llinyn a, fel hyn yn llythrennol yn cymryd lle yr hyn a oedd ar $ arr [0] flaenorol. Y rheswm imi godi hyn yn cael ei rhedeg, gweld beth sy'n digwydd. Gweler yma fy mod yn cael 0 hargraffu ac yna i lawr yma. Does dim llinell newydd yno oherwydd fy mod yn ddiog ac nid oedd yn rhoi bod i mewn Beth cŵl am hyn yw y gallwn ddefnyddio hyn fel ffordd i ddal y syniad o set lle na allwn gael allweddi lluosog o fewn arae. Ni allwn gael allweddi union yr un fath mewn arae. Ni allaf gael key 0 a gwerth 1 a 0 allweddol a gwerth neu 0 allweddol a gwir werth. Mae'r allweddi i gyd-mae dim ond 1 allweddol yn y rhesi. Er y gallwch gael yr un gwerth storio sawl gwaith yn yr amrywiaeth o dan allweddi gwahanol nid yw'n bosibl cael allweddi yn union sawl gwaith yn eich amrywiaeth PHP. Os ydym yn edrych ar y broblem nesaf, unique.php, lle rydym am i agor ffeil PHP cynnwys rhestr o linynnau, un llinyn bob llinell, ac rydym yn awyddus i ddod o hyd pob un o'r llinynnau unigryw yn y ffeil i gyd mae'n rhaid i ni ei wneud yw defnyddio un o'r rhain araeau PHP a defnyddio'r llinynnau yn y ffeil fel yr allweddi i'r casgliad ac yn cadw diweddaru ein amrywiaeth wrth i ni gadw'r allweddi newydd. Wrth i ni ddarllen pob llinell o'r ffeil y gellir ei storio yn yr amrywiaeth, ac ar y diwedd, bydd gennym fel yr allweddi yn ein amrywiaeth pob un o'r llinynnau unigryw o fewn y ffeil. Ydy hynny'n gwneud synnwyr? Gadewch i ni weld sut mae hyn yn gweithio. Rydym yn mynd i agor i fyny, yn ôl y fanyleb, ffeil newydd o'r enw unique.php. Ar agor. Wps, sori, ffeil newydd. Rydym yn mynd i ddechrau i ffwrdd gyda tagiau yr un dechrau a diwedd. Rydym yn mynd i gadw yn adran 9, ac rydym yn mynd i alw ei unique.php. Iawn, yn awr chwyddo i mewn Y syniad yma yw agor ffeil, darllen yn unol ffeil gan linell. Ar gyfer pob llinell yn y ffeil bydd gennym amrywiaeth lle mae gennym  y llinell fel ein allweddol. Ac yna pan fyddwn yn cyrraedd y diwedd yma $ Arr Mae allweddi yn y llinellau unigryw o'r ffeil gan y gwyddom fod os ydw i'n rhoi llinell i mewn i hyn amrywiaeth sawl gwaith y bydd yn jyst cadw ddiystyru gwerth hen, a gallwn mewn gwirionedd yn rhoi llinell amrywiaeth mewn fel ei hun yn unig fel 'na. Mae hyn yn fath o 'n annaearol. Rydym yn storio y pâr gwerth allweddol un drosodd a drosodd a throsodd, ond gan ein bod yn gwarantu y bydd dim ond 1 o'r enw llinell allweddol felly os oes gennym ffeil sy'n dweud-a ffeil o synau anifeiliaid ac mae wedi anwe, anwe, meow, meow, moo, moo, a phob tro rydym yn darllen yn sŵn anifail allan fel anwe, ac rydym yn ei storio yn ein amrywiaeth ydym yn cael anwe, ac yna yr ail dro byddwn yn storio anwe, bydd yn ysgrifennu dros y tro cyntaf i ni ei storio. Yn y diwedd byddwn dim ond un cofnod yn y casgliad gyfer pob un o'r synau anifeiliaid yn ein ffeil anifeiliaid synau. Ydych chi'n guys yn teimlo'n hyderus y gallwch fynd i'r afael â'r agor ffeil yn PHP? Un ffordd i wneud hynny-gadewch i ni fynd dros y ffordd yn gyflym-un i wneud hynny sydd gyda fopen, fel y gwelsom yn gynharach. Gallwch fopen some_file.txt. Gallwch agor mewn modd darllen, yn union fel yn C. Dyna un ffordd berffaith dda i wneud hynny. I chi hefyd ar gyfer darllen yn y llinell ffeil gan linell gael yr un swyddogaethau, llawer ohonynt, a wnaethoch yn C. Mae gennych fgets. Mae gennych feof, er nad ydym yn hoffi defnyddio y oherwydd, cofiwch, nad oedd fawr yn C. Gallwch wneud yn yr un ffordd, ond dyma beth 'n sylweddol oera. Mae'n ddrwg gennym, nid wyf am ei wneud $ ffeil, ond mae swyddogaeth o'r enw ffeil yn PHP, ac mae hyn yn swyddogaeth dde yma yn oer oherwydd ei fod yn darllen holl gynnwys y ffeil eich bod yn nodi, felly some_file.txt, yn darllen holl gynnwys y ffeil i mewn i amrywiaeth ac yna yn gadael i chi ailadrodd drosto, sydd yn eithaf nifty. Os ydym yn mynd, er enghraifft, at ein porwr gwe ac rydym yn edrych ar Google ar gyfer PHP ffeil gallwch weld yma bod ein llawlyfr yn dweud bod ffeil yn darllen ffeiliau cyfan i mewn arae, a gallwn file_get_contents i ddychwelyd cynnwys y ffeil fel llinyn, ond yn nodweddiadol dim ond mynd fel arae yn neis iawn oherwydd yr hyn mae'n ei wneud mae'n torri i fyny fel bod pob elfen yn yr amrywiaeth yn un llinell y ffeil, felly os ydym yn edrych ar ffeil 0, dyna y llinell gyntaf y ffeil. File 1, ail linell, ffeil 2, drydedd linell, ac yn y blaen ac yn y blaen. Oni fyddai'n braf pe a oedd i gyd bu'n rhaid i chi wneud yn C? Pretty nifty. David yn dangos hyn yn y ddarlith, ac mae'r idiom dangosodd ei hynny yn ychwanegol at ein safon ar gyfer ddolen i mewn PHP rydym wedi bod ar gyfer ($ i = 0; i <10; i + +), a gallwch wneud hyn yn PHP hefyd, yr un peth- rydym hefyd yn cael y lluniad oer o'r enw foreach. Foreach yn wirioneddol ddefnyddiol wrth ailadrodd dros araeau neu y strwythurau data oherwydd ei fod yn caniatáu i chi dynnu allan bob elfen o'r rhesi heb orfod manually wneud y mynegeio eich hun, heb orfod manually greu newidyn mynegai, gynyddran hynny, dynnu allan y gwerth yn yr amrywiaeth ar y pwynt, oherwydd mae hynny'n beth cyffredin iawn i'w wneud. Mae'n debyg eich bod wedi gwneud hynny tunnell o adegau pan fyddwch yn gwneud pethau C dros y semester, felly gyda hyn foreach gallwn ddolen dros y array ffeil, ac mae'r gystrawen yw ein bod am i nawr ddolen dros y casgliad ac yn nodi bod y newidyn ydym yn mynd i ddefnyddio i storio yr elfen hon amrywiaeth yn lleol, lleol i gwmpas y ddolen foreach, yn cael ei rydym yn mynd i alw llinell. Os yw'n ffeil o eiriau yn unig, ac mae un gair mewn llinell y gellid ei alw air yn ogystal, mewn gwirionedd dim ond i chi roi hwn yn enw, beth bynnag y dymunwch ei alw, ac yna y tu mewn i'r ddolen, gallwch wneud beth bynnag rydych am â llinell hon amrywiol. Os nad yw'n ddigon i gael y gwerth y rhesi a byddwch hefyd yn awyddus i gael y mynegai ynghyd ag ef y gallwch nodi enw ar gyfer y mynegai yn ogystal â'r gwerth, ac yn awr ydych yn cael mynediad i 2 newidynnau. Mae gennych $ a llinell i lle i $ yw'r mynegai yn yr amrywiaeth, a llinell yn y llinell yr ydych yn adfer o'r ffeil. Er enghraifft, os oeddem am i argraffu adlais 0 llinell y ffeil fel hyn, gallem ei wneud yn union fel hyn, "Line $ i y ffeil yw $ llinell," ac yma yn rhywbeth yr ydym ni hefyd wedi gweld eto naill ai lle dwi 'di jyst hepgor yn llwyr dros y cyfan% s% d fusnes ein bod yn gorfod delio â hwy yn C, ac yn hytrach yr wyf wedi mynd yn syth i ysgrifennu'r newidynnau yn unol yn fy llinyn. Gelwir hyn yn ryngosod amrywiol, llinyn rhyngosodiad lle rydych chi'n stwffin y newidynnau cywir i mewn, a'r dehonglydd PHP yn smart ddigon pan mae'n darllen drwy llinyn sy'n dechrau gyda dwbl dyfyniadau- Nid yw dyfynodau sengl, gyda llinynnau a ddyfynnwyd sengl na allwch wneud hyn- ond gyda llinynnau a ddyfynnir dwbl gan ei fod yn darllen drwy ei fod yn chwilio am newidynnau. Mae'n hela i lawr, ac os yw'n gweld newidynnau y bydd yn mynd â gwerth y newidyn a phethau i mewn i'r llinyn os gall drosi i mewn i gynrychiolaeth llinyn, sydd yn eithaf nifty. Am y tro, gadewch i ni wneud sylwadau ar y gweddill bopeth, arbed hyn, a beth y gallwn ei wneud yn awr yw y gallwn agor i fyny ffeil y gallwn alw some_file.txt-gadewch i ni greu ffeil newydd- a gallwn roi mewn bagad o bethau lol yma dim ond i brofi popeth allan, achub, ei alw some_file.txt, fel yr wyf i'n ei wneud yma ar y brig, ac yn awr os wyf yn chwyddo allan yn unig i wneud yn siwr fod popeth yn yr un cyfeiriadur- mae'n edrych fel yr wyf wedi unique.php a some_file.txt yn yr un cyfeiriadur. Os byddaf yn rhedeg php unique.php weld sut y bydd yn argraffu allan bob llinell yn fy ffeil a beth yw'r llinell yn? Dyna 'n bert pwerus, dde? Edrychwch, fe gymerodd 3 llinell o god i agor i fyny ffeil. Wel, 4 linellau o god. Ni allaf gyfrif heddiw, yn amlwg. Ond mewn gwirionedd dim ond 2 linellau o god diddorol, oherwydd bod y 2 arall oedd y braces cyrliog, ond yn y cod hwn cymaint yr ydym yn gallu agor ffeil, ailadrodd drwyddo, tynnu allan y nifer a rheilffordd ei hun a'i argraffu allan. Pethau Cool. Charlotte. [Charlotte] Mae gen i gwestiwn am y gystrawen. Felly foreach yn delio gyda phob un llinell y ffeil eich bod yn agor, ac yna pan rydych am ei wneud pethau gyda phob un llinell 'ch jyst yn ei wneud fel ac yna cysylltu y gwerth. [Nate H.] Beth allwch chi ei wneud iawn yma-oedd y cwestiwn y foreach wedi ei wneud gyda'r array, felly mae'r gystrawen foreach mewn gwirionedd foreach, a hysbysiad nad oes unrhyw ofod neu unrhyw beth rhwng y blaid ac yn yr un. Mae'n rhaid iddynt fynd i'r dde nesaf at ei gilydd, ac yna y mae'n ei gymryd mewn amrywiaeth, ac yna mae gennych y gair allweddol eraill a elwir gan fod hynny'n cael i fod yno, ac yna ar ôl y fel y gallwch naill ai roi un enw amrywiol, ac yn yr achos rydych yn mynd i gael ei dynnu allan y gwerthoedd y rhesi, nid y mynegeion, neu os ydych yn ei wneud wrth i ni wedi ysgrifennu isod eich bod yn cael yr allweddi, ac mae'r gwerthoedd. Mae gennych elfen foreach o'r amrywiaeth neu bâr y rhesi fel y deipio i werth neu fel dim ond gwerth. Yn dibynnu ar yr hyn rydych ei angen, os nad oes angen yr allweddi, yna gallwch fynd â'r gwerth. Os ydych am i'r allweddi gallwch chi fynd gyda nhw hefyd. [Charlotte] Rwyf hefyd yn sylweddoli ni fyddwn byth yn datgan y ff neu linell. Sut mae hyd yn oed yn gwybod beth ydyn nhw? [Nate H.] Beth ydych chi'n ei olygu wrth datgan? [Charlotte] Rydym byth yn dweud wrthynt beth i neu linell yn ei olygu. [Nate H.] Nid ydym erioed wedi dweud wrth y cyfrifiadur beth i neu linell ei olygu o ran- [Charlotte] Dyna maen nhw'n ei mynegeio neu fod they're- [Nate H.] Nid ydym erioed ddweud wrtho fod hyn yn dybiedig i fod y mynegai neu'r allweddol a gwerth, ac mae hynny oherwydd bod yn y cyfieithydd PHP. Mae hyn yn gwasanaethu fel y datganiad ac yn dweud iawn, yr allwedd yn mynd i fod newidyn enw i storio mewn newidyn enw i. Mae'r gwerth yn mynd i gael eu storio mewn llinell amrywiol o'r enw, felly mae hyn yn gwasanaethu fel datganiad o'r newidynnau hyn ac yn dweud $ i yn allweddol, a $ llinell yn werth. Yeah, Ella. [Ella] Os nad yw'r allweddi yn cael eu gwneud rhifiadol sut y mae'n penderfynu pa orchymyn mae'n mynd i argraffu popeth? A yw'n union fel y drefn y mae'n ei gofnodi yn? [Nate H.] Gadewch i ni roi cynnig arni. Gadewch i ni greu newidyn a elwir yn arr, a gallwn wneud yn mynd i 7. Lets 'ddeud 0 yn mynd i un arall amrywiaeth gyda 1, 2, neu afal. Gadewch i ni ddweud 7 yn mynd i 1, b yn mynd i 2, a 3 yn mynd i 4. Mae hwn yn fath o esiampl crazy edrych oherwydd ein bod yn cymysgu i fyny llinynnau a chyfanrifau i gyd dros y lle. Does dim trefn go iawn at y casgliad. Yr wyf yn golygu, gallem archebu popeth yn nhrefn yr wyddor gan yr allweddi. Gallem archebu popeth yn nhrefn yr wyddor gan y gwerth. Gallai Rydym yn ceisio ac yn ystyried bod rhai yn llinynnau, mae rhai yn ints, a gallem geisio troi nhw i gyd i un math a gweld beth sy'n digwydd, neu gallem ei ystyried yn y gwerth yr ydym yn barod i mewn iddynt lle rydym yn rhoi hyn guy yn gyntaf, mae hyn yn guy yn ail, mae hyn yn guy yn drydydd, y boi yn bedwerydd, et cetera. Gadewch i ni weld beth sy'n digwydd pan rydym yn rhedeg y cod hwn. Os ydym yn sgroliwch i lawr a gwneud yr un math o beth, ac yma nid yw'n argraffu'r llinellau newydd. Pan yn darllen pethau allan o'r ffeil oedd yn cynnwys y llinellau newydd yn y gwerthoedd, a pam ei hargraffu 'n glws, ond yma nid oedd, felly dyna pam popeth yn cael ei smushed gyda'i gilydd. Gadewch i ni ychwanegu yn y llinell newydd yn unig i wneud pethau neis. Gadewch i ni ailgynnal, ac felly dyma edrych ar yr hyn a ddigwyddodd. Mae'n argraffu popeth allan yn y drefn yr ydym yn ei roi yn y casgliad. Yw'n cadw trefn yn yr ystyr honno. Fynd yn ôl at y broblem hon o uniques lle rydym am fod yn gallu ailadrodd dros ffeil, a byddwn yn rhoi ei some_file.txt, ac rydym yn mynd i ailadrodd drosto fel hyn. Dywedasom ein bod am ddefnyddio amrywiaeth i wneud yn siŵr ein bod ni yn cael yr holl Gallai llinellau unigryw allan o yno, ac rydym yn gwneud hynny mewn gwirionedd yn hawdd gan dim ond ei storio mewn amrywiaeth ein bod, wrth gwrs, yn datgan y tu allan i gwmpas dolen, a dywedasom hynny os byddwn yn defnyddio'r llinellau yn y ffeil fel yr allweddi yn ein amrywiaeth os ydym yn mynd i mewn i linell ddyblyg byddem yn bwysicach y gwerth blaenorol. Nid yw'n bynnag y bo modd i gael 2 allweddi sydd yn union yr un fath yn yr amrywiaeth un. Gallwn wneud hynny. Byddwn yn cael gwared ar y datganiad adlais iawn yma. Yma rydym yn storio y llinell yn y ffeil yn ein amrywiaeth defnyddio ei hun fel yr allwedd. Dim iddo, ac mae'n troi allan nad ydym hyd yn oed angen yr allwedd hon. Nid oes angen bod fi amrywiol. Ar y pwynt hwn pe baem yn gwneud rhywbeth arall dolen foreach ac roeddem i ddolen dros bob arr a llinell nawr os ydym yn adleisio-wps, sori. Ni allwn ddefnyddio'r choma. Mae'n rhaid i ni ddefnyddio hyn fel allweddair. Nawr, os ydym yn adleisio llinell dylem gael yr holl eiriau unigryw yn y ffeil. Os ydym yn mynd i fyny at some_file.txt, a gadewch i ni ddweud rydym yn ei wneud afal, banana, afal, afal, banana, os ydym yn argraffu allan yr holl eiriau unigryw yn y ffeil hon yn unig y dylem gael afal a banana ei argraffu. Os byddwn yn arbed hyn, yn awr dyma byddwn yn chwyddo yn ôl i mewn, php unique.php, a ta-da. Rydym wedi llwyddo i uniqued y ffeil. Mae rhan olaf y broblem hon yn gofyn i chi i ddatrys hyn cyn i chi amrywiaeth argraffu allan oherwydd yn yr enghraifft syml ein bod ni wedi gwneud dim ond roeddem yn lwcus yn yr ystyr bod yr-ffeil gwnaethom yr enghraifft hon contrived gydag afalau a bananas. Cafodd ei datrys eisoes. Ond defnyddio'r swyddogaeth math syml y gallwch eu datrys amrywiaeth, sydd yn eithaf nifty. Y peth olaf roeddwn i eisiau siarad gyda chi guys am yn gyflym iawn yw bod y math hwn o PHP i gyd yn dda ac yn dda, ac mae'n super defnyddiol gwybod sut i wneud os ydych erioed angen i wneud bach, pethau cyflym programmatically. Er enghraifft, os oes angen i ysgrifennu rhaglen sy'n, dyweder, yn rhoi pawb yn adrannau Dydw i ddim yn mynd i fynd ac ysgrifennu yn C. Mae'n mynd i fod yn hir. Mae'n mynd i fod yn fath o boen, yn enwedig os oes ffeiliau dan sylw, yn union fel chi guys wedi ei weld. Mae mor braf bod gyda dim ond y cod hwn gymaint o hawl yma roeddem yn gallu RIP drwy ffeil, dynnu allan yr holl werthoedd unigryw a'u hargraffu yn ôl allan. Fodd bynnag, ar gyfer eich aseiniadau, ar gyfer eich prosiectau, os ydych yn adeiladu gwefannau gyda PHP pŵer yw rydym yn cynnal ein ffeiliau PHP drwy'r cyfieithydd, ac mae'r cyfieithydd yn prosesu popeth o fewn y tagiau PHP, gadael popeth arall heb ei gyffwrdd ac yn poeri allan y canlyniadau. Gallwn wneud hyn i adeiladu HTML programmatically. Nawr, os ydym yn mynd yn ôl at y fanyleb, y broblem olaf yn y fanyleb sgyrsiau am y syniad hwn o grynodiadau a chreu bwydlen galw-i-lawr, yr ydych efallai, neu efallai na fyddant am wneud, yn dibynnu ar beth yw eich prosiect terfynol yn ei wneud, sy'n caniatáu i'r defnyddiwr i ddewis o blith rhestr o'r holl crynodiadau posibl eu un crynodiad. Yn awr, mae hyn yn fath o boen i deipio hyn ac mae'n rhaid iddynt wneud hyn i gyd â llaw, yn enwedig pan fyddwch chi'n gorfod gwneud yn siwr bod gennych yr holl cromfachau ongl yn y lle cywir a'r holl dyfyniadau yn y lle cywir, felly gyda PHP, gallwch wneud hyn programmatically, a gallwch wneud hyn yn gyflym iawn. Gadewch i ni weld sut i wneud hyn. Rydym yn mynd i agor ffeil newydd. Rydym yn mynd i roi yn ein tagiau PHP. Rydym yn mynd i alw concentrations.php, ac yn awr pan fyddwch yn gwneud hyn, math o beth da i feddwl am pan fyddwch yn ceisio i gymysgu a chyfateb eich PHP a'ch HTML yn figuring allan, iawn, beth yw'r rhan yr wyf am i programmatically gynhyrchu? Beth yw'r rhan y gallaf programmatically gynhyrchu? Mae'n wir y gallwch wneud eich holl HTML tu mewn blociau PHP. Gallwch adleisio holl HTML fel llinynnau. Er enghraifft, os ydw i am ddechrau gwneud y tagiau dethol tu mewn PHP Gallaf ddweud adlais, yn dweud dewiswch enw = ganolbwyntio, ac yna i lawr isod gallwn gael un arall tag adlais neu arall a elwir yn atsain yn agos y dewis. Mae hwn yn un ffordd i wneud hynny oherwydd beth mae hyn yn llythrennol yn mynd i wneud yn argraffwch y llinyn pan gaiff ei rhedeg drwy'r cyfieithydd PHP, felly bydd y canlyniad yn HTML. Os byddaf yn arbed y ffeil fel ag y mae ar hyn o bryd ac yr wyf yn rhedeg concentrations.php php edrych ar yr hyn yr wyf got. Ges i hon tag dethol agored yn agos. Pe bawn yn gwneud hyn, ac yr wyf yn i achub y canlyniad i ffeil, dweud, concentrations.html-aros, mae'n edrych yn debyg y l wedi mynd drosodd i'r ochr arall- awr os wyf yn agor i fyny yma concentrations.html chi weld gen i ffeil HTML dilys. A yw hynny'n fath o 'n annaearol? Rydym yn defnyddio PHP i greu HTML, creu HTML dilys. Mae'r ffordd yr ydym yn ei wneud, mae'n ni jyst yn cael y print PHP y HTML ein bod am iddi i argraffu. Mae hyn yn llythrennol sut y gwefannau PHP yn gweithio. Pan fyddwch yn ymweld â gwefan sy'n anfon chi i rywbeth fel rhywbeth, rhywbeth, rhywbeth dot com slaes index.php y cyfrifiadur yn llythrennol galw i fyny index.php, rhedeg drwy'r cyfieithydd PHP, a beth bynnag sothach yn dod allan mae'n anfon yn ôl at y porwr ac yn dweud hey, porwr, dehongli hyn fel HTML. Y peth braf yw y gall fod yn boen yn barhaus ysgrifennu adlais, atsain, adlais, atsain ac amgáu popeth mewn dyfynodau fel hyn, felly os ydych am i ysgrifennu HTML mae hynny'n mynd i fod yn sefydlog eich hun, gallwch wneud hynny fel hyn, roi y tu allan, yn agos iddo, ac yna dyma dim ond ei roi y tu mewn i'r tagiau PHP hyn yr ydych yn gwybod ydych am i programmatically cynhyrchu, ac yn yr achos hwn, mae'n rhai tagiau opsiwn bod yn boen i gynhyrchu. Er enghraifft, gallem gynhyrchu tagiau opsiwn mil o drwy wneud rhywbeth fel hyn, $ i <1000, i + + ac yn dweud gwerth opsiwn adlais = $-Wps, ni allaf wneud hynny. Wel, gadewch i ni roi cynnig arni a gweld beth sy'n digwydd. $ I, ac yna dweud $ i