[Powered by Google Translate] [Pjesa 8] [Less komode] [Nate Hardison] [Universiteti i Harvardit] [Kjo është CS50.] [CS50.TV] Mirë se vini në sekondë tonë në seksionin e fundit. Në këtë javë, ne do të flasim në lidhje me PHP, dhe pastaj javën e ardhshme ne do të bëjmë një përmbledhje të vogël për Quiz 1. Ne jemi duke shkuar për të filluar në faqen 3 të problemit përcakton paketë, dhe ne do të punojmë përmes seksionit të pyetjeve mjaft shpejt. Në faqen 3, ne fillojmë të flasim për këtë ndryshim në mes të C dhe PHP në kuptimin që PHP është një gjuhë dinamike shtypen, ndërsa C është shtypur statically, dhe ka dikush me të vërtetë shpejt bëhet ndonjë kodim në PHP si diçka ose Python Ruby ose para, JavaScript? Krejtësisht të re? Rregull. Të gjitha këto gjuhë që unë sapo përmenda janë shumë të ndryshme nga gjuhë si C dhe C + + dhe Java në kuptimin që kur ju të deklarojë një ndryshore ju nuk keni të deklarojnë çfarë lloj variable ajo është, kështu që ne kemi qenë në C mbërthyer pasur nevojë të gjithmonë thonë kjo do të jetë një variabël int, apo kjo do të jetë një variabël char *, ndërsa me PHP, Python, me me Ruby, me një shumë prej këtyre gjuhëve më moderne që ju nuk keni për të bërë këtë në të gjitha. Ju vetëm deklarojnë ndryshore tuaj, dhe në rastin e PHP ju deklaroj se kjo është një ndryshore duke prefixing atë me një shenjë $, dhe pastaj llojin e ndryshueshme përcaktohet me çfarëdo vlera ajo mban, që është lloj i ftohtë. Rreth për të luajtur me këtë një grimë të vogël, ne kemi mostër kodin PHP drejtë këtu në mes tags fillim dhe në fund. Ne jemi duke përdorur këtë lloj si HTML në kuptimin që ne kemi marrë këto kllapa kënd këtu për të hapur dhe të mbyllur. Ju do të shihni këtë me HTML. Ju do të shihni të njëjtin lloj me sintaksë XML shumë. Kjo tregon fillimin e një bllok PHP. Kjo? PHP është specifik për PHP. Ne mbyllë gjithçka me një> si. Le të hapur një skedë në aplikim tonë duke përdorur çdo gjë që ju dëshironi. Në këtë pako ajo thotë se për të thirrur dynamic.php. Në të vërtetë, ju mund të telefononi atë çdo gjë që ju dëshironi, por emrin e file do dalë dhe të jenë të rëndësishme më vonë, kështu që vetëm të kujtuar çdo gjë që ju telefononi atë. Unë jam duke shkuar për të kaluar mbi të pajisjes, dhe unë jam duke shkuar për të bërë një direktori për Neni 9 Unë besoj se ne jemi në tani. Dhe ne do të shkojnë në nenin 9, dhe unë jam duke shkuar për të përdorur Gedit. Le të shohim, Gedit, dhe unë jam duke shkuar për të thirrur dynamic.php minave. Boom. Brenda dynamic.php, pasi kjo është një file PHP dhe unë dua të drejtuar këtë përmes përkthyesit PHP Unë kam nevojë për të filluar gjithçka jashtë me ato tags hapur, kështu që unë jam duke shkuar për të filluar ato menjëherë, jap vetes një hapësirë ​​të vogël në mes tags, dhe pastaj pika e këtij ushtrimi ishte rreth për të luajtur me ky funksion quhet gettype, kështu gettype, këtë funksion drejtë këtu. Vini re se nuk ka të nënvizuar ose hapësirë ​​ose vizë ndarëse ose diçka të tillë ndan 2 fjalët, të merrni dhe shkruani, vetëm një fjalë krejt. Por çfarë do të bëjë kjo është në qoftë se unë të kalojë në një variabël të gettype, thonë se $ var ose $ x, kjo do të thoni lloj në një format debugging çfarë emri i atij lloji është. Ne jemi duke shkuar për të eksperimentuar këtu. Në veçanti, nëse ju shikoni mbrapa në spekulim pset ne kemi marrë disa rreshta të kodit të ndryshme këtu. Në rreshtin e parë të kodit ne nisja këtë variablin $ var,, të jetë e barabartë me 7, dhe pastaj ne kemi këtë linjë printf që thotë hey, var printf është bosh. Printf është një nga shumë mënyra që ne mund të shtypura gjëra në PHP. Shpesh ju do të shihni funksionin e jehonës përdorur në vend të printf, printf por ne jemi të gjithë të njohur me duke qenë coding në C për një kohë. Çfarë ju mund të bëjë në fakt është, le të shohim nëse kopjoni dhe ngjisni vepra. Unë jam duke shkuar për të dhënë këtë një provoni. Ne do të kthehemi mbi të pajisjes. Mirë, dhe aty ne do të shkojmë. Dhe ndarje është një shokuar pak, por këtu ne do të shkojmë. Ne kemi marrë këtë kod në këtu. [Student] A është stil nuk është mirë të tab atë? Na vjen keq? [Student] A është konvencionale të tab atë? Drejtë, kështu Sam pyet nëse ajo është konventë për të tab atë apo jo. Zakonisht po. Në këtë rast unë kam zgjedhur të mos. Sinqerisht, ju do të shihni gjëra të ndryshme në mesin e programerëve të ndryshme. PHP është përdorur zakonisht shpesh në kombinim me HTML dhe gjuhë të tjera, dhe kështu nganjëherë shtypjen do të shikojmë një shokuar pak në qoftë se ju porosit brenda fillimit PHP dhe tags në fund. Me të vërtetë varet. Në këtë rast, kopjoni dhe ngjisni nuk ngjitur skedat në për mua, por ai definitivisht ka, si ju tha, e bëjnë atë të qartë. Të gjithë të drejtë, në qoftë se ju ruani këtë kod në dynamic.php atëherë çfarë ju mund të bëni është të zbresë në dritaren tuaj terminalit ku unë kam të drejtë këtu poshtë në Gedit, dhe për të bërë ekuivalentin e përpilojnë duke përdorur të bërë dhe pastaj duke kodin tuaj në C të gjithë ju duhet të bëni me dosjen PHP është nisni përkthyes PHP, cila është një programi pak quajtur PHP, dhe argumenti që ju jepni përkthyesit është fotografi që ju dëshironi për të interpretuar. Në këtë rast, dynamic.php. Uh, ku nuk kam vënë atë? Oh, kam vënë atë në nenin 9, dhe unë jam këtu. Kjo është arsyeja pse. Tani në qoftë se kam drejtuar atë përsëri ne shohim se në thirrjen e parë tim të funksionit gettype var është një numër i plotë. Në var ardhshëm një është një varg, dhe pastaj në një var tretë është një boolean. Çfarë është interesante në lidhje me këtë është në qoftë se ne e lëviz mbrapa ne shohim se këto janë lloje të ngjashme me ato që kemi pasur në C. Ne kishim ints në C. Ne lloj i pasur vargjet në C, kështu vargjet nuk ishin një lloj krejtësisht legit në kuptimin që string tonë CS50 ishte me të vërtetë ajo? Na vjen keq? Missy? [Missy] char *. Po, ajo ishte kjo char * kemi përdorur. Në fillim të semestrit ne ishim duke përdorur llojin string, por ajo ishte me të vërtetë një * char nën kapuç. Ne vetëm lloji përcaktuar atë, ndërsa në PHP këto vargje janë një lloj aktuale. Nuk ka më shumë të këtij stuff tipit char *. Ju do të shihni se ne mund të bëjmë shumë gjëra shumë me vargjet shumë më të lehtë në PHP se ne mund të në C, dhe pastaj në fund, ne kemi këtë lloj boolean, dhe dallimi i madh këtu është se nëse lëvizni përsëri poshtë shohim se emri i këtyre llojeve të tani janë integer, string, dhe në vend të boolean, int dhe bool dhe si ju të vini deri gjuhë të ndryshme programimi, duke supozuar se në një moment në jetën tuaj ju do të vijnë në kontakt me ato të ndryshme ju do të vëreni quirks pak si kjo ku C quan integers ints. Disa e quajnë atë integers. Nuk janë terma të tjera që ju do të kandidojë në. Int Big pamë sot në SQL. Ka edhe numrin dhe pastaj bool, boolean, të gjitha llojet e dallimeve atje. Kjo nuk është tmerrësisht interesante, por tani unë jam duke shkuar për të ju jap një pak kohë, në qoftë se ne zoom nga mbrapa-për të punuar me këtë ushtrim në fund të faqes 3 ku ai pyet se çfarë lloje të korrespondojnë me këto vlera këtu në fund. Ne kemi 3.50. Ne kemi këtë gjë këtu, që është interesante. Ne nuk kemi parë që më parë, edhe pse në qoftë se ju keni qenë pas së bashku në leksion ju ndoshta tashmë e dini se çfarë është. Pastaj kemi këtë, që kjo është lloj i shokuar. Ju njohin këtë. Çfarë është kjo në C? Sam? Çfarë kjo do të ju jap në C? Kjo do të hapë një file të quajtur dynamic.php dhe të bëjë atë të lexueshme. Po, dhe çfarë do të jetë tipi i variablit që ne do të caktojë këtë? Ylli >> File. Pikërisht, ne do të caktojë këtë një yll file. Kjo është legjitim PHP shumë. Drejtuar atë. Shih se çfarë ndodh kur ju të kalojë që në gettype. Dhe pastaj edhe shikoni se çfarë është null, ajo që mund të jetë në PHP. Unë do të ju jap disa minuta. Ju mund të vërtetë të kopjoni dhe ngjisni në këto vlera, dhe pastaj ne do të bëjmë një telefonatë pak të rastit për ju dhe shikoni se çfarë ju mori. [Student] Unë kam një pyetje. << Yeah. Në një nga ligjëratat Davidi tha se nuk është diçka që ju mund të vënë në krye të dosjes tuaj kështu që ju nuk duhet të shkruani në PHP çdo kohë. Çfarë ishte kjo? Ai ishte ndoshta duke folur për zhurmë paund, Bengut hash. Kjo është një direktivë që nëse ju të shënojë dosjen tuaj si ekzekutues atëherë atë që bën është kur ju të ekzekutuar file ai do t'ju tregojë programin shell të përdorin përkthyes PHP për të interpretuar përmbajtjen e file. Pyetja qenë se çfarë ishte kjo linjë të veçantë që ne mund të përfshijnë në krye dosjet tona PHP që nuk duhet të përfshijë kjo linjë PHP apo kjo komandë PHP kurdo që ne duam për të ekzekutuar skedarin? Dhe ju në fakt mund të bëni këtë me një bandë e fotografi të ndryshme. Unë besoj se kjo varet se ku binar PHP është ruajtur, por shpesh usr / bin / php është një vend i mirë për të filluar. Ju mund të kuptoj këtë, pikërisht duke shkuar mbrapa deri në aplikim tuaj dhe shtypur nga të cilat php. Të cilin komanda shifra se kur ju jeni ekzekutimin binar ose një komandë ku skedar korrespondues është. Kjo tregon mua se PHP është me të vërtetë aliasing këtë fotografi binar që është ruajtur në usr / bin, i cili është ku një shumë e sistemit binare janë instaluar. Për shembull, në qoftë se unë lëviz deri në krye, tani që unë kam vënë këtë #! Shkarko këtu Unë mund të lëvizni poshtë, dhe unë mund të përpiqen për të drejtuar dynamic.php, por unë të marrë këtë gabim në lidhje me lejen e duke u refuzuar, dhe se çfarë do të thotë është se ky file nuk është aktualisht duke i dhënë lejet e ekzekutueshme. Kjo nuk është shënuar si një skedar që dikush mund të kandidojë. Kur ju u bëjnë ose tingëllimë dhe ju mori një ekzekutueshme nga ai përpiluesit ishte mjaft i zgjuar për të dini se hej, unë jam ndërtimin e një ekzekutueshme. Ju ndoshta dëshironi të ekzekutuar atë, kështu që ajo do të automatikisht konfigurimin lejet për ju. Ky nuk është rasti, edhe pse, kur ju krijoni një skedar normale nga e para, arsyeja që zakonisht ju nuk dëshironi të keni ndonjë skedar në sistemin tuaj të jetë i ekzekutueshëm, kështu që ju të vërtetë duhet të shkoni në dhe të bëjë atë me dorë. Mënyra më e lehtë për të bërë atë është me komandën chmod, dhe chmod + x thotë shtoni pak ekzekutues sepse nuk është pak të lexuar, pak shkruani dhe pak ekzekutueshme, r, w dhe x, dhe duke thënë: chmod + x do të kthehet në pak ekzekutues pastaj për dosjen e që Ne të specifikojë, e cila në këtë rast do të jetë dynamic.php. [Student] është ndezur që për të gjithë? Le të kontrolloni këtë jashtë, kështu që si do që unë të kontrolloni për të parë lejet? A e dini se si unë do të kontrolloni për të parë lejet e një skedar? [Përgjigja e padëgjueshme Student] Na vjen keq? >> [Student] XSD. XSD na jep dosjen në hacks. Renditur të gjitha dosjet,-l, do të më tregoni të gjitha dosjet në directory time lloji i tyre në listë të gjatë, fjalëshumë, dhe kështu që këtu ne shohim se Vlerësoni këtë fotografi dynamic.php u ndryshua së fundmi në nëntor 5 PM 4:21. Pronari i kësaj dosje është jharvard. Kjo është përdorues i cili është futur me emrin tuaj Kjo është përdorues që unë jam duke punuar si, dhe në qoftë se ju jeni edhe në aplikim që ju jeni gjithashtu duke punuar si jharvard përdoruesit. Ju jeni në grupin studentëve, dhe këto janë gjëra që ju do të shihni shpesh e mjaftueshme. Ne mund të shkojnë në një shumë detaje këtu, por për pjesën më të madhe atë që ju dëshironi të shikoni në kur ju jeni duke kërkuar për të parë nëse ose jo një skedar është i ekzekutueshëm është kryesisht përdorues që zotëron file, pronari, kështu që kjo jharvard, dhe pastaj kemi BITS lejet mbi këtu në të majtë, dhe mënyra për të lexuar këtë është se pak e fundit në mënyrë tipike është përdorur për shënuar nëse ose jo-të paktën në këtë rast kjo e fundit pak shpesh do të jetë e vendosur për të ad për të treguar që fotografia është një directory dhe jo vetëm një file normale. Atëherë këto 3 bit drejtë këtu përcaktojnë autorizimet që pronari i file ka, kështu që në këtë rast jharvard, si pronar të dosjes, mund të lexojnë dhe shkruajnë këtë skedar, por ka një dash thënë se jharvard nuk mund të ekzekutojë këtë skedar. Tjetër 3 bit janë për grupin, kështu që ky është grupi studentë, kështu që nëse ka pasur përdoruesit të shumta për aplikim tim, dhe ne kishte përdoruesit të shumëfishta si pjesë e grupit studentëve, atëherë ata të gjithë mund të lexoni këtë skedar, por ata nuk mund të shkruajnë atë, dhe gjithashtu dikush tjetër, bota vetëm mund të lexoni këtë foto si. Ka një të mirë, writeup gjatë në lidhje me këtë, kështu që ju mund ta lexoni online. Në spec caktuar problemit ne do të shkojmë në këtë në më shumë detaje. [Student] A është 218 duke iu referuar në botë? The 218-është pjesa e sipërme e kokës sime unë jam harruar, por jo. Le të shohim. Unë jam boshatis sepse në atë të drejtë tani. Mbrapsht në çka ne ishim gati të bëjë me këtë chmod + x ku kemi dashur të japim lejet dynamic.php ekzekutueshme, dhe pyetja ishte nëse janë apo jo kjo do t'i jepte leje të ekzekutueshme për të gjithë ose jharvard vetëm, dhe ne mund të shohim këtë duke drejtimin e komandave dhe shtypni ls-l, dhe tani ne shohim se ajo është e shënuar si ekzekutues. Ju shihni se ka pasur një ndryshim ngjyra. Tani dynamic.php është e shënuar në të gjelbër, dhe kjo duket si përgjigje ndaj pyetjes është ajo, Charlotte? [Charlotte] Vetëm jharvard. >> Vetëm jharvard, yeah. Nëse ne të kërkuar për të kthyer pak në të ekzekutueshme për të gjithë se si mund të bëjmë këtë? Çdo mendimet? >> A + x? Po, pikërisht. Charlotte tha se ne mund të bëjmë një chmod + x të dynamic.php, dhe tani në qoftë se ne të drejtuar ls-l ne shohim se bit ekzekutueshme janë kthyer me të vërtetë në për të gjithë. Dhe ju mund të bëjë në fakt e kundërta e kësaj, kështu që ju mund ta kthejnë atë për të gjithë duke përdorur minus. Tani është e fikur, dhe tani ne mund ta kthejnë atë përsëri në për jharvard kështu që ne mund të vërtetë të drejtuar atë tani, dhe tani ju shikoni kur ne të drejtuar kodin këtë veçantë #! Shkarko në krye, #! line, tha shell, tha terminalin tonë hey, kur kjo fotografi është drejtuar, përdorin / usr / bin / php për të interpretuar këtë fotografi dhe pastaj të shtypura të prodhimit. [Pyetja padëgjueshme Student] Sure, më lejoni të shkoni back up. Ashtu si kjo. Ju do të shihni të gjitha këtyre direktivave të fillojë me këtë kile dhe pastaj pikë thirrje, i quajtur nganjëherë një mesele zhurmë, hash. [Student] Si mund të kandidojë atë me dynamic.php php para se të bëjë atë ekzekutues? Pyetja ishte se si ne mund të drejtuar këtë binar duke përdorur PHP ndërkohë që nuk është i ekzekutueshëm dynamic.php? Kjo është super e rëndësishme sepse kjo është pikërisht se si ajo do të punojnë kur ju shkruani grup Problem 7. Shumica e dosjeve të kohës PHP nuk janë drejtpërdrejt të ekzekutueshëm. Mënyra se si punon është për shkak se ajo është binar PHP që është i ekzekutueshëm. Përkthyesi është gjëja që është duke u ekzekutuar, dhe kështu atë që është bërë është fjalë për fjalë në përmbajtjen slurping gjithë e dosjes tonë dynamic.php dhe linjës shkon nga linjë dhe ekzekutimin e komandave ato, kështu që është përdorur skedarin tonë PHP si një listë e udhëzimeve. Kjo nuk është direkt ekzekutimin e tij. Kjo është ajo ku ne themi se këto fotografi janë interpretuar në kohë të kandidojë. Kjo është një gjuhë e drejtuar herë në vend të diçka që është përcaktuar në kohën e kompilimit, nuk është një gjuhë përpiluar si C. A ka ndonjë mënyrë për të marrë një kohë të drejtuar gjuhë të veprojë si në qoftë se ajo është një kohë përpiloj gjuha, si në qoftë se ju keni të gjithë drejtimin e bërë në server jo-ju e dini se çfarë dua të them? Po, kështu që pyetja është a ka një mënyrë për të marrë gjuhë të kandidojë koha për të vepruar më shumë si lloje kohën e kompilimit të gjuhëve? Dhe janë, dua të them, që është një zonë aktive e hulumtimit për një shumë prej këtyre kompanive. Unë besoj se Facebook ka bërë një punë shumë e me PHP dhe hartimin atë poshtë, duke e bërë atë më të shpejtë, duke optimizuar atë që faqen e tyre është e ndërtuar në PHP. Nëse ju keni qenë pas node.js në të gjitha, që është lloj i një përkthyesi JavaScript të jetë në gjendje për të kandiduar JavaScript jashtë shfletuesit, jashtë shfletuesit tuaj web, sepse tradicionalisht JavaScript vetëm do të kandidojë në brendësi të Firefox apo Chrome, dhe ajo do të përdoret për të bërë animacione ftohtë të ndodhë në një web faqe dhe të bëjë faqen tuaj web dinamike. Që është ndërtuar mbi një punë shumë e që Google ka bërë për të bërë JavaScript dhe C + + lidhin së bashku, kështu që nuk është një shumë e hulumtimit aktiv në marrë këto gjuhë për të bashkëvepruar dhe zgjedh ato, kryesisht për shkak se kaq shumë njerëz mund të kodojnë në PHP dhe JavaScript sepse kjo është një shumë më e lehtë. Kjo është një shumë nicer. Ju nuk keni pointers. Ju nuk keni llojet lundrues rreth. Ata donin për të fituar të mirat e këtyre gjuhëve kohën e kompilimit me të gjithë kontrollin lloji dhe shpejtësia dhe përdorimin më të ulët kujtesës dhe të gjithë që ndërsa ende ruajtur fleksibilitet dhe lehtësinë e përdorimit të këtyre ato të reja. Mbrapsht në planin tonë origjinale të sulmit. Ne kemi marrë disa nga këto pyetje këtu në spekulim vendosur tonë problemin. Le të shkojnë nëpërmjet tyre të vërtetë shpejt, dhe ne do të shkojnë nëpër dhomë. Charlotte, çfarë lloji është 3.50? [Charlotte] Kjo është një dyfishtë. >> Kjo është një dyfishtë. Jimmy, çfarë është kjo një tjetër? >> Një koleksion. Një grup, awesome, dhe Jared, çfarë është fopen? [Jared] Është një burim. >> Është një burim. Kjo është lloj i një të ri jo, një yll fotografi, nuk është një file. Kjo është një burim i është lloji në PHP, dhe unë jam i keq, Ella, null fundit është ajo? Null. Null, si është shkruar në PHP? >> Njëjtën mënyrë. Të njëjtën mënyrë, kryeqytetet? >> Yeah. Po, të gjithë të drejtë. Këtu ne do të shkojmë, ne kemi marrë një të dyfishtë, ne kemi marrë një koleksion, ne kemi marrë një burim, dhe pastaj ne kemi marrë null. Le të shohim tani keni parë- le të shohim, kështu që tani unë mendoj se ajo që unë gjithashtu duan të bëni është të tërheqë deri kjo web faqe të drejtë këtu, kjo php.net / manual, kështu që nëse ju djema kopje atë dhe të hapur një shfletues web. Unë jam duke shkuar për të tërhequr deri Chrome, vendos se in Unë dua të ju tregojnë se kjo jo vetëm për shkak ne mund të flasim gjatë gjithë ditës në lidhje me llojet dhe të gjitha që gjëra zbavitëse por sepse kjo është manual PHP, dhe ka një shumë e programuesve PHP atje. Nuk janë një shumë e faqeve PHP atje, dhe si rezultat, nuk është një shumë e dokumentacionit në PHP, dhe manual, kjo php.net, është një vend me të vërtetë mirë për të shkuar kur ju jeni të paturit e pyetje në lidhje me atë që është mënyra më e mirë për të bërë X në PHP apo çfarë ka një funksion të duken si? Vetëm lloji për të marrë njohur me atë që kjo duket si shkak ju do të vijnë këtu shpesh, pak për problemin e ngritur 7. Nëse ju të përfundojë duke bërë një projekt përfundimtar që përdor PHP kjo do të jetë një vend që ju do të bëhet i njohur shumë mirë me të. Shpesh mënyra e njerëzve të bërë këtë është që ata përdorin Google për të kërkuar këtë faqe interneti, dhe ata nuk përdorni kutinë e kërkimit që është deri këtu në krye të drejtë, që është lloj i vogël. Nëse ju jeni Googling rreth për diçka për të bërë me PHP dhe ju shihni një nga lidhjet manual pop-up që ju zakonisht mund të mbështetet në atë si një burim mjaft të mirë. Awesome, kështu që nga këto lloje, vetëm nga kurioziteti, cilat nuk e kemi parë? Çdo gjë që ne nuk kemi parë këtu? [Student] Burimeve. >> Ne pamë burim me thirrjen fopen. [Student] Objektet objekte. >> Ne nuk kemi parë për sigurt. Callbacks ne nuk kemi parë. Ka disa prej këtyre pseudo-lloje. Ne definitivisht pashë vetëm integer dhe të dyfishtë. Ne nuk shohim disa nga të tjerët, kështu që në qoftë se ne të klikoni mbi integers ne mund të shohim a ka ndonjë integers të tjera që ata kanë këtu? Janë ata të gjithë-aq integer, integer, integer. Disa gjuhë kanë lloje të mëdha integer, ashtu siç e pamë në MySQL sot nuk kishte int dhe pastaj int madh. Cool. Pra, manual PHP. Le të kthehemi në spekulim vendosur tonë problemin, dhe ne tani do të lëvizni poshtë në faqen 4. Një nga gjërat që ndodh kur ju merrni këto gjuhë që nuk e kanë këtë shtypja statike, kështu që këto gjuhë ku ju duhet të deklarojë lloj i një front deri ndryshueshme është që ju të merrni raste ku ju mund të filloni duke variablave të llojeve të ndryshme ndërveprojnë me njëri-tjetrin, PHP dhe e bën këtë gjë ku ajo përpiqet për të bërë atë që e konsideron të jetë gjëja më e ndjeshme për të bërë kur ju keni 2 lloje të ndryshme të ndërveprojnë me njëri-tjetrin. Për shembull, nëse ne shikojmë në këto rreshta të kodit të drejtë këtu ju shihni se ne kemi marrë atë që ndodh kur ne përpiqemi dhe të shtoni string 1 në 2 integer. Çfarë ndodh nëse ne përpiqemi dhe të shtoni një varg që nuk është një vlerë numerike por karaktere më tepër aktuale, CS me numrin 50? Atëherë ne do të shohim se a ka ndonjë gjë tjetër që ndodh kur në vend të shtuar një varg në një numër ne jemi duke shtuar një numër në një varg, dhe kështu me radhë e kështu me radhë deri në pikën ku ne jemi duke marrë një lloj i stuff pazakontë të drejtë këtu, ku ne kemi marrë 7 + e vërtetë. Çfarë dreq do të thotë kjo? Në qoftë se ju djema shkoni përpara dhe ngjisni disa prej këtij kodi në aplikim tuaj. Ju mund të mbani atë në dynamic.php. Ne do të shohim se çfarë ndodh. [Student] Vetëm të përdorni të shtypura, jo printf? Yeah, kështu që ju do të gjeni se është shkruar edhe një funksion të vlefshme për shtypjen në PHP. Ka shumë mënyra të ndryshme për ta bërë atë. Ne do të shohim me një çift nga shembujt më vonë një herë ne të fillojnë të flasin në lidhje me problemin unike që ne jemi duke shkuar për të shkruar dhe pastaj problemi përqendrimet që ne jemi duke shkuar për të shkruar se edhe pse ne kemi fopen dhe Shkrimi kjo nuk është shpesh mënyra më e thjeshtë për të lexuar në përmbajtjen e një skedar. PHP ka një shumë prej këtyre C-si patur postet. [Student] Kur kam vënë në të gjitha 6 e atyre gjërave unë vetëm të marrë një numër si një prodhim. [Nate H.] Kur ju vënë në të gjitha 6 e këtyre gjërave. Le të shohim se ajo është për shkak se ajo është ndoshta- një gjë është se këto thirrje nuk janë të shtypura ndërprerë në fund me linja të reja. Nuk ka asnjë linjë të re që ndan secilin prej këtyre thirrjeve të shtypura, kështu që ndoshta ju jeni duke marrë një numër të madh, dhe kjo është me të vërtetë vetëm amalgamë e karaktereve të linjës reja. [Student] Mirë, si mund ta bëni të sigurt- E pra, ka një bandë e mënyra të ndryshme. Ju mund të vënë në dorë një shtyp të një karakteri të ri të linjës, një jehonë e një karakter të ri të linjës, shtypura e linjës së re. [Student] Pra Echo është e njëjta gjë si printf? Printf është si C printf ku ju jeni shtypjen e një varg formatuar. Ju jeni furnizuar atë string format dhe pastaj të gjitha variablave placeholder. Kjo është diçka që shpesh nuk është përdorur- le të shohim, si një mohim, Unë jam pak i njohur me PHP se unë jam me gjuhë të tjera të internetit, dhe kur kam programuar në PHP unë zakonisht nuk e përdorin printf sepse unë gjej atë më të shpejtë për të përdorur aftësitë e interpolation varg që ajo ka, të cilat ne do të shkoj në dhe unë do të ju tregojnë se vetëm në një të dytë, ndërsa në C, ne lloj duhet të bëjmë këtë gjë hacky për të marrë atë për të shtypur jashtë. Ju mund të vërtetë vënë variablat direkt në vargjet në PHP. Printf është lloj i gjatë tepër për atë që unë zakonisht e bëjnë. Po, Ella. [Ella] Në përgjithësi, nëse ju merrni gabim kuptoj do të thotë kjo- si në C nuk ju them saktësisht se ku është dhe çfarë gabimi është, kështu që nuk do të thotë sy përmes kodit tuaj të tërë dhe të kuptoj atë? Kjo është zakonisht më shumë në shënjestër shumë se kaq. Unë mendoj se në këtë rast ajo ishte një off pak, kështu që unë mendoj se në këtë rast ne u mungon një pikëpresje. Ai ishte duke u përpjekur për të bërë kuptim për çdo gjë, kështu si këto gjuhë interpretuar, përkthyesi do të përpiqen dhe të bëjmë çmos për të bërë punën e çdo gjë të përshtatshme. Ju do të shihni, për shembull, në JavaScript ju do të shpesh-line deklaratat fund me një pikëpresje ashtu si ata e bëjnë në PHP, ashtu si ata e bëjnë në C. Në JavaScript disa prej përkthyesve JavaScript në një shumë të shfletuesit do të vënë në pikpresje për ju nëse ju ndodh që të mungojnë ato. Ata do të përpiqen dhe të strehojë për disa Pjerrësia nga ana juaj. Kjo është ku ai mund të jetë duke u përpjekur dhe duke u përpjekur dhe duke u përpjekur për të bërë gjëra të punës, dhe pastaj në fund ajo do të merrni në një pikë ku ai thotë se në rregull, Unë nuk mund të bëjë gjëra të punojnë në bailing, dhe kjo është ajo ku ju do të merrni një numër linjë që mund të duket pak jashtë nga vendi saktë. Mirë, kështu që le të kalojnë nëpër këtë të vërtetë shpejt. Ne e kemi lënë jashtë me Ella, kështu që le të shkojë mbi Missy, Missy dhe, çfarë do të shtypura e vargut 1 plus numrin 2 të ju jap? [Missy] 3. >> 3. Bën që të bëjnë kuptim? Lloj i? A do të ju jap një numër? A do të ju jap një varg? [Missy] Një numër. >> Është një numër. Por kjo shtypje atë, kështu që ajo do të ju japin disa lloj të vargut. Një gjë që mund të bëjmë për të kontrolluar këtë është nëse ne bëjmë $ var = 1 + 2 dhe pastaj themi jehonë e gettype, kështu që ne jemi duke përdorur një lloj të tretë të shtypjes këtu. Tani ne mund të shohim se çfarë ndodh këtu. Ja se çfarë ne kemi marrë është që ne të marrë një numër të plotë nga kjo. Edhe pse ne ishim duke shtuar këtë varg në një numër, nuk kemi marrë një varg nga ajo, ashtu si Missy tha. Ne kemi qenë duke marrë një numër të plotë. Mirë, kështu që le të shohim, tjetër lart, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Bën që të bëjnë kuptim? [Kevin] Yeah. [Nate H.] Pse? Pse nuk ka kuptim për ju? [Kevin] Për shkak se ajo është vetëm duke pasur string, ka vlerë zero numër. Po, e madhe. Lloji i situatave të paqarta, por është mirë të dihet se çfarë ndodh. Stella, çfarë ndodh më pas me numër 1 + string 2? [Stella] 3. >> 3 përsëri. Dhe në këtë rast, nuk kemi marrë një varg ose një numër? Le të japë këtë provoni. Çdokush shpejt se me të marrë përgjigje? Charlotte? Oh, unë didn't-rregull, le të shohim, ne jemi duke shkuar për të bërë të njëjtin lloj gjë ku ne kemi marrë një numër plus një varg, dhe ne jemi duke shkuar për jehonë llojin, të shohim se çfarë ne kemi marrë. Ne gjithashtu të marrë një numër të plotë. Ajo nuk ka rëndësi cila është një vargu, të cilat njëri është numri. Ne jemi ende duke shkuar për të marrë një numër të plotë. Është ende do të bëjë atë që ne mund të presim. Të gjithë të drejtë, kështu Sam, çfarë rreth 90 + 9 shishet e birrës në mur? [Sam] 99. >> 99. Asnjë shishet e birrës në mur, though. Kjo na jep një informacion pak më shumë në lidhje me atë që po ndodh. [Sam] Nëse ju kishte shkruar me shkronja 9 atëherë ju do të keni 90, apo jo? [Nate H.] Yeah. Pyetja ishte nëse ne do të shkruhet sa më 9 N-I-N-E do të ne kemi marrë 99 apo 90? Ne do të merrni 90. Është fjalë për fjalë vetëm kërkim karaktere shifror. Kjo nuk është mjaft i zgjuar për të njohur fjalë numër dhe se stuff. Po. [Student] A ka një gjë të tillë si typecasting në PHP? Nuk është, dhe kjo është pikërisht mënyra që ju do të bëni atë në C. Po në lidhje me 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Yeah, kështu që ajo mund të jetë e habitshme në lidhje me këtë? Çfarë do të ndodhte nëse ju e bëri këtë lloj të njëjtë gjë në C, në qoftë se ju e bëri 10/7 në C? [Charlotte] Kjo vetëm do të ju jap-në varësi se si ju typecasted I guess ajo do të ju jap vetëm një numër të kufizuar të shifrave pas dhjetore. Yeah, kështu që një numër i kufizuar i shifrave pas dhjetore. Çfarë tjetër mund të jetë ajo-do të ju jap ndonjë shifra pas decimal? Shpesh nuk, kështu që përsëri, në varësi se si ju jeni typecasting atë ai mund ose mund të mos kthyer atë në një numër lundrues pikë. Këtu ajo ishte lloj i bukur se ajo e bëri. Sikur ne të ju treguar këtë përsëri kur kemi filluar duke bërë këtë lloj të gjëra në C ai ndoshta do të kishte kuptim pak më shumë se ai nuk ka vetëm të shkojnë në 1. Dhe pastaj në fund, Jamie, çka në lidhje me 7 + e vërtetë? [Xhemi] 8. >> 8. Çfarë do të thotë kjo? Unë mendoj se vetëm i jep vlerën e vërtetë 1. Po. Çfarë ndodh nëse ne ndryshojmë që të rreme? [Student] 7. Yeah, kështu që mos harroni ku ne flasim për këto vlera binare, 1 është në, 0 është off? Tani ne kemi vërteta është 1, 0 është e rreme, dhe ju nuk mund të keni parë këtë në shembujt C që ne kemi bërë këtë semestër e kaluara, por historikisht lloji bool në C nuk ka qenë një lloj i vërtetë, kështu që njerëzit kanë përdorur 0 dhe 1 në vendin e vërtetë dhe të rreme. Kjo është një manifestim i se. Mirë, kështu që një pjesë e rëndësishme për të gjithë këtë është se ne kemi këto lloje të ndryshme. Ata mund të ndërveprojnë me njëri-tjetrin. Ata shpesh mund të ndërveprojnë me njëri-tjetrin në mënyra që janë të bukur, si ne kemi parë këtu. Është e bukur të jetë në gjendje të ketë vargun 1 dhe numri 2, shtoni ato së bashku dhe për të marrë 3. Që e bën kuptim. Megjithatë, kur ju jeni shkrim faqet e internetit, dhe sidomos kur ju jeni të përpunimit input përdoruesit, kështu që thonë se ju keni shkruar një formular web që mbledh informacion nga përdoruesit dhe pastaj shkon për të proceduar atë në fund mbrapa, në anën e serverit në PHP kodin tuaj nëse ju jeni pritur atë vlerë që përdoruesit shtypur në dhe dorëzuar për formën tuaj të jetë një numër të plotë apo të jetë një numër decimal, ose diçka të tillë ju duhet të qartë të hedhur atë dhe pastaj të bëjë disa kontrolluar lloji. Ju nuk duan të mbështeten vetëm në këtë sistem mashtrim të tipit për të bërë gjëra të punojnë jashtë, sidomos për arsye sigurie dhe vetëm për qëndrueshmërinë e faqen tuaj te internetit. Vetëm diçka për të mbajtur në mend se kur ju jeni trajtimin e të dhënave formë, çdo gjë që vjen në këtë post apo superglobals marrë sigurohuni që ju gjithmonë vërtetoni atë dhe kthyer atë dhe të caktoj në një rol atë. Dhe ashtu si ne ishim duke folur për një moment më parë se typecasting në PHP është pikërisht i njëjtë si në C ku ju keni kllapa dhe pastaj lloji. Mbani në mend. Një funksion që do të vijë në dobishëm kur ju jeni bërë këtë po ne kemi qenë duke përdorur, dhe kjo është lloj i si një mënjanë, ne kemi qenë duke përdorur këtë funksion gettype drejtë këtu të kuptoj llojin e një ndryshore, dhe përderisa kjo është i dobishëm për debugging dhe për të parë se çfarë lloji është një variabël ju nuk dëshironi të përdorni këtë, për shembull, në një gjendje ku ju jeni duke kontrolluar për të parë nëse gettype prej $ var = integer bëjë diçka. Kjo është e keqe, e keqe, e keqe. Në vend të kësaj ka quajtur këto funksione është numër i plotë, është string, është grup që ju doni të përdorni në vend, kështu që në këtë rast ajo që unë do të duan të bëjnë vend të këtë djalë të drejtë këtu është përdorur është e var integer. Dhe ata janë përmendur shpesh është * is_ në kuptimin që ju mund të zëvendësojë * me numër të plotë, , string e të tjera, dhe vetëm për të siguruar të vërtetë të shpejtë po kjo është int php. Duket si ju mund të bëni është int ose ose nuk është numër i plotë, si dhe? Po, alias, emërtimet në mënyrë int integer. Cool. Si po bëjmë? Le të marr ritmin pak. Tani ne do të flasim rreth vargjeve, në mënyrë që ju mund të shihni në pjesën tjetër të spec ne flasim rreth asaj se si Vargjeve në PHP janë pak më të ndryshme se ato janë në C. Në të vërtetë, ata janë lloj i një amalgamë e të vargjeve që ju keni ardhur për të dini dhe dashuri në C ku çdo gjë është e llojit të njëjtë ruajtur rresht dhe pranë njëri tjetrit në kujtesë, dhe ju keni këto indekse numerike. Ju keni 0 indeksi, indeksi 1, indeksi 2, dhe ju të ruajtur vlerat në këto indekse. Ju gjithashtu në C, kur ju ka shkruajtur speller, një shumë prej jush ka qasje të hash tryezë, dhe ju pa se atje nuk kemi pasur një lloj të ndryshme të magazinimit, ku ne ishim hartë një çelës për një vlerë, kështu që kur ju u përpoq për të ruajtur diçka në tabelën hash ju duhet të specifikojë që ju të kërkuar për të ruajtur atë me një çelës të veçantë, dhe se çelësi përcaktuar vendndodhjen e vlerës dhe ku do të ruhen. Ju keni lloj i mori të dy këtyre koncepteve ndodh në të njëjtën kohë në një grup PHP, dhe si rezultat, ne shpesh i quajmë këto vargjeve associative ku ne jemi shoqëruar një çelës në një vlerë. Në këtë pjesë të ardhshëm ne flasim për një grup të thjeshtë PHP ku ne kemi çelësat një, b, dhe c, të gjitha vargjet, hartë të integers 1, 2, dhe 3. Dhe ju mund të keni çelësat e llojeve të ndryshme. Ju mund të keni disa çelësat që janë vargjet, disa çelësat që janë integers. Ju mund të keni vlera të llojeve të ndryshme. Ju mund të kenë një vlerë që është një varg, një vlerë që është një numër të plotë, një vlerë që është një objekt ose në një tjetër grup, për shembull, të gjithë në të njëjtin objekt array, që është lloj i pazakontë. Ju nuk duhet të ketë një rrjet që e mori vetëm një lloj elementi në të. Ju mund të keni shumë gjëra të ndryshme ndodh në atje. Gjë tjetër që theksohet është se kur ju bëni të shihni diçka si kjo në kodin tuaj, cila është PHP vlefshme te deklaroj një grup vetëm si kjo, 0, 1, 2, 3, 4, 5, që do të shpallë një $ arr initialized të jetë në këtë grup. Por ajo që ju jeni në të vërtetë duke marrë nën kapuç është ky lloj i nënkuptuar gjenerimi i çelësat ku ne kam ka 0 me 0, 1-1, 2 deri në 2, 3 te 3. Dhe kjo rezulton se edhe në qoftë se ju keni një koleksion si ky djalë deri këtu ku ju keni një, b dhe c si çelësat dhe pastaj ju filloni duke përdorur metodën shtytje array për të filluar përdorimin e këtij koleksion si një pirg, kështu që ju mund të shihni se ky objekt array, array kjo është me të vërtetë duke u bërë mbingarkuar. Ne mund të përdorni atë si një grup. Ne mund të përdorni atë si një tabelë hash. Ne mund të përdorni atë si një pirg. Kur ju filloni duke kërkuar gjëra mbi këtë grup Gjëja e parë që ju shtyjnë në kjo do të jetë indeksi 0 dhe pastaj Indeksi 1 dhe 2 indeksi. Ju mund të merrni këtë lloj të gjenerimit të çelësave të nënkuptuar nëse ju specifikoni ato në mënyrë eksplicite. Mënyrë që ju të specifikojë në mënyrë eksplicite çelësat, natyrisht, është duke përdorur këtë simbol parantezë, e cila është e ngjashme me vargjeve, përveç në vend të vetëm duke lejuar indekset integer në këtu, tani ne të lejojë asgjë. Nëse ju doni të jetë çelësi yt një varg, ju do të specifikojë atë si kjo. Nëse ju dëshironi që ajo të jetë një int, ju specifikoni atë me int ju doni të përdorni. Pyetjet për të cilat deri më tani? Një nga gjërat e bukur në lidhje me këtë ide është se ju mund të ketë kurrë një vlerë të depozituara me një çelës të veçantë. Nëse ne do të shkojmë përsëri mbi të tonë aplikim-let fshini disa nga këto gjëra. Dhe le them inicializoj një grup të jetë 0, 1, 2, bërë. Nëse unë tani e di se, për shembull, në qoftë se unë echo $ arr [0] Unë jam duke shkuar për të marrë vlerën 0 shtypura jashtë, dhe pasi që nuk mund të jetë kurrë një vlerë të ruhet për një çelës të veçantë në qoftë se unë të ruajtur diçka në $ arr [0], thonë se një, atëherë unë e di kur kam echo $ arr [0] përsëri Unë nuk jam duke shkuar për të marrë shtypur nga 0 si më parë. Unë jam vetëm duke shkuar për të marrë një. Pra, kjo është në thelb duke thënë se unë nuk mund të ketë $ arr [0] 2 ruajtjen vlera të ndryshme. Ajo nuk mund të ruajë si 0 dhe një varg, si kjo fjalë e zëvendëson çfarë ishte në $ arr [0] parë. Arsyeja që unë të sjellë këtë ide është e drejtuar atë, të shohim se çfarë ndodh. Shih këtu se kam marrë 0 shtypur dhe pastaj një këtu poshtë. Nuk ka asnjë linjë të re atje, sepse unë kam qenë dembel dhe nuk vendos se in Çfarë është ftohtë në lidhje me këtë është që ne mund të përdorni këtë si një mënyrë për të kapur këtë ide e një grup ku ne nuk mund të ketë çelësat të shumëfishta brenda një rrjet. Ne nuk mund të ketë çelësat identike brenda një rrjet. Unë nuk mund të ketë 0 kyç dhe vlerën e 1 dhe 0 kyç dhe vlerën e një ose 0 kyç dhe vlera e vërtetë. Çelësat janë të gjithë-ka vetëm 1 kyç në grup. Edhe pse ju mund të kenë të njëjtën vlerë ruajtur herë të shumta në grup nën çelësat e ndryshme kjo nuk është e mundur që të ketë çelësat identike herë të shumta në rrjet tuaj PHP. Nëse ne shikojmë në këtë problem tjetër, unique.php, ku ne duam të hapur një skedar PHP përmban një listë të strings, një varg për çdo rresht, dhe ne duam të gjeni të gjitha vargjet unike në këtë dosje të gjithë ne duhet të bëni është të përdorni një prej këtyre vargjeve PHP dhe përdorimin e strings në dosjen si çelësat për këtë koleksion dhe për të mbajtur përditësimin koleksion tonë si ne dyqan këto çelësat reja. Siç lexojmë çdo linjë nga e dosjes ne mund të ruajë atë në rrjet, dhe në fund ne do të kemi si çelësat tanë në grup tonë të gjitha vargjet unike brenda file. Bën që të bëjnë kuptim? Le të shohim se si punon kjo. Ne jeni do të hapur deri, sipas spekulim, një file i ri i quajtur unique.php. Hapur. Oops, sorry, fotografi të re. Ne jemi duke shkuar për të filluar atë me fillimin njëjtë dhe në fund tags. Ne jemi duke shkuar për të shpëtuar atë në nenin 9, dhe ne jemi duke shkuar për të thirrur atë unique.php. Mirë, tani zoom in Ideja këtu është hapur një skedar, lexuar në linjë skedar nga linjë. Për çdo linjë në dosjen ne do të kemi një rrjet ku ne kemi  të vijë si çelësin tonë. Dhe atëherë kur ne të merrni në fund këtu Çelësat $ arr janë linjat unike nga dosja që ne e dimë se në qoftë se kam vënë në këtë grup linjë shumë herë ai thjesht do të mbajë vlerën thelbësore të vjetër, dhe ne fakt mund të vihet linjë array si vetë ashtu si kjo. Kjo është lloj i pazakontë. Ne jemi ruajtjen palë njëjtin kyç vlerë mbi dhe mbi dhe mbi përsëri, por që ne jemi të garantuar se nuk do të jetë vetëm 1 çelësi quajtur linjë kështu që nëse ne kemi një skedë që thotë se një skedar-i zhurmave të kafshëve dhe ajo ka lehje lehje,, , meow meow, moo, moo, dhe çdo herë që ne lexojmë një zhurmë jashtë kafshëve lehje si dhe ne ruajtur atë në grup tonë kemi marrë lehje, dhe pastaj për herë të dytë ne dyqan lehje ajo do të prishësh herën e parë që kemi ruajtur atë. Në fund ne do të kemi vetëm një hyrje në rrjet për secilin prej zhurmave të kafshëve në dosjen e zhurmave tonë kafshëve. A ju djema të ndjehen të sigurt se ju mund të trajtojë hapjen e një skedar në PHP? Një mënyrë për të bërë atë, le ta kalosh këtë mënyrë shpejt-një për të bërë atë është me fopen, ashtu siç e pamë më herët. Ju mund fopen some_file.txt. Ju mund të hapur atë në mënyrë të lexohet, ashtu si në C. Kjo është një mënyrë e përkryer e mirë për të bërë atë. Ju gjithashtu pastaj për të lexuar në linjë skedar nga linjë kanë të njëjtat funksione, shumë prej tyre, që keni bërë në C. Ju keni fgets. Ju keni feof, edhe pse ne nuk na pëlqen që duke përdorur sepse, mos harroni, se nuk ishte e madhe në C. Ju mund të bëni atë në të njëjtën mënyrë, por këtu është një gjë me të vërtetë cool. Na vjen keq, unë nuk dua të bëj $ file, por ka një funksion të quajtur fotografi në PHP, dhe kjo funksion drejtë këtu është ftohtë, sepse ajo lexon të gjithë përmbajtjen e dosjes që e keni dhënë, kështu some_file.txt, lexon të gjithë përmbajtjen e këtij skedë në një grup dhe pastaj ju lejon të iterate mbi të, i cili është shumë i mrekullueshëm. Nëse ne do të shkojmë, për shembull, në shfletuesin tonë të internetit dhe ne e shohim në Google për dosjen PHP ju mund të shihni këtu se manual ynë thotë se dosja lexon dosjen e tërë në një grup, dhe ne mund të kthehen file_get_contents përmbajtjen e një file si një varg, por zakonisht vetëm duke marrë atë si një grup është me të vërtetë e bukur, sepse ajo bën është ajo thyen atë mënyrë që çdo element në grup është një linjë e dosjes, kështu që nëse ne shikojmë në dosjen e 0, kjo është vija e parë e dosjes. 1 fotografi, rreshtin e dytë, dosja 2, linjë e tretë, dhe kështu me radhë e kështu me radhë. Nuk do të jetë mirë në qoftë se kjo ishte e gjitha që ju duhet të bëni në C? Pretty mrekullueshëm. Davidi tregoi këtë leksion, dhe idioma ai tregoi ishte se përveç standardin tonë për loop-në PHP që kemi pasur për ($ i = 0; I <10; I + +), dhe ju mund ta bëni këtë në PHP shumë, të njëjtën gjë- ne gjithashtu kemi këtë ndërtimin e një të ftohtë të quajtur foreach. Foreach është me të vërtetë i dobishëm kur iterating mbi vargjeve apo këtyre strukturave të të dhënave sepse kjo ju lejon të tërheqë nga çdo element të vektorit pa pasur nevojë të bëjnë me dorë indeksimin veten, pa pasur në dorë të krijuar një indeks ndryshore, rritje atë, tërhequr nga vlera në rrjet në atë pikë, sepse kjo është një gjë shumë e zakonshme për të bërë. Ju ndoshta keni bërë se ton e kohës kur ju keni qenë duke bërë gjëra C mbi semestrit, kështu që me këtë foreach ne mund lak mbi këtë grup file, dhe sintaksa është se ne duam të tani lak mbi këtë grup dhe të përcaktojë se ndryshueshme ne jemi duke shkuar për të përdorur për të ruajtur elementi i këtij grup në nivel lokal, vendor në fushën e këtij lak foreach, po ne jemi duke shkuar për të thirrur atë linjë. Në qoftë se kjo është një file i fjalëve të vetëm dhe nuk është një fjalë në një linjë mund ta quajmë atë fjalë, si dhe, me të vërtetë vetëm ju jepni një emër kësaj, çdo gjë që ju dëshironi të telefononi atë, dhe pastaj brenda lak ju mund të bëni çfarë të doni me këtë linjë ndryshueshme. Nëse kjo nuk është e mjaftueshme për të marrë vlerën e grup dhe ju gjithashtu duan të marrin indeksi së bashku me atë që ju mund të specifikoni një emër për indeksin si dhe vlera, dhe tani ju keni qasje në 2 variablave. Ju keni $ i dhe linjë ku $ i është indeksi në grup, dhe linjë është linjë që ju marrë nga dosja. Për shembull, në qoftë se ne të kërkuar për të shtypura nga jehonës 0 vijë e file si ky, ne mund të bëjmë atë vetëm si kjo, "Linja $ i e dosjes është $ line," dhe këtu është diçka që edhe ne nuk kemi parë ende as ku unë kam vetëm skipped krejtësisht mbi% d% e tërë këtij biznesi se kemi pasur për t'u marrë me të në C, dhe në vend që unë kam shkuar direkt në shkrim variablave në linjë në vargun tim. Kjo quhet interpolation ndryshueshme, string interpolation ku jeni mbushjen e variablave të drejtë në, dhe përkthyesi PHP është mjaft i zgjuar kur është e leximit nëpërmjet një varg që fillon me kuotat dyfishtë- jo citate të vetme, me vargjet e cituara të vetme që ju nuk mund ta bëjë këtë- por me vargjet e cituara dyfishtë si ajo lexon me anë se është në kërkim të variablave. Është gjueti ato poshtë, dhe nëse sheh variablave ajo do të marrë vlerën e ndryshueshme dhe sende atë në varg në qoftë se ajo mund të konvertohet atë në një përfaqësim string, cila është goxha nifty. Tani për tani, le të komentoni nga pjesa tjetër e çdo gjëje, ruani këtë, dhe çfarë mund të bëjmë tani është që ne mund të hapë një skedë që ne mund të telefononi some_file.txt-le të krijojë një të ri file- dhe ne mund të vënë në një bandë e pakuptimta në gjëra këtu vetëm për të provuar çdo gjë jashtë, shpëtuar atë, e quajti atë some_file.txt, si unë jam duke bërë këtu lart në krye, dhe tani në qoftë se unë të zoom jashtë vetëm për t'u siguruar që gjithçka është në të njëjtën directory- kjo duket si kam unique.php dhe some_file.txt në të njëjtën directory. Nëse unë drejtuar unique.php php të shohim se si ajo printon nga çdo linjë në dosjen time dhe atë që linja është? Kjo është goxha e fuqishme, apo jo? Shikoni, ai mori 3 rreshta të kodit për të hapur një skedë. E pra, 4 rreshta të kodit. Unë nuk mund të llogarisin sot, në mënyrë të qartë. Por me të vërtetë vetëm 2 rreshta të kodit interesante, sepse 2 tjera ishin formatimin e teksteve kaçurrel, por në këtë kod sa ne ishim në gjendje për të hapur një skedë, iterate nëpërmjet saj, tërhequr nga numrin e linjës dhe linjës vetë dhe të shtypura it out. Cool stuff. Charlotte. [Charlotte] Unë kam një pyetje në lidhje me sintaksë. Pra foreach bëjë me çdo linjë të vetme të dosjes që keni hapur, dhe pastaj kur ju doni të bëni gjëra me çdo linjë të vetme ju vetëm bëni atë si dhe pastaj shok vlerën. [Nate H.] Çfarë mund të bëni ju të drejtë këtu, pyetja ishte the foreach ka të bëjë me grup, kështu që sintaksë foreach është me të vërtetë foreach, dhe njoftim se nuk ka hapësirë ose diçka mes për dhe secili. Ata kanë për të shkuar drejtë tjetër për njëri-tjetrin, dhe pastaj ajo merr në një grup, dhe pastaj ju e keni këtë keyword tjera të quajtur si ajo duhet të jetë atje, dhe pastaj pas si ju ose mund të vendosni një emër ndryshueshme, në të cilin rast ju do të jeni të tërhequr nga vlerat e vektorit, jo indekset, ose në qoftë se ju bëni atë siç kemi shkruar më poshtë ju merrni çelësat dhe vlerat. Ju keni element foreach e grup ose palë e array si akorduar në vlerën ose si thjesht vlera. Në varësi të asaj që ju duhet, nëse ju nuk keni nevojë çelësat, atëherë ju mund të shkoni me vlerë. Nëse ju doni çelësat që ju mund të shkoni me ta shumë. [Charlotte] Unë gjithashtu e kuptuan që ne nuk i shpalli ose linjë. Si e bën atë edhe e di se çfarë ata janë? [Nate H.] Çfarë do të thotë nga shpallë? [Charlotte] Ne kurrë nuk u tha atyre se çfarë i thotë ose linja. [Nate H.] Ne kurrë nuk i tha atë që unë kompjuter ose Linja do të thotë në aspektin e- [Charlotte] se ata janë të indeksuar ose që they're- [Nate H.] Ne kurrë nuk tregoi se kjo është menduar të jetë indeksi apo kyç dhe vlera, dhe kjo është për shkak se është përkthyesi PHP. Kjo shërben si deklaratës dhe thotë rregull, kyç do të jetë një ndryshore të quajtur i ruajtur në një ndryshore të quajtur i. Vlera do të ruhen në një linjë ndryshueshme quajtur, kështu që kjo shërben si deklaratë e këtyre variablave dhe thotë se $ i është një kyç, dhe $ linjë është një vlerë. Po, Ella. [Ella] Nëse çelësat nuk janë bërë numerikisht si e bën atë të vendosë se çfarë mënyrë ajo do të shtypura çdo gjë? Është vetëm si të rendit se është futur në? [Nate H.] Le t'i jepte një provoni. Le të krijojnë një ndryshore të quajtur arr, dhe ne mund të bëjë një shkon në 7. Le thonë 0 shkon tek një tjetër grup me 1, 2, ose molla. Le të thonë se 7 shkon në 1, b shkon në 2, dhe 3 shkon në 4. Kjo është lloj i një shembull i çmendur në kërkim, sepse ne jemi rrëmujë vargjet dhe integers të gjithë vendin. Nuk ka asnjë mënyrë të vërtetë për këtë grup. Unë do të thotë, ne mund të urdhërojë çdo gjë në mënyrë alfabetike nga çelësat. Ne mund të urdhërojë çdo gjë alfabetike me vlerë. Ne mund të përpiqemi dhe të marrë parasysh se disa janë vargjet, disa janë ints, dhe ne mund të përpiqemi dhe të konvertohet ata të gjithë të të njëjtit lloj dhe të shohim se çfarë ndodh, ose ne mund të konsiderojmë ato në vlerën në të cilën kemi hyrë tashmë ato ku ne kemi vënë këtë djalë në fillim, ky djalë në vend të dytë, këtë djalë në vend të tretë, ky djalë në, cetera et katërt. Le të shohim se çfarë ndodh kur kemi drejtuar këtë kod. Nëse ne lëvizni poshtë dhe të bëjë të njëjtin lloj gjë, dhe këtu nuk është shtypje nga linjat e reja. Kur ajo lexoni gjëra nga e dosjes është përfshirë linja të reja në vlerat, e cila është arsyeja pse ajo shtypur bukur, ndërsa këtu kjo nuk e bëri, kështu që kjo është arsyeja pse çdo gjë është smushed së bashku. Le të shtoni në atë linjë të re vetëm për të bërë gjëra të bukur. Le përsëritje atë, dhe kështu që këtu shikojmë se çfarë ka ndodhur. Ajo shtypur çdo gjë në mënyrë në të cilën kemi vënë atë në rrjet. Ajo ka ruajtur rendin në atë kuptim. Going back për këtë problem të uniques ku ne duam të jetë në gjendje për të iterate mbi një skedar, dhe ne do t'i jepte some_file.txt, dhe ne jemi duke shkuar për të iterate mbi të si kjo. Ne tha se ne të kërkuar për të përdorur një rrjet të bëni të sigurtë që ne do të marrë të gjitha të linja unike nga atje, dhe ne mund të bëjë që me të vërtetë lehtë vetëm me ruajtjen në një grup që ne sigurisht deklarojë jashtë fushëveprimit të një lak, dhe kemi thënë se në qoftë se kemi përdorur linjat në dosjen si çelësat në grup tonë në qoftë se kemi hyrë në një linjë të kopjuar ne do të jetë thelbësore vlerën e mëparshme. Kjo nuk është kurrë e mundur që të ketë 2 çelësat që janë identike në grup të njëjtë. Ne mund të bëjë vetëm se. Ne do të shpëtoj i kësaj deklarate jehonë të drejtë këtu. Këtu ne jemi ruajtjen linjë në dosjen në grup tonë duke përdorur veten si çelës. Asgjë për të, dhe ajo rezulton se ne nuk duhet edhe këtë kyç. Ne nuk kemi nevojë që i ndryshueshëm. Në këtë pikë, nëse ne ishim të bëni një tjetër lak foreach dhe ne do të lak mbi çdo arr dhe linja tani në qoftë se ne echo-oops, sorry. Ne nuk mund të përdorni presje. Ne kemi për të përdorur këtë si fjalen. Tani në qoftë se ne echo linjë duhet të marrë të gjitha fjalët unike në dosjen. Nëse ne do të shkojmë deri në some_file.txt, dhe le të themi që ne bëjmë mollë, banane, mollë, mollë, banane, nëse jeni shtypjen nga të gjitha fjalët unik në këtë dosje, ne duhet vetëm të marrë mollë dhe banane për të shtypur jashtë. Nëse kemi ruajtur këtë, tani këtu ne do të zoom në, php unique.php, dhe Ta-da. Ne kemi sukses uniqued file. Pjesa e fundit e këtij problemi është pyetur ju për të zgjidhur këtë grup para se të shtypura it out sepse në këtë shembull të thjeshtë që ne kemi bërë vetëm ne ishim me fat në kuptimin se file- ne e bëmë këtë shembull ndërtuar me mollë dhe banane. Ajo u renditur tashmë. Por duke përdorur funksion të thjeshtë ju mund të lloj lloj një grup, i cili është shumë i mrekullueshëm. Gjëja e fundit që kam kërkuar për të folur me ju djema në lidhje me të vërtetë shpejt është se ky lloj i PHP është e gjitha mirë dhe të mirë, dhe kjo është super i dobishëm të dinë se si të bëni nëse ndonjëherë ju duhet të bëni gjëra të vogla, të shpejtë programuar. Për shembull, në qoftë se unë duhet të shkruaj një program që, të themi, vë të gjithë në seksione unë nuk jam duke shkuar për të shkuar dhe shkruani atë në C. Ajo do të jetë e gjatë. Ajo do të jetë një lloj dhimbje, sidomos nëse nuk janë të përfshira fotografi, Ashtu si ju djema keni parë. Është kaq e bukur se me këtë kod vetëm shumë të drejtë këtu ne ishim në gjendje për të shqyej nëpërmjet një skedar, tërhiqet nga të gjitha vlerat unike dhe ato të shtypura nga mbrapa. Megjithatë, për detyrat tuaja, për projektet tuaja, në qoftë se ju jeni të ndërtuar faqet e internetit me PHP pushtet është që ne jemi drejtimin dosjet tona PHP përmes këtij përkthyesi, dhe përkthyesi është e përpunimit gjithçka brenda etiketave PHP, duke lënë çdo gjë tjetër paprekur dhe pështyrë nga rezultatet. Ne mund ta bëjmë këtë për të ndërtuar HTML programuar. Tani, nëse ne do të shkojmë përsëri në spekulim, problemi i fundit në spekulim Bisedimet rreth kësaj ideje të përqendrimeve dhe krijimin e një drop-down menu, të cilat ju mund ose nuk mund të dëshironi të bëni, në varësi të asaj që projekti juaj përfundimtar është bërë, që lejon përdoruesit për të zgjedhur nga një listë e të gjitha përqendrimet e mundshme përqendrimi i tyre një. Tani, kjo është lloj i një dhimbje të tipit këtë, dhe duhet të bëjë të gjithë këtë me dorë, sidomos kur ju jeni të paturit të bëni të sigurtë që ju të keni të gjitha kllapa kënd në vendin e duhur dhe të gjitha kuotat në vendin e duhur, kështu me PHP ju mund të bëni këtë programuar, dhe ju mund ta bëni këtë të vërtetë të shpejtë. Le të shohim se si ta bëni këtë. Ne jemi duke shkuar për të hapur një skedë të re. Ne jemi duke shkuar për të vënë në tags tonë PHP. Ne jemi duke shkuar për të thirrur atë concentrations.php, dhe tani kur ju jeni duke bërë këtë, lloj i një gjë e mirë për të menduar rreth kur ju jeni duke u përpjekur për të përzierje dhe ndeshje PHP tuaj dhe HTML tuaj është parafytyruar, rregull, çfarë është pjesa që unë dua të programuar gjeneruar? Cila është pjesa që unë mund të gjenerojnë të programuar? Është e vërtetë se ju mund të bëni të gjitha HTML tuaj brenda blloqeve PHP. Ju mund të jehonë të gjithë HTML si vargjet. Për shembull, në qoftë se unë dua të fillojnë të bëjnë tags zgjidhni brenda PHP Unë mund të them jehonë, thonë zgjidhni = përqendrim emrin, dhe pastaj poshtë poshtë unë mund të ketë një tjetër tag jehonës ose në një tjetër jehonë e quajti afër zgjidhni. Kjo është një mënyrë për të bërë atë, sepse ajo që kjo është fjalë për fjalë do të bëjë është shkruar këtë varg kur ajo është drejtuar përmes përkthyesit PHP, kështu që rezultati do të jetë HTML. Nëse unë ruaj këtë foto si kjo është e drejtë tani dhe unë drejtuar concentrations.php php shikoni se çfarë kam marrë. I kam këtë kod të hapur të ngushtë zgjidhni. Nëse unë do të bëj këtë dhe kam qenë për të ruajtur këtë rezultat në një skedar, thonë, concentrations.html-prisni, ajo duket si l ka shkuar mbi të tjetër anë- tani, nëse unë i hapur deri këtu concentrations.html ju shihni se unë kam një file të vlefshëm HTML. Është se lloji i çuditshëm? Ne jemi duke përdorur PHP për të krijuar HTML, të krijojë HTML vlefshme. Mënyra se si ne po bëjmë është që ne jemi vetëm duke shkruar PHP HTML që ne duam që ajo të shtypura. Kjo është fjalë për fjalë se si faqet e internetit PHP janë duke punuar. Kur ju vizitoni një faqe interneti që ju dërgon në diçka si diçka, diçka, diçka dot com Slash index.php kompjuteri është fjalë për fjalë duke e quajtur deri index.php, drejtimin atë nëpërmjet përkthyesit PHP, dhe çdo gjë vjen nga junk ajo është dërguar përsëri në shfletuesin dhe duke thënë: hej, browser, interpretojnë këtë si HTML. Gjë e bukur është se ajo mund të jetë një dhimbje të vazhdueshme të shkruar jehonë, jehonë, jehonë, Echo dhe rrethoni çdo gjë në thonjëza si kjo, kështu që nëse ju dëshironi të shkruani HTML që do të jetë statike veten ju mund ta bëni atë si kjo, vënë atë jashtë, mbyllni atë, dhe pastaj ju vetëm vënë këtu brenda tags PHP atë që ju e dini ju doni të programuar të gjeneruar, dhe në këtë rast kjo është këto tags opsion që janë një dhimbje të gjeneruar. Për shembull, ne mund të gjenerojë një mijë tags opsion duke bërë diçka si kjo, $ i <1000, i + + dhe duke thënë opsion vlerë jehonës = $-uh, unë nuk mund ta bëjë këtë. E pra, le t'i jepte një provoni dhe shikoni se çfarë ndodh. $ I $ dhe pastaj duke thënë se i