[Powered by Google Translate] [Sehemu ya 8] [Less Starehe]
[Nate Hardison] [Chuo Kikuu cha Harvard]
[Hii ni CS50.] [CS50.TV]
>> Karibu pili yetu kwa sehemu ya mwisho.
Katika wiki hii sisi ni kwenda kwa majadiliano juu ya PHP, na kisha wiki ijayo
tutaweza kufanya marekebisho kidogo kwa Quiz 1.
Sisi ni kwenda kuanza ukurasa 3 ya tatizo seti pakiti,
na tutaweza kazi kupitia sehemu ya maswali haki haraka.
Katika ukurasa 3, tunaanza kuzungumza kuhusu hii tofauti kati ya C na PHP
kwa maana kwamba PHP ni lugha dynamically typed,
ambapo C ni statically typed,
na ina mtu yeyote kweli haraka kufanyika coding yoyote katika kitu kama PHP
au chatu au Ruby kabla, JavaScript?
Mpya kabisa? Sawa.
>> Yote ya lugha hizi kwamba mimi tu zilizotajwa
ni tofauti sana na lugha kama C na C + + na Java
kwa maana kwamba wakati wewe kutangaza variable huna kutangaza
aina gani ya kutofautiana ni, hivyo katika C sisi walikuwa kukwama kuwa na daima kusema
hii itakuwa ni variable int, au huu ni kwenda kuwa Char * variable,
ambapo kwa PHP, na chatu, na Ruby,
na mengi ya lugha hizi za kisasa zaidi huna kufanya hivyo wakati wote.
Wewe tu kutangaza variable yako, na katika kesi ya PHP
wewe kutangaza kwamba ni kutofautiana na prefixing na alama ya $,
na basi aina ya kutofautiana ni kuamua na chochote thamani ni kushika,
ambayo ni aina ya baridi.
Kucheza karibu na kidogo kidogo hii, tuna sampuli PHP code hapa hapa
katika kati ya vitambulisho mwanzo na mwisho.
Sisi ni kutumia aina hii ya kama HTML kwa maana kwamba
sisi tumepewa mabano haya angle hapa kwa kufungua na kufunga.
Utaona hii kwa HTML.
Utaona aina moja ya syntax kwa XML pia.
>> Hii inaonyesha mwanzo wa block PHP.
Hii php? Ni maalum kwa PHP.
Tunafunga kila kitu pamoja na> kama? Vizuri.
Hebu kufungua faili katika appliance wetu kwa kutumia chochote kile Ningependa.
Katika pakiti hii inasema kuwaita dynamic.php.
Kwa kweli, unaweza kuiita chochote ungependa, lakini jina faili kuja
na kuwa muhimu baadaye, hivyo kumbuka tu chochote simu yake.
Mimi nina kwenda kubadili juu ya appliance,
na mimi naenda kufanya directory kwa
kifungu cha 9 naamini sisi ni saa sasa.
Na tutaweza kwenda katika sehemu ya 9,
na mimi naenda kutumia gedit.
Hebu angalia, gedit, na mimi nina kwenda kuwaita dynamic.php mgodi.
Boom.
Ndani ya dynamic.php, kwani hii ni faili PHP
na mimi nataka hii kukimbia kupitia mkalimani PHP
Mimi haja ya kuanza kila kitu mbali na vitambulisho hayo wazi,
hivyo mimi nina kwenda kuanza wale haki mbali,
kutoa mwenyewe nafasi kidogo katika kati ya vitambulisho,
na kisha kumweka ya zoezi hili lilikuwa kucheza karibu na
kazi hii inaitwa gettype, hivyo gettype, hii kazi hapa hapa.
>> Ona kwamba kuna hakuna underscore au nafasi au hyphen au kitu kama hicho
kutenganisha maneno 2, kupata na aina, moja tu neno kabisa.
Lakini nini hii kufanya ni kama mimi kupita katika variable kwa gettype,
kusema $ var au $ x,
hii uniambie aina ya format katika debugging
nini jina la aina hiyo ni.
Sisi ni kwenda majaribio hapa.
Hasa, kama wewe kuangalia nyuma katika spec pset
sisi tumepewa chache mistari tofauti ya maadili ya hapa.
Katika mstari wa kwanza wa code sisi initialize hii variable, $ var,
kuwa sawa na 7, na kisha tuna line hii printf
kwamba anasema hey, var printf ni tupu.
Printf ni moja ya njia nyingi tunaweza magazeti mambo katika PHP.
Mara nyingi utaona kazi echo kutumika badala ya printf,
lakini printf tuko wote familiar na baada ya coding katika C kwa muda.
Nini unaweza kufanya ni kweli hebu angalia kama miujiza nakala na kuweka.
Mimi naenda kukupa hii kujaribu.
Tutaweza kwenda nyuma zaidi kwa appliance.
Okay, na kuna sisi kwenda.
Na nafasi ni funky kidogo, lakini hapa sisi kwenda.
Sisi tumepewa hii code katika hapa.
>> [Mwanafunzi] Je, ni si nzuri kwa mtindo tab yake?
Samahani?
[Mwanafunzi] Je, ni kawaida kwa tab yake?
Haki, hivyo Sam anauliza kama ni mkataba kwa tab au siyo.
Kawaida ndiyo.
Katika kesi hii nimechagua si kwa.
Uaminifu, utaona mambo mbalimbali miongoni mwa programmers tofauti.
PHP ni kawaida kutumika mara nyingi pamoja na HTML
na lugha nyingine, na hivyo wakati mwingine uchapishaji itakuwa kuangalia funky kidogo
kama wewe Indent ndani ya PHP kuanza na vitambulisho mwisho.
Ni kweli inategemea.
Katika kesi hii nakala na kuweka hawakuwa kuweka tabs katika kwa ajili yangu,
lakini ni dhahiri hana, kama wewe alisema, kufanya ni wazi.
Wote haki, kama wewe ila hii code katika dynamic.php
basi nini unaweza kufanya ni kuja chini terminal dirisha yako ambapo mimi ni haki ya chini hapa
katika gedit, na kufanya sawa wa kukusanya
kutumia kufanya na kisha kukimbia code yako katika C
wote una kufanya na faili PHP ni kuanzisha mkalimani PHP,
ambayo ni programu kidogo kuitwa PHP,
na hoja wewe kutoa na mkalimani ni faili unataka kutafsiri.
Katika kesi hiyo, dynamic.php.
Whoops, wapi mimi kuweka yake?
Oh, mimi kuiweka katika kifungu cha 9, na mimi hapa. Hiyo ni kwa nini.
>> Sasa kama mimi kukimbia kwamba tena
tunaona kwamba katika wito wangu kwanza gettype kazi
var ni integer.
Katika var ijayo moja ni kamba, na kisha katika var tatu moja ni ya bulin.
Nini kuvutia kuhusu hili ni kama sisi kitabu nyuma juu tunaona kwamba
hizi ni aina sawa na wale ambao tulikuwa katika C.
Tulikuwa ints katika C.
Sisi aina ya masharti alikuwa katika C,
hivyo masharti walikuwa si aina kabisa legit kwa maana kwamba
kamba yetu CS50 ilikuwa kweli nini?
Samahani? Missy?
[Missy] Char *.
Yeah, ilikuwa hii * Char sisi kutumika.
Katika mwanzo sana ya muhula tungetumia aina kamba,
lakini ilikuwa kweli * Char chini ya Hood.
Sisi tu aina Alilitafsiri, ambapo katika PHP hawa masharti ni aina halisi.
Hakuna zaidi ya mambo haya Char * aina.
>> Utaona kwamba tunaweza kufanya mambo mengi zaidi kwa masharti
kwa urahisi zaidi kuliko katika PHP tunaweza katika C,
na kisha hatimaye, tuna aina hii ya bulin, na tofauti kubwa hapa ni kwamba
kama sisi kitabu nyuma chini tunaona kwamba jina la aina hizi
ni sasa integer, kamba, na badala ya bulin int na bool,
na kama wewe kuchukua lugha ya programu mbalimbali,
kuchukua kwamba wakati fulani katika maisha yako wewe kuja katika kuwasiliana na
ndio tofauti utasikia taarifa quirks mdogo kama huyu
ambapo C wito ints integers.
Baadhi wanauita integers.
Kuna maneno mengine kwamba utasikia kukimbia katika.
Big int tuliona leo katika SQL.
Kuna pia idadi na kisha bool, bulin,
kila aina ya tofauti huko.
>> Hii si sana ya kuvutia lakini sasa mimi naenda kukupa wewe muda kidogo-
kama sisi zoom nyuma nje-kufanya kazi kwa kupitia zoezi hili chini ya ukurasa wa 3
ambapo inauliza aina gani yanahusiana na maadili haya hapa chini.
Tuna 3.50.
Tuna jambo hili hapa hapa, ambayo ni ya kuvutia.
Hatujaona kwamba kabla, ingawa kama tumekuwa kufuatia pamoja katika hotuba
pengine tayari kujua nini ambacho ni.
Kisha sisi kuwa hii, ambayo hii ni aina ya funky.
Wewe kutambua hili.
Nini hili katika C?
Sam? Nini huyu nitakupa katika C?
Itakuwa kufungua faili inayoitwa dynamic.php na kufanya ni someka.
Yeah, na nini itakuwa ya aina ya kutofautiana kwamba tunataka hawawajui hii kwa nyota? >> File.
Hasa, tunataka hawawajui hii kwa nyota faili.
Hii ni halali PHP pia.
Kuendesha. Angalia kinachotokea wakati kupita katika gettype.
Na kisha pia kuangalia nini null ni, nini hiyo inaweza kuwa katika PHP.
Mimi nitakupa dakika kadhaa.
Unaweza literally nakala na kuweka maadili haya katika,
na kisha tutaweza kufanya kidogo random wito juu ya wewe
na kuona kile got.
>> [Mwanafunzi] Nina swali << Yeah..
Katika moja ya hotuba Daudi alisema kuna kitu unaweza kuweka saa ya juu ya faili yako
hivyo kwamba huna aina katika PHP kila wakati.
Nini ilikuwa hivyo?
Yeye alikuwa pengine kuzungumza juu ya bang pound, bang hash.
Ni maelekezo kwamba kama wewe alama faili yako kama executable
kisha kile yake ni wakati nitafanya faili
itakuambia mpango shell
kumtumia mkalimani PHP kutafsiri yaliyomo ya faili.
swali kuwa nini ilikuwa hii line maalum
kwamba tunaweza pamoja kwa juu ya files wetu PHP si lazima ni pamoja na
hii PHP mstari au amri hii PHP wakati wowote tunataka nitafanya faili?
Na unaweza kweli kufanya pamoja na rundo la files tofauti.
Naamini ni inategemea ambapo binary PHP ni kuhifadhiwa,
lakini mara nyingi Usr / bin / php ni nafasi nzuri kuanza.
Unaweza takwimu hii nje hasa kwa kwenda nyuma chini ya appliance yako
na kuandika nje ambayo php.
amri ambayo takwimu nje wakati wewe ni utekelezaji binary
au amri ambapo faili sambamba ni.
Hii inaniambia kwamba PHP ni kweli aliasing faili hii binary
ambayo imehifadhiwa katika Usr / bin, ambayo ni ambapo mengi ya binaries mfumo ni imewekwa.
Kwa mfano, kama mimi kitabu juu kwa juu, na kwamba sasa nimekuwa kuweka hii #! Mpya katika hapa
Naweza kitabu chini, na mimi siwezi kujaribu kukimbia
dynamic.php, lakini mimi kupata kosa hili kuhusu kunyimwa ruhusa,
na nini maana ya ni kwamba faili hii si sasa kutoa ruhusa kutekelezwa.
Ni si alama kama faili kwamba mtu anaweza kukimbia.
>> Wakati mbio kufanya au Clang na wewe got executable kutoka humo
compiler alikuwa smart kutosha kujua kwamba hey, mimi nina kujenga executable.
Pengine unataka nitafanya hivyo, hivyo itakuwa moja kwa moja configure
ruhusa kwa ajili yenu.
Hii si kesi, ingawa, wakati wewe kuunda faili kawaida kutoka mwanzo,
sababu ya kuwa kwa kawaida wewe si unataka kuwa na faili yoyote juu ya mfumo wako kuwa executable,
hivyo kweli una kwenda katika na manually kufanya hivyo.
Njia rahisi ya kufanya hivyo ni pamoja na amri chmod,
na chmod + x anasema kuongeza kidogo executable
sababu kuna kidogo kusoma, kuandika na kidogo kidogo executable,
r, w na x,
na kusema chmod + x geuka juu kidogo executable
kwa basi faili kwamba sisi bayana, ambayo katika kesi hii itakuwa dynamic.php.
>> [Mwanafunzi] Ni kwamba akageuka juu kwa kila mtu?
Hebu angalia hii nje, hivyo ni jinsi gani mimi kuangalia kuona ruhusa?
Je, unajua jinsi ningependa kuangalia kuona ruhusa ya faili?
[Inaudible mwanafunzi majibu]
Samahani? >> [Mwanafunzi] XSD.
XSD inatupa faili katika HACKS.
Kuorodhesha mafaili yote,-l, atanionyeshea wote wa files katika saraka yangu
aina ya katika muda wao, orodha verbose, na hivyo hapa tunaona kwamba
faili hii dynamic.php
umebadilisha mara iliyopita Novemba 5, saa 04:21.
mmiliki wa faili hili ni jharvard.
Hiyo ni mtumiaji ambaye ni logged in
Hiyo ni mtumiaji Mimi ni kazi kama,
na kama wewe ni pia katika appliance wewe pia kufanya kazi kama jharvard mtumiaji.
Wewe ni katika kundi la wanafunzi,
na haya ni mambo ambayo utaona mara nyingi ya kutosha.
>> Tunaweza kwenda katika mengi ya undani hapa,
lakini kwa sehemu kubwa ya nini unataka kuangalia wakati wewe ni kuangalia na kuona
kama au faili executable kimsingi ni
mtumiaji ambaye anamiliki SVG, mmiliki,
hivyo hii jharvard, na kisha tuna
bits ruhusa juu hapa upande wa kushoto,
na njia ya kusoma hii ni kwamba kidogo mwisho
kawaida hutumiwa kwa kuashiria kama au-angalau katika kesi hii
kidogo hii ya mwisho mara nyingi kuwa na kuweka tangazo kuonyesha
kwamba faili ni directory na si tu faili kawaida.
Kisha zifuatazo 3 bits haki hapa
kuamua permissions kuwa mmiliki wa faili ina,
hivyo katika kesi hii jharvard, kama mmiliki wa faili, unaweza kusoma na kuandika faili hii,
lakini kuna dash akisema kwamba jharvard hawezi kutekeleza faili hii.
ijayo 3 bits ni kwa ajili ya kundi, hivyo hii ni kundi ya wanafunzi,
hivyo kama kulikuwa nyingi watumiaji wa juu appliance yangu,
na tulikuwa na watumiaji mbalimbali kama sehemu ya kundi wanafunzi,
basi wanaweza kusoma yote faili hii, lakini hawawezi kuandika,
na vivyo hivyo mtu mwingine, dunia
anaweza tu kusoma faili hili pia.
Kuna nzuri, mrefu writeup kuhusu hili,
hivyo unaweza kusoma online.
Katika spec kuweka tatizo sisi kwenda katika hili kwa undani zaidi.
>> [Mwanafunzi] Je 218 akimaanisha dunia?
218 ni-mbali juu ya kichwa yangu mimi nina kusahau,
lakini hakuna.
Hebu angalia. Mimi blanking juu ya haki ya kwamba sasa.
Nyuma kwa nini sisi walikuwa karibu na huyu chmod + x
ambapo sisi alitaka kutoa ruhusa executable dynamic.php,
na swali lilikuwa kama hii bila kutoa ruhusa executable kwa kila mtu
au tu jharvard, na tunaweza kuona hili kwa
mbio amri na kuandika ls-l,
na sasa tunaona kwamba ni alama kama kutekelezwa.
Unaweza kuona kwamba kulikuwa mabadiliko ya rangi.
Sasa dynamic.php waliotajwa katika kijani,
na inaonekana kama jibu la swali ni nini, Charlotte?
[Charlotte] tu jharvard. >> Tu jharvard, yeah.
>> Kama sisi alitaka kugeuka kidogo executable juu kwa kila mtu
jinsi tunavyoweza kufanya hivyo?
Mawazo yoyote? >> A + x?
Yeah, kwa uhakika.
Charlotte alisema tunaweza kufanya chmod ya x + ya dynamic.php,
na sasa ikiwa sisi kukimbia ls-l tunaona kwamba bits executable
ni kweli akageuka juu kwa kila mtu.
Na unaweza kweli kufanya kinyume cha hili, hivyo unaweza kugeuka kuwa mbali kwa kila mtu
kutumia bala.
Sasa ni akageuka mbali, na sasa tunaweza kugeuka kuwa nyuma kwa jharvard
ili tuweze kweli kukimbia sasa,
na sasa wewe kuona wakati sisi kukimbia code hii maalum #! mstari saa ya juu,
#! mstari, aliiambia shell,
aliiambia terminal yetu hey, wakati faili hii ni kukimbia,
kutumia / Usr / bin / php kutafsiri faili hii
na kisha magazeti pato.
[Inaudible mwanafunzi swali]
Hakika, basi mimi kitabu nyuma juu. Tu kama hii.
Utaona wote wa maelekezo haya kuanza na chupa hii na kisha kumweka Moderators,
wakati mwingine huitwa shebang, hash bang.
>> [Mwanafunzi] Tunawezaje kukimbia na dynamic.php php kabla sisi kufanya hivyo executable?
swali ni jinsi gani tunaweza kukimbia hii kutumia binary PHP
wakati dynamic.php si executable?
Hii ni super muhimu kwa sababu hii ni hasa jinsi
itakavyo kazi wakati wewe kuandika tatizo kuweka 7.
Zaidi ya muda files PHP si moja kwa moja la kutekelezwa.
njia kwamba kazi ni kwa sababu ni binary PHP kwamba kutekelezwa.
mkalimani ni kitu ambacho wanaendelea kunyongwa,
na hivyo kile ni kufanya ni halisi slurping katika yaliyomo yote
ya faili wetu dynamic.php na line kwenda kwa mstari
na utekelezaji wa amri hizo, hivyo ni kutumia faili wetu PHP
kama orodha ya maelekezo.
Ni si moja kwa moja utekelezaji yake.
Hiyo ambapo sisi kusema kwamba hizi files ni kufasiriwa wakati kukimbia.
Ni kukimbia wakati Lugha badala ya kitu ambacho amedhamiria wakati kukusanya,
si lugha compiled kama C.
>> Je, kuna njia ya kupata muda kukimbia Lugha ya kutenda kama ikiwa ni wakati kukusanya lugha,
kama kama una mbio wote kufanyika katika server
badala ya-unajua ninachomaanisha?
Ndiyo, hivyo swali ni
kuna njia ya kupata lugha wakati kukimbia kutenda zaidi kama aina kukusanya wakati wa lugha?
Na huko ni, I mean, kwamba ni eneo kazi ya utafiti kwa ajili ya mengi ya makampuni haya.
Naamini Facebook amefanya mengi ya kazi na PHP
na kuandaa ni chini, na kufanya hivyo kwa haraka, optimizing ni
tangu tovuti yao imejengwa juu ya PHP.
Kama tumekuwa kufuatia node.js wakati wote,
ambayo ni aina ya mkalimani JavaScript
kuwa na uwezo wa kukimbia JavaScript nje ya kivinjari, nje ya mtandao browser yako,
kwa sababu kijadi JavaScript ingekuwa tu kukimbia ndani ya Firefox au Chrome,
na itakuwa kutumika kufanya Animations baridi kutokea kwenye mtandao
na kufanya mtandao wako ukurasa nguvu.
Hiyo umejengwa juu ya kazi kubwa ambayo Google amefanya
kufanya JavaScript na C + +
kumfunga pamoja, hivyo kuna mengi ya utafiti kazi kwa
kupata hizi lugha ya kiutendaji na optimize yao,
hasa kwa sababu watu wengi wanaweza code katika PHP na JavaScript
kwa sababu ni rahisi sana.
Ni mengi nicer. Huna kuyatumia.
Huna aina yaliyo karibu.
Walitaka kupata faida ya lugha hizi kukusanya wakati
pamoja na yote ya kuangalia aina na kasi na chini matumizi ya kumbukumbu na yote ya kwamba
wakati bado kudumisha kubadilika na urahisi wa matumizi ya wadogo hawa karibu zaidi.
>> Nyuma na mpango wetu wa awali wa shambulio hilo.
Sisi tumepewa chache ya maswali haya hapa katika spec tatizo letu kuweka.
Hebu kuzipitia kweli haraka, na tutaweza kwenda kuzunguka chumba.
Charlotte, ni aina gani ni 3.50?
[Charlotte] Hiyo ni mara mbili >> Ni mara mbili..
Jimmy, ni nini hii moja ijayo? >> Safu.
safu, kushangaza, na Jared, ni nini fopen?
[Yaredi] Ni rasilimali >>. Ni rasilimali.
Hiyo ni aina ya mwezi mmoja, si nyota ya SVG, si faili.
Ni rasilimali ni aina katika PHP,
na mimi nina sorry, Ella, null mwisho ni nini?
Null.
Null, ni jinsi gani yameandikwa katika PHP? >> Njia hiyo hiyo.
njia sawa, miji mikuu? >> Yeah.
Yeah, haki ya wote.
Hapa sisi kwenda, sisi tumepewa mbili, sisi tumepewa safu,
sisi tumepewa rasilimali, na kisha sisi tumepewa null.
Hebu angalia sasa umeona-
hebu angalia, hivyo sasa mimi nadhani nini mimi pia wanataka kufanya ni kuvuta up
hii ukurasa wa mtandao wa kulia hapa, hii php.net / mwongozo,
hivyo kama wewe guys nakala hiyo na kufungua kivinjari.
Mimi nina kwenda kuvuta up Chrome, kuweka kwamba in
Nataka kukuonyeshea hii si tu kwa sababu
tunaweza kuongea siku zote juu ya aina na mambo ambayo yote fun
bali kwa sababu hii ni mwongozo PHP,
na kuna mengi ya programmers PHP huko nje.
Kuna mengi ya Nje PHP huko nje,
na matokeo yake, kuna mengi ya nyaraka kwenye PHP,
na mwongozo, hii php.net, ni mahali mzuri wa kwenda
wakati wowote wewe ni kuwa na maswali kuhusu nini ni njia bora ya kufanya X katika PHP
au nini kazi kuangalia kama?
Aina tu ya kupata ukoo na nini hii inaonekana kama sababu
wewe utakuwa kuja hapa mara nyingi, kidogo kwa ajili ya tatizo kuweka 7.
>> Kama wewe kuishia kufanya mradi wa mwisho kwamba anatumia PHP
hii itakuwa mahali utasikia kuwa vizuri sana khabari.
Mara nyingi watu njia ya kufanya hivyo ni wao kutumia Google kutafuta tovuti,
na hawana kutumia sanduku tafuta kwamba ni juu hapa katika haki ya juu, ambayo ni aina ya vidogo.
Kama wewe ni googling karibu kwa kitu cha kufanya na PHP na unaweza kuona
moja ya viungo mwongozo pop up unaweza kawaida kutegemea kuwa
kama rasilimali haki nzuri.
Ajabu, hivyo nje ya aina hizi, tu nje ya udadisi,
ambayo ndio kuwa si sisi kuonekana?
Chochote hatujaona hapa?
[Mwanafunzi] rejea. >> Tuliona rasilimali na wito fopen.
[Mwanafunzi] vitu >> vitu. Hatujaona kwa uhakika.
Callbacks hatujaona.
Kuna baadhi ya hawa Pseudo-aina.
Sisi dhahiri kuona tu integer na mbili.
Hatukumwona baadhi ya wengine, hivyo kama sisi bonyeza integers
tunaweza kuona kuna yoyote integers mengine kwamba wana hapa?
Je, wote-hivyo integer, integer, integer.
Baadhi ya lugha kuwa kubwa aina integer,
kama tuliona juu ya MySQL leo kulikuwa int na kisha int kubwa.
Cool.
>> Hivyo, PHP mwongozo.
Turudi kwa spec tatizo letu kuweka, na tutaweza sasa kitabu chini ya ukurasa 4.
Moja ya mambo ambayo hutokea wakati kupata lugha hizi
kwamba hawana kuandika tuli, hivyo lugha hizi ambapo una kutangaza
aina ya mbele hadi variable
ni wewe kupata kesi ambapo unaweza kuanza kuwa na vigezo wa aina tofauti
Kushirikiana na kila mmoja,
na PHP gani jambo hili ambapo anajaribu kufanya
nini anser kuwa jambo la busara kufanya
wakati una 2 aina tofauti wanavyohusiana.
Kwa mfano, tunapotazama katika mistari haya ya maadili ya haki hapa
unaweza kuona kwamba sisi tumepewa kile kinachotokea wakati
sisi kujaribu na kuongeza string 1-2 integer.
Nini kinatokea kama sisi kujaribu na kuongeza string kwamba si thamani numeric
lakini badala ya wahusika halisi, CS na idadi 50?
Kisha tutaweza kuona ni kuna kitu tofauti ambayo hufanyika ambapo
badala ya kuongeza string kwa idadi sisi ni kuongeza idadi ya kamba,
na kadhalika na kadhalika kwa uhakika ambapo sisi ni kupata
baadhi ya aina ya mambo weird haki hapa ambapo sisi tumepewa 7 + kweli.
Nini heck haina maana?
>> Kama wewe guys kwenda mbele na kuweka baadhi ya kanuni hii katika appliance yako.
Unaweza kuitunza katika dynamic.php.
Tutaweza kuona nini kinatokea.
[Mwanafunzi] Tu kutumia magazeti, si printf?
Yeah, hivyo utapata kwamba magazeti pia ni kazi halali kwa uchapishaji katika PHP.
Kuna njia nyingi tofauti ya kufanya hivyo.
Tutaweza kuona na michache ya mifano baadaye mara moja tunaanza kuzungumza
kuhusu tatizo kipekee kwamba sisi ni kwenda kuandika
na kisha tatizo viwango kwamba sisi ni kwenda kuandika
kwamba hata kama tuna fopen na fclose
hiyo ni mara nyingi si njia rahisi ya kusoma katika maudhui ya faili.
PHP ina mengi ya holdovers haya C-kama.
[Mwanafunzi] Wakati mimi kuweka katika yote 6 ya mambo mimi tu kupata namba moja kama pato.
[Nate H.] Wakati wewe kuweka katika yote 6 ya mambo haya.
Hebu angalia ni kwa sababu ni uwezekano wa-
jambo moja ni kwamba simu hizi magazeti si terminated mwishoni na mistari mpya.
Kuna hakuna mstari mpya kutenganisha kila ya simu hizi magazeti,
hivyo labda wewe ni kupata moja kubwa ya idadi,
na ni kweli tu amalgam ya wahusika mpya line.
[Mwanafunzi] Sawa, jinsi gani mimi kuhakikisha-
Naam, kuna rundo ya njia tofauti.
Unaweza manually kuweka katika magazeti ya tabia mpya line,
mwangwi wa tabia mpya line,
magazeti ya mstari mpya.
[Mwanafunzi] Basi echo ni kitu kimoja kama printf?
>> Printf ni kama C printf
ambapo wewe ni uchapishaji string formatted.
Wewe ni kusambaza string format na kisha vigezo vyote placeholder.
Ni mara nyingi kitu ambacho si kutumika-
hebu angalia, kama disclaimer,
Mimi ni chini ya ukoo na PHP kuliko mimi na lugha nyingine za mtandao,
na wakati mimi iliyowekwa katika PHP mimi kawaida si kutumia printf
kwa sababu mimi kupata kasi ya kutumia nyongeza katika kitabu string uwezo kwamba ina,
ambayo tutaweza kwenda na mimi nitakuonyesha katika haki ya pili,
ambapo katika C sisi aina ya kufanya jambo hili hacky ya kupata magazeti nje vizuri.
Unaweza kweli kuweka vigezo moja kwa moja katika masharti katika PHP.
Printf ni aina ya overly muda mrefu kwa nini mimi kawaida kufanya. Ndiyo, Ella.
[Ella] ujumla kama kupata Hazrat kosa inamaanisha-
kama kwenye C haina kukuambia hasa ambapo kosa ni na nini,
hivyo haina maana kwamba kuangalia njia code yako yote na takwimu ni nje?
Ni kawaida zaidi ya walengwa zaidi ya hiyo.
Nadhani katika kesi hiyo ilikuwa mbali kidogo,
hivyo nadhani katika kesi hiyo sisi walikuwa missing semicolon.
Ni alikuwa anajaribu kufanya akili ya kila kitu,
hivyo kama lugha hizi kufasiriwa, mkalimani kwenda kujaribu
na kufanya bora zake kufanya kila kitu kazi ipasavyo.
>> Utaona, kwa mfano, katika JavaScript
wewe utakuwa mara nyingi-line kauli ya mwisho na semicolon tu kama wanavyofanya katika PHP,
tu kama wanavyofanya katika C.
Katika baadhi ya wakalimani JavaScript JavaScript
katika mengi ya browsers kuweka katika semicolons kwa wewe
kama kutokea kwa kuwa kukosa kwao.
Wao nitajaribu na malazi kwa baadhi sloppiness sehemu yako.
Hiyo ambapo inaweza kuwa na kujaribu na kujaribu na kujaribu kufanya mambo ya kazi,
na kisha hatimaye itakuwa kupata kwa uhakika ambapo anasema sawa,
Mimi siwezi kufanya mambo ya kazi juu ya kuziokoa, na hiyo ambapo utapata idadi mstari
kwamba inaweza kuonekana mbali kidogo kutoka mahali halisi.
Sawa, hivyo hebu kwenda kwa njia hii kweli haraka.
Sisi kushoto mbali na Ella, hivyo hebu kwenda juu kwa Missy,
na Missy, nini magazeti ya string 1 2 pamoja na idadi kukupa?
[Missy] 3 >> 3..
Je, hiyo mantiki? Aina ya?
Je, ni kukupa namba? Je, ni kukupa kamba?
[Missy] namba >> Ni idadi..
Lakini ni uchapishaji, hivyo ni kwenda kukupa baadhi ya aina ya kamba.
>> Jambo moja tunaweza kufanya kwa kuangalia hii nje
ni kama sisi kufanya $ var = 1 + 2
na kisha sisi kusema mwangwi wa gettype,
hivyo sisi ni kutumia aina ya tatu ya uchapishaji hapa.
Sasa tunaweza kuona nini kinatokea hapa.
Hapa kile tulichopata ni tulipata integer nje ya hii.
Hata ingawa tulikuwa akiongeza kuwa hili string kwa idadi,
sisi hawakuwa kupata kamba nje ya hayo, kama Missy alisema.
Sisi walikuwa kupata integer.
Sawa, hivyo hebu angalia, ijayo juu, Kevin.
CS + 50? >> [Kevin] 50.
[Nate H.] 50. Je, hiyo mantiki?
[Kevin] Yeah.
[Nate H.] Kwa nini? Kwa nini ni maana kufanya wewe?
[Kevin] Kwa sababu ni kuwa tu kamba, kuwa na idadi thamani sifuri.
Yeah, kubwa.
Aina ya hali ya utata, lakini ni vizuri kujua nini kinatokea.
Stella, nini kitatokea na idadi 1 + string 2?
[Stella] 3 >> 3 tena..
Na katika kesi hii, tunapata kamba au kamba ya namba?
>> Hebu kutoa hii kujaribu.
Anybody kasi zaidi kuliko mimi kupata jibu? Charlotte?
Oh, mimi didn't-sawa, hebu angalia, tunakwenda kufanya aina moja ya kitu
ambapo sisi tumepewa idadi plus kamba, na tunakwenda echo aina,
kuona nini sisi kupata.
Sisi pia kupata integer.
Haijalishi ambayo moja ni kamba, ambayo moja ni idadi.
Bado tuko kwenda kupata integer.
Ni bado anaenda kufanya kile sisi kutarajia.
Haki ya wote, hivyo Sam, nini kuhusu 90 + 9 chupa ya bia juu ya ukuta?
[Sam] 99 >> 99..
Hakuna chupa ya bia juu ya ukuta, ingawa.
Hiyo inatupa kidogo na taarifa zaidi kuhusu nini kinatokea.
[Sam] Kama ameandika 9 katika barua
basi ingekuwa 90, sawa?
[Nate H.] Yeah.
swali lilikuwa kama tunatarajia imeandikwa 9 nje kama N-I-N-E
ingekuwa sisi Gotten 99 au 90?
Tunatarajia kupata 90.
Ni literally kuangalia tu kwa wahusika tarakimu.
Ni si smart kutosha kutambua maneno ya idadi na kwamba mambo ya ajabu. Ndiyo.
>> [Mwanafunzi] Je, kuna kitu kama typecasting katika PHP?
Kuna, na ni njia hasa ungefanya katika C.
Je kuhusu 10/7, Charlotte?
[Charlotte] 1.4285.
[Nate H.] Yeah, hivyo nini kinaweza kuwa inashangaza kuhusu hili?
Nini kingetokea kama alivyofanya hii aina moja ya kitu katika C,
kama alivyofanya 10/7 katika C?
[Charlotte] Ingekuwa tu kukupa-kulingana na jinsi typecasted mimi nadhani
ingekuwa kukupa tu idadi ndogo ya tarakimu baada ya decimal.
Yeah, hivyo idadi ndogo ya tarakimu baada ya decimal.
Nini kingine inaweza kuwa-itakuwa ni ya kukupa tarakimu yoyote baada ya decimal?
Mara nyingi si hivyo tena, kulingana na jinsi wewe ni typecasting
ni au anaweza kubadilisha kwa idadi floating uhakika.
Hapa ilikuwa aina ya nice kwamba alifanya.
Alikuwa na sisi umeonyesha wewe hii nyuma tulipoanza kufanya aina hii ya mambo ndani ya C
pengine ingekuwa alifanya kidogo maana zaidi
kwamba hana tu kwenda 1.
Na kisha hatimaye, Jamie, nini kuhusu 7 + kweli?
[Jamie] 8. >> 8.
Hiyo ina maana gani?
Mimi nadhani ni tu anatoa thamani ya kweli ya 1.
Yeah. Nini kinatokea kama sisi mabadiliko kwamba kwa uongo?
[Mwanafunzi] 7.
Yeah, hivyo kumbuka ambapo sisi kuzungumza juu ya maadili haya binary,
1 kuwa juu, 0 kuwa mbali?
Sasa tuna kweli ni 1, 0 ni uongo,
na unaweza kuwa umeona hii mifano C kwamba tumefanya huu muhula uliopita,
lakini kihistoria aina bool katika C haijawahi aina halisi,
hivyo watu wametumia 0 na 1 katika nafasi ya kweli na uongo.
Hii ni ishara ya kwamba.
>> Sawa, hivyo moja muhimu kuhusu sehemu yote hii
ni kwamba tuna aina hizi mbalimbali.
Wao unaweza kuingiliana na kila mmoja.
Wao mara nyingi unaweza kuingiliana na kila mmoja katika njia ambazo ni nzuri, kama tumeona hapa.
Ni nzuri na kuwa na uwezo wa kuwa string 1 na namba 2, kuongeza yao pamoja na kupata 3.
Kwamba hufanya akili.
Hata hivyo, wakati wewe kuandika tovuti, na hasa wakati wewe ni usindikaji
mtumiaji wa pembejeo, hivyo kusema ve yameandikwa fomu mtandao
ambayo inakusanya habari kutoka kwa mtumiaji na kisha unaendelea na mchakato ni
tarehe ya mwisho ya nyuma, upande wa server katika code yako PHP
kama wewe ni kutarajia kwamba thamani kwamba mtumiaji typed katika na in
kwa fomu yako kwa kuwa integer au kuwa floating kumweka idadi au kitu kama hicho
unahitaji kupanga kuwatupia
na kisha kufanya baadhi ya kuangalia aina.
>> Wewe hawataki tu kutegemea mfumo huu juggling aina ya kufanya mambo ya kazi nje,
hasa kwa sababu za usalama na haki kwa robustness ya tovuti yako.
Tu kitu kukumbuka kwamba wakati wowote wewe ni utunzaji data za fomu,
chochote ambacho huja katika posta au superglobals Get
kuhakikisha kwamba daima ni kuhalalisha na kubadili na typecast yake.
Na kama tu sisi walikuwa wanazungumza juu ya muda iliyopita typecasting kwamba
katika PHP ni sawa kama katika C ambapo una mabano
na basi aina.
Keep kwamba katika akili.
Moja ya kazi kwamba atakuja katika Handy wakati wewe ni kufanya hii
ni sisi tumekuwa kutumia-na hii ni aina ya kama kando-
sisi tumekuwa kutumia kazi hii gettype haki hapa
kufikiri ya aina ya kutofautiana,
na wakati huu ni Handy kwa debugging na kuona aina gani variable ni
wewe hawataki kutumia hii, kwa mfano, katika hali ambapo
wewe ni kuangalia kuona kama gettype ya $ var = integer kufanya kitu.
Hii ni mbaya, mbaya, mbaya.
Badala yake kuna kazi hizi inaitwa ni integer, ni kamba,
ni safu ya kwamba unataka kutumia badala yake, hivyo katika kesi hii
nini napenda wanataka kufanya badala ya guy haki hii hapa
ni kutumia ni integer var.
Na wao ni mara nyingi inajulikana ni is_ * katika maana kwamba unaweza kuchukua nafasi ya * kwa integer,
kamba, nakadhalika, na tu kuhakikisha kweli haraka
ni hii ni int php.
Inaonekana kama wewe unaweza kufanya ama ni int au kuna integer vile vile?
Ndiyo, pak, hivyo int integer Majina bandia.
Cool.
>> Je ni vipi tuna kufanya?
Hebu kuchukua kasi kidogo.
Sasa sisi ni kwenda kuzungumza kuhusu arrays, hivyo kama unaweza kuona
katika sehemu ya pili ya spec sisi majadiliano kuhusu jinsi arrays katika PHP
ni tofauti kidogo kuliko katika C.
Kwa kweli, wao ni aina ya amalgam ya
arrays kwamba ve kuja kujua na upendo katika C
ambapo kila kitu ni ya aina moja
kuhifadhiwa mfululizo na contiguously katika kumbukumbu,
na una fahirisi hizi numeric.
Una index 0, index 1, index 2,
na kuhifadhi maadili katika fahirisi hizo.
Wewe pia katika C, wakati aliandika Speller, mengi ya wewe
alifanya hash meza mbinu, na ninyi kuona kwamba kuna tulikuwa
aina mbalimbali za kuhifadhi ambapo tulikuwa ramani
muhimu kwa thamani, hivyo wakati wewe alijaribu kuhifadhi kitu katika meza hash
alikuwa na bayana kwamba alitaka kuhifadhi na muhimu maalum,
na muhimu ambayo amedhamiria eneo la thamani na ambapo itakuwa kuhifadhiwa.
Ve got aina ya wote ya dhana wale kinachotokea wakati huo huo katika safu PHP,
na matokeo yake, sisi mara nyingi simu arrays haya associative
ambapo sisi ni kujihusisha muhimu katika thamani.
Katika sehemu hii ya pili sisi majadiliano juu ya safu rahisi PHP
ambapo tuna funguo b, na c,
wote nyuzi, ramani kwa integers 1, 2, na 3.
Na unaweza kuwa na funguo za aina mbalimbali.
>> Unaweza kuwa na funguo baadhi ya kwamba ni masharti, baadhi funguo kwamba ni integers.
Unaweza kuwa na maadili ya aina tofauti.
Unaweza kuwa na thamani hiyo kamba, thamani hiyo integer,
thamani hiyo ni kitu au nyingine safu, kwa mfano,
wote katika kitu sawa safu, ambayo ni aina ya weird.
Huwezi kuwa na safu hiyo tu got aina moja ya kipengele katika hilo.
Unaweza kuwa na mambo mengi tofauti kinachoendelea huko.
Kitu nyingine kutambua ni kwamba wakati wa kufanya kuona kitu kama hiki katika code yako,
ambayo ni halali PHP kutangaza safu tu kama hii, 0, 1, 2, 3, 4, 5,
kwamba atatangaza initialized $ arr kuwa hii safu.
Lakini nini wewe kweli kupata chini ya Hood ni aina hii ya thabiti
kizazi ya funguo ambapo sisi tumepewa 0-0, 1-1, 2-2, 3-3.
Na zinageuka kuwa hata kama una safu kama guy hii hapa
ambapo una b, na c kama funguo
na kisha kuanza kutumia msukumo safu mbinu kuanza kutumia safu kama stack,
hivyo unaweza kuona kwamba kitu hiki safu, safu hii ni kweli akikosa overloaded.
Tunaweza kutumia kama safu. Tunaweza kutumia kama meza hash.
Tunaweza kutumia kama stack.
Baada ya kuanza kusukuma mambo kwenye safu hii
Jambo la kwanza kushinikiza kwenye hii itakuwa index 0 na kisha index 1 na index 2.
Unaweza kupata aina hii ya kizazi thabiti ya funguo
isipokuwa wewe taja yao wazi.
njia bayana funguo waziwazi, bila shaka, ni kwa kutumia hii nukuu bracket,
ambayo ni sawa na arrays isipokuwa badala ya kuruhusu tu
fahirisi integer katika hapa, sasa sisi kuruhusu kitu chochote.
Kama unataka muhimu yako kuwa kamba, wewe d bayana ni kama hii.
Kama unataka kuwa ni int, wewe taja kwa int unataka kutumia.
>> Maswali juu ya kwamba hadi sasa?
Moja ya mambo mazuri juu ya wazo hili
ni kwamba unaweza tu milele kuwa moja ya thamani ya kuhifadhiwa na muhimu hasa.
Kama sisi kurudi nyuma zaidi kwa wetu appliance-basi mimi kufuta baadhi ya mambo haya.
Na hebu sema mimi initialize safu kuwa 0, 1, 2, kufanyika.
Kama mimi sasa kujua kwamba, kwa mfano, kama mimi echo $ arr [0]
Mimi naenda kupata 0 thamani kuchapishwa,
na tangu hapo unaweza tu milele kuwa moja ya thamani ya kuhifadhiwa kwa ajili ya muhimu hasa
kama mimi kuhifadhi kitu saa $ arr [0], kusema,
basi mimi kujua wakati mimi echo $ arr [0] tena
Sitakuja kupata 0 kuchapishwa kama kabla.
Mimi tu kwenda kupata.
Hivyo hii ni kimsingi akisema kwamba siwezi kuwa na $ arr [0] hifadhi 2 tofauti maadili.
Haiwezi kuhifadhi wote 0 na kamba, kama hii literally nafasi
nini ilikuwa saa $ arr [0] hapo awali.
sababu mimi kuleta hii ni kukimbia, kuona nini kinatokea.
Angalia hapa kwamba mimi got 0 kuchapishwa na kisha chini hapa.
Hakuna mstari mpya kuna sababu nilikuwa wavivu na hawakuwa kuweka kwamba in
Nini baridi kuhusu hili ni tunaweza kutumia hii kama njia
kukamata wazo hili la kuweka
ambapo hatuwezi kuwa na funguo nyingi ndani ya safu.
Hatuwezi kuwa na funguo kufanana ndani ya safu.
Siwezi kuwa na 0 muhimu na thamani 1 na 0 muhimu na thamani
au ufunguo 0 na thamani ya kweli.
funguo ni wote-kuna tu 1 muhimu katika safu.
Hata ingawa unaweza kuwa na thamani sawa kuhifadhiwa
mara nyingi katika safu chini ya funguo mbalimbali
kuwa si rahisi kuwa na kufanana funguo mara nyingi katika safu yako PHP.
>> Kama sisi kuangalia tatizo hili ijayo, unique.php,
ambapo tunataka kufungua faili PHP
ulio na orodha ya masharti, moja kamba kwa kila mstari,
na tunataka kupata yote ya masharti ya kipekee katika faili kwamba
wote sisi kufanya ni kutumia moja ya arrays haya PHP
na kutumia masharti katika faili kama funguo safu hii
na kushika uppdatering safu yetu kama sisi kuhifadhi funguo hizi mpya.
Kama sisi kusoma kila mstari nje ya faili tunaweza kuhifadhi katika safu,
na mwishoni tutakuwa na kama funguo wetu katika safu yetu ya
yote ya masharti ya kipekee ndani ya faili.
Je, hiyo mantiki?
Hebu angalia jinsi hii matendo.
Sisi ni kwenda kufungua, kulingana na spec, faili mpya iitwayo unique.php.
Fungua. Lo, sorry, faili mpya.
Sisi ni kwenda kuanza kuwa mbali na vitambulisho kuanza sawa na mwisho.
Sisi ni kwenda kuokoa ni katika sehemu ya 9, na sisi ni kwenda kumwita unique.php.
Okay, sasa zoom in
Wazo hapa ni kufungua faili,
kusoma katika mstari na mstari wa faili.
Kwa kila mstari katika faili
tutaweza kuwa na safu ambapo tuna
mstari kama ufunguo yetu.
Na kisha wakati sisi kupata mwisho hapa
$ Arr ya funguo ni mistari ya kipekee
kutoka faili tangu tunajua kwamba kama mimi kuweka mstari katika safu hii
mara nyingi itakuwa tu kuweka kuu thamani ya zamani,
na tunaweza kweli kuweka safu line katika kama yenyewe tu kama hiyo.
>> Hii ni aina ya weird.
Sisi ni hifadhi hiyo muhimu thamani jozi tena na tena na tena,
lakini tangu sisi ni uhakika kuwa kutakuwa tu 1 muhimu inaitwa mstari
hivyo kama tuna faili kwamba anasema-faili ya noises mnyama na ina lililosokotwa, lililosokotwa,
meow, meow, moo, moo, na kila wakati tunasoma kelele mnyama nje
kama lililosokotwa na sisi kuhifadhi katika safu yetu sisi kupata lililosokotwa, na kisha mara ya pili
sisi kuhifadhi lililosokotwa itakuwa overwrite mara ya kwanza kwamba sisi ni kuhifadhiwa.
Katika mwisho tutaweza moja tu ya kuingia katika safu
kwa kila noises mnyama katika faili mnyama wetu noises.
Je guys kujisikia hakika kwamba wewe unaweza kukabiliana na ufunguzi wa faili katika PHP?
Njia moja ya kufanya hivyo-hebu kwenda juu ya njia hii haraka-moja ya kufanya hivyo
ni pamoja na fopen, kama tuliona mapema.
Unaweza fopen some_file.txt.
Unaweza kufungua ni katika mode kusoma, kama vile katika C.
Hiyo ni moja kikamilifu nzuri njia ya kufanya hivyo.
Wewe pia kisha kwa ajili ya kusoma katika mstari na mstari wa faili
wana kazi moja, wengi wao, kwamba alifanya katika C.
Una fgets.
Una feof, ingawa sisi si kama kutumia
kwa sababu, kumbuka, hiyo haikuwa kubwa katika C.
Unaweza kufanya hivyo kwa njia hiyo hiyo,
lakini hapa ni kitu kweli cool.
Samahani, sijui wanataka kufanya $ faili, lakini kuna kazi kuitwa faili katika PHP,
na kazi haki hii hapa ni baridi kwa sababu ni wasomaji yaliyomo yote
ya faili kwamba wewe taja, hivyo some_file.txt,
anayesoma yaliyomo yote ya faili hili ndani ya safu
na kisha inakuwezesha iterate juu yake, ambayo ni pretty nifty.
>> Kama sisi kwenda, kwa mfano, kivinjari wetu
na sisi kuangalia Google kwa ajili ya faili PHP
unaweza kuona hapa kwamba mwongozo wetu anasema faili kwamba anasoma faili nzima katika safu,
na tunaweza file_get_contents kurudi yaliyomo ya faili kama kamba,
lakini kawaida tu kupata ni kama safu ni nzuri kwa kweli kwa sababu kile yake
ni inavunja it up ili kila kipengele
katika safu ni moja mstari wa faili,
hivyo kama sisi kuangalia faili 0, hiyo ni mstari wa kwanza wa faili.
File 1, mstari wa pili, saizi 2, tatu line, na kadhalika na kadhalika.
Je, si ni kuwa nzuri kama kwamba ilikuwa wote mnatakiwa kufanya katika C?
Pretty nifty.
Daudi alionyesha hili katika hotuba, na nahau alionyesha alikuwa
kwamba kwa kuongeza kiwango chetu kwa kitanzi-katika PHP tulikuwa kwamba
kwa ($ i = 0; i <10; i + +),
na unaweza kufanya hivyo katika PHP pia, kitu kimoja-
sisi pia kuwa hii kujenga cool kuitwa foreach.
Foreach ni kweli Handy wakati iterating juu ya arrays au miundo hizi data
kwa sababu inaruhusu wewe kujiondoa kila kipengele cha safu
bila ya kuwa na manually kufanya Indexing mwenyewe,
bila ya kuwa na manually kujenga variable index, increment yake,
kujiondoa thamani katika safu katika hatua hiyo, kwa sababu hilo ni jambo la kawaida sana ya kufanya.
>> Wewe pengine wamefanya kwamba tani ya mara wakati wewe walikuwa wakifanya C stuff
juu ya muhula, hivyo pamoja na hii foreach
tunaweza kitanzi juu ya safu hii ya SVG,
na syntax ni kwamba tunataka sasa kitanzi juu ya safu hii
na bayana kwamba variable tunakwenda kutumia kuhifadhi
kipengele cha safu hii ndani ya nchi, serikali za mitaa kwa upeo wa kitanzi foreach,
ni tunakwenda kuiita mstari.
Kama ni faili ya maneno tu na kuna neno moja katika mstari
tunaweza kuiita neno pia, kwa kweli tu unaweza kumpa jina hili,
chochote unataka simu yake,
na kisha ndani ya kitanzi unaweza kufanya chochote unataka na line hii kutofautiana.
Kama siyo ya kutosha kupata thamani ya safu na wewe pia wanataka kupata
index pamoja na hayo unaweza specify jina kwa index
kama vile thamani, na sasa unaweza kupata vigezo 2.
Una $ i na mstari
ambapo $ i ni index katika safu,
na line ni mstari kwamba wewe Rudishwa kutoka faili.
Kwa mfano, kama sisi alitaka magazeti nje echo line 0 wa faili kama hii,
tunaweza kufanya hivyo tu kama hii, "Line $ i ya faili ni $ line,"
na hapa ni kitu sisi pia hawajaona bado ama
ambapo nimekuwa tu kabisa juu ya skipped% hii% nzima s d biashara
kwamba alikuwa na kukabiliana na katika C, na badala yake mimi tumeenda moja kwa moja kwa
kuandika vigezo katika mstari katika kamba wangu.
>> Hii inaitwa variable nyongeza katika kitabu, kamba nyongeza katika kitabu
ambapo wewe ni stuffing vigezo sahihi katika, na mkalimani PHP
ni smart kutosha wakati ni kusoma kwa njia ya kamba kwamba huanza na mbili quotes-
si enda quotes, pamoja na nyuzi moja alinukuliwa huwezi kufanya hili-
lakini kwa masharti mbili alinukuliwa wasomaji kupitia ni kuangalia kwa vigezo.
Ni uwindaji yao chini, na kama anaona vigezo itachukua thamani ya kutofautiana
na mambo ndani ya kamba kama inaweza kubadili kwenye uwakilishi kamba,
ambayo ni pretty nifty.
Kwa sasa, hebu maoni nje ya mapumziko ya kila kitu,
kuokoa huu, na nini tunaweza kufanya sasa ni tunaweza kufungua faili
kwamba tunaweza kuwaita some_file.txt-hebu kuunda faili mpya-
na tunaweza kuweka katika rundo la stuff nonsense katika hapa tu kwa mtihani kila kitu nje,
niuokoe, simu yake some_file.txt, kama mimi kufanya juu hapa saa ya juu,
na sasa ikiwa mimi zoom nje tu kuhakikisha kila kitu ni sawa katika saraka-
inaonekana kama nina unique.php na some_file.txt katika saraka ya sawa.
Kama mimi kukimbia php unique.php
kuona jinsi Prints nje ya kila mstari katika faili wangu na kile line ni?
>> Hiyo ni pretty nguvu, haki?
Angalia, ni alichukua mistari 3 ya maadili ya kufungua faili.
Naam, 4 mstari wa kanuni. Siwezi kuhesabu leo, kwa uwazi.
Lakini kweli tu 2 kuvutia mstari wa kanuni, kwa sababu 2 wengine walikuwa braces curly,
lakini katika code sana hii tulikuwa na uwezo wa kufungua faili, iterate kwa njia hiyo,
kuvuta nje ya idadi ya mstari na mstari yenyewe
na magazeti nje.
Cool stuff. Charlotte.
[Charlotte] Nina swali kuhusu syntax.
Hivyo foreach inahusika na kila mstari wa moja ya faili kwamba wewe kufungua,
na kisha wakati unataka kufanya mambo kwa line moja kila wewe tu kufanya hivyo kama
na kisha kujiunga thamani.
[Nate H.] Nini unaweza kufanya hapa hapa-swali lilikuwa
foreach ina nini na safu, hivyo syntax foreach
ni kweli foreach, na taarifa kwamba kuna nafasi hakuna
au kitu chochote kati ya kwa na kila mmoja.
Wao wana haki ya kwenda karibu na kila mmoja,
na kisha inachukua katika safu,
na kisha una hii Keyword nyingine iitwayo kama kwamba ina kuwa huko,
na kisha baada ya kama unaweza ama kuweka moja kutofautiana jina,
katika kesi ambayo mtaenda kuunganisha nje maadili ya safu,
si fahirisi, au kama wewe kufanya hivyo kama tumekuwa imeandikwa chini
kupata funguo na maadili.
Una kipengele foreach wa safu au jozi ya safu kama keyed kwa thamani
au kama tu thamani.
Kutegemea juu ya nini unahitaji, kama huna haja funguo,
basi unaweza kwenda na thamani.
Kama unataka funguo unaweza kwenda pamoja nao pia.
>> [Charlotte] Pia niligundua sisi kamwe alitangaza i au mstari.
Jinsi gani hata kujua nini wao ni?
[Nate H.] Nini maana na kutangaza?
[Charlotte] Sisi kamwe aliwaambia nini i au mstari njia.
[Nate H.] Sisi kamwe aliiambia kompyuta nini i au mstari maana katika suala la-
[Charlotte] Hayo wao ni indexed au kwamba they're-
[Nate H.] Sisi kamwe aliiambia ni kwamba hii ni walidhani kuwa index au muhimu na thamani,
na kwamba kwa sababu hiyo ni mkalimani PHP.
Hii hutumika kama tamko na anasema sawa, muhimu ni kwenda kuwa
variable kuitwa i kuhifadhiwa katika variable kuitwa i.
thamani ni kwenda kuhifadhiwa katika mstari variable walioitwa,
hivyo hii hutumika kama tamko la vigezo hivi
na anasema $ i ni muhimu, na $ line ni thamani.
Yeah, Ella.
[Ella] Kama funguo ni si kufanyika numerically
jinsi gani kuamua nini ili itakavyo magazeti kila kitu?
Je, ni kama tu ili ni aliingia katika?
[Nate H.] Hebu kutoa ni kujaribu.
Hebu kujenga variable kuitwa arr,
na tunaweza kufanya inakwenda 7.
Hebu sema 0 huenda kwa safu mwingine na 1, 2, au apple.
Hebu sema 7 inakwenda 1, b inakwenda 2,
na 3 inakwenda 4.
Hii ni aina ya mfano mambo kuangalia kwa sababu sisi ni kuchanganya juu
masharti na integers kila mahali.
Hakuna utaratibu halisi wa safu hii.
I mean, tunaweza kuagiza kila kitu katika herufi kwa funguo.
Tunaweza kuamuru kila kitu alphabetically na thamani.
>> Tunaweza kujaribu na kuchukua katika akaunti kwamba baadhi ni masharti, baadhi ni ints,
na tunaweza kujaribu na kubadili yao yote kwa aina moja na kuona nini kinatokea,
au sisi inaweza kufikiria yao kwa thamani ambayo sisi tayari iliwaingia
ambapo sisi kuweka hii katika guy kwanza, hii guy katika pili, hii guy katika tatu,
this guy katika kadha wa nne, et.
Hebu kuona nini kinatokea wakati sisi kukimbia hii code.
Kama sisi kitabu chini na kufanya aina moja ya kitu,
na hapa siyo kuchapa nje mistari mpya.
Wakati kusoma mambo ya nje ya faili ilikuwa ikiwa ni pamoja na mistari mpya katika maadili,
ambayo ilikuwa ni kwa nini kuchapishwa nicely, ambapo hapa haikuwa,
hivyo ndiyo sababu kila kitu ni smushed pamoja.
Hebu kuongeza katika mstari kwamba mwezi tu kufanya mambo mazuri.
Hebu rerun yake, na hivyo hapa
kuangalia nini kilitokea.
Ni kuchapishwa kila kitu nje katika utaratibu ambao sisi kuiweka katika safu.
Haina kuhifadhi ili katika maana ya kwamba.
>> Tukirudi kwenye tatizo hili la uniques
ambapo tunataka kuwa na uwezo wa iterate juu ya SVG,
na tutaweza kuwapa some_file.txt,
na sisi ni kwenda iterate juu yake kama hii.
Sisi alisema kuwa sisi alitaka kutumia safu kuhakikisha kwamba tunatarajia got yote ya
kipekee mistari nje ya hapo, na tunaweza kufanya kweli kwamba urahisi
na tu kuhifadhi katika safu kwamba sisi bila shaka kutangaza nje ya wigo wa kitanzi,
na sisi alisema kwamba kama sisi kutumika katika mistari faili kama funguo katika safu yetu ya
kama sisi aliingia mstari duplicate tunatarajia kuwa na thamani kuu uliopita.
Ni si milele inawezekana kuwa na funguo 2 kwamba ni kufanana katika safu moja.
Tunaweza kufanya tu.
Tutaweza kujikwamua kauli hii echo haki hapa.
Hapa sisi ni hifadhi ya mstari katika faili katika safu yetu ya
kutumia yenyewe kama muhimu.
Kitu, na ni zinageuka kuwa hatuna hata haja hii muhimu.
Hatuna haja ya kuwa i kutofautiana.
Katika hatua hii kama tulikuwa kufanya mwingine kitanzi foreach
na sisi tulikuwa na kitanzi juu ya kila arr
na mstari sasa kama sisi echo-oops, sorry.
Hatuwezi kutumia comma. Tuna hii kutumia kama Keyword.
Sasa kama sisi echo line tunapaswa kupata yote ya maneno ya kipekee katika faili.
Kama Tunakwenda some_file.txt,
na hebu sema sisi kufanya apple, ndizi, apple, apple, ndizi,
kama sisi ni uchapishaji nje yote ya maneno ya kipekee katika faili hili tunapaswa tu kupata
apple na ndizi na magazeti nje.
Kama sisi kuokoa hii, sasa hapa tutaweza zoom nyuma katika,
php unique.php, na ta-da.
Tumekuwa mafanikio uniqued faili.
>> sehemu ya mwisho ya tatizo hili ni kuuliza wewe kutatua hii safu kabla kuchapishwa nje
kwa sababu katika mfano huu rahisi kwamba tumekuwa tu kufanyika
sisi walikuwa na bahati kwa maana ya kwamba-file
sisi gani mfano huu contrived kwa apples na ndizi.
Ilikuwa tayari Iliyopangwa.
Lakini kutumia kazi rahisi aina unaweza aina safu, ambayo ni pretty nifty.
Jambo la mwisho nilitaka kuongea na nyie kuhusu kweli haraka
ni kwamba aina hii ya PHP ni vizuri wote na nzuri, na ni super Handy
kujua jinsi ya kufanya kama wewe milele haja ya kufanya kidogo, mambo haraka programmatically.
Kwa mfano, kama mimi haja ya kuandika mpango kwamba, kusema,
unaweka kila mtu katika sehemu Sitakuja kwenda na kuandika ni katika C.
Ni kwenda kuwa kwa muda mrefu.
Ni kwenda kuwa aina ya maumivu, hasa kama kuna files wanaohusika,
tu kama wewe guys tumeona.
Ni hivyo nice kwamba pamoja na haki hii code sana hapa hapa
tulikuwa na uwezo wa mpasuko kwenye faili, kujiondoa maadili yote ya kipekee
na magazeti yao nyuma nje.
>> Hata hivyo, kwa kazi yako, kwa ajili ya miradi yako,
kama wewe ni kujenga tovuti kwa PHP nguvu ni kwamba
sisi ni mbio yetu files PHP kupitia mkalimani hii,
na mkalimani ni usindikaji kila kitu ndani ya vitambulisho PHP,
kuacha kila kitu kingine bila kuguswa na kutema mate nje ya matokeo.
Tunaweza kufanya hili kwa kujenga HTML programmatically.
Sasa, kama sisi kurudi nyuma kwa spec, tatizo la mwisho katika spec
mazungumzo kuhusu hili wazo la viwango
na kujenga drop-down menu,
ambayo wewe au anaweza wanataka kufanya, kutegemea na nini mradi wako wa mwisho ni kufanya,
ambayo inaruhusu user kuchagua kutoka orodha ya viwango vya wote inawezekana
zao moja ukolezi.
Sasa, hii ni aina ya maumivu ya aina hii nje
na kufanya yote haya manually, hasa wakati wewe ni kuwa na kuhakikisha
kwamba una mabano angle wote katika mahali sahihi na quotes wote katika mahali pa haki,
hivyo kwa PHP unaweza kufanya hili programmatically, na unaweza kufanya hivi kweli haraka.
>> Hebu angalia jinsi ya kufanya hili.
Sisi ni kwenda kufungua faili mpya.
Sisi ni kwenda kuweka tags wetu PHP.
Sisi ni kwenda kumwita concentrations.php,
na sasa wakati wewe ni kufanya hivyo, aina ya kitu nzuri kufikiri juu ya
wakati wewe ni kujaribu kuchanganya na mechi PHP yako na HTML yako
ni kuhesabia, sawa, kile ni sehemu kuwa nataka programmatically kuzalisha?
Je, ni sehemu ya kwamba naweza programmatically kuzalisha?
Ni kweli kwamba unaweza kufanya yote ya HTML yako
ndani ya vitalu PHP.
Unaweza echo yote ya HTML kama masharti.
Kwa mfano, kama nataka kuanza kufanya tags kuchagua ndani ya PHP
Naweza kusema echo, kusema chagua jina = ukolezi,
na kisha chini chini mimi naweza kuwa na mwingine tag echo
au mwingine aitwaye echo karibu kuchagua.
Hii ni njia moja ya kufanya hivyo kwa sababu ya maneno haya ni halisi kwenda kufanya
ni magazeti nje hii string wakati ni kukimbia kupitia mkalimani PHP,
hivyo matokeo itakuwa HTML.
Kama mimi kuokoa faili hii kama ni haki sasa
na mimi kukimbia concentrations.php php
kuangalia nini mimi got.
I got hii wazi karibu kuchagua tag.
>> Kama ningekuwa na kufanya hivi na mimi walikuwa kuokoa matokeo na faili,
kusema, concentrations.html-kusubiri, inaonekana kama l yamepita juu kwa upande mwingine-
sasa kama mimi kufungua hapa concentrations.html mnionavyo halali HTML faili.
Ni kwamba aina ya weird?
Sisi ni kutumia PHP kujenga HTML, kujenga HTML halali.
njia ya sisi ni kufanya hivyo ni sisi ni kuwa tu magazeti PHP
HTML kwamba tunataka kuwa na magazeti.
Hii ni halisi jinsi tovuti PHP ni kazi.
Wakati wewe kutembelea tovuti ya kwamba hutuma wewe kitu kama
jambo, jambo, kitu dot com slash index.php
kompyuta ni halisi wito up index.php,
mbio kupitia mkalimani PHP, na chochote Junk hutoka nje
ni kutuma nyuma kwa kivinjari na kusema hey, browser, kutafsiri hii kama HTML.
Jambo zuri ni kwamba inaweza kuwa maumivu ya mara kwa mara kuandika echo, echo, echo, echo
na uambatanishe kila kitu katika quotes kama hili, hivyo kama unataka kuandika
HTML kwamba itakuja kuwa tuli mwenyewe unaweza kufanya hivyo kama hii,
kuiweka nje, karibu ni,
na kisha hapa wewe tu kuweka ndani tags PHP kwamba ambayo unajua
unataka programmatically kuzalisha, na katika kesi hii ni chaguo tags wale
kwamba ni maumivu ya kuzalisha.
>> Kwa mfano, tunaweza kuzalisha tags chaguo elfu
kwa kufanya kitu kama hiki, $ i <1000, i + +
na kusema echo chaguo thamani = $-Whoops, siwezi kufanya hivyo.
Naam, hebu kutoa ni kujaribu na kuona nini kinatokea.
$ I na kisha kusema $ i </ chaguo.
Badala ya kuwa na aina nje kwamba tag chaguo elfu tofauti mara
Mimi nina kutumia PHP code kuzalisha ni moja kwa moja, programmatically.
Aina ya nifty. Yeah.
Nakumbuka hii kutajwa katika hotuba ama au walkthrough,
lakini nini tofauti kati ya alama quotation,
wale wa kawaida na mambo haya moja?
Hiyo ni kweli kitu ambacho nimekuwa kufanyika kimakosa hapa kwamba nilikuwa naenda kukuonyeshea.
enda quotes wala kuruhusu wahusika yoyote maalum,
hivyo kila kitu ndani ya kamba moja alinukuliwa ni kufasiriwa kama yalivyo.
Kama mimi alikuwa \ n ndani ya quotes moja na mimi ila hii, kwa mfano,
na sasa mimi kwenda chini hapa na kukimbia-
oops, ambapo mimi kwenda?
Oh, ni kwa sababu mimi nilimsahau $.
>> Sasa kama mimi kufungua-kweli, hapa, tutaweza kujikwamua kuandika kwa faili.
Tutaweza tu kusoma.
Hapa unaweza kuona kwamba mimi nimepata hii halisi \ n katika kamba, kama mstari si halisi mpya,
na vivyo hivyo, badala ya kweli interpolating thamani ya hii variable
alinipa $ i yenyewe, ambayo ni aina ya maumivu.
njia ya kuzunguka hii ni kutumia quotes mbili,
na kisha wakati matumizi ya quotes mbili itakuwa kweli
vizuri interpolate maadili ya wote wa vigezo hivi katika hapa
na pia kutambua hili n \ kuwa mstari mpya kuwa ni
na si \ n.
Kutumia ndio moja ni nzuri wakati una
wahusika ambayo inaweza kufasiriwa kama herufi maalum kwa sababu basi hawana
kutoroka kwao daima.
Mambo unaweza kupata messy, na mara nyingi njia ya mimi kufanya hivyo,
tu kufanya mambo rahisi, ni kwamba kama mimi nina kwenda kuwa na kitu chochote
HTML kama katika code yangu mimi itabidi ni pamoja na hariri ndani ya quotes moja
na kisha kutumia hii operator concatenation
kwa concatenate vigezo in
Hii ni njia nyingine ya kufanya hivyo
ambapo sisi tumepewa dot ambayo inaenda kuunganisha hii ni kamba
na hili na hili na hili,
na sasa sina kutoroka hizi quotes mbili.
Sina kutumia guy hii ili kuepuka.
Wao utakuwa literally kuchapishwa kama quotes mbili na kisha guy hii hapa hapa.
Hii ni njia nyingine ya kuchanganya kila kitu pamoja.
>> [Mwanafunzi] Pia, wakati wewe aliunga gettype kulikuwa alama Nukuu hakuna wakati wote.
Haki, hivyo echo ni aina ya pekee katika maana ya kwamba huna haja ya mabano.
Huna haja ya kuwa na quotation alama lazima kuzunguka vigezo,
kama ni halali kusema echo $ i, na ni kwenda kutafsiri hii kama kamba.
Ni kwenda kufanya kutupwa, hivyo tunaweza kufanya hivyo, na kwamba ni halali pia, lakini hatuna haja yake.
Ni hiari.
Katika tatizo kuweka wiki hii kuangalia nje kwa mengi ya aina hii ya mambo
ambapo wewe ni kuchanganya na vinavyolingana HTML na PHP
tu kama hii, na sasa kama sisi kitabu nyuma na sisi kukimbia hii
tunaweza kuona kwamba tuna rundo zima la maadili chaguo
kwamba tu got kuchapishwa.
Tuna HTML hii yote got yanayotokana kweli haraka kwa ajili yetu.
Mimi itabidi kuondoka ni kama zoezi.
Ni sawa kabisa na kusoma faili kwamba sisi alifanya mapema.
>> Kuna faili concentrations.txt kwamba unaweza kuvuta chini kutoka CDN,
na unaweza kufungua kutumia huo foreach hila kwamba sisi alivyofanya awali,
na foreach wewe tu na echo chaguo na kuziba katika
maadili sahihi, funguo sahihi na fahirisi,
na kisha kupata kushuka chini kwamba literally inajenga
programmatically kwa ajili yenu wote wa viwango tofauti katika Harvard.
Jambo Handy kuwa.
Kuna mambo mengi ya Configuration kwa zoezi hili.
Kama hujafanya hivyo tayari kuchukua ijayo nusu saa, saa,
baadhi ya wakati usiku wa leo dhahiri kwa hakika,
kutembea kwa njia spec kuweka tatizo,
kuona nini kinaendelea na kuanzisha vhosts, mwenyeji wa ndani, mambo ambayo yote.
Jambo moja kwa kumweka nje kwa sasa ni kwamba
katika seti zaidi tatizo tumekuwa kwenda katika folda Dropbox
na kisha kushusha kuweka tatizo zip file na unzipping yake.
Kwa kuweka tatizo hili wewe hawataki.
Wewe unataka kwenda katika saraka hii vhosts.
Wewe utakuwa unataka kwenda katika vhosts na kwenda katika saraka ya mitaa jeshi ndani yake,
na hii ni wapi utasikia wanataka kubomoa faili zip,
unzip yake, na kupata tayari kwenda.
Itabidi kufuata hatua kwa karibu.
>> Kama una maswali yoyote, kutuma barua pepe, baada ya kuwa kwenye Jadili, kuja masaa ya ofisi.
Shukrani guys. Wiki ijayo sisi itawabidi kikao mapitio kwa chemsha bongo.
Kufurahia tatizo lako mwisho ya kuweka. Natumaini yote inakwenda vizuri.
[CS50.TV]