[Powered by Google Translate] [§ 8] [Vähem Mugav] [Nate Hardison] [Harvardi Ülikool] [See on CS50.] [CS50.TV] Tere tulemast meie poolt teine ​​lõik. Sel nädalal me räägime PHP, ja siis järgmisel nädalal me teeme natuke vaadata, Quiz 1. Me ei kavatse alustada 3. leheküljel probleem seab pakendi, ja me töö kaudu osa küsimusi üsna kiiresti. Lehel 3, hakkame rääkima see vahe C ja PHP selles mõttes, et PHP on dünaamiliselt kirjutatud keeles, aga c on staatiliselt kirjutatud, ja on keegi tõesti kiiresti teha mingeid koodile midagi PHP või Python või Ruby enne, JavaScripti? Täiesti uus? Okei. Kõik need keeled, mida ma just mainisin on väga erinevad keeli nagu C ja C + + ja Java selles mõttes, et kui te deklareerite muutuja te ei pea deklareerima millist muutuja on, nii C olime ummikus võttes alati öelda see saab olema int muutuja, või see saab olema char * muutuja, arvestades, PHP, Python, koos Ruby, kus on palju neid rohkem kaasaegsete keelte sa ei pea seda tegema üldse. Sa lihtsalt deklareerivad oma muutuja, ja kui tegemist on PHP Te deklareerite, et see muutuja prefixing see $ märk, ja siis tüüpi muutuja on määratud iganes väärtus selle hoidmine, mis on omamoodi lahe. Et mängida seda natuke, meil on proov PHP koodi siin vahel algus ja lõpp sildid. Me kasutame sellist nagu HTML selles mõttes, et meil need nurksulud siin avada ja sulgeda. Näete seda HTML. Näete samasugust süntaksit XML liiga. See näitab alguses PHP blokeerida. See? Php on konkreetselt PHP. Me sulgeme kõik koos?> Samuti. Olgem avada faili meie seadme abil iganes soovid. Selles pakettaknad ta ütleb, et helistada dynamic.php. Tõsi, võite helistada see iganes soovid, kuid faili nimi saab tulla ja oluline hiljem, nii lihtsalt meelde iganes sa seda nimetada. Ma lähen minema üle seadme ja ma teen kataloogi 9. jagu usun me oleme nüüd. Ja me astume punkti 9, ja ma lähen kasutada gedit. Vaatame, gedit, ja ma lähen helistada minu dynamic.php. Poom. Jooksul dynamic.php, sest see on PHP fail ja ma tahan teha selle läbi PHP tõlk Mul on vaja alustada kõike maha need avatud sildid, nii et ma lähen alustada need kohe, annan endale natuke ruumi vahel silte ja siis Õppuse eesmärk oli mängida Seda funktsiooni nimetatakse gettype, nii gettype, see funktsioon siin. Pange tähele, et seal ei ole alakriips või ruumi või sidekriips või midagi sellist eraldades 2 sõna, saada ja tüüp, lihtsalt üks sõna üldse. Aga mida see teha on, kui ma läbida muutuja gettype, öelda $ var või $ x, see ütleb mulle omamoodi ka silumine formaadis Mis nime see tüüp on. Me läheme proovida siin. Eriti siis, kui sa vaatad tagasi pset spec meil paar erinevat rida koodi siin. Esimesel koodirida me initsialiseerida see muutuja, $ var, võrdne 7, ja siis meil on see printf rida mis ütleb, et hei, printf var on tühi. Printf on üks paljudest võimalustest, kuidas saame trükkida asju PHP. Tihti näete Echo funktsiooni asemel kasutatakse printf, kuid printf me oleme kõik tuttavad, kes on kodeerimist C mõneks ajaks. Mis saab tegelikult teha ei Vaatame, kas kopeeri ja kleebi töötab. Ma annan selle proovida. Me läheme tagasi üle seadme. Okei, ja seal me läheme. Ja vahe on kuidagi imelikult, kuid siin me läheme. Meil on see kood siin. [Student] Kas ei ole hea stiil sakk on? Vabandust? [Student] Kas see on tavaline, et vahekaardil on? Õige, nii Sam küsib, kas see on konventsiooni sakk või mitte. Tavaliselt jah. Sel juhul olen otsustanud mitte. Ausalt, näete erinevaid asju erinevate programmeerijad. PHP on tavaliselt kasutatakse tihti koos HTML ja teistes keeltes, ja nii mõnikord printimine vaadata veidi funky kui te taane jooksul PHP alguse ja lõpu sildid. On tõesti sõltub. Sellisel juhul kopeeri ja kleebi ei kleebi sakke minu jaoks, kuid kindlasti ei, nagu sa ütlesid, et see selgemaks teha. Olgu, kui teil salvestada see kood dynamic.php siis mida saate teha on tulnud maha teie terminaliakent kus ma olen siinsamas aastal gedit, ja teha samaväärne kompileerimise kasutades teha ja siis töötab oma koodi C kõik mida sa pead tegema koos PHP fail käivitada PHP tõlk, mis on väike programm nimega PHP, ja argument annate tõlk on fail, mida soovite tõlgendada. Sel juhul dynamic.php. Oih, kus ma pane see? Oh, ma panin selle punkti 9, ja siin ma olen. Sellepärast. Nüüd, kui ma saan seda uuesti näeme, et minu esimene gettype funktsioon kõne var on täisarv. Järgmisel 1 var on string, ja siis kolmas var on tõeväärtus. Mis huvitav on see, kui me kerida tagasi üles näeme, et need tüübid sarnased, mis meil oli C. Meil oli ints in C. Me justkui oli keelpillidele C, nii stringe ei olnud täiesti legit tüüp selles mõttes, et meie CS50 string oli tõesti, mida? Vabandust? Missy? [Missy] Char *. Jah, see oli see char * me kasutasime. Alguses poolaastal olime kasutades string tüüpi, aga see oli tõesti char * kapoti alla. Me lihtsalt määratletud tüüpi see, samas PHP need stringid on tegelik tüüp. Ei ole rohkem selle char * tüüpi värk. Näete, et me saame teha palju rohkem asju koos stringid palju kergemini PHP kui me võiks C, ja siis lõpuks, meil on see boolean tüüpi, ja suur vahe on selles, et kui me kerida alla tagasi näeme, et nime tüüpi Nüüd on täisarv, string ja tõeväärtus asemel int ja bool, ja nagu te kiirenemist erinevate programmeerimis keeli, eeldades, et mingil hetkel oma elus te kokku puutuda erinevatega märkad vähe quirks nagu see kus C nõuab täisarvud ints. Mõned kutsuvad seda täisarvud. On ka muid tingimusi, et saad joosta. Big int nägime täna SQL. Seal on ka hulk ning seejärel tõeväärtus, boolean, igasuguseid erinevusi seal. See ei ole väga huvitav, kuid nüüd ma annan sulle natuke aega kui me suumida tagasi välja-töötamiseks läbi selle teostada allosas lehekülg 3 kus ta küsib, milliseid vastavad need väärtused siin allosas. Meil on 3.50. Meil on see asi siin, mis on huvitav. Me ei ole näinud, et enne, kuigi kui olete jälginud mööda loengu te ilmselt juba teate, mis see on. Siis on meil see, mis see on selline funky. Te tunnete seda. Mis see on C? Sam? Mida see teile C? See avaks faili nimega dynamic.php ja muuta see loetavamaks. Jah, ja milline oleks tüüpi muutuja, et meil oleks määrata seda? >> Faili täht. Täpselt, me määrata see fail täht. See on õigustatud PHP liiga. Jookse seda. Vaata, mis juhtub, kui te kaotate seda arvesse gettype. Ja siis ka vaadata, mis null on, mis see võiks olla PHP. Ma annan sulle paar minutit. Võid sõna otseses mõttes kopeerida ja kleepida neid väärtusi, ja siis me teeme natuke juhuslik kõne te ja vaata, mis sul on. [Student] Mul on küsimus. << Jah. Ühes loenguid Taavet ütles, et midagi saab panna ülaosas oma faili nii et sa ei pea sisestama PHP iga kord. Mis see oli? Ta oli ilmselt räägime nael paugu, hash paugu. See on direktiiv, et kui te tähistada oma fail käivitatava siis mida ta teeb on see, kui sa käivita fail ta ütleb kest programmi kasutada PHP tõlk tõlgendada faili sisu. Küsimus on, mis oli see eriline joon et me võiks hõlmata ülaosas meie PHP failid ei pea sisaldama Selle PHP liini või see PHP käsk, kui me tahame ellu faili? Ja tegelikult võite seda teha hunnik erinevaid faile. Ma usun, et see oleneb sellest, kus PHP binaarne on salvestatud, kuid sageli usr / bin / php on hea koht alustamiseks. Võite seda välja mõelda täpselt, minnes tagasi oma seadme ja kirjutades välja, mis php. Mis käsk nuputab kui sa täidesaatva binaarne või käsu, kus vastav fail on. See ütleb mulle, et PHP on tõesti aliase see binaarfaili mis on salvestatud usr / bin, mis on kui palju kahendfailide on paigaldatud. Näiteks, kui ma liikuge üles tippu, nüüd, et ma panin selle #! joon siin Ma ei keri, ja ma võin proovida käivitada dynamic.php, kuid ma saan selle vea kohta luba ei anta, ja mida see tähendab, et see fail ei ole praegu annab käivitatava õigused. See ei ole märgitud faili, et keegi saab sõita. Kui sa jooksid teha või rõkkama ja sul on käivitatav sellest tõlkija oli piisavalt tark, et teada, et hei, ma ehitan käivitatav. Sa ilmselt tahad käivitada, nii et see oleks automaatselt häälestada load teile. See ei ole nii, aga kui loote normaalset pilti nullist, Põhjus on tavaliselt sa ei taha mingit faili oma süsteemis olema käivitatav, nii et sa tegelikult minna ja käsitsi teha. Lihtsaim viis seda teha on koos chmod käsk, ja chmod + x ütleb lisada käivitatava natuke sest seal on read natuke, kirjutada natuke ja käivitatava natuke, r, w ja x, ja öelda chmod + x süttib käivitatava natuke sest siis fail, mis on kirjas, mis antud juhul on dynamic.php. [Student] Kas see on sisse lülitatud kõigi jaoks? Vaatame seda välja, siis kuidas ma vaadata õigused? Kas sa tead, kuidas ma vaadata load fail? [Kuuldamatu õpilase vastus] Vabandust? >> [Student] XSD. XSD annab meile faili hacks. Loetletakse kõik failid,-l, siis näita mulle kõik failid minu kataloogis omamoodi nende pikk, paljusõnaline nimekirjades, ja nii siin me näeme, et Selle dynamic.php fail Viimane muutmine: 5. november kell 16:21. Omanik seda pilti ei jharvard. See on kasutaja, kes on sisse logitud See kasutaja Töötan nagu, ja kui sa oled ka seadme sa ka töötab kasutaja jharvard. Sa oled õpilaste rühm, ja need on asjad, mis sa näed piisavalt tihti. Me ei lähe palju detail siin, kuid enamasti see, mida sa tahad vaadata, kui otsite, et näha kas fail on käivitatav peamiselt kasutaja, kes omab faili omanik, nii see jharvard, ja siis on meil õigused bitti siin vasakul, ja Kuidas lugeda seda, et viimane natuke tavaliselt kasutatakse märgist, kas-vähemalt sel juhul see viimane natuke sageli seatakse reklaami näidata , et fail on kataloog ja mitte lihtsalt tavaline fail. Siis järgmised 3 bitti siin kindlaks õigused, mis faili omanik on, nii sel juhul jharvard, kui faili omanik, oskab lugeda ja kirjutada seda faili kuid seal on kriips öeldes, et jharvard ei saa täita seda faili. Järgneva 3 bitti on grupi jaoks, nii et see on õpilaste rühm, nii et kui oli mitu kasutajat minu aparaat, ja meil oli mitu kasutajat osana üliõpilaste rühm, siis nad saavad kõik lugeda seda pilti, kuid nad ei saa seda kirjutada, ja ka keegi teine, maailma saab lugeda seda pilti ka. Seal on hea, pikk writeup sellest, siis võite lugeda internetis. Kui probleem komplekt spec me minna seda üksikasjalikumalt. [Student] Kas 218 viidates maailma? 218 on-off peal mu pea ma ei unusta, aga ei. Vaatame. Olen umbne, et just nüüd. Tagasi millised me olime umbes pistmist chmod + x kus tahtsime anda dynamic.php käivitatava load, ja küsimus oli, kas see annaks käivitatava õigused kõigile või lihtsalt jharvard, ja me näeme seda töötab käsud ja kirjutades ls-l, ja nüüd me näeme, et see on märgitud käivitatav. Sa näed, et seal oli värvimuutus. Nüüd dynamic.php on loetletud roheline, ja tundub, et vastus küsimusele on, mida, Charlotte? [Charlotte] Ainult jharvard. >> Ainult jharvard, jah. Kui me tahtsime keerata käivitatava natuke kõigile kuidas võiks me seda teeme? Kõik mõtted? >> + X? Jah, täpselt. Charlotte ütles, et me saame teha chmod kohta + x dynamic.php, ja nüüd, kui võtame ls-l näeme, et käivitatav bitti tõepoolest sisse lülitatud kõigile. Ja tegelikult võite seda teha vastupidine sellele, nii et saate selle välja lülitada kõigile kasutades miinus. Nüüd on välja lülitatud, ja nüüd saame selle tagasi sisse lülitate jaoks jharvard nii et me saame tegelikult kasutada seda nüüd, ja nüüd näed, kui võtame kood see eriline #! rida ülaosas, #! rida, rääkis kest, ütles meie terminali hei, kui see fail on joosta, kasutada / usr / bin / php tõlgendada seda pilti ja seejärel printida väljund. [Kuuldamatu õpilane küsimus] Muidugi, las ma kerin tagasi üles. Just niimoodi. Näete kõik need direktiivid alustada selle naela ja seejärel hüüumärk, mõnikord Jutt, hash paugu. [Student] Kuidas me saame kasutada seda php dynamic.php enne me muuta see täitmisfaili? Küsimus oli, kuidas me saame teha selle abil PHP binaarne samas dynamic.php ei ole käivitatav? See on super oluline, sest see on täpselt, kuidas see läheb tööle, kui sa kirjutad Ülesanded nr 7. Enamik aega PHP failid ei ole otse käivitatav. Viisil, mis toimib, sest see on PHP binaarne, mis on täidetavad. Tõlk on asi, mis hukatakse, ja mis siis see teeb sõna otseses mõttes slurping kogu sisu meie dynamic.php fail ja läheb rida-realt ja täidesaatva need käsud, nii et see kasutab meie PHP fail kui nimekirja juhiseid. See ei ole otseselt käivitamata. See, kui me ütleme, et need failid on tõlgendanud töötamise ajal. See on läbijooksuaeg keele asemel midagi, mis on määratud kompileerimise ajal, ei koostatud keeles nagu C. Kas on võimalik saada läbijooksuaeg keel tegutseda, kui see on kompileerimise ajal keel, meeldib, kui teil on kõik jooksvad teha server mitte-sa tead, mida ma mõtlen? Jah, nii on küsimus kas on võimalik saada läbijooksuaeg keeles tegutseda pigem kompileerimise ajal tüüpi keeli? Ja seal on, ma mõtlen, et on aktiivne teadus, palju neid ettevõtteid. Usun Facebook on teinud palju tööd PHP ja kompileerimisel alla, mistõttu on kiirem, optimeerides seda kuna nende sait on ehitatud PHP. Kui olete jälginud node.js üldse mis on selline JavaScript tõlk et oleks võimalik käivitada JavaScript väljaspool brauserit, väljaspool oma veebilehitseja seadistusi, sest traditsiooniliselt JavaScript oleks lihtsalt joosta sees Firefox või Chrome ja see oleks kasutatud jahe animatsioone juhtuda veebilehele ja teha oma veebilehe dünaamiline. See on ehitatud palju tööd, et Google on teinud teha JavaScripti ja C + + seovad kokku, nii et seal on palju aktiivseid teadusuuringuid saada nendes keeltes suhelda ja neid optimeerida, peamiselt seetõttu, et nii paljud inimesed saavad koodi PHP ja JavaScript sest see on palju lihtsam. See on palju ilusam. Sul ei ole viiteid. Sa ei pea tüüpi ujuvad ringi. Nad tahtsid saada kasu neist kompileerimise ajal keeli kõik tüüpi kontroll ja kiirus ja väiksem mälukasutus ja kõik selle säilitades samal ajal paindlikkuse ja kasutuslihtsuse neist uuemad. Tagasi meie algse plaani rünnata. Meil on mõned neist küsimustest siin meie probleem komplekt spec. Lähme läbi neid tõesti kiiresti ja me läheme mööda tuba laiali. Charlotte, millist tüüpi on 3,50? [Charlotte] See on topelt. >> See on topelt. Jimmy, mis on selle kõrval üks? >> Massiivi. Massiiv, fantastiline, ja Jared, mis on fopen? [Jared] See on ressurss. >> See on ressurss. See on omamoodi uue, mitte faili täht, mitte fail. See ressurss on tüüp PHP, ja mul on kahju, Ella, viimane null on mis? Null. Null, kuidas see kirjutatud PHP? >> Samamoodi. Samamoodi pealinnades? >> Jah. Jah, kõik on korras. Hakkab pihta, meil topelt, meil massiiv, meil ressurss, ja siis meil on null. Vaatame nüüd olete näinud- Vaatame, nii et nüüd ma arvan, mida ma ka tahan teha, on tõmba Selle veebilehe siin, see php.net / manuaal, nii et kui te kopeerida, et ja avada veebibrauser. Ma lähen tõmba Chrome, pane see sisse Ma tahan teile näidata seda mitte ainult sellepärast, me saame rääkida terve päeva umbes tüüpi ja kõik, mis lõbusaid asju vaid sellepärast, et see on PHP manuaal, ja seal on palju PHP programmeerijate seal. Seal on palju PHP veebilehed seal, ja selle tulemusena on palju dokumentatsiooni PHP, ja kasutusjuhend, see php.net, on tõesti hea koht, kuhu minna kui sul on küsimusi, milline on parim viis seda teha X PHP või mida see funktsioon välja näeb? Just sellist saada tuttav milline see välja näeb, sest teil tulevad siia tihti, natuke Ülesanded nr 7. Kui sa lõpuks teed lõplik projekt, mis kasutab PHP see on koht, saate saanud väga hästi tundma. Sageli kuidas inimesed seda teha on nad kasutavad Google otsida koha, ja nad ei kasuta otsingukasti, mis on siin üleval paremas, mis on selline pisike. Kui sa Googling ringi midagi pistmist PHP ja näed üks manuaal lingid avanevad saate tavaliselt loota, et nagu üsna hea ressurss. Awesome, nii välja seda tüüpi, lihtsalt uudishimust, millised ei ole me näinud? Midagi me ei ole näinud siin? [Student] Allika. >> Nägime ressurss fopen kõne. [Student] Objektid. >> Objektid ei ole me näinud kindlasti. Kutse ei ole me näinud. On mõned neist pseudo-tüüpi. Me kindlasti ainult nägin täisarv ja topelt. Me ei näinud mõned teised, nii et kui me kliki täisarvud näeme on muid täisarvud, et nad on siin? Kas nad kõik nii täisarv, täisarv, täisarv. Mõned keeled on suuremad täisarv tüüpi, nagu nägime MySQL täna oli int ja siis suur int. Lahe. Niisiis, PHP manuaal. Lähme tagasi meie probleem komplekt spec, ja me nüüd kerige lehel 4. Üks asi, mis juhtub, kui sa neid keeli et ei ole seda staatiline kirjutades, et neid keeli, kus sa pead deklareerima tüüpi muutuja kuni ees on teil juhul, kui te võite alustada võttes muutujate eri tüüpi suhtlevad omavahel, ja PHP see asi, kus ta püüab teha mida ta peab kõige mõistlikum asi, mida teha kui sul on 2 erinevat tüüpi suhelda üksteisega. Näiteks kui me vaatame neid ridu koodi siin te näete, et meil juhtub siis, kui me proovida ja lisada string 1 kuni täisarv 2. Mis juhtub, kui me proovida ja lisada string, mis ei ole numbrilist väärtust vaid tegelikku märki, ST number 50? Siis näeme, on midagi erinevat, mis juhtub, kui lisamise asemel string arv lisame arvu stringiks, ja nii edasi ja nii edasi kuni punktini, kus me saada mingi imelik värk siin, kus meil on 7 + tõsi. Mida kuradit see peaks tähendama? Kui kutid minna ja kleebi mõned see kood oma seade. Saate hoida seda dynamic.php. Eks näis, mis juhtub. [Student] Lihtsalt trüki, ei printf? Jah, nii leiad, et trükkimine on ka kehtiv väljatrüki funktsioon PHP. Seal on palju erinevaid viise, kuidas seda teha. Me näeme paari näidet hiljem kui hakkame rääkima umbes unikaalne probleem, et me ei kavatse kirjutada ja siis kontsentratsioonid probleem, et me ei kavatse kirjutada et kuigi meil on fopen ja kirjutamisel et ei ole sageli lihtsaim viis lugeda faili sisu. PHP on palju neid C-like igandid. [Student] Kui panin kõik 6 nendest asjadest ma ainult saada üks number väljund. [Nate H.] Kui paned kõik 6 sellist asja. Vaatame, kas see on sellepärast, et see on võimalik- üks asi on see, et need print kõnesid ei lõppedes uusi jooni. Ei ole uut eraldusjoont kõik need prindi kõned et äkki te saate ühe suure arvu, ja see on tõesti lihtsalt sulam uus liin tähemärki. [Student] Okei, kuidas ma veenduge- Noh, seal on hunnik erinevaid viise. Sa võid käsitsi kasutusele prindi reavahetusmärki, kaja reavahetusmärki, prindi uute rida. [Student] Nii kaja on sama asi nagu printf? Printf on nagu C printf kus te prindite vormindatud stringi. Sa varustades seda stringi ja seejärel kõik kohatäide muutujad. See on sageli midagi, mida ei kasutata- Vaatame, kui disclaimer, Ma olen vähem tuttav PHP kui ma olen teiste veebi keeled, ja kui ma olen programmeeritud PHP ma tavaliselt ei kasuta printf sest minu arvates on kiirem kasutada string interpolatsiooni võimeid, et ta on mis me astume ja ma näitan teile mõne sekundi pärast, arvestades, C me mingi pea seda tegema hacky asi, et saan seda välja trükkida korralikult. Võite tegelikult panna muutujad otse stringid PHP. Printf on selline liiga pikk, mida ma tavaliselt teen. Jah, Ella. [Ella] Üldiselt kui saad jäsennysvirhe see tähendab- nagu C-see ei ütle teile täpselt, kus viga on ja mis see on, Nii et see tähendab vaadata läbi kogu oma koodi ja sellest aru saada? See on tavaliselt rohkem sihitud kui see. Ma arvan, et sel juhul oli see natuke ära, nii et ma arvan, et sel juhul me puudusid semikooloniga. See püüdis mõtestada kõike, nii nagu need tõlgendada keeles, tõlk läheb püüdma ja teha oma parima, et kõik tööd korralikult. Näete, näiteks JavaScript Sul sageli rea avaldusi lõpevad semikooloniga nagu nad teevad PHP, just nagu nad teevad C. JavaScript mõned JavaScript tõlgid aastal palju brausereid panna semikooloniga teile kui juhtub, et puudu neid. Nad proovida ja mahutada mõned räpasus oma osa. See, kui ta võib üritada ja üritab ja üritab teha asjad töötavad, ja siis lõpuks ta saab punktini, kus ta ütleb okei, Ma ei saa teha asju tööd käendamine, ja see on kui saad rea number et võib tunduda natuke maha õigesse kohta. Okei, nii et lähme läbi selle väga kiiresti ära. Me jätsime maha Ella, nii lähme üle Missy, ja Missy, mida ei prindi string 1 pluss number 2 sulle? [Missy] 3. >> 3.. Kas see on loogiline? Omamoodi? Kas see annab sulle numbri? Kas see annab sulle string? [Missy] arv. >> See arv. Aga see on trükkimine, nii see läheb sulle mingi stringi. Üks asi, mida me saame teha, et vaadata seda on see, kui me $ var = 1 + 2 ja siis me ütleme, kaja gettype, nii me kasutame kolmandat sorti trüki siia. Nüüd saame näha, mis juhtub siin. Siin mida meil on meil täisarv siit. Kuigi olime lisades seda stringi arv, me ei saanud string välja, just nagu Missy ütles. Me ei saada täisarvu. Okei, nii et vaatame, next up, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Kas see on loogiline? [Kevin] Jah. [Nate H.] Miks? Miks see mõtet teile? [Kevin] sest see on lihtsalt võttes string, mille arv väärtuseks null. Jah, väga. Natuke kahemõtteline olukordades, aga see on hea teada, mis juhtub. Stella, mis juhtub järgmisena number 1 + string 2? [Stella] 3. >> 3 uuesti. Ja sel juhul, me saame jada või number? Anname sellele proovida. Igaüks kiiremini kui ma saan vastuse? Charlotte? Oh, ma didn't-okei, vaatame, me teeme sama asi kus meil number pluss string, ja me ei kavatse korrata tüüp, vaata, mis me saame. Samuti saavad täisarv. Ei ole oluline, millest üks on string, millest üks on number. Me veel hakka täisarv. See on ikka läheb seda, mida me võiksime oodata. Olgu, Sam, mida ca 90 + 9 pudelit õlut seinal? [Sam] 99. >> 99. Ei pudelit õlut seinal, kuigi. See annab meile natuke rohkem infot, mis toimub. [Sam] Kui oleksite kirjutanud 9 tähed siis oleks 90, eks? [Nate H.] Jah. Küsimus oli, kui me tahaks kirjutada 9 välja nagu N-I-N-E oleks me saanud 99 või 90? Me tahaks saada 90. See on sõna otseses mõttes lihtsalt otsin kohaline tähemärki. See ei ole piisavalt targad, et tunnustada arv sõnu ja seda kraami. Jah. [Student] Kas on olemas selline asi nagu typecasting PHP? On, ja see on täpselt nii nagu sa teeksid seda C. Aga 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Jah, mis siis võib olla üllatavat? Mis juhtuks, kui sa tegid seda sama asi C, kui sa 10/7 C? [Charlotte] Oleks ainult teile-sõltuvalt sellest, kuidas te typecasted ma arvan see annaks sulle ainult piiratud arvu kohta pärast koma. Jah, nii piiratud arvu kohta pärast koma. Mis veel võiks olla-oleks see teile mingeid kohta pärast koma? Sageli ei ole, nii et jälle, sõltuvalt sellest, kuidas te typecasting see see võib olla või mitte teisendada see murdarv. Siin see oli selline tore, et ta seda tegi. Kui me oleksime näidanud teile seda tagasi, kui alustasime teed sellist kraami C siis ilmselt oleks teinud veidi rohkem mõistust et see ei ole lihtsalt minema 1. Ja siis lõpuks, Jamie, mida umbes 7 + tõsi? [Jamie] 8. >> 8. Mida see tähendab? Ma arvan, et see lihtsalt annab tõelise väärtuse 1. Jah. Mis juhtub, kui me seda muuta, et vale? [Student] 7. Jah, nii mäletan, kui me räägime neist binaarsed väärtused, 1 on sisse lülitatud, 0 on välja lülitatud? Nüüd on meil tõsi on 1, 0 on vale, ja te ei oleks seda näinud C näiteid, et me oleme teinud seda viimase poolaasta kuid ajalooliselt bool tüüpi C ei ole reaalne tüüp, et inimesed on kasutanud 0 ja 1 koht õige ja vale. See on märk, et. Okei, nii et üks oluline osa kõigest sellest on see, et meil on need erinevad. Nad võivad suhelda üksteisega. Nad on sageli üksteisega suhelda viisil, mis on kena, nagu me oleme näinud siin. On tore olla võimeline on string 1 ja number 2, lisage need koos ja saada 3. See on loogiline. Samas, kui olete kirjalikult veebilehed, ja eriti kui sa oled töötlemine kasutaja sisend, nii et te olete kirjutanud veebivormi mis kogub informatsiooni kasutaja ja läheb seejärel töödelda tagaküljel eesmärgil serveripoolne oma PHP kood Kui ootate, et raha, et kasutaja sisestatud ja esitatud teie vorm olema täisarv või olla murdarv või midagi sellist peate selgesõnaliselt enamus seda ja siis teha teatud tüüpi kontroll. Sa ei taha lihtsalt tugineda seda tüüpi maadelda süsteemi, et muuta asju välja töötada, eriti turvakaalutlustel ja just stabiilsuses oma kodulehel. Lihtsalt midagi, mida meeles pidada, et kui te käitlemise vormi andmed, midagi, mis on saadaval postiga või get superglobals veenduge, et te alati seda kinnitada ja muuta ja jklle harjunud roll ta. Ja just nagu me rääkisime hetk tagasi, et typecasting PHP on täpselt sama nagu C, kus teil on sulgudes ja siis tüüp. Pea seda silmas pidades. Üks funktsioon, mis tulevad mugav, kui sa seda teed on meil olen kasutanud-ja see on selline nagu kõrvale- me olen kasutanud seda gettype funktsioon siin aru saada, millist tüüpi muutuja, ja kuigi see on mugav silumiseks ja näha, mida muutuja tüüp on te ei soovi seda kasutada, näiteks seisund, kus sa kontrollides, et näha, kui gettype on $ var = täisarv midagi. See on halb, paha, paha. Selle asemel on neid funktsioone nimetatakse on täisarv, on string, on massiiv, mida soovite kasutada selle asemel, et sellisel juhul mida ma tahaks teha selle asemel, et see kutt siin on kasutada on täisarv var. Ja nad sageli nimetatud on is_ * selles mõttes, et sa võiksid asendada * täisarv, string, jne, ja lihtsalt veendumaks, et tõesti kiire on see int php. Paistab, et sa suudad seda kas on int või on täisarv ka? Jah, alias, nii int täisarv varjunimed. Lahe. Kuidas meil läheb? Korjame tempot natuke. Nüüd me ei kavatse rääkida massiivid, nii nagu näete järgmise osa spec me räägime kuidas massiivid PHP on veidi teistsugune kui need on C. Tõsi, nad on omamoodi sulam massiivid, et olete jõudnud tundma ja armastama C kus kõik on sama tüüpi salvestatud järjest ja contiguously mälu, ja sa pead neid numbrilisi indekseid. Sul on indeks 0, indeks 1, indeks 2, ja salvestada väärtused need indeksid. Sa ka C, kui sa kirjutasid Speller, palju te tegin hash tabelit lähenemine, ja nägid, et meil oli teistsugust ladustamist, kus me olime kaardistamine võti väärtus, nii et kui oled proovinud, et salvestada midagi hash tabelit sa pidid täpsustama, et sa tahad säilitada seda eriklahvi, ja et võti määrab asukoha väärtus ja kui see salvestatakse. Oled liiki sain nii nende mõistete toimub samal ajal ka PHP massiivi, ja selle tulemusena me sageli nimetame neid assotsiatiivse massiivi kus me ühendavad sisestada väärtus. Selles next part me räägime lihtne PHP massiivi kus meil on võtmed, b ja c, kõik stringid, kaardistamise täisarvud 1, 2 ja 3. Ja sul võib olla võtmed erinevad. Sul võib olla mõned võtmed on stringid, mõned võtmed on täisarvud. Sul võib olla väärtused erinevad. Sul võib olla väärtus, mis on string, väärtus, mis on täisarv, väärtus, mis on objekti või teise massiivi, näiteks kõik samas massiivi objekt, mis on kuidagi imelik. Sa ei pea olema massiiv, mis on just ühte tüüpi element selles. Sul võib olla palju erinevaid asju seal toimub. Teine asi on tähele panna, et kui sa ei näe midagi sellist oma koodi, mis kehtib PHP kuulutada array lihtsalt meeldib see, 0, 1, 2, 3, 4, 5, et tunnistab käivitub $ arr olla see massiiv. Aga mida sa tegelikult saada kapoti alla on selline kaudne põlvkonna võtmed, kus meil on 0-0, 1-1, 2-2, 3-3. Ja selgub, et isegi kui sul on array nagu see kutt siin kus sa pead, b ja c võtmed ja siis hakkate kasutades massiivi tõukemeetod hakata kasutama seda massiivi nagu pinu, näeksite, et see massiivi objekt, see massiiv on tõesti ülekoormust. Me ei saa seda kasutada massiivi. Me ei saa seda kasutada hash tabelit. Me võime kasutada seda pinu. Kui hakkad surudes asju peale selle massiivi Esimene asi, mida vajutada peale seda on indeks 0 ja seejärel jaotises 1 ja indeks 2. Saad selline kaudne põlvkonna võtmed kui te just neid otseselt. Kuidas saab määrata võtmed selgesõnaliselt, muidugi, on kasutada seda sulg märke, mis on sarnane massiivid, välja arvatud asemel vaid võimaldab täisarv indeksid siin, nüüd me laseme midagi. Kui soovite oma võti olema string, siis tahaks täpsustada seda niimoodi. Kui sa tahad seda int, siis täpsustage seda int, mida soovite kasutada. Küsimused, mis siiani? Üks kena asju selle idee on, et saate kunagi üks väärtus salvestatakse eelkõige võti. Kui me läheme tagasi üle meie seadme-Las ma kustutan natuke seda värki. Ja ütleme, et ma initsialiseerida array olla 0, 1, 2, tehtud. Kui ma nüüd tean, et näiteks, kui ma echo $ arr [0] Ma lähen, et saada väärtus 0 trükkida, ja kuna seal saab kunagi olla üks väärtus säilitada eelkõige võti kui ma salvestada midagi on $ arr [0], ütleme, siis ma tean, kui ma echo $ arr [0] jälle Ma ei hakka 0 trükitakse välja nagu enne. Ma ainult hakka. Nii et see on põhimõtteliselt öelda, et ma ei saa olla $ arr [0] talletamine 2 erinevat väärtused. Ei saa salvestada nii 0 ja string, nagu seda sõna otseses mõttes asendab Mis oli $ arr [0] varem. Põhjus, miks ma tooma see up töötab see, vaata, mis juhtub. Vaata siit, et ma sain 0 trükkida ja siis siia alla. Pole mingit uut rida seal, sest olin laisk ja ei pannud seda sisse Mis on lahe on see, mida saame kasutada seda kui võimalust jäädvustada see idee komplekt kus me ei saa olla mitu võtit jooksul massiivi. Meil ei saa olla identsed võtmed jooksul massiivi. Ma ei saa olla võti 0 ja väärtus 1 ja võti 0 ja väärtus või klahvi 0 ja väärtus tõene. Võtmed on kõik-seal on ainult 1 võti massiiv. Kuigi sul võib olla sama väärtus salvestatakse mitu korda massiivi eri võtmed see ei ole võimalik, et on identsed võtmed mitu korda oma PHP massiivi. Kui me vaatame seda järgmine probleem, unique.php, kuhu me tahame avada PHP fail sisaldavad stringe nimekirja, üks string rea kohta ja me tahame leida kõik unikaalne stringid et faili kõik me peame tegema, on kasutada ühte neist PHP massiivid ja kasutada stringid faili võtmed selles massiivis ja hoida ajakohastamine meie massiivi nagu me salvestada need uued võtmed. Kui me loeme iga rida välja fail saame seda säilitada massiivi ja lõpus on meil nagu meie võtmed meie massiivi Kõike unikaalne stringid faili piires. Kas see on loogiline? Vaatame, kuidas see toimib. Me läheme avama, vastavalt spec, uus fail nimega unique.php. Ava. Oih, vabandust, uue faili. Me ei kavatse alustada ära sama alguse ja lõpu sildid. Me läheme salvestamiseks 9. jaos, ja me ei kavatse seda nimetada unique.php. Okei, nüüd suumimiseks Mõte on avada faili, lugeda faili rida-realt. Iga rida faili me peame massiiv, kus meil on  joon nagu meie võti. Ja siis kui me jõuda lõpuks siin $ Arr võtmed on ainulaadne read failist sest me teame, et kui ma panen rida sellesse massiivi mitu korda see muudkui katab vana väärtuse, ja me saame tegelikult panna massiivi rida nagu ise just niimoodi. See on kuidagi imelik. Me ladustamiseks sama põhiväärtus paari ikka ja jälle ja jälle, kuid kuna meil on tagatud, et seal on ainult 1 võti nimega rida nii et kui meil on fail, mis ütleb-faili loomade häälitsusi ja see on auh, auh, mjäu, mjäu, Moo, moo, ja iga kord, kui me lugeda loom müra välja nagu auh ja me seda säilitada meie massiivi saame Auh, ja siis teine ​​kord me salvestada Auh see kirjutatakse esimene kord, kui me säilitada seda. Lõpuks me ainult üks kanne massiivi iga looma häälitsusi meie loomade häälitsusi faili. Kas te tunnete kindel, et saate lahendada avamine faili PHP? Üks viis seda teha-lähme üle selle kiiresti üks viis seda teha on koos fopen, nagu nägime. Võite fopen some_file.txt. Võite avada see lugeda režiimis, nii nagu C. See on üks täiesti hea viis seda teha. Sa ka siis lugemiseks toimikusse rida-realt on samad funktsioonid, paljud neist, et sa tegid C. Sul on fgets. Sul on feof, kuigi meile ei meeldi kasutada seda sest mäletan, et ei olnud suur C. Sa suudad seda teha samamoodi, kuid siin on väga lahe asi. Vabandust, ma ei taha seda teha $ fail, kuid on funktsioon nimega faili PHP, ja see funktsioon siin on lahe, sest ta loeb kogu sisu on fail, mida täpsustatakse nii some_file.txt, loeb kogu sisu see fail massiivi ja siis saate kinnitada, selle üle, mis on päris vahva. Kui me läheme näiteks meie veebibrauser ja vaatleme Google PHP fail näete siin, et meie manuaal ütleb, et faili loeb kogu faili massiivi ja saame file_get_contents naasta sisu faili stringi, kuid tavaliselt lihtsalt saada see massiiv on tõesti tore, sest mida ta teeb on see puruneb see üles nii, et iga element aastal massiiv on üks rida faili nii et kui me vaatame faili 0, see on esimene rida faili. Faili 1 teises reas, faili 2, kolmas rida, ja nii edasi ja nii edasi. Kas poleks tore, kui see oli kõik, mida tuli teha C? Päris vahva. David näitas seda loengut ja idioom ta näitas oli et lisaks meie standard loop-PHP meil oli, et eest ($ i = 0; i <10; i + +), ja seda saab teha PHP ka sama asja- meil on ka see lahe konstrukt nimega foreach. Foreach on tõesti mugav, kui itereerimise üle massiivid või neid andmestruktuure sest see võimaldab teil tõmmake iga element massiivi ilma käsitsi teha indekseerimine ise, ilma käsitsi luua indeks muutuja, juurdekasvu see, tõmmake väärtust massiivi sel hetkel, sest see on väga tavaline asi, mida teha. Sa ilmselt seda teinud tonni aegu, kui sa teed C kraam üle semester, nii et seda foreach saame silmus üle seda faili massiivi ja süntaks on see, et me tahame nüüd silmus üle selle massiivi ja täpsustada, et muutuja me ei kavatse kasutada, et salvestada element selle massiivi kohapeal, kohaliku ulatusega see foreach silmus, on me lähme kutsume seda rida. Kui see fail on lihtsalt sõnad ja seal on üks sõna rea me võiks seda nimetada sõna samuti, tõesti lihtsalt annad selle nime, mida iganes sa tahad seda kutsuda, ja siis sees silmus saate teha mida iganes sa tahad seda liini. Kui see ei ole piisav, et saada väärtus massiivi ja sa ka tahad saada indeks koos sellega saab määrata nime indeks samuti raha, ja nüüd on teil juurdepääs kuni 2 muutujad. Sul on $ i ja joon kus $ i on indeks array, ja rida on rida, mida laaditakse fail. Näiteks, kui me tahtsime välja printida kaja rida 0 faili see, me võiks seda teha just niimoodi, "Line $ i fail on $ rida," ja siin on midagi, mida me ka ei ole näinud veel kas kus ma olen lihtsalt täiesti vahele üle kogu see% s% d äri et pidime tegelema C, ja selle asemel olen läinud otse kirjalikult muutujad kooskõlas minu näol. Seda nimetatakse muutuja interpolatsiooniga string interpolatsiooni kuhu täidis muutujad otse ja PHP tõlk on piisavalt targad, kui ta loeb läbi stringi, mis algab jutumärkide- ei ülakoma, ühe jutumärke sa ei saa seda teha- kuid topelt jutumärke, sest see loeb läbi ta otsib muutujaid. See jaht neile ette, ja kui ta näeb muutujad see võtab muutuja väärtus ja toppige see string, kui see saab teisendada see string esindatuse, mis on päris vahva. Sest nüüd, lähme välja kommenteerida ülejäänud kõik, salvestada, ja mida me saame teha nüüd on meil võimalik avada faili et me võime some_file.txt-Loome uue faili- ja suudame panna hunnik jama värk siin lihtsalt katsetada kõike välja, salvestada, nimetame seda some_file.txt, kui ma teen siin üleval, ja nüüd kui ma välja suumida lihtsalt veendumaks, et kõik on sama kataloogi tundub, mul on unique.php ja some_file.txt samas kataloogis. Kui ma saan php unique.php näha, kuidas ta prindib välja iga rea ​​minu faili ja mis rida? See on päris võimas, eks? Vaata, kulus 3 rida koodi avama faili. Noh, 4 rida koodi. Ma ei saa loota täna selgelt. Aga tõesti vaid 2 huvitav rida koodi, kuna teised 2 olid looksulg, kuid selles palju koodi suutsime avada faili, itereerima läbi, tõmmake liini number ja liini ise ja välja trükkida. Lahe värk. Charlotte. [Charlotte] Mul on küsimus süntaks. Nii foreach tegeleb iga rida faili avada, ja siis kui sa tahad teha asju iga rida sa lihtsalt teha seda nagu ja seejärel siduda väärtus. [Nate H.] Mida saad teha siin-küsimus oli foreach on pistmist massiiv, nii foreach süntaks on tõesti foreach, ja teate, et seal pole ruumi või midagi vahel ja iga. Nad peavad minema paremale üksteise kõrval, ja siis ta võtab massiivi, ja siis on see muu märksõna kutsutud, et peab olema seal, ja siis pärast kui võite panna üks muutuja nimi, sel juhul sa lähed tuleb tõmmates välja väärtuste massiiv, ei indeksid, või kui sa seda nagu me oleme kirjutanud alla sa saad võtmed ja väärtused. Sul on foreach element massiivi või paari massiivi Pingeline väärtus või lihtsalt raha. Sõltuvalt sellest, mida sa vajad, kui sa ei pea klahve siis võid minna väärtusega. Kui soovite võtmed võid minna koos nendega ka. [Charlotte] ma ka aru, me ei ole kunagi tunnistatud i või liin. Kuidas see teagi, mis nad on? [Nate H.] Mis sa sellega mõtled deklareerida? [Charlotte] Me pole kunagi öelnud neile, mida ma või liini kaudu. [Nate H.] Me pole kunagi öelnud, et arvuti, mida ma või liin tähendab nii- [Charlotte] Et nad indekseeritud või et Naad- [Nate H.] Me pole kunagi öelnud talle, et see peaks olema indeks või võti ja väärtus, ja see on, sest see on PHP tõlk. See toimib deklaratsiooni ja ütleb okei, võti saab olema muutuja nimega i salvestatud muutuja nimega i. Väärtus saab olema salvestatud muutuja nimega rida, nii see toimib deklaratsiooni need muutujad ja ütleb $ i on võti, ja $ rida on väärtus. Jah, Ella. [Ella] Kui võtmeid ei ole teinud arvuliselt kuidas see otsustada millises järjekorras see saab printida kõike? Kas see lihtsalt meeldib et see on kantud? [Nate H.] Vaatame seda proovida. Loome muutuja nimega arr, ja mida me saame teha läheb 7. Oletame 0 läheb teise massiivi 1, 2, või õun. Oletame, et 7 läheb 1, b läheb 2 ja 3 läheb 4. See on omamoodi hull otsin näiteks sellepärast, et me segades kuni stringid ja täisarvud kogu koht. Ei ole reaalne, et see massiiv. Ma mõtlen, et me võiks tellida kõike tähestikulises järjekorras võtmed. Võiksime tellida kõike tähestiku järgi väärtus. Võiksime proovida ja võtta arvesse, et mõned on stringid, mõned ints, ja me võiksime proovida ja muuta need kõik sama tüüpi ja vaata, mis juhtub, või me võiks kaaluda neile väärtuse, mille me juba sisestatud neid kus me paneme selle kuti esimene, see kutt teiseks see kutt kolmandaks see kutt neljandaks jne. Vaatame, mis juhtub, kui me teeme selle koodi. Kui me liikuge allapoole ja teha sama asi, ja siin see ei prindi välja uued liinid. Kui ta lugeda asju välja fail oli ka uute liinide väärtusi, mis oli, miks see välja printida kenasti, samas kui siin ei juhtunud midagi, nii et miks kõik on smushed koos. Olgem lisada uue rea lihtsalt teha asju kena. Teeme uuesti, see, ja nii siin vaadata, mis juhtus. See trükitakse kõik välja, millises järjekorras me seda ellu massiivi. See säilitamiseks et selles mõttes. Tulles tagasi selle probleemi unikaalsed kus me tahame, et oleks võimalik kinnitada, üle faili, ja me anname ta some_file.txt, ja me ei kavatse itereerime see niimoodi. Me ütlesime, et tahame kasutada massiivi veenduda, et olime saanud kõik ainulaadne read sealt välja, ja me võiksime teha, et tõesti lihtsalt poolt lihtsalt ladustamiseks array et me muidugi tunnistada väljapoole silmus, ja me ütlesime, et kui me kasutada faili ridade nagu võtmeid meie massiivi kui me läksime duplikaadi liin me tahaks olla ülekaaluka eelmine väärtus. See ei ole kunagi võimalik on 2 võtit, mis on identne sama massiivi. Me võime teha just seda. Me vabaneda sellest kaja avaldus siin. Siin me oleme ladustamiseks rida failis meie massiivi kasutades ennast võti. Sellest pole midagi, ja selgub, et me isegi ei pea seda klahvi all. Meil ei ole vaja, et ma muutuja. Sel hetkel, kui me seda teha teise foreach silmus ja me olime silmus üle iga arr ja joon nüüd kui me echo-oih, vabandust. Me ei saa kasutada koma. Me peame kasutama seda märksõna. Nüüd, kui me echo rida peaksime saama kõik unikaalne sõnu faili. Kui me läheme üles some_file.txt, ja oletame, et me teeme õun, banaan, õun, õun, banaan, kui me väljatrükk Kõike unikaalne sõnad seda faili peaksime ainult saada õun ja banaan välja trükkida. Kui me salvestada see nüüd siin me uuesti suurendate, php unique.php, ja ta-da. Oleme edukalt uniqued faili. Viimane osa sellest probleemist on teilt sorteerida seda massiivi enne trükitud välja sest see lihtne näide, et me oleme lihtsalt teinud meil vedas selles mõttes, et faili- me tegime seda kunstlik näiteks õunad ja banaanid. See oli juba järjestatud. Kuid kasutades lihtsaid omamoodi funktsiooni saate sortida massiivi, mis on päris vahva. Viimane asi, ma tahtsin rääkida teiega umbes tõesti kiiresti on see, et selline PHP on kõik hästi ja hea, ja see on super mugav teadma, kuidas seda teha, kui sa kunagi pead tegema vähe, kiire asjad programmiliselt. Näiteks, kui mul on vaja kirjutada programm, mis ütlevad, paneb kõik osadeks Ma ei kavatse minna ja kirjutada seda C. See saab olema pikk. See saab olema selline valu, eriti kui seal on faile kaasatud, nagu te näinud. See on nii tore, et just nii palju koodi siin suutsime rippida läbi faili, tõmmake kõik unikaalsed väärtused ja printida neid tagasi viia. Kuid oma ülesandeid, oma projekte, kui sa oled hoone veebilehed PHP võim on see, et meil hakkab meie PHP faile selles tõlk, ja tõlk töötleb kõik endast PHP sildid, jättes kõik muu puutumata ja sülitab välja tulemusi. Me saame seda teha, et ehitada HTML programmiliselt. Nüüd, kui me tagasi minna spec, viimane probleem spec räägib see idee kontsentratsiooni ja luues rippmenüüst, mis te võib või ei taha seda teha, sõltuvalt sellest, mida oma lõpliku projekti teeb, mis võimaldab kasutajal valida loendist kõik võimalikud kontsentratsioonid nende ühe kontsentratsiooniga. Nüüd on see selline valu kirjutada seda välja ja pean seda kõike käsitsi, eriti kui sul on veenduda et teil on kõik noolsulgudes õiges kohas ja kõik jutumärgid õiges kohas, nii PHP seda saab teha programmiliselt ja seda saab teha väga kiiresti. Vaatame, kuidas seda teha. Me läheme avada uus fail. Me läheme panna meie PHP sildid. Me läheme seda kutsuda concentrations.php, ja nüüd, kui sa seda teed, selline hea asi, mida mõelda kui sa üritad segada ja sobitada oma PHP ja HTML on figuring, okei, mis on osa, mida ma tahan programmiliselt luua? Mis on see osa, ma ei programmiliselt luua? On tõsi, et saate teha kõik oma HTML sees PHP plokke. Võite echo kõik HTML nagu stringid. Näiteks kui ma tahan alustada teed valige sildid sees PHP Võin öelda, kaja, ütleme valige nimi = kontsentratsioon, ja siis allapoole Oleksin võinud teise kaja tag või teise kaja nimetatakse tihedat valida. See on üks viis seda teha, sest mis see on sõna otseses mõttes teeme on välja printida seda stringi kui see läbib PHP tõlk, nii on tulemus HTML. Kui salvestada see fail on õige nüüd ja ma saan php concentrations.php vaata mis ma sain. Mul on see avatud lähedale valige silt. Kui ma seda teha ja ma ei päästa see tulemus faili, öelda, concentrations.html-oota, see näeb välja nagu l on läinud üle teisele poole- nüüd kui ma avada siin concentrations.html näed mul korrektse HTML-faili. Kas see imelik? Me kasutame PHP luua HTML, tekitada kehtiv HTML. Kuidas me teeme seda on me lihtsalt võttes PHP prindi HTML et me tahame seda printida. See on sõna otseses mõttes, kuidas PHP veebilehed töötavad. Kui külastate veebilehte, mis saadab sind midagi midagi, midagi, midagi dot com kaldkriips index.php arvuti on sõna otseses mõttes kutsutakse üles index.php, töötab ta läbi PHP tõlk, ja mis iganes rämps väljub ta on saatnud tagasi brauser ja ütleb hei, brauser, tõlgendab seda kui HTML. Tore asi on see, et see võib valu pidevalt kirjutada kaja, kaja, kaja, kaja ja pange kõik hinnapakkumisi niimoodi, et kui sa tahad kirjutada HTML et see saab olema staatiline ise saate seda teha niimoodi, pane see väljaspool, sulgege see, ja siin sa panna ainult sees PHP sildid, mis sa tead soovite programmiliselt luua, ja sel juhul on see nende valik silte mis on valu tekitada. Näiteks võiksime luua tuhat võimalust silte tehes midagi sellist, $ i <1000, i + + ja öeldes kaja optsiooni väärtus = $-Ups, ma ei saa seda teha. Noh, seda proovida ja vaadata, mis juhtub. $ I ja siis ütlevad $ i