[Powered by Google Translate] [Sadaļa 8] [mazāk apmierināti] [Nate Hardison] [Hārvarda] [Tas ir CS50.] [CS50.TV] Laipni lūgti mūsu otro līdz pēdējā sadaļā. Šajā nedēļā mēs ejam runāt par PHP, un pēc tam nākamajā nedēļā mēs darīsim nedaudz pārskatu par 1 viktorīnā. Mēs ejam, lai sāktu no problēmas 3 lapā komplekti pack, un mēs strādāt ar sadaļu jautājumiem diezgan ātri. 3 lapā, mēs sākam runāt par šo atšķirību starp C un PHP tādā ziņā, ka PHP ir dinamiski drukāti valoda, tā C statiski drukāti, un ir kāds tiešām ātri izdarīt jebkādas kodēšanas kaut ko līdzīgu PHP vai Python vai Rubīns pirms JavaScript? Pilnīgi jauns? Labi. Visi šie valodu, kas man tikko minēts ļoti atšķiras no valodas, piemēram, C un C + + un Java tādā ziņā, ka tad, kad jūs deklarēt mainīgo jums nav deklarēt kāda veida mainīgo tā ir, tāpēc K mēs bija iestrēdzis, kam vienmēr saku Tas būs int mainīgo, vai tas būs char * mainīgs, tā kā ar PHP, ar Python, ar Ruby, ar daudz no šiem vairāk mūsdienu valodas jums nav to darīt vispār. Jūs vienkārši deklarēt savu mainīgo, un attiecībā uz PHP Jums paziņot, ka tā ir mainīga ar apzīmētāju to ar $ zīmi, un tad mainīgā veidu nosaka kāda vērtība tas ir saimniecības, kas ir veida atdzist. Spēlēt aptuveni ar šo mazliet, mums ir Paraugs PHP kodu tieši šeit starp sākuma un beigu tagiem. Mēs esam izmantojot šāda veida līdzīgi HTML tādā ziņā, ka mēs esam ieguvuši šos leņķa iekavas šeit atvērt un aizvērt. Jūs redzēsiet to ar HTML. Jūs redzēsiet to pašu veida sintakse ar XML pārāk. Tas norāda uz sākumu PHP bloku. Šo? Php ir specifiska PHP. Mēs aizvērt viss ar?> Kā arī. Pieņemsim atvērt failu mūsu ierīces, izmantojot ko jūs vēlaties. Šajā paketē ir teikts, lai izsauktu dynamic.php. Patiesībā, jūs varat zvanīt tas ko jūs vēlaties, bet faila nosaukums būs jānāk klajā un būt svarīgs vēlāk, tāpēc atceries kāds jums zvana to. Es esmu gatavojas pārslēgties uz ierīces, un es esmu gatavojas veikt direktoriju 9.pants Es uzskatu, ka mēs esam pie tagad. Un mēs iet uz 9 sadaļā, un es esmu gatavojas izmantot gedit. Let 's redzēt, gedit, un es esmu dodas uz zvanu raktuves dynamic.php. Uzplaukums. Ietvaros dynamic.php, jo tas ir PHP failu un es gribu palaist to caur PHP tulks Man vajag, lai sāktu visu no šiem atvērtiem tagiem, tāpēc es esmu gatavojas sākt šīs tiesības prom, dotu sev maz vietas starp tagiem, un tad Šī uzdevuma mērķis bija spēlēt aptuveni ar Šī funkcija sauc gettype, tāpēc gettype, šo funkciju tieši šeit. Ievērojiet, ka tur nav pasvītrojumu vai telpu vai defisi vai kaut kas tamlīdzīgs atdalīšanai no 2 vārdiem, saņemt un rakstīt, tikai vienu vārdu vispār. Bet ko tas būs jādara, ir, ja es iet uz mainīgo lielumu, lai gettype, saka $ var vai $ x, tas man pateikt veida kādā debugging formātā kāda šāda veida nosaukums ir. Mēs ejam, lai eksperimentētu šeit. Jo īpaši, ja paskatās atpakaļ uz PSET spec mēs esam ieguvuši dažas atšķirīgas rindiņas kodu šeit. Pirmajā rindā kodu mēs sāktu šo mainīgo, $ var, būs vienāds ar 7, un tad mums ir šis printf līniju ka saka hey, printf VaR ir tukšs. Printf ir viens no daudzajiem veidiem, kā mēs varam drukāt lietas PHP. Bieži vien jūs redzēsiet atbalss funkciju vietā izmanto printf, bet printf mēs visi esam iepazinušies ar kam ir kodēšanas C uz brīdi. Ko jūs faktiski var darīt, ir, pieņemsim redzēt, ja kopēt un ielīmēt darbus. Es esmu gatavojas sniegt šo izmēģināt. Mēs iet atpakaļ pār ierīci. Labi, un tur mēs ejam. Un atstarpe ir mazliet bailīgs, bet šeit mēs iet. Mēs esam ieguvuši šo kodu šeit. [Studentu] Vai tas nav labs stils, lai tab to? Žēl? [Studentu] Vai tas tradicionālās uz cilni tā? Labi, tāpēc Sems jautā, ja tas ir konvencija cilni to vai ne. Parasti jā. Šajā gadījumā es esmu izvēlējies to nedarīt. Godīgi, jūs redzēsiet dažādas lietas starp dažādiem programmētājiem. PHP parasti lieto bieži kopā ar HTML un citās valodās, un tāpēc dažreiz drukāšanas izskatās mazliet bailīgs ja jūs ievilkums ietvaros PHP sākuma un beigu tagiem. Tas patiešām ir atkarīgs. Šajā gadījumā kopēt un ielīmēt nav ielīmēt cilnēm par mani, bet tas noteikti nav, kā jūs teicāt, padarīt to skaidrāku. Labi, ja jūs saglabāt šo kodu dynamic.php tad ko jūs varat darīt, ir nokritusies līdz jūsu termināla logu, kur es esmu uz leju šeit jo gedit, un darīt to ekvivalentu sastādīt izmantojot veikt un tad darbojas savu kodu C viss, kas jums ir jādara ar PHP faila palaišanas PHP tulks, kas ir maz programmu sauc par PHP, un arguments jums dot tulka ir fails jūs vēlaties interpretēt. Šajā gadījumā, dynamic.php. Whoops, no kurienes man to? Ak, man to 9.pants, un šeit es esmu. Tieši tāpēc. Tagad, ja man palaist, ka atkal mēs redzam, ka manā pirmajā gettype funkciju zvanu VaR ir skaitlis. Jo nākamais VaR ir virkne, un tad trešais VaR ir Būla. Kas ir interesanti par šo ir, ja mēs ritināt atpakaļ uz augšu, mēs redzam, ka Tie ir veidi līdzīgi tiem, kas mums bija C. Mums bija Ints pilsētā C. Mēs veida bija virknes C, tāpēc stīgas nebija pilnīgi legit veids tādā ziņā, ka Mūsu CS50 stīgu bija tiešām ko? Žēl? Missy? [Missy] Char *. Jā, tas bija tas char * mēs izmantojām. Pašā sākumā semestra mēs izmantojot virkni veidu, bet tas bija tiešām CHAR * saskaņā ar kapuci. Mēs vienkārši ierakstiet to definēja, bet PHP šie stīgas faktisko veidu. Nav šīs char * tipa sīkumi vairāk. Jūs redzēsiet, ka mēs varam darīt daudz vairāk lietas ar stīgām daudz vieglāk PHP nekā mēs varētu C, un tad beidzot, mums ir šis boolean tipa, un liela atšķirība šeit ir tā, ka ja mēs ritināt atpakaļ uz leju, mēs redzam, ka vārds no šiem veidiem tagad skaitlim, stīgu, un Būla vietā int un bool, un kā jūs uzņemt dažādus programmēšanas valodas, pieņemot, ka kādā brīdī jūsu dzīvē jūs nonākt saskarē ar dažādi tie jūs pamanīsiet maz quirks kā šis kur C aicina integers Ints. Daži to sauc par skaitļu. Ir arī citi noteikumi, kas jūs satikt. Liels int mēs redzējām šodien SQL. Ir arī vairāki, un tad loģiska, boolean, visu veidu atšķirībām tur. Tas nav briesmīgi interesants, bet tagad es esmu gatavojas sniegt jums mazliet laika, ja mēs atkal tālināt-strādāt šī uzdevuma apakšā 3 lpp ja tā jautā, kāda veida atbilst šīm vērtībām šeit apakšā. Mums ir 3,50. Mums ir šī lieta tieši šeit, kas ir interesanti. Mēs neesam redzējuši, ka pirms, gan, ja jūs esat sekojuši līdzi lekciju Jūs droši vien jau zināt, kas tas ir. Tad mums ir tas, kas tas ir sava veida bailīgs. Jums jāatzīst. Kas tas ir C? Sam? Kas būtu tas dod jums C? Tas pavērtu failu sauc dynamic.php un padarīt to lasāms. Jā, un kāda būtu veids mainīgā ka mēs nodotu šo? >> File zvaigzni. Tieši tā, mēs nodotu šo failu zvaigzni. Šis ir likumīgs PHP pārāk. Palaist to. Redzētu, kas notiek, ja jūs iet, kas stājas gettype. Un tad arī pārbaudīt, ko Null ir, ko tas varētu būt PHP. Es jums pāris minūtes. Jūs varat burtiski kopēt un ielīmēt šīs vērtības, un tad mēs darīsim nedaudz izlases zvanu par jums un redzēt, ko jums. [Studentu] Man ir jautājums. << Jā. Vienā no lekcijām Dāvids tur ir kaut kas jūs varat likt augšpusē faila tā, ka jums nav rakstīt PHP katru reizi. Kas tas bija? Viņš droši vien runā par sterliņu sprādziena, hash sprādziena. Tas ir direktīva, kas, ja jūs zīme jūsu failu kā izpildāmā tad ko tas ir, kad jūs izpildīt failu tas pateiks čaulas programma izmantot PHP tulks interpretēt faila saturu. Jautājums ir, kas bija šī īpaša līnija ka mēs varētu ietvert augšā mūsu PHP failus nav jāiekļauj Šis PHP līnijas vai šis PHP komandu, ja mēs vēlamies, lai izpildīt failu? Un jūs faktiski var darīt ar ķekars dažādiem failiem. Es uzskatu, ka tas ir atkarīgs no tā, kur PHP binārā tiek uzglabāti, bet bieži usr / bin / php ir laba vieta, kur sākt. Jūs varat izdomāt šo out tieši dodoties atpakaļ uz savu ierīci un rakstīt, kura PHP. Kuru komandu skaitļi, kad jūs izpildot bināro vai komanda, kurā attiecīgā fails. Tas man saka, ka PHP ir tiešām aliasing Šis binārais fails kas glabājas usr / bin, kas ir, ja no sistēmas binaries daudz ir uzstādītas. Piemēram, ja es ritiniet uz augšu uz augšu, tagad, ka es esmu nodot šo #! līnija šeit Es var ritināt uz leju, un es varētu mēģināt palaist dynamic.php, bet man šī kļūda par atļaujas atteikuma gadījumā un ko tas nozīmē, ka šis fails nav šobrīd dod izpildāmā atļaujas. Tas nav atzīmēts kā failu, kāds var darbināt. Kad jūs skrēja veikt vai šķindēt un jums izpildāmā no tā kompilators bija pietiekami gudrs, lai zinātu, ka hei, es esmu ēka izpildāmā. Jūs, iespējams, vēlas to izpildīt, lai tā būtu automātiski konfigurēt atļaujas, par jums. Šis nav tas gadījums, lai gan, ja jūs izveidot normālu failu no nulles, Iemesls ir parasti jūs nevēlaties būt jebkuru failu jūsu sistēmā piedziņu, tāpēc jums tiešām ir iet un manuāli darīt. Vieglākais veids, kā to izdarīt, ir ar chmod komandu, un chmod + x saka pievienot izpildāmā mazliet jo tur ir lasīt mazliet, rakstīt mazliet un izpildāmā mazliet, R, W un X, un saka chmod + x kļūs par izpildāmā bit Jo tad lietas materiāliem, ka mēs precizēt, kas šajā gadījumā būs dynamic.php. [Studentu], ka ieslēgts ikvienam? Pieņemsim pārbaudīt šo out, tad kā man pārbaudiet atļaujas? Vai jūs zināt, kā es gribētu pārbaudīt, lai redzētu atļaujas failu? [Dzirdams studentu reaģēšanas] Žēl >> [Studentu]? XSD. XSD dod mums failu hacks. Uzskaitot visus failus,-L, parāda man visus failus manā direktorijā veida viņu ilgi, runīgs sarakstā, un tāpēc šeit mēs redzam, ka Šis dynamic.php fails pēdējās izmaiņas 5 novembris plkst 16:21. Šī faila īpašnieks jharvard. Tas ir lietotājs, kurš ir pieteicies collas Tas ir lietotājs es esmu strādā kā, un ja tu esi arī ierīces jūs arī strādā par lietotāju jharvard. Tu esi studentu grupā, un tās ir lietas, ka jūs redzēsiet pietiekami bieži. Mēs varam iet daudz sīkāk šeit, bet lielākā daļa to, ko jūs vēlaties, lai apskatīt, ja jūs meklējat, lai redzētu vai fails ir izpildāms galvenokārt lietotājs kam pieder failu, īpašnieks, tāpēc tas jharvard, un tad mums ir atļaujas biti nekā šeit pa kreisi, un veids, kā izlasīt šo ir tas, ka pēdējā mazliet parasti tiek izmantots marķējums vai ne-vismaz šajā gadījumā Šī pēdējā mazliet bieži būs iestatīts uz sludinājumu norādīt ka fails ir katalogs un ne tikai normāla lieta. Tad šādu 3 biti šeit nosaka atļaujas ka faila īpašnieks ir, Tātad šajā gadījumā jharvard, kā īpašnieks failu, var lasīt un rakstīt šo failu, bet tur svītra, sakot, ka jharvard nevar izpildīt šo failu. Nākamajos 3 biti ir par grupu, tāpēc šis ir studentu grupa, tāpēc, ja tur bija vairāki lietotāji uz manu ierīces, un mums bija vairāki lietotāji kā daļa no studentu grupas, tad viņi visi var izlasīt šo failu, bet nevar rakstīt, un tāpat kāds cits, pasaule var tikai lasīt šo failu, kā arī. Tur labi, ilgi writeup par šo, lai jūs varat izlasīt internetā. Jo problēma noteiktā spec mēs iedziļināties šo sīkāk. [Studentu] Vai 218 atsaucoties uz pasauli? 218 ir-off augšpusē manu galvu es esmu aizmirstot, bet nē. Pieņemsim redzēt. Es esmu blanking šīs tiesības tagad. Atpakaļ uz to, ko mēs par to darīt ar šo chmod + x kur mēs vēlējāmies dot dynamic.php izpildāmos atļaujas, un jautājums bija par to, vai tas dotu izpildāmo atļaujas ikvienam vai vienkārši jharvard, un mēs varam redzēt šo, darboties komandas un ierakstot ls-l, un tagad mēs redzam, ka tas ir atzīmēts kā izpildāmā. Tu redzi, ka tur bija krāsu maiņa. Tagad dynamic.php ir uzskaitīti zaļā krāsā, un izskatās, ka atbilde uz jautājumu ir tas, Šarlote? [Šarlote] Tikai jharvard. >> Tikai jharvard, jā. Ja mēs vēlējāmies, lai ieslēgtu izpildāmo mazliet par visiem kā varētu mēs to darām? Jebkurš domas >>? + X? Jā, tieši tā. Šarlote teica mēs varam darīt chmod no + X dynamic.php, un tagad, ja mēs palaist ls-l mēs redzam, ka izpildāmā biti tiešām ieslēgts ikvienam. Un jūs faktiski var darīt otrādi šo, lai jūs varētu to izslēgt ikvienam izmantojot mīnuss. Tagad tas ir izslēgts, un tagad mēs varam pārvērst to atpakaļ uz jharvard lai mēs varētu kursēt to tagad, un tagad jūs redzat, kad mēs palaist kodu šo īpašo #! līnija augšā, #! līnija, pastāstīja čaumalu, teica mūsu terminālu hei, kad šis fails ir palaist, izmantot / usr / bin / php interpretēt šo failu un pēc tam izdrukāt rezultātu. [Dzirdams students jautājums] Protams, ļaujiet man ritiniet atpakaļ uz augšu. Tāpat kā šis. Jūs redzēsiet visu šo direktīvu sākt ar šo mārciņa un tad izsaukuma zīme, dažreiz sauc zaņķis, hash sprādziena. [Studentu] Kā mēs varam palaist to ar php dynamic.php pirms mēs to izpildāmā? Jautājums bija, kā mēs varam palaist to, izmantojot PHP bināro bet dynamic.php nav izpildāms? Tas ir super svarīgi, jo tas ir tieši tā, kā tas notiek uz darbu, kad jūs uzrakstīt problēmu komplekts 7. Lielāko daļu laika PHP faili nav tieši izpildāms. Tā, ka darbojas, ir, jo tas ir PHP binārā kas ir izpildāms. Tulks ir lieta, kas tiek izpildīts, un lai ko tas dara ir burtiski slurping visā saturam Mūsu dynamic.php failu un iet pozīcijai un izpildot šos komandas, tāpēc tas ir, izmantojot mūsu PHP failu kā sarakstu instrukcijas. Tas nav tieši izpildes to. Tas ir, ja mēs sakām, ka šie faili ir interpretējami palaist laikā. Tas izpildes laiks valoda, nevis kaut ko, kas ir noteikta kompilēšanas laikā, nav apkopota valoda kā C. Vai ir veids, kā iegūt Run laiks valodu rīkoties, it kā tas apkopo laiks valoda, piemēram, ja jums ir visas darbību darīts pie servera nevis-tu zini, ko es domāju? Jā, tāpēc jautājums ir Vai ir veids, kā iegūt Run laiks valodas rīkoties vairāk kā kompilēšanas laika veidiem valodu? Un tur ir, es domāju, ka ir aktīvs pētniecības joma par daudz no šiem uzņēmumiem. Es uzskatu, ka Facebook ir paveicis lielu darbu ar PHP un apkopojot to uz leju, padarot to ātrāku, optimizējot to jo viņu lapa ir veidota uz PHP. Ja jūs esat pēc node.js vispār, kas ir sava veida JavaScript tulka lai varētu darboties JavaScript ārpus pārlūku, ārpus jūsu interneta pārlūku, jo tradicionāli JavaScript vienkārši palaist iekšā Firefox vai Chrome, un tas tiks izmantots, lai veiktu atdzist animācijas notikt uz mājas lapā un padarīt jūsu mājas lapā dinamiska. Kas ir veidota uz daudz darba, ka Google ir paveicis padarīt JavaScript un C + + saistīt kopā, tāpēc tur notiek aktīva izpēte uz partiju get šīs valodas mijiedarboties un optimizēt tos, galvenokārt tāpēc, ka tik daudzi cilvēki var kodēt PHP un JavaScript jo tas ir daudz vieglāk. Tas daudz nicer. Jums nav norādes. Jums nav veidu peldošs apkārt. Viņi vēlējās gūt labumu no šiem kompilēšanas laikā valodās ar visu tipa pārbaudes un ātrumu un apakšējā atmiņas izmantošanu un visiem, kas vienlaikus saglabājot elastību un izmantošanas šiem jaunāku ones vieglumu. Atpakaļ uz mūsu sākotnējo plānu uzbrukums. Mēs esam ieguvuši dažas no šiem jautājumiem šeit mūsu problēma noteiktā spec. Iesim caur tiem tiešām ātri, un mēs iet pa istabu. Šarlote, kāda veida ir 3,50? [Šarlote] Tas dubultā. >> Tas dubultā. Jimmy, kāda ir šī nākamais? >> Masīva. Masīvs, laba, un Jared, kāda ir fopen? [Jared] Tas resurss. >> Tas resurss. Tas ir sava veida jaunu, ne failu zvaigzne, nevis faila. Tas ir resurss ir veids PHP, un man žēl, Ella, pēdējā Null ir tas, ko? Null. Null, kā tas ir uzrakstīts PHP? >> Vienādi. Tāpat galvaspilsētas >> Yeah?. Jā, viss labi. Šeit mēs ejam, mēs esam ieguvuši dubultā, mēs esam ieguvuši masīvs, mēs esam ieguvuši resurss, un tad mēs esam ieguvuši null. Pieņemsim redzēt tagad esat redzējuši- pieņemsim redzēt, tāpēc tagad es domāju, ko es arī gribu darīt, ir uzvilkt Šī tīmekļa lapu tieši šeit, tas php.net / rokasgrāmatu, Tātad, ja jūs puiši kopēt kas un atvērt interneta pārlūku. Es esmu gatavojas uzvilkt Chrome, nodot, ka iekšā Es gribu parādīt jums tas nav tikai tāpēc, ka mēs varam runāt visu dienu par veidiem un visu, kas jautri sīkumi bet gan tāpēc, ka tas ir PHP roku, un tur ir PHP programmētāju, kas tur daudz. Ir PHP mājas lapas, kas tur daudz, un kā rezultātā pastāv dokumentācijas daudz uz PHP, un roku, tas php.net, ir tiešām laba vieta, kur iet ja jums ir jautājumi par to, kas ir labākais veids, kā to darīt X PHP vai ko tas funkcija izskatās? Tikko veida iepazīties ar to, kas tas izskatās, jo jums tiks nāk šeit bieži, lai problēmu mazliet komplekts 7. Ja jūs galu galā dara gala projekts, kas izmanto PHP Tas būs vieta, kur jūs varēsiet kļūt ļoti labi iepazīties ar. Bieži kā cilvēki to izdarīt, ir tie izmanto Google, lai meklētu vietu, un tie nav izmantot meklēšanas lodziņu, kas ir šeit uz augšējā labajā, kas ir veida niecīga. Ja jūs Googling ap kaut ko darīt ar PHP un jūs redzēt viens no manuālās saitēm pop up jūs varat parasti paļauties uz to kā diezgan labs resurss. Awesome, tāpēc no šiem veidiem, tikai no zinātkāri, kādi nav pieredzēts? Kaut mēs neesam redzējuši šeit? [Studentu] Resursu. >> Mēs redzējām resurss ar fopen zvanu. [Studentu] Objekti. >> Objekti mēs neesam redzējuši, lai pārliecinātos. Callbacks mēs neesam redzējuši. Ir daži no šiem pseido-veidiem. Mēs noteikti redzēja tikai skaitlim un dubultā. Mēs neesam redzēt dažus no citiem, tāpēc, ja mēs noklikšķiniet uz integers mēs varam redzēt ir citas skaitļu, ka viņi ir šeit? Vai viņi visi tik vesels, vesels, vesels. Dažām valodām ir lielāki integer veidus, kā mēs redzējām MySQL šodien bija int un tad liels int. Atdzist. Tātad, PHP rokasgrāmatu. Iesim atpakaļ uz mūsu problēmu komplekts spec, un mēs tagad uz leju līdz 4.lpp. Viena no lietām, kas notiek tad, kad jūs saņemtu šos valodas kas nav šo statisko rakstīt, tāpēc šīs valodas, kur jums ir deklarēt tipa mainīga uzreiz ir jums gadījumi, kad jūs varētu sākt ņemot mainīgos dažādu veidu mijiedarbojas ar otru, un PHP dara šī lieta, ja tā mēģina darīt ko tā uzskata par vispieņemamākais lieta darīt ja jums ir 2 dažādi savstarpēji mijiedarbojas. Piemēram, ja mēs skatāmies uz šo kodu līniju tieši šeit Jūs redzēsiet, ka mēs esam ieguvuši to, kas notiek, kad Mēs cenšamies un pievienot virkni 1 līdz skaitlim 2. Kas notiek, ja mēs mēģinātu pievienot virkni, kas nav skaitliskā vērtība bet faktiskā rakstzīmes, CS uz numuru 50? Tad mēs redzēsim, ir tur kaut kas atšķirīgs, kas notiek, ja nevis pievienojot virkni ar vairākiem mēs pievienojot numuru virknes, un tā tālāk un tā tālāk līdz vietai, kur mēs esam nonākuši sava veida dīvaini sīkumi šeit, kur mēs esam ieguvuši 7 + taisnība. Kas heck tas nozīmē? Ja jūs puiši iet uz priekšu un ielīmēt dažas šo kodu savā ierīcē. Jūs varat turēt to dynamic.php. Redzēsim, kas notiks. [Studentu] Tikai izmantot drukāt, ne printf? Jā, lai jūs atradīsiet, ka druka ir arī derīga funkcija drukāšanai PHP. Ir daudz dažādi veidi, kā to dara. Redzēsim ar pāris piemērus vēlāk, kad mēs sākam runāt par unikālo problēmu, ka mēs ejam, lai rakstītu un tad koncentrācijas problēma, ka mēs ejam rakstīt ka, lai gan mums ir fopen un fclose tas bieži vien nav vienkāršākais veids, kā lasīt no faila saturu. PHP ir daudz no šiem C-piemēram holdovers. [Studentu] Kad man visu 6 no šīm lietām es tikai iegūt vienu numuru kā produkciju. [Nate H.] Kad jūs nodot visu 6 no šīm lietām. Let 's redzēt, ir, jo tas ir iespējams, viena lieta ir, ka šīs drukas zvani netiek izbeigts beigās ar jaunām līnijām. Nav jaunu atdala katru no šīm drukas zvaniem, tāpēc varbūt jūs saņemat vienu lielu skaitu, un tas patiešām ir tikai amalgama jaunu līnija rakstzīmes. [Studentu] Labi, kā es varu pārliecināties, Nu, tur ir dažādi veidi ķekars. Jūs varētu manuāli ielikt drukā jaunas līnijas raksturu, atbalss jaunu līniju rakstura, izdrukāt no jaunās līnijas. [Studentu] Tātad ECHO pats kā printf? Printf ir kā C printf kur jūs drukāšanas formatētu virkni. Jūs esat sniedzot tai formāta stīgu un tad visi viettura mainīgos. Tas bieži vien kaut kas nav izmantota, pieņemsim redzēt, kā atruna, Es esmu mazāk pazīstami ar PHP nekā es esmu kopā ar citām tīmekļa valodām, un, kad man ir ieprogrammēts PHP es parasti neizmanto printf jo man šķiet ātrāk izmantot stīgu interpolācijas iespējas, ka tā ir, ko mēs iedziļināties un es jums parādīs, tikai otrkārt, tā kā C mēs veida ir darīt šo Hacky lieta, lai saņemtu to izdrukāt pareizi. Jūs faktiski var nodot mainīgos tieši stīgas PHP. Printf ir veida pārāk ilgi par to, ko es parasti daru. Jā, Ella. [Ella] Parasti, ja jūs saņemsiet parsēšanas kļūda tas nozīmē, tāpat par C tas nav pateikt, kur tieši kļūda ir un kas tas ir, Tātad tas nozīmē paskatīties caur jūsu visu kodu un to sapratīs? Tas parasti mērķtiecīgāka nekā. Es domāju, šajā gadījumā tā bija nedaudz off, tāpēc es domāju, ka šajā gadījumā mēs trūkst semikolu. Tā centās jēgas no visa, tāpēc tāpat šīm interpretēt valodās, tulks gatavojas izmēģināt un darīt visu iespējamo, lai padarītu visu darbu pienācīgi. Jūs redzēsiet, piemēram, JavaScript Jūs bieži līnijas pārskati beidzas ar semikolu tāpat kā viņi dara PHP, tāpat kā viņi dara C. Jo JavaScript daži JavaScript tulku kas daudz pārlūkprogrammām ieliks semikoliem jums ja jums gadās būt trūkst viņiem. Tie būs izmēģināt un uzņemt kādu sloppiness no jūsu puses. Tas ir, ja tā varētu mēģināt un mēģināt un mēģina darīt lietas darbu, un tad beidzot tas saņems līdz vietai, kur ir teikts, labi, Es nevaru darīt lietas darbu bailing, un tas ir, ja jūs saņemsiet līniju skaitu kas varētu šķist mazliet off no precīzu vietu. Labi, tāpēc pieņemsim iet cauri tas tiešām ātri. Mēs left off ar Ella, tāpēc pieņemsim iet pāri uz Missy, un Missy, ko tas drukas stīgu 1 plus numurs 2 dod jums? [Missy] 3 >> 3.. Vai ir jēga? Šķirot no? Vai tas jums numuru? Vai tas jums virkni? [Missy] skaits >> Tas numurs.. Bet tas drukāšana, lai tā notiek, lai dotu jums dažas veida virknes. Viena lieta, ko mēs varam darīt, lai pārbaudītu šo out ir, ja mēs $ var = 1 + 2 un tad mēs sakām atstarojas gettype, tāpēc mēs esam izmantojot trešo veida drukāšanas šeit. Tagad mēs varam redzēt, kas notiek šeit. Lūk, ko mēs esam ieguvuši, ir mēs saņēmām skaitlim no šīs. Pat ja mēs pievienot šo virkni ar vairākiem, mēs neesam iegūt virkni no tā, tāpat kā Missy teica. Mums bija iegūt skaitlim. Labi, tāpēc pieņemsim redzēt, blakus uz augšu, Kevin. CS + 50 >> [Kevins] 50?. [Nate H.] 50. Vai ir jēga? [Kevins] Jā. [Nate H.] Kāpēc? Kāpēc tas ir jēga, lai jūs? [Kevins] Jo tas ir tikai, kam ir virkne, kam numurs nulles vērtību. Jā, lieliski. Veida neviennozīmīgi situācijām, bet tas ir labi zināt, kas notiek. Stella, kas notiek tālāk ar numuru 1 + stīgu 2? [Stella] 3 >> 3 vēlreiz.. Un šajā gadījumā, mēs varam iegūt virkni vai numuru? Pieņemsim sniegt šo izmēģināt. Kāds ātrāks nekā man iegūt atbildi? Šarlote? Ak, es didn't-labi, pieņemsim redzēt, mēs esam gatavojas darīt to pašu veida lieta kur mēs esam ieguvuši vairākus plus virkne, un mēs esam gatavojas atbalss veidu, redzētu, ko mēs. Mēs arī saņemt skaitlim. Tas nav jautājums, kas viens ir virkne, kas viens ir numurs. Mēs joprojām gatavojas saņemt skaitlim. Tas joprojām gatavojas darīt to, ko mēs varētu sagaidīt. Labi, lai Sam, ko par 90 + 9 pudeles alus pie sienas? [Sems] 99 >> 99.. Nav pudeles alus pie sienas, though. Tas dod mums mazliet vairāk informācijas par to, kas notiek. [Sems] Ja tu būtu rakstījis 9 burtiem tad jums būtu 90, vai ne? [Nate H.] Jā. Jautājums bija, ja mēs gribētu rakstīts 9 no kā N-I-N-E būtu mēs esam gotten 99 vai 90? Mēs gribētu saņemt 90. Tas ir burtiski tikai meklē ciparu rakstzīmes. Tas nav pietiekami gudrs, lai atpazīt numuru vārdus un ka stuff. Jā. [Studentu] Vai pastāv tāda lieta kā typecasting PHP? Tur ir, un tas ir tieši tā, kā jūs varētu darīt to C. Ko par 10/7, Šarlote? [Šarlote] 1,4285. [Nate H.] Jā, lai to, ko varētu būt pārsteigums par šo? Kas notiktu, ja jūs šo pašu veida lieta C, ja jums bija pirms 10/7 C? [Šarlote] Tas tikai jums, atkarībā no tā, kā jūs typecasted I guess tas dod jums tikai ierobežotu ciparu skaitu pēc komata. Yeah, tāpēc ierobežots skaits cipariem aiz komata. Kāds cits varētu būt-vai tas jums dot nekādu cipariem aiz? Bieži nav, tāpēc atkal, atkarībā no tā, cik jūs typecasting to tā var vai nevar pārvērst to uz peldošo punktu skaitu. Šeit tas bija sava veida jauki, ka tā darīja. Ja mēs parādījis šo atpakaļ, kad mēs sākām darīt šo stuff veida C tas, iespējams, būtu guvusi mazliet lielāka jēga ka tas nav vienkārši aiziet uz 1. Un tad beidzot, Džeimijs, kas par 7 + taisnība? [Džeimijs] 8. >> 8. Ko tas nozīmē? Es domāju, tas tikai dod taisnība vērtība ir 1. Yeah. Kas notiek, ja mēs mainītu, ka, lai nepatiess? [Studentu] 7. Yeah, tāpēc atcerieties, kad mēs runājam par šīm bināro vērtību, 1 ir par, 0 to off? Tagad mums ir taisnība, ir 1, 0 ir nepatiesa, un jūs varētu būt redzējis šo, C piemēriem, ka mēs esam darījuši pagājušā semestrī, bet vēsturiski bool tips C nav bijis īsta veids, lai cilvēki ir lietojuši 0 un 1 vietā patiess un nepatiess. Tas ir izpausme kas. Labi, tāpēc viena svarīga daļa par šo visu ir tas, ka mums ir šie dažādu veidu. Tās var mijiedarboties ar otru. Viņi bieži vien var mijiedarboties ar otru veidos, kas ir jauki, jo mēs esam redzējuši šeit. Tas ir jauki, lai varētu būt stīgu 1 un numurs 2, pievienojiet tos kopā un iegūt 3. Ka ir jēga. Tomēr, ja jūs esat rakstiski mājas lapas, un jo īpaši, ja jūs apstrādājot lietotāja ievadi, tāpēc teikt, jūs esat uzrakstījis tīmekļa veidlapu kas apkopo informāciju no lietotāja, un tad iet uz to apstrādāt par atpakaļ beigās, uz servera pusē jūsu PHP kodu ja jūs gaida, ka vērtība, ka lietotājs drukāti un iesniegti uz jūsu veidlapas jābūt veselam skaitlim vai būt peldošo punktu skaitu vai kaut kas tamlīdzīgs Jums ir nepieciešams, lai skaidri nodot to un tad tie daži tipa pārbaude. Jūs nevēlaties, lai tikai paļauties uz šāda veida juggling sistēmu, lai padarītu lietas izstrādāt, īpaši drošības apsvērumu dēļ un tikai par pamatīgumu jūsu mājas lapā. Tikai kaut ko paturēt prātā, ka, ja jūs esat apstrādes veidlapu datus, jebkas, kas nāk pa pastu vai nokļūt superglobals pārliecinieties, ka Jums vienmēr apstiprināt to un pārvērst to un typecast to. Un tāpat kā mēs runājam par kādu brīdi pirms šīs typecasting PHP ir tieši tāds pats kā C, kur jums ir iekavas un tad veids. Paturiet to prātā. Viena funkcija, kas noderēs, ja jūs darāt šo ir mēs esam izmantojuši, un šāda veida ir malā- Mēs esam izmantojot šo gettype funkciju tieši šeit izrēķināt, kāda veida mainīgo, un, kamēr tas ir ērts debugging un redzēt, kas ir mainīgs tips ir Jūs nevēlaties, lai izmantotu šo, piemēram, tādā stāvoklī, kur jūs pārbaudi, lai redzētu, vai gettype no $ var = skaitlim kaut ko darīt. Tas ir slikti, slikti, slikti. Tā vietā ir šīs funkcijas sauc ir skaitlis, ir virkne, ir masīvs, ka jūs vēlaties izmantot vietā, tāpēc šajā gadījumā ko es gribētu darīt, nevis šo puisi šeit ir izmantot, ir vesels skaitlis var. Un viņi bieži dēvē ir is_ * tādā nozīmē, ka jūs varētu aizstāt * ar skaitlim, stīgu, uc, un tikai, lai pārliecinātos tiešām ātri Vai šis ir int PHP. Izskatās, ka jūs varat darīt, vai nu ir int vai ir tur ir vesels, kā arī? Jā, pseidonīms, tāpēc int integer aizgūtais. Atdzist. Kā mēs to darām? Pieņemsim uzņemt tempu mazliet. Tagad mēs esam gatavojas runāt par masīvu, lai jūs varētu redzēt nākamajā daļā spec mēs runājam par to, kā matricas PHP ir nedaudz savādāki nekā tie ir C. Patiesībā, viņi veida amalgama kā masīvi, ka jūs esat ieradušies zināt un mīlestību C kur viss ir tā paša tipa uzglabā secīgi un contiguously atmiņā, un jums ir šīs ciparu indeksus. Jums ir indekss 0, indeksa 1, indekss 2, un jums uzglabāt vērtības pie šiem rādītājiem. Jūs arī C, kad jūs rakstījāt Speller, daudz no jums darīja hash tabulu pieeju, un jūs redzēja, ka tur mums bija dažāda veida uzglabāšanas kur mēs bijām kartēšanu Galvenais, lai vērtībai, tad, kad esat mēģinājis saglabāt kaut hash tabulā jums bija norādīt, ka jūs vēlētos, lai saglabātu to ar īpašu atslēgu, un kas galvenais noteica par vērtību atrašanās vietu un, ja tas būtu jāglabā. Jūs esat veida ieguva gan no šiem jēdzieniem notiek tajā pašā laikā PHP masīvs, un kā rezultātā, mēs bieži saucam šos asociatīvo masīvu kur mēs asociējot ar atslēgu vērtību. Šajā Nākamajā daļā mēs runājam par vienkāršu PHP masīvs kur mums ir atslēgas A, B un C, visi virknes, kartēšanu ar integers 1, 2, 3 un. Un jūs varat būt atslēgas dažādu veidu. Jums var būt daži taustiņi, kas ir stīgas, dažas atslēgas, ka ir veseli skaitļi. Jums var būt vērtības dažādu veidu. Jums var būt vērtība, kas ir virkne, vērtība, kas ir skaitlis, vērtība, kas ir objekts vai cits masīvs, piemēram, viss vienā masīva objekta, kas ir sava veida dīvaini. Jums nav jābūt ar masīvu, kas ir tikai pie viena veida elementu tajā. Jūs varat būt daudz dažādas lietas notiek tur. Otra lieta ir tas, ka tad, kad jūs redzēt kaut kas līdzīgs šim savu kodu, kas ir derīgs PHP deklarēt masīvu, tāpat kā tas, 0, 1, 2, 3, 4, 5, ka atzīs inicializēts $ arr būt tas masīvs. Bet ko jūs faktiski kļūst saskaņā ar kapuci, ir šāda veida netiešu paaudzes atslēgu, kur mēs esam ieguvuši 0-0, 1-1, 2 līdz 2, 3 līdz 3. Un izrādās, ka pat tad, ja jums ir masīvs līdzīgs šim puisis šeit kur jums ir, B un C, kā taustiņiem un tad jūs sākat, izmantojot masīva push metodi, lai sāktu izmantot šo masīvu kā kaudze, lai jūs varētu redzēt, ka šis masīvs objekts, tas masīvs ir patiešām kļūst pārslogota. Mēs varam izmantot to kā masīvs. Mēs varam izmantot to kā hash tabulu. Mēs varam izmantot to kā kaudze. Kad jūs sākat stumšanas lietas uz šī masīva pirmā lieta, jūs push uz šī būs indekss 0 un tad indekss 1 un indekss 2. Jūs varat saņemt šāda veida netiešu paaudzes atslēgu ja vien jūs tos norādīt skaidri. Tas, kā jūs norādiet atslēgas skaidri, protams, ir, izmantojot šo bracket apzīmējums, kas ir līdzīgs masīvi izņemot vietā atļaujot vienīgi integer indeksi šeit, tagad mēs varētu kaut ko. Ja jūs vēlaties, lai jūsu galvenais būt virkne, jūs norādīt to, kā šis. Ja jūs vēlaties, lai to int, jūs norādāt to ar int vēlaties izmantot. Jautājumi par ka līdz šim? Viens no nice lietas par šo ideju ir tas, ka jūs varat tikai kādreiz būt viens vērtību uzglabā ar īpašu atslēgu. Ja mēs ejam atpakaļ pie mūsu Ierīces-let me izdzēst kādu no šo stuff. Un pieņemsim, ka es sāktu masīvs būt 0, 1, 2, darīts. Ja es tagad zinu, ka, piemēram, ja es atkārtoju $ arr [0] Es esmu gatavojas saņemt vērtība 0 izdrukāt, un jo tur var tikai kādreiz būt viena vērtība uzglabāt konkrētā atslēgu ja es glabāt kaut ko $ arr [0], teiksim, tad es zinu, kad man echo $ arr [0] vēlreiz Es neesmu gatavojas saņemt 0 izdrukā kā iepriekš. Es esmu tikai gatavojas saņemt. Tātad šis ir būtībā sakot, ka es nevaru būt $ arr [0] uzglabāšanai 2 dažādas vērtības. Tā nevar uzglabāt 0 un string, piemēram, tas burtiski aizvieto kāda bija $ arr [0] iepriekš. Iemesls I celt šo up ir palaist, redzēt, kas notiek. Skatīt šeit, ka es saņēmu 0 izdrukāt un tad uz leju šeit. Nav jaunu līniju tur, jo es biju slinks un nav laidis ka iekšā Kas ir cool par šo ir, mēs varam izmantot to kā veids lai attēlotu šo ideju kopumu kur mēs nevaram būt vairāki atslēgas ietvaros masīva. Mēs nevaram būt identiskas atslēgas ietvaros masīva. Es nevaru būt taustiņu 0 un vērtību 1 un taustiņu 0 un vērtību ar vai galvenais 0 un vērtību patiess. Taustiņi ir viss tur ir tikai 1 atslēga masīvā. Pat ja jūs varat būt pats saglabāto vērtību vairākas reizes masīvā zem dažādām atslēgām tas nav iespējams, ir identiski atslēgas vairākas reizes jūsu PHP masīvs. Ja mēs skatāmies uz šo nākamo problēmu, unique.php, kur mēs vēlamies atvērt PHP failu kas satur sarakstu ar virknes, viens stīgu katrā rindā, un mēs vēlamies, lai atrastu visas unikālās stīgas šajā failā viss, kas mums ir jādara, ir izmantot vienu no šiem PHP masīvu un izmantot virknes failā kā atslēgas uz šī masīva un uzturēt atjauninātu savu masīvs, kā mēs glabāt šos jaunos atslēgas. Kā mēs lasām katru līniju no faila mēs varam uzglabāt to masīvā, un beigās mums būs kā mūsu atslēgas mūsu masīvā visi no unikālās virknes failā. Vai ir jēga? Let 's redzēt, kā tas darbojas. Mēs esam gatavojas atvērt, saskaņā ar spec, jaunu failu ar nosaukumu unique.php. Atvērt. Ups, sorry, jaunu failu. Mēs ejam, lai sāktu to off ar to pašu sākuma un beigu tagiem. Mēs ejam, lai saglabātu to 9 sadaļā, un mēs ejam, lai izsauktu to unique.php. Labi, tagad pietuvinātu objektu Ideja šeit ir atvērt failu, lasīt failu pozīcijai. Attiecībā uz katru līnijas failā mums būs masīvs, kur mums ir  līnija kā mūsu atslēgu. Un tad, kad mēs nokļūt līdz beigām šeit $ Arr s taustiņi ir unikāls līnijas no lietas materiāliem, jo ​​mēs zinām, ka, ja man līniju vērā šī masīva vairākas reizes, tas būs tikai glabāt svarīgas veco vērtību, un mēs faktiski var nodot masīvu līniju kā pati tieši tāpat. Tas ir sava veida dīvaini. Mēs esam uzglabājot to pašu atslēgu vērtību pāri atkal un atkal un atkal, bet, jo mēs ir garantēta, ka būs tikai 1 atslēgas sauc līnija tāpēc, ja mums ir fails, kas saka-failu dzīvnieku trokšņi un tas ir Vau, Vau, Ņau, Ņau, Moo, Moo, un katru reizi, kad mēs lasīt dzīvnieku troksni ārā piemēram Vau un mēs uzglabāt to mūsu masīvā mēs Vau, un tad otro reizi mēs glabāt Vau tas tiks pārrakstīta pirmo reizi, ka mēs to saglabātu. Beigu beigās mēs tikai viens ieraksts masīva par katru dzīvnieku trokšņi mūsu dzīvnieku trokšņi failu. Vai jūs puiši jūtas pārliecināts, ka jūs varat risināt atvēršanu failu PHP? Viens veids, kā to izdarīt, bet iesim pa šo ātri, viens veids, kā to izdarīt ir ar fopen, kā mēs redzējām agrāk. Jūs varat fopen some_file.txt. Jūs varat atvērt to lasīt režīmā, tāpat kā C. Tas ir viens pilnīgi labs veids kā to darīt. Jūs arī tad lasot failu pozīcijai ir tādas pašas funkcijas, daudzas no tām, kas jums bija, C. Jums ir fgets. Jums ir feof, gan mums nepatīk, izmantojot, ka jo, atcerieties, ka nebija liels C. Jūs varat darīt tāpat, bet šeit ir tiešām foršs lieta. Atvainojiet, es nevēlos darīt $ fails, bet tur ir funkcija sauc failu PHP, un šī funkcija šeit ir foršs, jo tas skan visu saturu no lietas materiāliem, ka jūs norādāt, lai some_file.txt, skan visu saturu šo failu masīvs un tad ļauj atkārtot pār to, kas ir diezgan švītīgs. Ja mēs ejam, piemēram, lai mūsu tīmekļa pārlūkprogrammu un mēs apskatīt Google PHP failu Jūs varat redzēt, ka mūsu rokas saka, ka fails skan visu failu masīvs, un mēs varam file_get_contents atgriezties saturu failu kā virkne, bet parasti tikai iegūt to kā masīva ir patiešām jauki, jo to, ko tā dara ir tas saplīst ir izveidota tā, ka katrs elements masīvā ir viena līnija no faila, tāpēc, ja mēs skatāmies uz 0 failu, tas ir pirmais rindā failu. File 1, otrajā rindā, failu 2, trešajā rindā, un tā tālāk un tā tālāk. Vai tas nebūtu jauki, ja tas bija viss, kas jums bija darīt C? Diezgan švītīgs. Dāvids parādīja šo lekciju, un dialekts viņš parādīja bija ka papildus mūsu standarta cilpa PHP mums bija, ka par ($ i = 0, i <10; i + +), un jūs varat darīt to PHP arī pats- mums ir arī šī lieliskā būvēt sauc foreach. Foreach ir patiešām ērts, ja atkārtojot pa blokiem vai šiem datu struktūras jo tas ļauj jums izraut katrs elements masīva bez manuāli darīt indeksēšanas pats, bez manuāli izveidot indekss mainīgo, pieauguma to, izvelciet vērtību masīva šajā brīdī, jo tas ir ļoti bieži lieta darīt. Jūs, iespējams, ir darījuši, ka tonnas reizes, kad jūs darījāt C sīkumi virs semestrī, tāpēc ar šo foreach mēs varam cilpa pār šo failu masīvs, un sintakse ir tāda, ka mēs vēlamies tagad cilpu pār šī masīva un norāda, ka mainīgais mēs spēsim izmantot, lai uzglabātu elements šī masīva lokāli, vietējā iekļauta šajā foreach cilpas, tiek mēs ejam, lai izsauktu to līniju. Ja tas ir fails tikai vārdi, un tur ir viens vārds rindā mēs varētu saukt vārdu, kā arī, tiešām tikai jums sniegt šo nosaukumu, ko jūs vēlaties, lai izsauktu to, un tad iekšpusē cilpa jūs varat darīt, ko vien vēlaties ar šo mainīgo līniju. Ja tas nav pietiekami, lai iegūtu vērtību masīva un jūs arī vēlaties, lai saņemtu gar ar to indekss var norādīt nosaukumu indeksu kā arī vērtību, un tagad jums ir pieejamas 2 mainīgajiem. Jums ir $ i un līnija kur $ i ir indekss masīvā, un līnija ir līnija, kas jums iegūt no lietas materiāliem. Piemēram, ja mēs vēlējāmies, lai izdrukātu atbalss līnija 0 failu kā šis, mēs varētu darīt to tāpat kā šis, "Līnijas $ i no lietas materiāliem ir $ līnija," un šeit ir kaut kas, mēs arī neesam redzējuši vēl ne kur es esmu tikai pilnīgi izlaidis vairāk šis viss% s% d biznesā ka mums bija jāstrādā ar C, un tā vietā es esmu gājusi taisni uz rakstot mainīgos līniju manā virknē. To sauc mainīgs interpolācija, stīgu interpolācija kur tu esi pildījumam mainīgos tiesības, un PHP tulks ir pietiekami gudrs, ja tā ir lasīšanas, izmantojot virkni, kas sākas ar dubultās pēdiņas- ne vienu pēdiņām, ar vienu kotēto stīgām jūs nevarat darīt, bet ar dubultu kotētas stīgām, kā tas skan cauri tas meklē mainīgajiem. Tas medību tos, un, ja tā uzskata, ka mainīgie paies vērtību mainīgā un stuff to virknes, ja to var pārvērst to par stīgu pārstāvību, kas ir diezgan švītīgs. Tagad, pieņemsim komentārus no pārējās viss, glābt to, un to, ko mēs varam darīt tagad, ir, mēs varam atvērt failu ka mēs varam zvanīt some_file.txt-pieņemsim izveidot jaunu failu un mēs varam īstenot ķekars muļķības sīkumi šeit tikai, lai pārbaudītu visu, kas, saglabājiet to, sauc to some_file.txt, jo es esmu dara šeit augšā, un tagad, ja es zoom veic tikai lai pārliecinātos, viss ir tajā pašā direktorijā, izskatās, ka man ir unique.php un some_file.txt tajā pašā direktorijā. Ja es palaist php unique.php redzēt, kā tas izdrukā katru līniju manā failā un kāda līnija ir? Tas ir diezgan spēcīgs, labi? Paskaties, tas bija 3 rindiņas kodu, lai atvērtu failu. Nu, 4 līnijas kodu. Es nevaru saskaitīt šodien, skaidri. Bet tiešām tikai 2 interesantas rindas kods, jo citi 2 bija cirtaini bikšturi, bet šajā daudz kodu mums bija iespēja atvērt failu, atkārtot, izmantojot to, izvelciet līniju skaitu un līnija pati un izdrukāt to ārā. Cool stuff. Šarlote. [Šarlote] Man ir jautājums par sintaksi. Tātad foreach nodarbojas ar katru faila rindā ka atverot, un tad, kad jūs vēlaties darīt lietas ar katru līniju jūs vienkārši darīt to kā un tad saistīt vērtību. [Nate H.] Ko jūs varat darīt tieši šeit-jautājums bija the foreach ir saistīts ar masīvu, tāpēc foreach sintakse ir patiešām foreach, un paziņojums, ka tur nav vietas vai kaut kas starp par un katram. Viņiem ir jāiet blakus viens otram, un tad tas aizņem masīvā, un tad jums ir šī citus atslēgvārdu sauc kā ir tur, un tad pēc kā jūs varat uzdot vienu mainīgā nosaukumu, tādā gadījumā jūs esat būs izbrauc vērtības masīvā, ne indeksi, vai arī, ja jūs to, kā mēs esam rakstīts zemāk Jūs saņemsiet atslēgas un vērtības. Jums ir foreach elementu masīvā vai pāra masīva kā keyed vērtības vai kā vienkārši vērtību. Atkarībā no tā, kas jums nepieciešams, ja jums nav nepieciešams atslēgas, tad jūs varat doties ar vērtību. Ja jūs vēlaties atslēgas jūs varat doties ar tiem pārāk. [Šarlote] Es arī sapratu, mēs nekad paziņoja I vai līniju. Kā tas pat zināt, ko viņi ir? [Nate H.] Ko jūs saprotat ar pasludināt? [Šarlote] Mēs nekad nav teicis to, ko es vai līnijas līdzekļiem. [Nate H.] Mēs nekad teica datora, ko es vai līnija nozīmē attiecībā- [Šarlote] Ka viņi indeksēti vai tās ir bez- [Nate H.] Mēs nekad nav teicis to, ka tas ir vajadzēja būt indekss vai taustiņu un vērtību, un tas ir tāpēc, ka ir PHP tulks. Tas kalpo kā deklarācijā un saka labi, galvenais būs mainīgo sauc man glabājas mainīgo sauc i. Vērtība būs jāuzglabā mainīgo sauc līnijas, lai tas kalpo kā deklarācijā par šiem mainīgajiem un saka $ i ir galvenais, un $ līnija ir vērtība. Jā, Ella. [Ella] Ja taustiņi netiek darīts skaitliski kā tas izlemt, ko lai tas notiek, lai drukātu viss? Tas ir tāpat kā rīkojumu tas ievadīta? [Nate H.] Pieņemsim pamēģināt. Pieņemsim izveidot mainīgo sauc arr, un mēs varam darīt iet līdz 7. Teiksim 0 dodas uz citu masīvu ar 1, 2 vai ābolu. Teiksim 7 iet uz 1, b iet uz 2, un 3 iet līdz 4. Tas ir sava veida crazy meklē piemēram, tāpēc mēs esam jaukt virknes un integers visas vietas. Tur nav reālu lai šī masīva. Es domāju, mēs varētu pasūtīt visu alfabētiskā secībā pēc atslēgas. Mēs varētu pasūtīt visu alfabētiski pēc vērtības. Mēs varētu mēģināt un ņemt vērā, ka daži ir stīgas, daži ir Ints, un mēs varētu mēģināt pārvērst tos visus uz tā paša tipa un redzēt, kas notiek, vai mēs varētu apsvērt tās vērtības, kurā mēs jau stājās viņiem kur mēs nodot šo puisis, pirmkārt, tas puisis otrais, tas puisis trešajā vietā šis puisis ar ceturto, uc. Paskatīsimies, kas notiek, kad mēs palaist šo kodu. Ja mēs uz leju un darīt to pašu veida lieta, un šeit tas nav izdrukāt jauno līniju. Kad tas izlasīt lietas no lietas materiāliem tika ieskaitot jaunās līnijas vērtībām, kas bija, kāpēc tā jāizdrukā labi, bet šeit tā nav, tā, ka tāpēc viss ir smushed kopā. Pieņemsim pievienot šo jauno līniju tikai, lai lietas jauki. Pieņemsim atkārto to, un tāpēc šeit apskatīt, kas noticis. Tas iespiests viss, tādā secībā, kurā mēs ieliekam to masīvā. Tas saglabāt kārtību šajā ziņā. Dodas atpakaļ uz šo problēmu uniques kur mēs gribam, lai varētu atkārtot pa failu, un mēs arī tā some_file.txt, un mēs esam gatavojas atkārtot pār to, kā šis. Mēs teicām, ka mēs vēlējāmies izmantot masīvu, lai pārliecinātos, ka mēs gribētu ieguva visi unikālo līnijām no tur, un mēs varētu darīt patiešām viegli , tikai uzglabājot masīvā, ka mēs, protams, atzīt ārpus cilpas, un mēs teicām, ka, ja mēs izmantojām rindiņas failā kā atslēgas mūsu masīvā ja mēs ieraksta dublikātu līnijas mēs gribētu būt svarīgas iepriekšējo vērtību. Tas nav kādreiz iespējams, ir 2 atslēgas, kas ir identiski vienā masīvā. Mēs varam darīt tieši to. Mēs atbrīvoties no šīs atbalss paziņojumu šeit. Šeit mēs esam uzglabājot līniju failā mūsu masīvā izmantojot sevi kā atslēga. Nekas ar to, un izrādās, ka mums nav pat nepieciešams šo taustiņu. Mums nav nepieciešams, ka es mainīga. Šajā brīdī, ja mēs to darītu citu foreach cilpu un mums bija cilpa pār katru arr un līnijas tagad, ja mēs atbalss-Ups, sorry. Mēs nevaram izmantot komatu. Mums ir jāizmanto to kā atslēgvārdu. Tagad, ja mēs atbalss līniju mums vajadzētu saņemt visus unikālu vārdiem failā. Ja mēs ejam līdz some_file.txt, un pieņemsim, ka mēs ābolu, banānu, ābolu, ābolu, banānu, ja mēs izdrukāt visus unikālos vārdus šajā failā mums vajadzētu tikai iegūt ābolu un banānu izdrukāt. Ja mēs saglabātu šo, tagad šeit mēs tuvinātu atpakaļ, PHP unique.php, un ta-da. Mēs esam veiksmīgi uniqued failu. Pēdējā daļa no šīs problēmas tev jautā, lai sakārtotu šo masīvu pirms izdrukāt to ārā jo šo vienkāršo piemēru, ka mēs esam tikko veikts mums bija laimīgs tādā nozīmē, ka failu Mēs to darījām contrived piemērs ar āboliem un banāniem. Tas jau bija sakārtots. Bet izmantojot vienkāršu kārtošanas funkciju jūs varat kārtot masīvs, kas ir diezgan švītīgs. Pēdējā lieta es gribēju runāt ar jums, puiši par patiešām ātri ir, ka šis PHP veida viss ir labi un labs, un tas ir super ērts zināt, kā to darīt, ja jums kādreiz ir nepieciešams darīt maz, ātri lietas programmiski. Piemēram, ja man vajag uzrakstīt programmu, kas, teiksim, liek visiem sadaļām es neesmu gatavojas iet un rakstīt to C. Tas būs garš. Tas būs sava veida sāpes, īpaši, ja ir iesaistīti failus, Tāpat kā jūs puiši ir redzējis. Tas ir tik jauki, ka tikai ar šo daudz kodu tepat mums bija iespēja izvilkt caur failu, izraut visus unikālās vērtības un izdrukāt tos atpakaļ out. Tomēr, lai jūsu uzdevumu, par jūsu projektiem, ja jūs ēkas mājas lapas ar PHP jauda ir tāda, ka mēs esam darbojas mūsu PHP failus caur šo tulks, un tulks ir pārstrādes visu, kas PHP tagus, atstājot viss pārējais neskarta un spitting veic rezultātus. Mēs varam darīt, lai izveidotu HTML programmiski. Tagad, ja mēs ejam atpakaļ uz spec, pēdējā problēma spec runā par šo ideju par koncentrāciju un radot nolaižamo izvēlni, kas jums var vai nevar gribu darīt, atkarībā no jūsu gala projektu dara, kas ļauj lietotājam izvēlēties no saraksta visu iespējamo koncentrāciju Viņu viens koncentrācija. Tagad tas ir sava veida sāpes rakstīt šo out un ir jādara viss manuāli, jo īpaši, ja jums ir, lai pārliecinātos ka jums ir visas leņķa iekavās īstajā vietā un visiem pareizajā vietā citātus, lai ar PHP jūs varat darīt programmiski, un jūs varat izdarīt tiešām ātri. Let 's redzēt, kā to izdarīt. Mēs ejam, lai atvērtu jaunu failu. Mēs ejam, lai mūsu PHP tagus. Mēs ejam, lai izsauktu to concentrations.php, un tagad, kad jūs darāt to, sava veida laba lieta, lai padomātu par kad jūs mēģināt jaukt un saskaņot savu PHP un jūsu HTML ir norādītas, labi, kāda ir daļa, ka es gribu, lai programmiski radītu? Kas ir daļa, kas man varētu programmatiski radīt? Tā ir taisnība, ka jūs varat darīt visu jūsu HTML iekšpusē PHP blokiem. Jūs varat atbalss visu HTML kā stīgas. Piemēram, ja es gribu, lai sāktu darīt Select tagus iekšpusē PHP Es varu teikt atbalss, teiksim izvēlieties name = koncentrācija, un tad lejā, es varētu būt cits Atbalss tag vai cita atbalss sauc tuvu izvēlēties. Tas ir viens veids, kā to darīt, jo tas, ko tas burtiski gatavojas darīt ir izdrukāt šo virkni, kad tas ir palaist caur PHP tulks, tāpēc rezultāts būs HTML. Ja es saglabājiet šo failu kā tas ir šobrīd un es palaist php concentrations.php Apskaties, ko es saņēmu. Man šo atklāto ciešo izvēlieties tagu. Ja es būtu to darīt, un man bija, lai saglabātu šo rezultātu failā, saka, concentrations.html-pagaidiet, tas izskatās l aizgāja uz otru pusi- tagad, ja es atvērt šeit concentrations.html jūs redzat Man ir derīga HTML failu. Ir šāda veida dīvaini? Mēs esam izmantojot PHP, lai izveidotu HTML, izveidot derīgu HTML. Veids, kā mēs darām tā mēs esam tikai, kam PHP drukāt HTML ka mēs gribam, lai drukātu. Tas ir burtiski kā PHP tīmekļa vietnes darbojas. Kad jūs apmeklējat vietni, kas sūta jums kaut ko līdzīgu kaut, kaut, kaut dot com slīpsvītra index.php dators ir burtiski izsaukšanai index.php, darbojas to caur PHP tulks, un kāds junk nāk tas ir nosūtījis atpakaļ uz pārlūku un saka hey, pārlūku, interpretēt to kā HTML. Jauka lieta ir tā, ka tas var būt sāpes pastāvīgi rakstīt atbalss, atbalss, atbalss, atbalss un pievienot visu, pēdiņās, piemēram, tas, tādēļ, ja jūs vēlaties, lai rakstītu HTML, kas būs statiska sevi jūs varat izdarīt to, kā šis, nodot to ārā, aizveriet to, un tad šeit jūs tikai likts iekšā PHP tagus, ko jūs zināt Jūs vēlaties, lai programmiski radītu, un šajā gadījumā tas ir tiem opciju tagi kas ir sāpes, lai radītu. Piemēram, mēs varētu radīt tūkstoš opciju tagus darot kaut kas līdzīgs šim, $ i <1000, i + + un saka Atbalss iespēju vērtību = $-Whoops, es nevaru darīt. Nu, pieņemsim arī tā izmēģināt un redzēt, kas notiek. $ I un tad sakot $ i