[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 </ option.
Ahelyett, hogy írja ki, hogy lehetőség tag ezer különböző időpontokban
Én a PHP kódot generál automatikusan, programozással.
Elég klassz. Igen.
Emlékszem, hogy ezt említi sem az előadás, illetve a walkthrough,
de mi a különbség az idézőjeleket,
a rendes is, és ezeket egyetlen dolgokat?
Ez valóban valami, amit én csináltam rosszul, hogy itt fogok mutatni.
Az egységes idézetek nem engednek semmilyen különleges karaktereket,
így minden benne egyetlen idézett karakterlánc értelmezése szó.
Ha lenne egy \ n belüli egységes idézetek és menteni ezt, például
és most megyek le ide, és fuss ez-
hoppá, ha megyek?
Ó, ez azért van, mert elfelejtettem a $.
>> Most, ha kinyitom up-valójában, itt fogunk megszabadulni a gépelés egy fájlba.
Majd csak olvasni.
Itt látod, hogy kaptam ezt a szó \ n a húr, mint nem tényleges új sor,
és hasonlóképpen, helyett valójában interpolálja az értéke változó
ez adta nekem a $ i is, ami egyfajta fájdalom.
Az út körül ez az, hogy az idézőjelek,
majd, amikor használja idézőjelek elõbb-utóbb ténylegesen
megfelelően interpolál értékeit összes változóra itt
és elismerik ezt a \ n, hogy az új vonal, hogy
és nem \ n.
Használata az egyetlen is szép, ha van
karakter lehet értelmezni, speciális karaktereket, mert akkor nem kell
megszökni őket folyamatosan.
Dolgok rendetlen, és gyakran ahogy én csinálni,
csak azért, hogy a dolgok egyszerű, hogy ha megyek, hogy bármi
HTML hasonlóan kódomat fogok tartalmaznia edit belül aposztrófot
majd ezt operátor
összefűzéséhez változók be
Ez egy másik módja, hogy
ha megvan a pont, hogy fog csatlakozni ez egy string
ezzel ezzel ezzel,
és most nem kell, hogy elkerülje ezeket a dupla idézőjelek közé.
Nem kell használni ezt a fickót, hogy elkerülje.
Majd szó szerint kinyomtatható a idézőjelek, majd ezt a fickót itt.
Ez egy másik módja a keverés mindent együtt.
>> [Student] is, amikor visszhangozta gettype nem volt idézőjeleket egyáltalán.
Rendben, tehát echo egyfajta különleges abban az értelemben, hogy nem kell zárójelben.
Nem kell, hogy az idézőjeleket szükségszerűen körül változók,
mint ez érvényes mondjuk echo $ i, és ez fogja értelmezni ezt a string.
Ez fog csinálni a leadott, így tudtuk ezt, és ez érvényes is, de nincs szükségünk rá.
Ez nem kötelező.
Ebben a heti problémája set nézd meg egy csomó ilyen dolog
hová keverésével és illesztésével HTML PHP
mint ez, és most ha lapozzunk vissza, és mi fut ezen
azt látjuk, hogy van egy csomó lehetőség értékek
hogy épp most nyomtatja ki.
Mindannyian ezt a HTML, hogy van generált nagyon gyorsan nekünk.
Elmegyek, mint egy gyakorlat.
Ez nagyon hasonlít a fájl olvasási, hogy mi volt korábban.
>> Van egy concentrations.txt fájl, akkor húzza le a CDN,
és akkor nyissa meg ugyanazt a foreach trükk, hogy mi volt korábban,
és foreach csak meg kell echo lehetőség és csatlakoztassa
a megfelelő értékeket, a megfelelő kulcsok és indexek
és akkor kap egy legördülő, hogy szó szerint megteremti
programból az Ön számára az összes különböző koncentrációjú Harvardon.
A praktikus dolog van.
Van egy csomó beállítási cucc erre a feladatra.
Ha még nem tette már megteszi a következő fél óra, óra,
egy kis időt ma este határozottan biztos,
séta a probléma set spec,
mi folyik a felállításához vhostokat, a helyi gépen, minden ilyesmi.
Egy dolog rámutatni, most az, hogy a
A legtöbb probléma készlet mi már megy be a Dropbox mappába
majd le a problémát set zip fájlt, és unzipping azt.
Mert ez a probléma meg nem akarsz.
Azt akarom, hogy ebbe vhostokat könyvtárba.
Azt akarja, hogy menjen be vhostokat és menj be a helyi gépen könyvtárba belül,
, és ez az, ahol akar majd húzza le a zip fájlt,
csomagolja ki, és kap kész.
Itt van, hogy kövesse szorosan.
>> Ha bármilyen kérdése van, küldjön e-mailt, tegye meg a Fórum, gyere az irodai óra.
Köszi srácok. Jövő héten megyünk egy felülvizsgálati ülésén a kvíz.
Élvezze az utolsó probléma set. Remélem, minden megy igazán jól.
[CS50.TV]