[Powered by Google Translate] [8. §] [Kevesebb Comfortable] [Nate Hardison] [Harvard Egyetem] [Ez a CS50.] [CS50.TV] Üdvözöljük a második az utolsó szakaszt. Ezen a héten fogunk beszélni PHP, majd a jövő héten mi egy kis beszámolót Quiz 1. Fogunk kezdeni 3. oldalán a probléma készletek pack, és együtt fogunk működni a szakaszában a kérdések meglehetősen gyorsan. A 3. oldalon, kezdünk beszélni a különbség a C és a PHP abban az értelemben, hogy a PHP egy dinamikusan típusos nyelv, mivel a C statikusan beírt, és azt valaki nagyon gyorsan történik minden kódolás valami, mint a PHP vagy Python vagy Ruby előtt, JavaScript? Teljesen új? Oké. Mindezek a nyelv, amit az előbb említett nagyon különbözik a nyelv, mint a C és C + + és Java abban az értelemben, hogy ha, hogy egy változót nem kell bejelenteni milyen változó van, tehát a C voltunk ragadt, hogy mindig azt mondják ez lesz egy int változó, vagy ez lesz a char * változó, mivel a PHP, a Python, a Ruby, sok ilyen modern nyelveket nem kell tennie, hogy egyáltalán. Csak állapítsa meg a változó, és abban az esetben, PHP Ön kijelenti, hogy ez egy változót raksz rá egy $ jel, , majd, hogy milyen típusú változó határozza milyen értéket ez birtok, ami elég jó. A játék körül, hogy ennek az egy kicsit, van minta PHP kód itt között a kezdő és záró címkék. Mi használja ezt a fajta, mint a HTML, abban az értelemben, hogy a megvan ezeket szögletes zárójelek itt nyitásához és zárásához. Látni fogod ezt HTML. Majd meglátod, ugyanaz a fajta szintaxis XML is. Ez azt jelzi, a kezdete egy PHP blokk. Ezt? Php jellemző PHP. Zárjuk mindent a?> Is. Nyissuk ki a fájlt a készülék használatával, amit szeretne. Ebben a csomagot azt mondja, hogy hívja dynamic.php. Az az igazság, akkor hívja azt amit szeretne, de a fájl neve jön és fontos lehet később, úgyhogy emlékszem bármit hívják. Megyek kapcsoljon át a készüléket, és megyek, hogy egy könyvtár 9. szakasz Azt hiszem itt vagyunk most. És megyünk a 9. szakasz, és én fogom használni gedit. Lássuk, gedit, és fogom hívni az enyém dynamic.php. Boom. Belül dynamic.php, mivel ez egy PHP fájl és szeretném futtatni ezt a PHP interpreter Meg kell kezdeni mindent le azokat a nyitott címkéket, így fogom kezdeni e azonnal, adok magamnak egy kis helyet a címkéket, majd a pont ez a gyakorlat az volt, hogy játszani körül Ez a funkció az úgynevezett gettype, így gettype ez a funkció itt. Figyeljük meg, hogy nincs aláhúzással vagy szóköz vagy kötőjel vagy ilyesmi különválasztva a 2 szó, kap majd írja, csak egy szó összesen. De mi ez a fog tenni, ha elmegyek egy változót gettype, mondjuk $ var vagy $ x, ezt fogja mondani a fajta a hibakeresés formátumban mi a neve annak a típusnak van. Fogunk kísérletezni itt. Különösen, ha megnézi vissza a Pset spec megvan néhány különböző sornyi kódot itt. Az első sorban a kódot, inicializálni ezt a változót, $ var, hogy egyenlő 7, és aztán ezt a printf vonalon azt mondja hé, printf var üres. Printf az egyik a sok szempontból tudunk nyomtatni dolgokat PHP. Gyakran látni fogja a echo függvény helyett printf, printf de mindannyian tisztában miután kódoló C egy darabig. Mit lehet ténylegesen is lássuk, másolás és beillesztés működik. Fogom adni ezt a próbát. Megyünk vissza a készüléket. Oké, és ott is vagyunk. És a távolság egy kicsit funky, de itt vagyunk. Van ez a kód itt. [Diák] Nem lenne jó stílusban lapra ez? Tessék? [Diák] Ez a hagyományos lapra ez? Rendben, tehát Sam megkérdezi, hogy ilyen egyezmény lapra vagy sem. Általában igen. Ebben az esetben úgy döntöttem, hogy nem. Őszintén szólva, látni fogod, különböző dolgokat a különböző programozók. PHP jellemzően gyakran kombinációban HTML és más nyelveken, így néha a nyomtatás fog kinézni egy kicsit funky ha a francia belül PHP kezdő és záró címkék. Tényleg attól függ. Ebben az esetben a másolási és beillesztési nem illessze be az füleket nekem, de biztosan nem, ahogy mondtad, hogy világosabb. Rendben, ha menteni ezt a kódot dynamic.php akkor mit tehetünk azért jött le, hogy a terminál ablak, ahol én vagyok itt lent A gedit, és nem felel meg fordítási felhasználásával teszi majd fut a kód C mindössze annyit kell tennie, a PHP fájl elindul a PHP értelmező, ami egy kicsit nevű program PHP, és az argumentum megadja, hogy a tolmács a kívánt fájlt értelmezni. Ebben az esetben a dynamic.php. Hoppá, ha nem tettem meg? Ó, azt betette a 9. szakasz, és most itt vagyok. Ez miért. Most, ha futok, hogy újra azt látjuk, hogy az első gettype függvényhívás var egész szám. A következő egy var egy string, majd a harmadik var egy logikai. Mi érdekes ez, ha lapozzunk vissza azt látjuk, hogy ezek a típusok hasonlóak az is, hogy mi volt a C. Mi volt ints a C Azt a fajta volt, húrok C, így húrok nem voltak teljesen legit típus az értelemben, hogy mi CS50 húr tényleg mi? Tessék? Missy? [Missy] Char *. Igen, ez volt az char * használtunk. A legelején a félév voltunk a string típusú, de ez tényleg egy char * a motorháztető alatt. Mi csak meghatározott típusú azt, mivel a PHP-ben ezek a húrok tényleges típusát. Nincs több e char * típusú cucc. Látni fogod, hogy tehetünk több dolgot húrok sokkal könnyebben PHP-ben, mint mi, a C, és végül, itt van ez a boolean típusú, és a nagy különbség az, hogy ha lapozzunk vissza azt látjuk, hogy a neve az ilyen típusú most integer, string és logikai helyett int és bool, és ahogy vedd fel a különböző programozási nyelvek, feltételezve, hogy egy bizonyos ponton az életetekben, akkor érintkeznek más is észre fogod venni, kis quirks, mint ez ahol C felhívja egészek ints. Néhányan hívják egészek. Vannak más szempontból, hogy akkor befut. Big int ma láttunk SQL-ben. Vannak is számot, majd int, boolean, mindenféle különbség van. Ez nem túl érdekes, de most fogok adni neked egy kis időt ha zoom vissza, hogy a munka révén ezt a gyakorlatot alján 3 oldalon ha azt kérdezi, hogy milyen típusú felelnek meg ezek az értékek itt alul. Van 3.50. Van ez a dolog itt, ami érdekes. Még nem láttam ilyet, de ha már a következő mentén előadás akkor valószínűleg már tudja, mi az. Aztán itt van ez, ami ezt a fajta funky. Felismeri ezt. Mi ez a C-ben? Sam? Mi lenne ez Önnek a C? Ez megnyit egy fájlt nevű dynamic.php és ez olvasható. Igen, és mi lenne a típusú változó, hogy mi lenne rendelni ezt? >> Fájl csillag. Pontosan, mi lenne rendelni, hogy ez egy fájlt csillag. Ez jogos PHP is. Futtatás hogy. Látod, mi történik, ha át, hogy a gettype. És akkor azt is nézd meg, mit null az, hogy mi lehet a PHP-ben. Adok egy pár percig. Akkor szó szerint másolja ezeket az értékeket, és aztán egy kis véletlen hívást Ön és nézd meg, mit tudsz. [Student] Van egy kérdésem. << Igen. Az egyik előadás Dávid azt mondta, hogy van valami akkor tegye a tetején a fájl úgy, hogy nem kell, hogy írja a PHP minden alkalommal. Mi volt ez? Ő valószínűleg beszélt font bang, a hash bumm. Ez az irányelv, hogy ha jelöli a futtatható fájlt akkor mit csinál az, amikor végre a fájl fogja mondani a shell programot használni a PHP értelmező a fájl tartalmát. A kérdés az, hogy mi volt ez a különleges vonal hogy magukban a tetején a PHP fájlokat nem kell fel E PHP vonal vagy e PHP parancsot, amikor akarjuk, hogy végre a fájlt? És akkor valóban ezt egy csomó különböző fájlokat. Úgy vélem, ez attól függ, ha a PHP bináris tárolják, de gyakran usr / bin / php egy jó kiindulópont. Akkor kiderítjük éppen megy vissza a készülék és írja be, hogy melyik php. A parancs, amely kitalálja, amikor végrehajtó bináris vagy egy parancsot, ahol a megfelelő fájl. Ez azt mondja nekem, hogy a PHP valóban aliasing ez bináris fájl ez tárolt usr / bin, ott, ahol sok a rendszer bináris telepítve vannak. Például, ha azt felfelé a csúcsra, most, hogy már fel ezt a #! vonal itt Én lapozzunk lefelé, és én is megpróbál futtatni dynamic.php, de kapok ezt a hibát mintegy engedélyt megtagadják, és hogy ez mit jelent az, hogy ez a fájl jelenleg nem ad futtatható engedélyeket. Ez nem jelölt fájlt, hogy valaki képes futtatni. Amikor futott Márka vagy csenget, és van egy végrehajtható belőle a fordító elég okos volt ahhoz, hogy tudja, hogy hé, építek egy futtatható. Talán szeretnénk végrehajtani, így ez automatikusan konfigurálni jogosultságokat az Ön számára. Nem ez a helyzet azonban, ha létrehoz egy normál fájl a semmiből, az oka, hogy általában nem akarod, hogy bármilyen fájlt a rendszerben végrehajtható, így valóban el kell menni, és kézzel csinálni. A legegyszerűbb módja, ha ez a chmod parancsot, és chmod + x mondja hozzá a végrehajtható bit mert ott van az olvasási bit, bit az írási és a végrehajtható bit, r, w és x, és azt mondja: chmod + x bekapcsolja a futtatható bit mert akkor a fájl, általunk megadott, mely ebben az esetben lesz dynamic.php. [Student], hogy be van kapcsolva mindenkinek? Nézzük ezt meg, akkor hogyan lennék ellenőrizze, hogy az engedélyeket? Tudja, hogyan lennék ellenőrizze, hogy az engedélyeket a fájlt? [Hallhatatlan hallgatói válasz] Elnézést? >> [Student] XSD. XSD ad nekünk a fájlt csapkod. Felsorolja az összes fájlt,-l, majd mutasd az összes fájlt a saját könyvtárban milyen az a hosszú, részletes lista, és ezért itt azt látjuk, hogy ez dynamic.php fájl utolsó módosítása november 5. at 16:21. A tulajdonos a fájl jharvard. Ez az a felhasználó, aki bejelentkezett Ez a felhasználói Én dolgozom, és ha te is a készülék maga is dolgozik, a felhasználó jharvard. Te vagy a diákok csoportjában és ezek azok a dolgok, látni fogod, elég gyakran. Elmehetünk egy csomó részlet van, de a legtöbb, amit akar, hogy nézd meg, ha keres, hogy függetlenül attól, hogy a fájl futtatható elsősorban a felhasználó, aki birtokolja a fájlt, a tulajdonos, így ez jharvard, aztán mi jogosítványait bitek ide a bal oldalon, és ahogy olvasni ezt, hogy az utolsó bit jellemzően a megjelölésére e vagy sem-legalábbis ebben az esetben ez az utolsó bit gyakran kell beállítani, hogy a hirdetés jelzi hogy a fájl egy könyvtár, és nem csak egy normál fájl. Aztán a következő 3 bit itt meghatározzák a jogosultságokat, hogy a tulajdonos a fájl, így ebben az esetben jharvard, mivel a tulajdonos a fájlt, tud írni és olvasni ezt a fájlt, de van egy kötőjel, mondván, hogy jharvard nem tudja végrehajtani ezt a fájlt. A következő 3 bit értéke a csoport, így ez a diákok csoport, így ha volt több felhasználó én készülék, és mi volt több felhasználó részeként a diákok csoport, akkor mind olvasni ezt a fájlt, de nem tudnak írni, és ugyanígy bárki más a világ csak olvasni ezt a fájlt is. Van egy jó, hosszú writeup erről, hogy el tudja olvasni az interneten. A probléma set spec megyünk ebbe részletesebben. [Student] a 218 utalva a világ? A 218-off a fejem tetején vagyok felejtés, de nem. Lássuk. Én kioltó e most. Vissza az mi volt, arról, hogy köze ehhez chmod + x ahol akart adni dynamic.php végrehajtható engedélyek, és az volt a kérdés, vajon ez adna végrehajtható engedélyek mindenkinek vagy csak jharvard, és láthatjuk ezt futás a parancsokat és gépelési ls-l, és most azt látjuk, hogy ez megjelölt végrehajtható. Látod, hogy volt egy színváltozás. Most dynamic.php szerepel a zöld, és úgy néz ki, mint a válasz arra a kérdésre, amit, Charlotte? [Charlotte] Csak jharvard. >> Csak jharvard, igen. Ha akart fordulni a futtatható bitet mindenkinek hogyan is tesszük ezt? Minden gondolat? >> A + x? Igen, pontosan. Charlotte azt mondta, nem tehetünk chmod a + x az dynamic.php, és most ha fut ls-l azt látjuk, hogy a futtatható bitet valóban kapcsolva mindenki számára. És akkor ténylegesen a fordított erre, így kikapcsolni mindenki számára a mínusz. Most már ki van kapcsolva, és most mi is kapcsolja vissza a jharvard így tudjuk ténylegesen megtett, hogy most, és most látod, amikor futtatja a kódot erre a különleges #! sort a tetején, #! sor, azt mondta a héj, azt mondta a terminál hey, ha ez a fájl fut, a / usr / bin / php értelmezni ezt a fájlt majd nyomtassa ki az eredményt. [Hallhatatlan diák a kérdéshez] Persze, hadd lépjünk vissza. Csakúgy, mint ez. Látni fogod az összes ilyen irányelvek kezdeni ezzel a font, majd a felkiáltójel, néha a kocsma, hash bumm. [Student] Hogyan tudunk futni azt php dynamic.php mielőtt tegyük futtathatóvá? A kérdés az volt, hogyan lehet futtatni ezt a PHP bináris míg dynamic.php nem futtatható? Ez szuper fontos, mert ez pontosan ez működni fog, ha írsz problémája szett 7. A legtöbb esetben PHP fájlokat közvetlenül nem futtatható. Az út, hogy működik, mert ez a PHP bináris, ez végrehajtható. A tolmács az a dolog, ami végrehajtás alatt, és így mit csinál szó szerint szürcsölte a teljes tartalom a mi dynamic.php fájlt és megy soronként és a végrehajtó a parancsokat, így ez a mi PHP fájl listaként utasítások. Ez nem közvetlenül végrehajtja azt. Ez az, ahol azt mondjuk, hogy ezek a fájlok értelmezni futási időben. Ez egy futásidejű nyelv helyett valami, ami meghatározott fordítási időben, nem egy lefordított nyelv, mint a C- Van egy módja annak, hogy egy üzemidő nyelvet, mintha ez egy fordítási időben nyelv, szeretném, ha az összes futás kelt a szerver ahelyett, tudod, mire gondolok? Igen, így a kérdés az, van egy módja, hogy futási időben nyelven cselekedni több hasonlót fordításkor típusú nyelvet? És vannak, úgy értem, ez egy aktív kutatási terület a sok ezeknek a vállalatoknak. Úgy vélem, Facebook sokat munka PHP és összeállításának le, így gyorsabb, optimalizálja az mivel a helyszínen épül PHP. Ha már követően node.js egyáltalán, amely egyfajta JavaScript tolmács hogy képes legyen a JavaScript futtatását kívül a böngésző, kívül a böngésző, mert hagyományosan JavaScript akar csak futni belsejében Firefox vagy a Chrome, és ez lehet használni, hogy hűvös animációkat történni weblapon , és a weboldal dinamikus. Ez épült a sok munka, hogy a Google tette hogy a JavaScript és a C + + kötik össze, így van egy csomó aktív kutatás hogy ezek a nyelvek, hogy kölcsönhatásba lépnek és optimalizálja azokat, elsősorban azért, mert olyan sok ember tud kódot a PHP és JavaScript mert ez egy sokkal könnyebb. Ez egy sokkal szebb. Nem mutatók. Nincs termék lebeg. Meg akarták szerezni az előnyeit ezeknek fordítási időben nyelven az összes típusú ellenőrzés, valamint a sebesség és az alsó memória használat, és minden adott miközben továbbra is fenntartja a rugalmasság és a könnyű használat e újabbak. Vissza az eredeti terv támadás. Van egy pár ilyen kérdés itt a probléma meg spec. Menjünk a rajtuk keresztül nagyon gyorsan, és megyünk körbe a szobában. Charlotte, milyen típus 3,50? [Charlotte] Ez egy dupla. >> Ez egy dupla. Jimmy, mi ez a következő egy? >> Egy tömb. Egy tömb, félelmetes, és Jared, mi a fopen? [Jared] Ez egy forrás. >> Ez egy erőforrás. Ez a fajta egy új, és nem egy fájlt csillag, nem egy fájlt. Ez az erőforrás a típus a PHP-ben, és sajnálom, Ella, az utolsó null mi? Null. Null, hogyan is írt PHP-ben? >> A ugyanúgy. Ugyanígy, nagybetűs? >> Igen. Igen, minden rendben. Itt vagyunk, hogy van egy kettős, megvan egy tömb, megvan a forrás, aztán megvan null. Lássuk most már láttad- lássuk, így most azt hiszem, amit én is akarok, húzza fel Ez a honlap itt, ez a php.net / manual, így ha ti másolja, és megnyitja a böngészőt. Megyek felhúzni Chrome, tedd be Meg akarom mutatni ezt nem csak azért, mert beszélhetünk egész nap arról típusú és minden szórakoztató dolgokat hanem azért, mert ez a PHP kézikönyv, és van egy csomó PHP programozó odakinn. Van egy csomó PHP honlapok odakinn, és ennek eredményeként van sok dokumentáció PHP, és a kézikönyv, a php.net, egy igazán jó hely, hogy menjen ha te tekintettel kérdések arról, hogy mi a legjobb módja, ha X a PHP vagy mit funkció néz ki? Csak a fajta egyre ismerik, hogy ez mit néz, mert akkor jön ide gyakran, egy kicsit a probléma készlet 7. Ha a végén csinál egy projekt végső használó PHP ez lesz egy hely, akkor már nagyon jól ismerik. Gyakran az emberek ennek az, hogy a Google keresni az oldalon, és nem használja a keresési mezőt, ami itt, a jobb felső sarokban, ami elég kicsi. Ha Googling körül valami köze a PHP és látod az egyik kézikönyv linkek pop-up akkor általában hivatkozhatnak e mint egy meglehetősen jó forrás. Félelmetes, így az ilyen típusú, csak kíváncsiságból, melyeket még nem láttunk? Bármi, amit még nem láttam itt? [Student] Resource. >> Láttuk forrás a fopen hívást. [Student] Objects. >> Tárgyak nem láttunk, az biztos. Callback nem láttunk. Van néhány ilyen pszeudo-típusok. Mi biztosan csak látta, egész és dupla. Nem látni néhány a többiek, így ha kattintson egészek látjuk, van bármilyen más egészek, hogy van itt? Vajon minden olyan integer, egész, egész. Néhány nyelv van nagyobb integer típusú, mint láttuk, a MySQL-t még ma volt int, majd nagy int. Cool. Szóval, PHP utasítás. Menjünk vissza a mi problémánk set spec, és mi most görgessen le a 4. oldalon. Az egyik dolog, ami történik, ha kap ezeken a nyelveken hogy nincs meg ez a statikus gépelés, ezért ezeken a nyelveken, ahol meg kell állapítsa a változó típusát elöl A kap esetekben lehet kezdeni, amelyek a különböző típusú változókat kölcsönhatásban áll egymással, és a PHP nem ez a dolog, ha próbál tenni amit véleménye szerint a legésszerűbb dolog ha van 2 különböző típusú kölcsönhatásban vannak egymással. Például, ha megnézzük ezeket a sorokat kódot itt látod, hogy mi van, mi történik, ha megpróbáljuk, és adjuk hozzá a karakterlánc 1-értéke 2. Mi történik, ha megpróbáljuk, és adjunk hozzá egy string, amely nem egy számérték hanem a tényleges karakterek CS a szám 50? Majd meglátjuk, van-e valami más, ami történik, ahol ahelyett, hogy egy string egy szám vagyunk hozzá a számot egy string, és így tovább, és így tovább, hogy a pont, ahol mi vagyunk egyre Valami furcsa dolog itt, ahol megvan 7 + igaz. Mi a fenét jelent ez? Ha mentek előre, és be néhány ezt a kódot a készülék. Akkor tartsa dynamic.php. Meglátjuk, mi történik. [Student] Csak olyan nyomtatási, nem printf? Igen, és rájössz, hogy print is érvényes funkció nyomtatás PHP. Sok különböző módon csinálja. Meglátjuk, egy pár példát később egyszer elkezdünk beszélni az egyedi probléma, hogy fogunk írni majd a koncentráció probléma, hogy fogunk írni hogy bár van fopen és fclose ez gyakran nem a legegyszerűbb módja, hogy olvassa el a tartalmát egy fájlt. PHP sok ilyen C-szerű holdovers. [Student] Amikor tettem összesen 6 olyan dolog, én csak kap egy számot, mint egy kimenet. [Nate H.] Ha betesz összes 6 ezeket a dolgokat. Lássuk azért, mert ez esetleg- Egy dolog, hogy ezek a nyomtatott hívások nem szüntette a végén az új vonalak. Nincs új vonal elválasztó mindegyik print hívások, így talán kapsz egy nagy szám, és ez tényleg csak az amalgám az új sor karakter. [Student] Oké, hogyan győződjön meg róla, Nos, van egy csomó különböző módon. Lehet manuálisan valósult meg a print egy új sor karaktert, visszhangja egy új sor karaktert, nyomtatni az új vonal. [Student] Szóval visszhang ugyanaz, mint a printf? Printf olyan, mint a C printf hová nyomtat formázott string. Te ellátása ezzel a format string, majd az összes helyőrző változót. Ez gyakran valami, hogy nem használják- lássuk, mint egy nyilatkozatot, Kevésbé vagyok jártas a PHP, mint én más webes nyelvek, és amikor már programozott PHP Én általában nem használja printf mert úgy találják, hogy gyorsabban kell használni a húr interpoláció képességekkel rendelkezik, amely megyünk bele, és én megmutatom neked csak egy második, mivel a C már ilyen van, hogy ezt Hacky dolgot, hogy azt, hogy nyomtassa ki megfelelően. Akkor ténylegesen változókat közvetlenül karakterláncok PHP-ben. Printf egyfajta túlságosan hosszú, amit szoktam. Igen, Ella. [Ella] Általában, ha kap értelmezési hiba jelent- mint a C, hogy nem mondja meg, hogy pontosan hol a hiba, és mi az, így ez azt jelenti, hogy néz keresztül az egész kódot, és kitalálni? Ez általában célzottabb, mint ezt. Úgy gondolom, ebben az esetben ez egy kicsit off, ezért úgy gondolom, ebben az esetben hiányzik a pontosvessző. Azt próbálta megérteni mindent, úgy, mint ezek értelmezett nyelven, tolmács megpróbálom és megtesz annak érdekében, hogy minden munkát megfelelően. Meglátod, például a JavaScript akkor gyakran-line kimutatások végén pontosvesszővel ugyanúgy, mint a PHP, ugyanúgy, mint a C A JavaScript néhány JavaScript tolmácsok egy csomó a böngésző bevezetett pontosvesszővel Önnek ha véletlenül hiányzik nekik. Majd megpróbálja befogadni néhány hanyagságot az Ön részéről. Ez az, ahol lehet, próbál és próbál és próbál tenni a dolgokat a munka, és végül, hogy lesz egy pont, ahol azt mondja, rendben van, Nem tudom, hogy működnek a dolgok a megmentésére, és ez az, ahol kapsz egy sorszám hogy tűnhet egy kicsit le a pontos helyet. Oké, menjünk keresztül nagyon gyorsan. Mi maradt le Ella, úgyhogy menjünk át Missy, és Missy, mit print string 1 plusz 2-es számot adni? [Missy] 3. >> 3. Van ennek értelme? Nagyjából? Vajon kapsz egy számot? Vajon kapsz egy húr? [Missy] A szám. >> Ez egy szám. De ez nyomtatást, így ez fog adni valamilyen string. Egy dolog, amit tehetünk, hogy ezt nézd meg , ha mi $ var = 1 + 2 és akkor azt mondjuk, visszhang gettype, úgyhogy egy harmadik fajta nyomtatás itt. Most már látjuk, mi történik itt. Itt mi van az, hogy mi van egy egész ebből. Annak ellenére, hogy volt hozzá ez a karakterlánc egy számot, nem kaptunk egy sor belőle, mint Missy mondta. Voltunk kapok egy egész. Oké, akkor lássuk, next up, Kevin. CS + 50? >> [Kevin] 50. [Nate H.] 50. Van ennek értelme? [Kevin] Igen. [Nate H.] Miért? Miért van értelme az Ön számára? [Kevin] Mert csak úgy, a húr, amely számérték nulla. Igen, remek. Elég egyértelmű helyzetek, de jó tudni, mi történik. Stella, mi történik ezután a szám 1 + karakterlánc 2? [Stella] 3. >> 3 újra. És ebben az esetben, akkor kapunk egy karakterlánc vagy szám? Adjunk ennek egy esélyt. Valaki gyorsabb, mint nekem kap a válasz? Charlotte? Ó, Nem mondta, rendben, lássuk, mi lesz, hogy ugyanezt a fajta dolog ha van egy szám és egy string, és megyünk visszhang típusát, mit kapunk. Azt is kap egy egész. Nem számít, hogy melyik az a szöveg, hogy melyik az a szám. Még mindig lesz, hogy egy egész. Még mindig csinálni, amit várnánk. Rendben, Sam, mi körülbelül 90 + 9 üveg sör a falon? [Sam] 99. >> 99. I üveg sör a falon, mégis. Ez ad nekünk egy kicsit több információt arról, hogy mi történik. [Sam] Ha írt 9 levelekben akkor lenne 90, ugye? [Nate H.] Igen. A kérdés az volt, ha mi lenne írva 9 out N-I-N-E volna mi ütött 99 vagy 90? Mi lennék 90. Ez a szó szoros értelmében csak keres számjegy karaktereket. Ez nem elég okos ahhoz, hogy ismerje szám szavakat és ilyesmi. Igen. [Diák] Van-e olyan dolog, mint typecasting PHP? Van, és ez pontosan úgy, ahogy azt csinálni C. Mi a helyzet a 10/7, Charlotte? [Charlotte] 1,4285. [Nate H.] Igen, és mi lenne meglepő ez? Mi történne, ha ezt tetted ugyanaz a fajta dolog, C, ha nem 10/7 C? [Charlotte] Ez csak Önnek, attól függően, hogyan typecasted azt hiszem adna csak korlátozott számú tizedesjegy. Igen, korlátozott számú tizedesjegy. Mi más lenne, lenne ad semmiféle tizedesjegy? Gyakran nem, így újra, attól függően, hogy te azt typecasting akkor lehet, hogy nem konvertálja azt egy lebegőpontos szám. Itt volt az a fajta jó, hogy volt. Vajon mi megjelenik, ezt vissza, amikor elkezdtük ezt a fajta dolgot C valószínűleg lett volna egy kicsit több értelme hogy nem csak megy 1-re. És végül, Jamie, mi 7 + igaz? [Jamie] 8. >> 8. Mit jelent ez? Azt hiszem, ez csak ad valós értéke az 1. Igen. Mi történik, ha változtatod meg hamis? [Student] 7. Igen, emlékszem, hol beszélünk ezekről a bináris értékeket 1 lét on, 0, hogy ki? Most igaz, 1, 0 hamis, , és lehet, hogy nem láttam ezt a C példa, hogy már ilyet az elmúlt félévben, de történelmileg a bool típusú C nem volt valódi típusát, így az emberek éltek a 0 és az 1 helyett igaz és hamis. Ez egy olyan megnyilvánulása, amely. Oké, tehát az egyik fontos része erről az egészről az, hogy ezeket a különböző típusú. Ezek kölcsönhatásba egymással. Ezek gyakran kölcsönhatásba egymással oly módon, hogy szépek, ahogy láttam itt. Örülök, hogy kell tudnia, hogy karakterlánc 1-es és a 2-es szám, hozzá őket együtt, és kap 3. Ennek van értelme. Azonban, ha írsz honlapok, és különösen, ha éppen feldolgozás felhasználói, így azt már írt egy webes űrlapot hogy információt gyűjt a felhasználó, majd azt feldolgozni a hátsó végén, a szerver oldalon a PHP kód ha számít ez az érték, hogy a felhasználói beírt és benyújtani a formában, hogy egy egész, vagy egy lebegőpontos szám, vagy valami ilyesmi meg kell kifejezetten vesd majd tegye bizonyos típusú ellenőrzés. Nem akarom, hogy csak támaszkodni ilyen zsonglőr rendszer, hogy a dolgok, különösen a biztonsági okokból csak a robusztusság az Ön honlapján. Csak valami, hogy tartsa szem előtt, hogy ha te kezelő űrlap adatok, bármit, ami a postai úton vagy a get szuperglobális győződjön meg róla, hogy mindig érvényesíti, és átalakítani, és betűöntő azt. És ahogy beszélgettünk egy pillanattal ezelőtt typecasting a PHP-ben pontosan ugyanaz, mint a C, ahol van a zárójelek és azután a típusát. Tartsuk szem előtt, hogy. Egy funkció, ami jól jöhet, ha éppen ezt A mi már használ és ez a fajta, mint egy félre- mi már használja ezt a funkciót gettype itt kitalálni, hogy a változó típusát, és bár ez a hibakeresésre és az, hogy milyen a változó típusa nem akarod használni ezt, például olyan állapot, amikor Ön ellenőrzi, hogy ha gettype a $ var = integer tenni valamit. Ez rossz, rossz, rossz. Ehelyett ezek a függvények hívott integer, nem string, olyan tömb, amely a használni kívánt helyett, így ebben az esetben mit szeretne csinálni, hanem ezt a fickót itt A használata nem egész var. És ők gyakran előterjesztett is_ *, abban az értelemben, hogy meg tudná cserélni a * az egész, string, et cetera, és csak hogy megbizonyosodjon arról, valóban gyorsan van ez int php. Úgy néz ki, amit tehetünk, akár az int, vagy van értéke is? Igen, alias, így int egész aliases. Cool. Hogy állunk? Nézzük vedd fel a tempót egy kicsit. Most fogunk beszélni tömbök, így láthatja A következő részben a spec beszélünk, hogy hogyan tömbök a PHP-ben kissé más, mint azok C. Az az igazság, ők milyen egy amalgám az A tömbök, amit megismerni és szeretni a C ahol minden azonos típusú tárolt egymás és összefüggően a memóriában, és ezeket numerikus indexek. Van index 0, index 1, index 2, és tárolja értékek, ezeket az indexeket. Te is a C, amikor írt Speller, sok te volt a hash tábla megközelítést, és azt látta, hogy ott mi volt egy másfajta tárolási, ahol voltunk feltérképezése a kulcs értéke, így amikor megpróbálta tárolni valami hash tábla meg kellett határozni, amit akart, hogy tárolja azt egy speciális kulcs, és, hogy a kulcsfontosságú meghatározott a helyét az értéktől, és azt kellene tárolni. Neked milyen van e két fogalom történik ugyanabban az időben egy PHP tömb, és ennek eredményeként, gyakran nevezzük ezeket asszociatív tömbök hol vagyunk társítani egy kulcsot egy értéket. Ebben a következő részben beszélünk egy egyszerű PHP tömb ahol van kulcsa a, b, és c, összes húrt, feltérképezése az egész 1, 2, és 3. És akkor van kulcsa a különböző típusokat. Akkor néhány kulcsok karakterláncok, néhány kulcsok egész számok. Akkor lehet különféle típusaira. Egyszerre egy értéket, hogy ez egy string, egy értéket, ez egy egész szám, olyan érték, ami egy tárgy vagy egy másik tömböt, például mind ugyanabban a tömbben objektum, ami elég furcsa. Nem kell, hogy egy tömb, ami csak most egyetlen típusú elem benne. Egyszerre sok különböző dolog folyik odabent. A másik figyelemre méltó dolog az, hogy ha te valami ilyesmit a kódot, Az érvényes PHP nyilvánító tömb éppen ilyen, 0, 1, 2, 3, 4, 5, hogy akkor nyilvánítja a inicializálja $ arr, hogy ezt a tömböt. De amit valójában szerzés a motorháztető alatt van ez a fajta implicit generációs kulcsok ahol megvan 0-0, 1 1, 2 2, 3 3-ra. És kiderül, hogy még ha nem is egy tömböt, mint ez a fickó ide ahol van egy, B és C a kulcs és akkor kezdi el használni a tömb gombnyomásos módszer elkezdené alkalmazni ezt a tömböt, mint egy verem, így láthatja, hogy ez a tömb objektum, ez a tömb tényleg válik túlterhelt. Mi lehet használni, mint egy tömb. Mi lehet használni, mint egy hash táblát. Mi lehet használni, mint egy verem. Amikor elkezdi nyomva dolgokat erre a tömb Az első dolog, amit tolja rá, ez lesz majd a 0 indexű index 1 és 2 index. Tudod kap ez a fajta implicit generációjának kulcsok hacsak nem adja őket kifejezetten. Az, hogy a megadott kulcs explicit módon, persze, ez a konzol segítségével jelölést, amely hasonló a tömbök kivéve helyett csak azokhoz egész típusú indexek itt, most tegyen semmit. Ha azt szeretné, hogy a kulcs, hogy egy string, azt adja meg, mint ez. Ha azt szeretnénk, hogy legyen egy int, akkor adja meg azt a int a használni kívánt. Kérdések, hogy eddig? Az egyik szép dolog ez a gondolat az, hogy mindig csak egy tárolt érték egy adott kulcsot. Ha visszamegyünk át a készüléket, hadd törölnünk kell néhány, ezt a cuccot. És mondjuk én inicializálni egy tömb legyen 0, 1, 2, kész. Ha már tudjuk, hogy például, ha én echo $ arr [0] Megyek, hogy a 0 érték kinyomtatják, és mivel ott mindig csak az egyik tárolt érték egy adott kulcs ha Tárolom valamit $ arr [0], mondjuk a, akkor tudom, mikor echo $ arr [0] gombot Nem fogok, hogy 0 nyomtatott ki, mint korábban. Én csak az lesz, hogy a. Szóval ez alapvetően azt mondtam, hogy nem lehet $ arr [0] tárolására 2 különböző értékeket. Ez nem tárolja a 0 és a string egy, így szó szerint felváltja mi volt a $ arr [0] korábban. Azért, hogy ezt ki is futtatni, meglátjuk, mi történik. Lásd itt, hogy kaptam 0 kinyomtatható, majd itt lent. Nincs új vonal van, mert lusta volt, és nem terjesztett be, hogy a Mi a jó ebben az, hogy mi is ezt, mert így megragadni ezt az ötletet egy sor ahol nem lehet több kulcs egy tömbön belül. Nem lehet azonos kulcs egy tömbön belül. Nem tudom, hogy a 0 gombot és érték 1 és a 0 gombot és értéke a vagy a 0 gombot és az érték igaz. A gombok minden már csak 1-es gombot a tömbben. Annak ellenére, hogy lehet ugyanaz a tárolt érték többször is a tömbben, különböző kulcsok ez nem lehetséges, hogy azonos kulcsok többször a PHP tömb. Ha megnézzük, hogy ez a következő probléma, unique.php, ahol szeretnénk nyitni egy PHP fájl listáját tartalmazó karakterláncok egy húr soronként, és azt akarjuk, hogy megtalálja az összes egyedi húrok a fájlban minden, amit meg kell tennie, hogy ezek egyikét használja PHP tömbök és használja a szálakat a fájlban, mint a kulcs az e tömb és folyamatosan frissítjük tömb tárolunk az új kulcsokat. Ahogy olvasni minden sor ki a fájlt tudunk tárolni a tömbben, és a végén mi lesz, mint a mi kulcs a tömbben az összes egyedi húrok a fájlon belül. Van ennek értelme? Lássuk, hogyan is működik ez. Megyünk megnyitása szerint a spec egy új nevű fájlt unique.php. Nyissa meg. Hoppá, bocsánat, az új fájlt. Fogjuk kezdeni le ugyanazt a kezdő és záró címkék. Fogjuk menteni a 9. fejezetben, és fogjuk nevezni unique.php. Oké, most Nagyítás Az elképzelés itt megnyitni egy fájlt, olvasott fájlban soronként. Minden sor a fájlban mi lesz egy tömböt, ahol van  A vonal a legfontosabb. És mikor érünk a végére itt $ Arr a kulcsok az egyedi tételek fájlból, mivel tudjuk, hogy ha tettem sort ebbe array többször fog csak tartani felülírva a régi értéket, és mi is ténylegesen array vonal, mint maga csak úgy. Ez furcsa. Mi tárolása ugyanazon a kulcs-érték párt újra és újra és újra, de mivel garantálja, hogy nem lesz csak 1 gombot hívott vonal így ha van egy fájl, amely azt mondja, egy fájl állati zajokat, és azt vau, vau, miau, miau, moo, moo, és minden egyes alkalommal, amikor olvastam egy állat zajt mint Woof és tároljuk a tömbben kapjuk vau, majd a második alkalommal tároljuk Woof, hogy felülírja az első alkalom, hogy tárolja azt. A végén majd csak egy bejegyzést a tömbben minden egyes állat zajok a mi állati zajokat fájlt. Nem vagytok abban, hogy meg tudják oldani a nyitó egy fájl a PHP? Az egyik módja annak, hogy csinálni, menjünk át ezt gyorsan, az egyik módja kell csinálni párja fopen, mint láttuk korábban. Tudod fopen some_file.txt. Meg tudja nyitni olvasási módban, csakúgy, mint a C. Ez is egy tökéletes módja annak, hogy csináld. Te is majd olvasni a fájlt soronként ugyanaz a funkció, sokan, hogy Ön tett C. Van fgets. Van feof, bár mi nem tetszik, hogy a mert, ne feledd, hogy nem volt nagy a C. Meg tudod csinálni ugyanúgy, de itt van egy nagyon jó dolog. Elnézést, én nem akarok $ file, de van egy olyan funkció, hívott fájl PHP, és ez a funkció itt is cool, mert beolvassa a teljes tartalom A megadott fájlt, így some_file.txt, beolvassa a teljes tartalmát a fájl egy tömbben majd a segítségével navigálhat rajta, ami elég klassz. Ha elmegyünk, például a web böngésző és nézzük a Google PHP fájl itt látható, hogy a kézikönyv azt mondja, hogy a fájl olvas egész fájlt egy tömb, és mi is file_get_contents vissza a tartalmát egy fájlt string, de általában csak arra, hogy, mint egy tömb, tényleg szép, mert amit csinál van az, megtöri azt úgy, hogy minden egyes eleme A tömb egy sort a fájl, így ha megnézzük a fájlt a felhasználó 0, ez az első sorban a fájlt. File 1, második sor, fájl 2, harmadik sor, és így tovább és így tovább. Nem lenne jó, ha ez volt minden, amit meg kellett tennie a C? Elég klassz. David megmutatta ezt előadás, és az idióma megmutatta volt hogy amellett, hogy a standard a loop-in PHP kellett, hogy a for ($ i = 0; i <10; i + +), és meg tudod csinálni ezt a PHP-ben is ugyanaz a dolog- mi is ebben a hűvös konstrukciót hívott foreach. Foreach igazán hasznos, ha iterációjával a tömbökön vagy e adatszerkezetek mert lehetővé teszi, hogy húzza ki minden elemét a tömb anélkül, hogy kézzel csinálni a indexelési magad, anélkül, hogy manuálisan létrehoz egy indexet változót, megnöveljük, húzza ki az értéket a tömb ezen a ponton, mert ez egy nagyon gyakori dolog. Talán kellett volna tonna amikor csinálsz C stuff át a félév, így ezzel a foreach tudjuk hurkot ezt a fájlt tömb, és a szintaxis hogy szeretnénk most hurkot ez a tömb és adja meg, hogy a változó fogunk használni, hogy tárolja elem e tömb helyben helyi esik e foreach hurok nem fogjuk nevezni vonal. Ha ez a fájl csak szavak, és van egy szó egy sorban tudnánk nevezni szót is, igazán csak akkor adja ezt a nevet, amit akarsz hívni, majd a cikluson belül meg tudod csinálni, amit akarsz ezzel a változó sorban. Ha ez nem elég ahhoz, hogy az érték a tömb, és azt is szeretné, hogy Az index magával megadhat egy nevet az index valamint az érték, és most van hozzáférése 2 változó. Van $ i és a vonal ahol a $ i az index a tömbben, és a vonal az a vonal, hogy beolvassa a fájlt. Például, ha azt akartuk, hogy nyomtassa ki echo sor 0 a fájl, mint ez, tudnánk csinálni, mint ez, "Line $ i A fájl $ line" és itt van valami, amit még nem láttam még sem ahol már csak teljesen átugorja ezt az egész% s% d üzleti hogy mi volt foglalkozni a C, és helyette mentem egyenesen írásban változók sorban az én string. Ezt hívják változó interpoláció, húr interpoláció hová tölteléket változók jobbra, és a PHP interpreter elég okos ahhoz, amikor olvas egy karakterlánc kezdődik idézőjel- Nem egyszerű idézőjeleket, szimpla idézett húrok nem teheted ezt, de dupla idézett húrok ahogy olvassa át keresi változók. Ez vadászik rájuk le, és ha azt látja, változók lesz az értéke a változó és a cucc be a húr, ha bizonyítani tudja alakítani egy karakteres ábrázolása, ami elég klassz. Most, nézzük megjegyzésbe a többi mindent, mentéséhez, és mit tehetünk most tudunk nyitni egy fájlt hogy tudjuk hívni some_file.txt-let 's hozzon létre egy új file- és tudunk rakni egy csomó értelmetlen dolgot itt csak kipróbálni mindent, mentse el, hívja some_file.txt, ahogy csinálok ide a tetején, és most ha én kicsinyítés, csak, hogy minden rendben van, ugyanabban a könyvtárban, úgy néz ki, mint én, és unique.php some_file.txt ugyanabba a könyvtárba. Ha futok php unique.php látni, hogyan írja ki minden sor az én fájlt, és mi a vonal? Ez elég erős, nem igaz? Nézd, azt 3 sornyi kódot nyitni a fájlt. Nos, 4 sornyi kódot. Én nem számíthat ma, egyértelműen. De tényleg csak 2 érdekes sornyi kódot, mert a másik 2 volt a kapcsos zárójelek, de ez sokkal kódot tudtunk megnyitni egy fájlt, navigálhat keresztül, húzza ki a sorszámot és a vonal maga és nyomtassa ki. Cool stuff. Charlotte. [Charlotte] Van egy kérdésem a szintaxist. Így foreach foglalkozik minden egyes sorban a fájlt megnyitni, és amikor akar csinálni a dolgokat minden egyes vonal csak csinálni, mint majd társult az értéket. [Nate H.] Mit tehet itt, a kérdés az volt, A foreach köze van a tömb, így a foreach szintaxis valóban foreach, és figyelje meg, hogy nincs hely vagy bármi között tartása és minden. Nekik jól megy egymás mellett, és akkor vesz egy tömb, és akkor van ez a többi kulcsszó nevezik, hogy ott kell lennie, majd miután a ahogy akkor sem helyezzen egy változó neve, ebben az esetben leszel kivonultak az értékek a tömb, nem az indexek, vagy ha csinálni ahogy írtam az alábbi kap a kulcsokat és az értékeket. Van foreach eleme a tömb vagy páros a tömb írtunk értékére vagy csak érték. Attól függően, hogy mire van szüksége, ha nem kell a kulcs, akkor megy az értéket. Ha azt szeretné, hogy a gombok mehetsz velük is. [Charlotte] Arra is rájöttem, mi soha nem nyilvánították i vagy a vonal. Hogyan is tudom, mik ezek? [Nate H.] Mit értesz nyilvánítja? [Charlotte] Soha nem mondta nekik, amit én vagy vonal úton. [Nate H.] Mi soha nem mondtam a számítógép, amit én vagy a vonal olyan szempontból, [Charlotte], hogy ők indexált vagy they're- [Nate H.] Soha nem mondtam azt, hogy ez elvileg az index, vagy a kulcsot és az értéket, és ez azért van, mert ez a PHP interpreter. Ez szolgál a nyilatkozatot, és azt mondja rendben van, a kulcs lesz változó hívott én egy változóban tároljuk nevű i. Az érték fog kell tárolni egy változó nevű vonal, így ez szolgál a nyilatkozat e változók és azt mondja, $ i kulcsfontosságú, és a $ sor egy értéket. Igen, Ella. [Ella] Ha a gombokat nem történik numerikusan hogyan eldönteni milyen sorrendben fog nyomtatni mindent? Vajon ugyanúgy, mint a sorrendben ez szerepel? [Nate H.] Adjunk neki egy esélyt. Hozzunk létre egy változót nevű arr, és tehetünk megy 7. Tegyük fel, hogy 0 megy másik tömb, 1, 2 vagy alma. Tegyük fel, hogy 7 megy az 1, b megy 2, és 3-4-megy. Ez a fajta egy őrült keres például azért, mert vagyunk keverés karakterláncok és egész az egész hely. Nincs igazi érdekében, hogy ezt a tömböt. Úgy értem, mi lehetett rendelni mindent alfabetikus sorrendben a kulcsokat. Mi lehet rendelni mindent betűrendben értékkel. Meg lehet próbálni, és figyelembe véve, hogy egyes olyan karakterláncok, némelyik ints, és mi lehet próbálni és átalakítani őket, hogy azonos típusú és meglátjuk, mi történik, vagy mi is úgy vélik, ezek az érték, amely már be őket ahol fel ezt a fickót az első, ez a srác a második, ez a fickó a harmadik, ez a fickó a negyedik, satöbbi. Lássuk, mi történik, ha ezt a kódot. Ha görgessen le, és nem ugyanaz a fajta dolog, és itt ez nem nyomtat ki az új sorokat. Amikor olvasott dolgokat a fájl volt köztük az új vonal az értékeket, amely ezért kinyomtatják szépen, mivel itt nem, úgy, hogy ezért mindent smushed együtt. Tegyük hozzá, hogy új sort csak azért, hogy a dolgok szép. Hadd megismétlése, és ezért itt nézd meg, mi történt. A nyomtatott mindent abban a sorrendben, amelyhez helyezze be a tömbben. Ez nem megőrzése érdekében, ebben az értelemben. Visszatérve erre a problémára a Uniques ha azt akarjuk, hogy képes legyen megismételni egy fájlt, és mi adja meg some_file.txt, és fogjuk navigálhat rajta, mint ez. Azt mondtuk, hogy szerettünk volna használni egy tömböt, hogy győződjön meg arról, hogy mi lenne megvan az összes egyedi sorok ki ott, és tudtunk csinálni, ami igazán könnyen mellett csak tárolja egy tömbben, amit természetesen állapítsa hatályán kívül a hurok, és azt mondta, hogy ha már használta a sorokat a fájl a kulcsok a tömbben ha belépett egy ismétlődő sort mi lenne felülírva a korábbi érték. Ez nem mindig lehetséges, hogy 2 kulcs, amelyek azonosak az ugyanazon tömbben. Meg tudjuk csinálni, hogy csak. Majd hogy eltűnjön ez a visszhang nyilatkozat itt. Itt vagyunk tárolja a sort a fájlban a tömbben segítségével magát a kulcsot. Semmi, és kiderül, hogy nem is kell ezt a gombot. Nem kell, hogy i változó. Ezen a ponton, ha volt, hogy még egy foreach ciklus és mi volt a hurok az egyes arr és a vonal most ha echo-oops, bocsi. Mi ezért nem használhatja a vessző. Meg kell, hogy ezt a kulcsszót. Most, ha echo sort kéne az összes egyedi szavakat a fájlban. Ha felmegyünk some_file.txt, és mondjuk mi alma, banán, alma, alma, banán, ha mi kinyomtatott összes egyedi szava ebben a fájlban már csak kapni alma és a banán, hogy nyomtassa ki. Ha menteni ezt, most itt fogunk zoom vissza, php unique.php, és a ta-da. Már sikeresen uniqued a fájlt. Az utolsó része a probléma, amelyben meg kell rendezni ezt a tömböt, mielőtt kinyomtatta mert ebben az egyszerű példa, hogy már most kész szerencsénk volt abban az értelemben, hogy a file- tettük ezt a kitalált példa az alma és a banán. Ez már rendezve. De az egyszerű rendezési funkcióval rendezni egy tömb, ami elég klassz. Az utolsó dolog, amit akartam beszélni veletek kapcsolatban nagyon gyorsan az, hogy ez a fajta PHP mind szép és jó, és ez szuper ügyes hogy tudja, hogyan kell csinálni, ha valaha is kell csinálni kis, gyors dolgok programozással. Például, ha azt kell írni egy programot, amely, mondjuk, hozza mindenki részekre nem fogok menni, és írd meg a C Ez lesz hosszú. Ez lesz egyfajta fájdalom, különösen, ha olyan fájlok érintett ahogy ti láttuk. Ez annyira szép, hogy mindössze ennyi kódot itt tudtunk rip át egy fájlt, húzza ki az összes egyedi értékeket és kinyomtathatja azokat vissza. Azonban, a feladatok, a projektek, ha építünk weboldalak PHP a hatalom, hogy a kifutunk a PHP fájlokat ezzel tolmács, és a tolmács feldolgozza mindent a PHP címkéket, hagyva minden mást érintetlenül és köpködés ki az eredményeket. Meg tudjuk csinálni ezt építeni HTML programozással. Most, ha megyünk vissza a spec, az utolsó probléma a spec beszél ez az ötlet összefonódások és megteremti a legördülő menüből, amit lehet, hogy nem akarnak, attól függően, hogy mi a projekt végső csinál, amely lehetővé teszi a felhasználó számára, hogy válasszon a listából az összes lehetséges koncentráció azok egy koncentráció. Nos, ez egyfajta fájdalom, hogy írja ki ezt és meg kell mindezt kézzel, különösen, ha te kelljen győződjön meg arról, , hogy minden a szögletes zárójelek a megfelelő helyen, és minden az idézőjelek a megfelelő helyen, így a PHP ezt megteheti programozott, és akkor ezt nagyon gyorsan. Lássuk, hogyan kell ezt csinálni. Fogunk nyitni egy új fájlt. Fogunk létrehozni a PHP címkéket. Fogjuk nevezni concentrations.php, és most, amikor ezt, a fajta jó dolog gondolkodni ha akarsz keverheted a PHP és a HTML van kitalálni, oké, mi az a része, hogy szeretnék programozottan létrehozni? Mi az a rész, hogy én is algoritmikusan generálni? Igaz, hogy meg tudod csinálni az összes HTML belül PHP blokkokat. Tudod visszhangozzák az összes HTML szálakat. Például, ha azt akarom, hogy kezdeni ezzel a select tag belsejében PHP Azt lehet mondani, echo, mondjuk válasszuk name = koncentráció, aztán lent tudtam még egy echo tag vagy egy másik echo nevezett közel a gombot. Ez az egyik módja annak, hogy csinálni, mert mi ez a szó szoros értelmében fog tenni az nyomtassa ki ezt a fonalat, ha ez fut át ​​a PHP értelmező, így az eredmény lesz a HTML. Ha menteni ezt a fájlt, mert most és futok php concentrations.php nézd meg, mit kaptam. Van ez a nyitott bezár select tag. Ha én ezt és én menteni ezt az eredményt egy fájlba, mondjuk concentrations.html-várakozás, úgy néz ki, mint az l ment át a másik oldalra, most, ha kinyitom ide concentrations.html látod, hogy van egy érvényes HTML fájl. Ez fura? Mi a PHP létrehozásához HTML, hozzon létre érvényes HTML. Ahogy mi csináljuk meg mi csak, amelyek a PHP print a HTML, hogy azt akarjuk, hogy nyomtatni. Ez szó szerint a PHP webhelyek működését. Amikor meglátogat egy honlapot, hogy küld, hogy valami hasonló valami, valami, valami dot com perjel index.php a számítógép szó szerint szólítanak fel, index.php, fut át ​​a PHP interpreter, és bármit junk jön ki ez küld vissza a böngésző, és azt mondja hé, böngészője, értelmezze ezt HTML. A szép dolog az, hogy lehet a fájdalom, hogy folyamatosan írjon echo, echo, echo, echo és csatolja mindent idézetek, mint ez, ezért ha azt szeretné, hogy írjon a HTML lesz statikus magad meg tudod csinálni, mint ez, tedd kívülre, zárja le, és akkor itt csak betenni a PHP címkéket, ami tudja szeretnénk programozottan létrehozni, és ebben az esetben ez a lehetőség tag amelyek a fájdalom generálni. Például, lehet generálni ezer lehetőség tag az csinál valamit, mint ez, $ i <1000, i + + és azt mondja: echo opció value = $-Hoppá, én nem tehetem. Nos, hadd próbálja ki, és meglátjuk, mi történik. $ I, majd azt mondja $ i