[Powered by Google Translate] [8 skirsnis] [mažiau patogūs]
[Nate Hardison] [Harvardo universiteto]
[Tai CS50.] [CS50.TV]
>> Sveiki atvykę į mūsų sekundę, kad paskutiniame skyriuje.
Šią savaitę, mes ketiname kalbėti apie PHP, ir tada kitą savaitę
mes padarysime šiek tiek peržiūrą Quiz 1.
Mes ketiname pradėti nuo problemos 3 psl nustato paketą,
ir mes pasistengsime per klausimų skyriuje gana greitai.
3 puslapyje, pradedame kalbėti apie šį skirtumo tarp C ir PHP
ta prasme, kad PHP yra dinamiškai įvedėte kalba,
kadangi C statiškai įvedėte,
ir kas nors tikrai greitai padaryti kažką panašaus į PHP kodavimo
ar Python arba Ruby prieš JavaScript?
Visiškai nauja? Gerai.
>> Visi iš šių kalbų, kad aš ką tik paminėtos
labai skiriasi nuo kalbų, pavyzdžiui, C ir C + + ir Java
ta prasme, kad, kai paskelbti kintamąjį jūs neturite paskelbti
kokia kintama, todėl C mes pakimba visada sakau
tai bus int kintamasis, ar tai bus char * kintamasis,
kadangi PHP, Python, Ruby,
daug daugiau šių šiuolaikinių kalbų, jūs neturite padaryti, kad ne visi.
Jūs tiesiog paskelbti savo kintamąjį, PHP
Jūs pareiškiate, kad tai kintamasis priešdėlį su $ ženklu,
ir kintamojo tipas yra nustatomas pagal kokia vertė tai ūkyje,
kuris yra tipo kietas.
Pažaisti su šia truputį, mes turime pavyzdį PHP kodą čia
tarp pradžios ir pabaigos žymes.
Mes naudojame tokio pobūdžio ta prasme, kad, pavyzdžiui, HTML
mes turime šiuos laužtiniuose skliaustuose čia atidaryti ir uždaryti.
Jūs pamatysite tai su HTML.
Jūs pamatysite tos pačios rūšies su XML sintaksę.
>> Tai rodo, kad PHP bloko pradžios.
Tai? PHP yra specifinis PHP.
Mes uždaryti viską?>, Taip pat.
Tegul atverti mūsų prietaiso failą naudojant ką norite.
Šio paketo ji sako skambinti dynamic.php.
Tiesą sakant, galite jį pavadinti ką norite, bet failo pavadinimas bus sugalvoti
ir bus svarbu vėliau, todėl tiesiog prisiminti, ką vadiname tai.
Aš ketina pereiti prie prietaiso,
ir aš ketina padaryti katalogą
9 skirsnis Manau, mes ne dabar.
Ir mes eiti į 9 skyriuje,
ir aš ruošiuosi naudoti gedit.
Pažiūrėkime, gedit, ir aš ketinate skambinti minų dynamic.php.
Bumas.
Per dynamic.php, nes tai yra PHP failas
ir aš noriu paleisti tai per PHP vertėjo
Man reikia pradėti viską su tų atvirų žymių,
todėl aš paleisti šiuos karto,
suteikti sau mažai vietos tarp žymių,
Šio pratimo esmė buvo ir tada žaisti aplink su
ši funkcija vadinama gettype, todėl gettype šią funkciją čia.
>> Atkreipkite dėmesį, kad ten ne pabrėžti arba vietos ar brūkšnelį ar ko nors panašaus
atskirti 2 žodžių, gauti ir įvesti, tik vieną žodį apskritai.
Bet kas tai padarys jei aš pereiti į kintamąjį gettype
pasakyti $ var arba $ x,
tai pasakykite man, rūšies Derinimo formatu
ką tos rūšies pavadinimas.
Mes ketiname eksperimentuoti čia.
Visų pirma, jei pažvelgti atgal į pset spec
mes turime keletą skirtingų eilučių kodo.
Pirmoje eilutėje kodo mes inicijuoti šį kintamąjį, $ var,
turi būti lygus 7, ir tada mes turime šį printf linija
, kad sako, ei, printf var yra tuščias.
Printf yra vienas iš daugelio būdų, mes galime atspausdinti dalykus PHP.
Dažnai pamatysite aido funkcija naudojama vietoj printf,
bet printf mes visi susipažinę su buvo kodavimo C kurį laiką.
Ką jūs iš tikrųjų galite padaryti galime pamatyti, jei kopijuoti ir įklijuoti darbus.
Aš ruošiuosi duoti tai pabandyti.
Mes grįžti į prietaiso.
Gerai, ir čia mes einame.
Ir tarpai yra šiek tiek funky, bet čia mes einame.
Mes turime šį kodą čia.
>> [Studentų] Ar tai nėra gerai stiliaus skirtuką jį?
Sorry?
[Studentų] Ar tai tradicinio prie skirtuko IT?
Teisus, todėl Sam klausia, jei tai konvencija į skirtuką tai ar ne.
Paprastai taip.
Šiuo atveju aš pasirinkau ne.
Sąžiningai, jūs pamatysite skirtingus dalykus tarp skirtingų programuotojų.
PHP paprastai dažnai naudojamas kartu su HTML
ir kitomis kalbomis, todėl kartais spausdinimas atrodo šiek tiek funky
įtraukoje, per PHP pradžios ir pabaigos žymes.
Tai tikrai priklauso.
Šiuo atveju nukopijuokite ir įklijuokite ne įklijuoti man skirtukus,
bet jis tikrai nėra, kaip sakei, kad ji taptų suprantamesnė.
Viskas gerai, jei įrašote šį kodą dynamic.php
tada tai, ką galite padaryti, tai nueiti į savo terminalo lange, kur aš esu, nustatančio teisę čia
gedit, ir padaryti kompiliavimo ekvivalentą
naudojant padaryti, o paskui savo kodą C
viskas, ką turite daryti su PHP failo pradėti PHP vertėją,
, kuris yra šiek tiek programa, vadinama PHP,
ir argumentas, jūs suteikiate su vertėju failą, kurį norite interpretuoti.
Šiuo atveju, dynamic.php.
Oi, kur aš įdėti jį?
O, aš įdėti jį 9 skyriuje, ir aš esu čia. Štai kodėl.
>> Dabar, jei aš paleisti, kad vėl
matome, kad mano pirmasis gettype skambinimo funkcijos
var yra sveikasis skaičius.
Kitą var yra eilutė, o tada trečią var yra boolean.
Kas įdomu, apie tai, jei mes slinkti atgal matome, kad
yra panašūs į tuos, kurie, kad mes turėjome C.
Mes turėjome Ints C.
Mes tarsi styginiams C,
taip stygos nebuvo visiškai teisėtas tipas ta prasme, kad
mūsų CS50 eilutė buvo tikrai tai, ką?
Sorry? Missy?
[Missy] char *.
Taip, tai buvo tai mes panaudojome char *.
Pačioje pradžioje semestro mes buvome naudojant string tipas,
bet ji tikrai buvo char * po gaubtu.
Mes ką tik nurodyto tipo, o PHP šios eilutės yra tikrasis tipas.
Yra šios char * tipo stuff.
>> Pamatysite, kad mes galime padaryti daug daugiau dalykų, su Styga
daug lengviau PHP, nei galėtume, C,
ir galiausiai, turime šį boolean tipo, ir čia yra didelis skirtumas, kad
, jei mes slinkti atgal matome, kad šių rūšių pavadinimas
yra sveikasis skaičius, eilutę, ir Būlio vietoj int ir bool,
ir kaip jūs pasiimti įvairių programavimo kalbų,
darant prielaidą, kad nors jūsų gyvenime, jūs liestis su
skirtingi tie, jūs pastebėsite, mažai Photoshop, kaip šis
kur C ragina sveikieji skaičiai int.
Kai ją vadina sveikieji skaičiai.
Yra kitos sąlygos, kad jums paleisti į.
Didelis int mes matėme šiandien SQL.
Taip pat yra ir tada bool, boolean,
įvairiausių skirtumų ten.
>> Tai nėra labai įdomus, bet dabar aš einu duoti jums šiek tiek laiko
jei mes padidinti atgal į darbą per šį pratimą 3 psl apačioje
kur jis klausia, ką tipai atitinka šias vertes, čia apačioje.
Mes turime 3,50.
Mes turime tai, ką čia, kuris yra įdomus.
Mes nematėme, kad anksčiau, nors jei jau po kartu į paskaitą
jūs turbūt jau žinote, kas tai yra.
Tada mes turime tai, kuri tai tipo funky.
Jums tai pripažinti.
Kas tai yra, C?
Sam? Ką tai duos jums C?
Ji atidaryti failą pavadinimu dynamic.php ir padaryti jį įskaitomas.
Aha, ir kas būtų kintamojo tipas, kad mes turėtume priskirti tai? >> Failas žvaigždė.
Tiksliai, mes norėtume priskirti prie failo žvaigždė.
Tai yra teisėtas PHP.
Paleisti, kad. Žiūrėkite, kas atsitinka, kai jūs praeiti, kad į gettype.
Ir tada taip pat patikrinti ką null, ką tai galėtų PHP.
Aš duosiu jums keletą minučių.
Jūs galite tiesiog nukopijuokite ir įklijuokite šias vertybes,
ir tada mes padaryti šiek tiek atsitiktinį pokalbį
ir pamatyti, ką jūs turite.
>> [Studentų] Turiu klausimą. << Taip.
Vienoje iš paskaitų Davidas sakė, kad tai, ką jūs galite įdėti failo viršuje
taip, kad jūs neturite įvesti PHP kiekvieną kartą.
Kas tai buvo?
Jis buvo tikriausiai kalbame apie svaro trenksmu, maišos sprogimo.
Direktyva, kad jei ženklas savo vykdomąjį failą kaip
tada, ką ji daro, kai jūs vykdyti failą
jis jums pasakys, korpuso programą
naudoti PHP vertėjas, interpretuoti failo turinį.
Klausimas yra tai, kas buvo ši speciali eilutė
, kad galėtume įtraukti mūsų PHP failus viršuje neprivalo būti
tai PHP linija ar tai PHP komandą, kai norime vykdyti failą?
Ir jūs iš tikrųjų galite tai padaryti su krūva įvairių failų.
Manau, kad tai priklauso nuo to, kur yra saugomi PHP dvejetainis,
bet dažnai usr / bin / php yra gera vieta pradėti.
Galite suprasti tai lygiai taip pat grįžta prie savo prietaiso
ir rašyti, kuris php.
Kuris komandą skaičiai,, kai jūs vykdant dvejetainis
arba komanda, jeigu atitinkamas failas.
Tai man sako, kad PHP yra tikrai aliasing tai dvejetainis failas
, kad saugomas usr / bin, kur yra dvejetainiams daug yra įdiegta.
Pavyzdžiui, jei aš slinkti į viršų, dabar, kad aš įdėti šią nuorodą #! linija čia
Galiu slinkti žemyn, ir aš galiu pabandyti paleisti
dynamic.php, bet man šią klaidą dėl leidimo buvo atsisakyta,
ir ką tai reiškia, kad šis failas šiuo metu nėra suteikti vykdomąjį teises.
Jis nėra pažymėtas kaip failą, kad kažkas gali paleisti.
>> Kai jūs bėgo skambinti arba Apsukite metalinis garsas, ir jūs turite vykdomąjį failą iš jo
sudarytojas buvo pakankamai protingas, kad žino, kad ei, aš pastato vykdomąjį.
Jūs tikriausiai norite jį vykdyti, todėl būtų automatiškai konfigūruoti
jums leidimus.
Tai ne tas atvejis, nors, kai jums sukurti normalų failą iš naujo,
priežastis paprastai jūs nenorite turėti bet kokį failą į savo sistemą būtų išieškotina,
kad jūs iš tikrųjų turi eiti ir rankiniu būdu tai padaryti.
Pats paprasčiausias būdas tai padaryti yra su chmod komandą
ir chmod + x sako pridėti vykdomąjį tiek
nes ten skaityti bitų, rašyti bitų ir vykdomąjį šiek tiek,
r, w ir x,
ir sako: chmod + x įjungti vykdomąjį šiek tiek
tada byla, kad mes nurodote, kuris šiuo atveju bus dynamic.php.
>> [Studentų] Ar tai įjungtas visiems?
Leiskite check this out, taip, kaip man patikrinti, teises?
Ar žinote, kaip aš patikrinkite failo leidimus?
[Nesigirdi studentas atsakas]
Atsiprašome? >> [Studentų] XSD.
XSD suteikia mums į hacks failą.
Išvardijant visus failus,-L, parodys man visi failai mano kataloge
tipo per savo ilgą išsami sąrašą, ir todėl čia mes matome, kad
tai dynamic.php failą
paskutinį kartą keistas 5 d. lapkričio 16:21.
, Šio failo savininkas jharvard.
Kad vartotojas, kuris yra prisijungęs
Štai vartotojo dirbu,
ir jei jūs taip pat prietaiso jūs taip pat dirba kaip vartotojo jharvard.
Esate studentų grupės,
ir šie dalykai, kad jūs pamatysite pakankamai dažnai.
>> Mes galime eiti į daug detalių čia,
tačiau didžiąja dalimi tai, ką norite pažvelgti į kai jūs ieškote norėdami pamatyti,
yra visų pirma, ar failas yra vykdomasis
vartotojas, kuris priklauso failas, savininkas,
todėl šis jharvard, ir tada mes turime
Leidimai bitai per čia kairėje,
ir būdas skaityti, kad paskutinis tiek
paprastai naudojamas ar ne-bent jau šiuo atveju ženklinimas
šis paskutinis tiek dažnai bus į skelbimą nurodyti
kad failas yra katalogas, o ne tik paprastas failas.
Tada šie 3 bitai čia
nustatyti teises, kad failo savininkas,
todėl šiuo atveju jharvard, failo savininkas gali skaityti ir rašyti šį failą,
bet yra brūkšnys, sakydamas,, kad jharvard negali paleisti šio failo.
Per artimiausius 3 bitai yra grupei, todėl tai yra studentų grupė,
todėl, jei yra keli vartotojai apie savo prietaisą,
ir mes turėjome kelis vartotojus studentų grupės
tada jie visi gali skaityti šį failą, bet jie negali rašyti,
ir taip pat kas nors kitas, pasaulis
gali skaityti šį failą, taip pat.
Yra geras, ilgai writeup apie tai,
todėl jūs galite skaityti internete.
Problemą, spec mes einame į tai išsamiau.
>> [Studentų] 218 pasauliui?
218-prie mano galvos viršaus aš pamiršta,
bet ne.
Pažiūrėkime. Aš ištrinant, kad dabar.
Į tai, ką mes jau ruošėmės daryti su šiuo chmod + x
, kai mes norėjome suteikti dynamic.php vykdomąjį teises,
ir klausimas buvo, ar tai duos vykdomąjį teises visiems
arba tiesiog jharvard, ir mes galime pamatyti tai
veikia komandas ir rašyti ls-l,
ir dabar mes matome, kad jis pažymėtas kaip vykdomąjį failą.
Jūs matote, kad ten buvo spalvos pasikeitimas.
Dabar dynamic.php išskirti žalia spalva,
ir atrodo, atsakydamas į klausimą, yra tai, ką, Charlotte?
[Charlotte] Tik jharvard. >> Tik jharvard, yeah.
>> Jei norime paversti vykdomąjį tiek visiems
kaip galėtume tai padaryti?
Bet mintis? >> + X?
Taip, tiksliai.
Charlotte sakė, mes galime padaryti chmod + x dynamic.php
ir dabar, jei mes paleisti ls-l matome, kad vykdomąjį bitai
iš tiesų yra įjungtas visiems.
Ir jūs iš tikrųjų galite padaryti, tai kitoje pusėje, todėl jūs galite paversti jį išjungti visiems
naudojant minusas.
Dabar jis išjungtas, ir dabar mes galime pasukti jį atgal už jharvard
, kad galėtume iš tikrųjų paleisti jį dabar,
o dabar matai, kai mes paleisti kodą Šis specialus #! linija viršuje,
#! linija, sakė apvalkalas,
papasakojo mūsų terminalą ei, kai ši byla buvo paleisti,
/ usr / bin / php interpretuoti šį failą
ir tada atsispausdinti produkcija.
[Nesigirdi studentas klausimas]
Žinoma, leiskite man slinkti atgal. Vien štai taip.
Jūs pamatysite, visi šių direktyvų pradėti su šiuo svarą ir tada šauktukas,
kartais vadinama Szulernia, maišos sprogimo.
>> [Studentų] Kaip mes galime paleisti su php dynamic.php kol ji vykdomąjį?
Klausimas buvo, kaip mes galime paleisti šią naudojant PHP dvejetainis
o dynamic.php nėra vykdomąjį?
Tai yra itin svarbus, nes tai yra būtent tai, kaip
jis ketina dirbti, kai rašote problemą, 7.
Dauguma laiko PHP failus nėra tiesiogiai vykdomąjį.
Taip, kad dirba, yra todėl, kad PHP dvejetainis, tai vykdomąjį.
Vertėjas yra dalykas, kad yra vykdomas,
ir taip, ką jis daro, yra tiesiog slurping visą turinį
mūsų dynamic.php failą ir vyksta pagal kiekvieną eilutę
ir vykdyti šių komandų, todėl naudoja mūsų PHP failą
kaip instrukcijų sąrašą.
Tai nėra tiesiogiai vykdo.
Štai kur mes sakome, kad šie failai yra aiškinama vykdymo metu.
Tai veikimo laikas kalba, o ne kažkas, kad nustatytos per kompiliavimo metu,
nėra parengta kalba kaip C
>> Ar yra būdas gauti Run Time kalbą elgtis taip, tarsi tai kompiliavimo metu kalba,
, pavyzdžiui, jei jūs turite visas veikiančias padaryta ne serverio
o nei jūs žinote, ką turiu galvoje?
Taip, kad klausimas yra
Ar yra būdas gauti Run Time kalbas, kurios veikia daugiau kaip kompiliavimo metu tipų kalbų?
Ir ten, aš turiu galvoje, kad yra aktyvus mokslinių tyrimų sritis, daug šių bendrovių.
Manau, "Facebook" padarė daug darbo su PHP
ir kaupimo jį žemyn, todėl greičiau, optimizuoti
nes jų svetainė yra pastatytas ant PHP.
Jei jūs buvote ne visi, po node.js
kuris yra tipo JavaScript vertėjo
Ne naršyklėje paleisti "JavaScript", už savo naršykles,
nes tradiciškai Javaskriptą, tiesiog paleisti viduje Firefox ar Chrome.
ir jis bus naudojamas, kad cool animacija vyksta internetiniame puslapyje
ir padaryti jūsų tinklalapį dinamiškas.
, Kad buvo pastatyta daug darbo, kad "Google" padarė
, kad "JavaScript" ir C + +
įpareigoti kartu, todėl yra daug aktyvių mokslinių tyrimų
gauti šios kalbos bendrauti ir juos optimizuoti,
visų pirma dėl to, kad daugelis žmonių gali koduoti PHP ir JavaScript
, nes tai daug lengviau.
Tai daug gražiau. Jūs neturite patarimų.
Jūs neturite rūšių plūduriuojančius aplink.
Jie norėjo įgyti šių kompiliavimo metu kalbų
tipo tikrinimą ir greitį ir apatinės Memory usage ir visi, kad
, tačiau išlaikant lankstumą ir paprastumą naudoti šių naujesnių.
>> Grįžti į mūsų pradinės puolimo planą.
Mes turime keletą iš šių klausimų, čia mūsų problemą, spec.
Eikime per juos tikrai greitai, ir mes eiti aplink kambarį.
Charlotte, kokio tipo yra 3,50?
[Charlotte] Tai dvigubai. >> Tai dvigubai.
Jimmy, kas tai yra kitą? >> Masyvo.
Masyvas, nuostabus, ir Jared, kas yra fopen?
[Jared] Tai išteklių. >> Tai išteklių.
Tai tipo nauju, o ne failas žvaigždė, ne failo.
Tai ištekliai yra tipas PHP,
ir aš atsiprašau, Ella, paskutinis null yra kas?
NULL.
Nulis, kaip jis rašomas PHP? >> Tokiu pačiu būdu.
Taip pat, sostines? >> Taip.
Taip, viskas gerai.
Čia mes einame, mes turime du kartus daugiau, mes turime masyvą,
mes turime išteklių, ir tada mes turime null.
Pažiūrėkime dabar Matėte
pažiūrėkime, todėl dabar aš atspėti, ką aš taip pat noriu padaryti, tai atsigriebti
Šis puslapis buvo čia, tai php.net / rankinis
todėl, jei jus vaikinai kopijuoti, kad ir atverti interneto naršyklę.
Aš ruošiuosi atsigriebti "Chrome", įdėti, kad in
Aš noriu parodyti jums, tai ne tik dėl to,
mes galime kalbėti visą dieną apie rūšių ir visi, kad įdomus stuff
bet todėl, kad tai yra PHP vadovėlyje,
ir yra daug PHP programuotojų ten.
Yra daug ten PHP svetainių,
ir, kaip rezultatas, yra daug dokumentų PHP,
ir vadovą, php.net, yra tikrai gera vieta eiti
kai jums iškilo klausimų apie tai, kas yra geriausias būdas tai padaryti X PHP
arba ką funkcija atrodo?
Tiesiog rūšies susipažinti su tuo, kaip tai atrodo, nes
jums bus atvyksta čia dažnai, šiek tiek problemų 7.
>> Jei jūs galų gale padaryti galutinį projektą, kuris naudoja PHP
tai bus vieta, tapsite labai gerai susipažinę su.
Dažnai žmonės tai padaryti yra jie naudoja Google paieška svetainėje,
ir jie neturi naudokite paieškos laukelį, kad čia, viršuje, dešinėje pusėje, kuri yra tipo mažytė.
Jei esate "Google" paiešką apie kažką daryti su PHP ir pamatysite
vienas rankinio nuorodos pop iki jūs galite paprastai remiasi
kaip gana geros išteklių.
Nuostabus, todėl iš šių tipų, tiesiog iš smalsumo,
kurie iš jų ne mes matėme?
Ką mes čia nemačiau?
[Studentų išteklių. >> Mes matėme su fopen skambučio šaltinį.
[Studentų] objektai >> Objektai mes tikrai nemačiau.
Šios funkcijos mes nematėme.
Yra keletas šių pseudo tipų.
Mes tikrai tik pamačiau sveikasis skaičius, ir dvigubai.
Nematėme kai kurie kiti, todėl, jei mes paspauskite sveikaisiais skaičiais
mes galime matyti, nėra jokių kitų sveikieji skaičiai, kad jie turi čia?
Jie visi taip sveikasis skaičius, sveikasis skaičius, sveikasis skaičius.
Kai kurios kalbos turi didesnių Sveikieji tipai
kaip matėme šiandien yra MySQL INT ir tada didelis int.
Cool.
>> Taigi, PHP vadovėlyje.
Grįžkime į mūsų problemą, spec, ir mes dabar slinkite žemyn į 4 psl.
Vienas iš dalykų, kurie atsitinka, kai jūs gaunate šias kalbas
kurie neturi šį statinį rašyti, todėl šios kalbos, kur jūs turite deklaruoti
kintamos priekyje tipas
gausite atvejus, kai galite pradėti įvairių tipų kintamieji
bendrauja tarpusavyje,
ir PHP ar tai, ką, kur jis bando daryti
, ką ji mano, kad būtų pats protingiausias dalykas, kurį reikia padaryti
kai turite 2 įvairių tipų bendrauti vieni su kitais.
Pavyzdžiui, jei pažvelgsime į šių kodas linijų čia
pamatysite, kad mes turime, kas atsitinka, kai
mes stengiamės ir pridėti eilutę nuo 1 iki sveikasis skaičius 2.
Kas atsitiks, jei mes stengiamės ir pridėti eilutę, kuri nėra skaitinė vertė
o faktinės simbolių, AP, kurios numeris 50?
Tada mes pamatyti, ar yra kas nors skiriasi, kad atsitinka, kai
vietoj pridėti eilutę į numerį, mes pridedant skaičių į eilutę,
ir taip toliau ir taip toliau iki taško, kur mes vis
kai kurių keistam dalykų natūra, čia, kur mes turime 7 + tiesa.
, Ką gi tai reiškia?
>> Jei jus vaikinai eiti į priekį ir įklijuokite šį kodą į savo prietaisą.
Galite laikyti jį dynamic.php.
Mes pamatyti, kas atsitiks.
[Studentų] Tiesiog naudokite spausdinti, o ne printf?
Taip, taip, jūs pamatysite, kad spausdinimo taip pat galioja PHP spausdinimo funkcija.
Yra daug įvairių būdų tai daryti.
Mes pamatyti, su pavyzdžiais, pora, vėliau, kai mes pradedame kalbėti
apie unikali problema, kad mes ketiname rašyti
ir tada koncentracijos problema, kad mes ketiname rašyti
kad nors mes turime fopen ir fclose
kad dažnai nėra paprasčiausias būdas skaityti failo turinį.
PHP turi daug šių C, pavyzdžiui, holdovers.
[Studentų] Kai aš įdėti visus 6 iš tų dalykų, gauti tik vieną numerį, kaip produkcijos.
[Nate H.] Kai jūs galėsite įdėti visų 6 iš šių dalykų.
Pažiūrėkime, tai todėl, kad ji galbūt
vienas dalykas yra, kad šie spausdinimo skambučiai nebuvo nutraukta su naujų linijų pabaigoje.
Ten jokia nauja linija, skirianti kiekvieną iš šių spausdinimo skambučius,
tad gal jūs gaunate vieną didelį skaičių,
ir tai tikrai tik amalgama naujos eilutės simboliai.
[Studentų] Gerai, kaip man įsitikinti, kad-
Na, yra įvairių būdų, kaip krūva.
Galite rankiniu būdu įdėti į naujos eilutės simbolį Spausdinti
naujos eilutės simbolį aidas,
spausdinti naują eilutę.
[Studentų] Taigi ECHO yra tas pats, kaip printf?
>> Printf yra kaip C printf
kur jūs spausdinate suformatuoti eilutę.
Jūs tiekiame formato eilutę ir tada visi vietos rezervavimo ženklo kintamuosius.
Tai dažnai kažkas, kad nėra naudojama
pažiūrėkime, kaip dėl atsakomybės atsisakymo,
Esu mažiau susipažinę su PHP, nei aš su kitais interneto kalbomis,
ir kai aš užprogramuotas PHP Aš paprastai nereikia naudoti printf
nes manau, kad greičiau naudoti string interpoliacijos galimybes, kad ji turi,
kuriuos mes eiti į, ir aš jums parodysiu, po kelių minučių,
o C tipo turi tai padaryti Hacky dalykas gauti jį atsispausdinti tinkamai.
Jūs iš tikrųjų galite įdėti kintamieji tiesiogiai į stygos PHP.
Printf yra pernelyg ilgas rūšies, ką aš paprastai padaryti. Taip, Ella.
[Ella] Paprastai, jei jūs gaunate Sintaksės klaida: ar tai reiškia,
kaip C nėra pasakyti, kur tiksliai yra klaida yra ir kas tai yra,
taip, tai reiškia ieškoti per visą savo kodą ir figure it out?
Tai paprastai tikslingesnis nei tai.
Manau, kad tokiu atveju ji buvo šiek tiek ne,
todėl manau, kad šiuo atveju mes trūko kabliataškį.
Jis bandė prasmės viską, kas,
taip, kaip šie interpretuojančioms kalboms, kad interpretatorius yra going to bandyti
ir daryti viską tinkamai padaryti viską, darbą.
>> Pamatysite, pavyzdžiui, "JavaScript"
Jūs dažnai-line sakiniai baigiasi kabliataškiu, tiesiog, kaip jie yra PHP,
kaip jie C.
"JavaScript" kai kurie "JavaScript" interpretatoriai
daug iš naršyklių sukurs kabliataškiais jums
, jei atsitiktų, kad trūksta juos.
Jie bus išbandyti ir prisitaikyti Niechlujstwo nors iš jūsų pusės.
Štai kur ji gali būti bando ir bando ir bando padaryti dalykai darbas,
ir galiausiai jis bus gauti iki taško, kur ji sako gerai,
Aš negaliu padaryti ką dirbti teikiant pagalbą, ir tai yra, kai gausite eilutės numerį
kad gali atrodyti šiek tiek off tikslią vietą.
Gerai, kad galime eiti per tai tikrai greitai.
Mes nerašomas su Ella, todėl galime pereiti prie Missy,
ir Missy, ką spausdinti 1 plius skaičių eilutę 2 duoti jums?
[Missy] 3. >> 3.
Ar tai prasminga? Rūšiuoti?
Ar tai suteiks jums numerį? Ar tai suteiks jums eilutę?
[Missy] skaičius. >> Tai skaičius.
Bet tai spausdinimą, todėl ji ketina duoti jums keletą rūšiuoti eilutę.
>> Vienas dalykas, mes galime padaryti, check this out
jei mes $ var = 1 + 2
ir tada mes sakome Aidas gettype,
todėl mes naudojant trečiosios rūšies spausdinimo čia.
Dabar mes galime pamatyti, kas vyksta čia.
Štai ką mes turime, mes turime sveikąjį skaičių iš to.
Nors mes buvome pridedant šią eilutę į numerį,
mes ne gauti eilutę iš jo, kaip Missy sakė.
Mes buvo gauti sveikasis skaičius.
Gerai, kad galime pamatyti, next up, Kevin.
CS + 50? >> [Kevin] 50.
[Nate H.] 50. Ar tai prasminga?
[Kevin] Taip.
[Nate H.] Kodėl? Kodėl tai prasminga jums?
[Kevin], nes tai tik eilutę, atsižvelgiant skaičiaus reikšmė lygi nuliui.
Taip, puikus.
Rūšies dviprasmiškų situacijų, bet tai gerai žinoti, kas atsitiks.
Stella, kas vyksta šalia su skaičiumi 1 + styginių 2?
[Stela] 3. >> 3 dar kartą.
Ir šiuo atveju, mes gauname eilutę ar numerį?
>> Leiskite duoti tai pabandyti.
Kas nors greičiau kaip man gauti atsakymą? Charlotte?
O, aš didn't gerai, pažiūrėkime, mes ketiname padaryti tos pačios rūšies dalykas
, kai mes gavome skaičių plius eilutę, ir mes ketiname pakartoti tipas
pamatyti, ką mes gauname.
Mes taip pat gauti sveikasis skaičius.
Nesvarbu, kuris iš jų yra eilutė, iš kurių vienas yra skaičius.
Mes vis dar ketinate gauti sveikąjį skaičių.
Jis vis dar ketinate daryti, ko galime tikėtis ateityje.
Viskas gerai, todėl Sam apie 90 + 9 butelius alaus ant sienos?
[Sam] 99 >> 99.
Nėra alaus buteliai ant sienos, nors.
Tai suteikia mums šiek tiek daugiau informacijos apie tai, kas vyksta.
[Sam] Jei buvo parašyta 9 raidėmis
tada jums reikės 90, tiesa?
[Nate H.] Taip.
Klausimas buvo, jei būtume parašyta 9 iš N-I-N-E
mes Dotarłeś 99 arba 90?
Gausime 90.
Tai tiesiog tik ieškote skaitmenų simbolių.
Tai nėra pakankamai protingas, kad pripažinti skaičių žodžius ir, kad kita. Taip.
>> [Studentų] Ar yra toks dalykas, kaip typecasting PHP?
Yra, ir tai lygiai taip, kaip norėtumėte daryti C.
Ką apie 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Taip, taip, kas gali būti keista, apie tai?
Kas nutiktų, jei tu tą patį dalykas rūšiuoti, C,
jei tu 10/7, C?
[Charlotte] Tai tik suteiks jums priklausomai nuo to, kaip jūs typecasted Manau,
jis duos jums tik ribotą skaičių skaitmenų po dešimtainio.
Taip, kad ribotas skaičius skaitmenų po dešimtainės.
Kas dar gali būti-tai suteiks jums jokių skaitmenų po dešimtainės?
Dažnai nėra, todėl, priklausomai nuo to, kaip jūs typecasting
jis gali arba negali konvertuoti jį su slankiojo kablelio skaičius.
Čia jis buvo natūra malonu, kad jis tai padarė.
Jei mes parodė jums atgal, kai mes pradėjome daryti šį stuff C
tai tikriausiai padarė šiek tiek daugiau prasmės
kad ji ne tik eiti į 1.
Ir galiausiai, Jamie, ką apie 7 + tiesa?
[Jamie] 8. >> 8.
Ką tai reiškia?
Aš manau, kad jis tiesiog suteikia tiesa vertė yra lygi 1.
Taip. Kas atsitiks, jei mes pakeisti, kad false?
[Studentų] 7.
Taip, taip prisiminti, kur mes kalbame apie šių dvejetainius vertę,
1 -, 0 nebegavo?
Dabar mes turime, tiesa yra 1, 0 yra klaidinga,
ir tu gali ne mačiau tai C pavyzdžių, kad mes padarėme praėjusį semestrą,
bet istoriškai bool C tipo nebuvo tikras tipas
todėl žmonės naudojo 0 iki 1 true ir false vietoje.
Tai, kad pasireiškimas.
>> Gerai, kad viena svarbi dalis apie visa tai
yra tai, kad mes turime šių skirtingų tipų.
Jie gali bendrauti vieni su kitais.
Jie dažnai gali bendrauti vieni su kitais taip, kad būtų gražus, kaip mes matėme čia.
Tai malonu turėti eilutę 1 ir numeris 2, įtraukite juos kartu ir gauti 3.
Tai turi prasmę.
Tačiau, kai rašote svetainių, ir ypač, kai jūs apdoroti
naudotojo įvesties, todėl sako, kad jūs parašėte internetinę formą
, kuri renka informaciją iš vartotojo, ir tada eina jį apdoroti
ant nugaros pabaigoje, savo PHP kode, serverio pusėje
jei tikitės, kad vertę, kurią vartotojas turi įvesti ir pateikti
į formą turi būti sveikasis skaičius arba būti zmiennoprzecinkową ar kažkas panašaus
jums reikia aiškiai mesti jį
ir tada padaryti kai kurie tipo tikrinimas.
>> Jūs nenorite, tiesiog remtis šio tipo žongliravimas sistemos, kad viskas veikia,
ypač dėl saugumo priežasčių ir tik į jūsų svetainę tvirtumą.
Tiesiog kažkas, reikia nepamiršti, kad, kai jūs tvarkymo formos duomenis,
nieko, kad ateina paštu arba gauti superglobals
įsitikinkite, kad jūs visada jį įteisinti ir paversti ją ir Typecast jį.
Ir kaip mes kalbėjome apie prieš akimirką tą typecasting
PHP yra būtent tai, kaip C, kur jūs turite skliausteliuose
ir tipas.
Keep that in mind.
Viena funkcija, kad bus naudinga, kai jūs darote tai
mes naudoju ir tai yra natūra, kaip panaikinti
mes buvome naudojant šią gettype funkciją čia
išsiaiškinti kintamojo tipą,
ir nors tai yra patogu, derinimo ir pamatyti, kas kintamojo tipas yra
nenorite, tai, pavyzdžiui, sąlyga, jei
jūs patikrinti, pamatyti, jei $ var = sveikasis skaičius gettype kažką daryti.
Tai yra blogai, blogai, blogai.
Vietoj to, šias funkcijas, vadinamas yra sveikasis skaičius, eilutę,
masyvas, kad jūs norite naudoti vietoj, todėl šiuo atveju
ką aš noriu padaryti, o ne čia šis vaikinas
yra naudoti, yra sveikasis skaičius var.
Ir jie dažnai vadinama yra is_ * ta prasme, kad galėtumėte pakeisti * su sveikojo skaičiaus,
eilutę, ir tt, ir tiesiog įsitikinkite, kad tikrai greitai
Ar tai yra int PHP.
Atrodo, kaip jūs galite padaryti arba yra int arba yra sveikasis skaičius, taip pat?
Taip, Alias, tiek int sveikasis skaičius slapyvardžiai.
Cool.
>> Kaip mes tai darome?
Leiskite tempą šiek tiek.
Dabar mes ketiname kalbėti apie masyvų, taip kaip matote
kitą dalį spec mes kalbame apie tai, kaip masyvai PHP
yra šiek tiek kitoks, nei jie yra C
Tiesą sakant, jie rūšies amalgama
matricos, kad jūs atėjote pažinti ir mylėti, C
, kur viskas yra to paties tipo
saugomi eilės ir Kaimynystėje atmintyje,
ir jūs turite šiuos skaitinius indeksus.
Turite indekso 0, 1 rodyklės 2, indeksas,
ir išsaugoti šių indeksų vertes.
Jūs taip pat C, kai rašė Speller, iš jūsų daug
maišos lentelės metodą, o jūs matė, kad mes turėjome
kur buvo fiksuoti įvairių rūšių saugojimo
raktas į vertę, todėl, kai jūs bandė laikyti kažką maišos lentelė
jūs turėjote nurodyti, kad jūs norėjote laikyti jį su tam tikru raktu,
ir kad raktas nustatomas vertės vietą ir, jei jis bus saugomi.
Jūs rūšies gavo abi šias sąvokas, vyksta tuo pačiu metu į PHP
ir, kaip rezultatas, mes dažnai vadiname tuos Association masyvai
kur mes esame susiejant raktą, vertės.
Šiuo kitą dalį mes kalbame apie paprastą PHP
kur mes turime raktus a, b, ir c,
visos eilutės, kartografija sveikaisiais skaičiais 1, 2, ir 3.
Ir jūs galite turėti įvairių tipų raktus.
>> Jūs galite turėti kelis raktus, kurie yra stygos, kai raktus, kurie yra sveikieji skaičiai.
Jūs galite turėti skirtingų tipų vertes.
Jūs galite turėti reikšmę, kuri eilutė, vertė, kad sveikasis skaičius,
vertė, tai objektas ar kitas masyvas, pavyzdžiui,
visi toje pačioje masyvo objekto, kuris yra tipo keista.
Jūs neturite turėti matrica, kad tiesiog gavo vienos rūšies elemento.
Jūs galite turėti daug įvairių dalykų vyksta ten.
Kitas dalykas, reikia pažymėti, kad, kai jūs darote savo kodą kažką panašaus į tai,
, kuris galioja PHP paskelbti masyvą, kaip šis 0, 1, 2, 3, 4, 5,
, kurie bus paskelbti inicializuoti $ arr šis masyvas.
Bet tai, ką jūs iš tikrųjų gauti po gaubtu yra tokia numanomų
raktus, kai mes gavome 0-0, 1 1, 2 2, 3 kartos iki 3.
Ir paaiškėja, kad net jei jūs turite, kaip šis vaikinas masyvo čia
kur jūs turite a, b ir c raktų
ir tada pradėdami vartoti masyvo eksportavimo metodą pradėti naudotis šioje matricoje, pavyzdžiui, kamino,
todėl jūs galite pamatyti, kad šis masyvas objektas, šis masyvas yra tikrai tampa perkrautas.
Mes galime jį naudoti kaip masyvo. Mes galime jį naudoti kaip maišos lentelės.
Mes galime jį naudoti kaip kamino.
Kai jums pradėti stumti dalykų ant šio masyvo
pirmas dalykas, kurį jūs stumti ant tos bus indekso 0 ir tada puslapis 1 ir 2 rodyklėje.
Jūs galite gauti šį netiesioginio kartos raktų
, nebent jūs juos aiškiai nurodyti.
, Žinoma, yra taip, kaip jūs aiškiai nurodyti raktus naudojant Šis laikiklis žymėjimą,
kuris yra panašus į masyvų, išskyrus, o ne tik leidžia
sveikasis skaičius indeksai čia, dabar mes leidžiame nieko.
, Jei norite, kad jūsų raktas į eilutę, galite nurodyti, kaip šis.
, Jei norite, kad ji būtų int, galite nurodyti jį su int, kurį norite naudoti.
>> Klausimai dėl, kad iki šiol?
Vienas iš naudingų dalykų apie šią idėją
yra, kad jūs galite tik kada nors turi vieną reikšmę, saugoma su tam tikru raktu.
Jei mes grįžti į mūsų prietaiso leiskite man ištrinti kai kuriuos iš šių dalykų.
Ir tarkim inicijuoti masyvą būti 0, 1, 2, padaryta.
Jeigu aš dabar žinau, kad, pavyzdžiui, jei aš echo $ arr [0]
Aš ruošiuosi gauti reikšmę "0", išspausdinti,
ir kadangi gali apimti tik vieną reikšmę, saugomi tam tikrą raktą
jei galiu laikyti kažką $ arr [0], tarkim,
tada aš žinau, kai aš echo $ arr [0] dar kartą
Aš nesiruošia gauti 0 atspausdinti kaip ir anksčiau.
Aš tik ketina gauti.
Taigi tai iš esmės sakydamas, kad aš negaliu turėti $ arr [0] saugoti 2 skirtingas vertybes.
Jis negali saugoti ir 0, o string, kaip šis tiesiog pakeičia
kas buvo $ arr [0] anksčiau.
Priežastis, aš galiu tai padaryti paleisti jį, pamatyti, kas atsitiks.
Čia, kad aš turiu 0 atspausdinti ir tada žemyn čia.
Nėra jokios nauja eilutė, nes buvau tingus ir neišleido kad in
Kas atvėsti apie tai mes galime naudoti kaip būdas
užfiksuoti šią rinkinio idėja
kur mes negalime turėti kelis raktus per masyvo.
Mes negalime turėti identiškus per masyvo raktus.
Aš negaliu turėti pagrindinį 0 ir vertė Vertė 1 ir pagrindinį 0 ir brangina
arba raktas, 0 ir vertė tiesa.
Mygtukai yra, "viskas yra tik 1 raktas masyve.
Nors galite turi tokią pačią reikšmę, saugomą
Kelis kartus masyvo pagal skirtingų raktų
neįmanoma turėti vienodas raktus kelis kartus savo PHP.
>> Jei pažvelgsime į šio Kita problema, unique.php,
kur mes norime atverti PHP failą
kuriame yra eilučių sąrašą, po vieną eilutę į kiekvieną eilutę,
ir mes norime surasti visus iš unikalių eilučių tame faile
visi mes turime padaryti, yra naudoti vieną iš šių lentos PHP
eilutes į failą ir naudoti kaip raktų į šio masyvo
ir nuolat atnaujiname mūsų masyvas, kaip mes saugome šiuos naujus raktus.
Mes peržiūrime kiekvieną liniją Bylos mes galime laikyti masyve,
ir pabaigoje turėsime kaip mūsų raktus mūsų masyvas
visi iš unikalių eilutes failo viduje.
Ar tai prasminga?
Pažiūrėkime, kaip tai veikia.
Mes ketiname atverti, pagal spec, naujas failas, kuris vadinamas unique.php.
Atidaryti. Oi, atsiprašau, naujas failas.
Mes ketiname pradėti nuo pat pradžios ir pabaigos žymes.
Mes ketiname išsaugokite jį 9 skyriuje, ir mes ketiname jį vadinti unique.php.
Gerai, dabar padidinti.
Idėja yra atidaryti failą,
skaityti eilutę failo eilutę.
Kiekvieno failo eilutėje
mes turime masyvą, kur mes turime
Mūsų pagrindiniai linija.
Ir tada, kai mes gauname iki galo
$ Arr raktai yra unikalus linijos
iš failo, nes mes žinome, kad, jei aš įdėti eilutę į šio masyvo
kelis kartus, jis bus tiesiog neatsižvelgti į senąją vertę,
ir mes iš tikrųjų galite įdėti masyvo liniją kaip pati tiesiog patinka, kad.
>> Tai tipo keistam.
Mes saugoti tą patį pagrindinis vertės pora daugiau ir daugiau ir daugiau vėl,
tačiau kadangi garantuojama, kad ten bus tik 1 raktas vadinamas linija
todėl, jei mes turime failą, sako failą gyvūnų garsų ir tai yra ataudai, ataudai,
Miau, miau, Moo, Moo, ir kiekvieną kartą, kai mes skaitome gyvūnų triukšmas out
kaip atauduose ir mes saugome mūsų masyvas mes gauname ataudai, ir tada antrą kartą
mes saugome ataudai jis bus perrašyti pirmas kartas, kai mes jį išsaugotą.
Galų gale mes tik vieną įrašą masyvo
už kiekvieną gyvūnų garsų mūsų gyvūnų garsų • failą.
Ar jus vaikinai įsitikinę, kad jūs galite spręsti PHP failo atidarymą?
Vienas iš būdų tai padaryti-eikime per šį greitai vienaip tai padaryti
su fopen, kaip matėme anksčiau.
Galite fopen some_file.txt.
Jūs galite jį atidaryti skaitymui, kaip ir C.
Kad vienas visiškai geras būdas tai padaryti.
Jūs taip pat tada skaityti failo eilutėje
turi tas pačias funkcijas, daugelis iš jų, ko jūs C.
Turite fgets.
Turite feof, nors mums nepatinka, naudojant tą
nes, atsiminkite, kad nebuvo didelis C.
Jūs galite tai padaryti taip pat,
bet čia yra tikrai cool dalykas.
Atsiprašau, aš nenoriu padaryti, $ failas, bet yra funkcija, vadinama failą PHP,
ir ši funkcija čia yra kietas, nes jis nuskaito visą turinį
Bylos, kad jūs nurodote, kad some_file.txt,
skaito visą turinį šio failo į masyvą
ir tada leidžia jums pakartoti per ją, kuri yra gana madingas.
>> Jei mes einame, pavyzdžiui, į mūsų interneto naršyklę
ir mes pažvelgti į "Google" PHP failą
galite pamatyti čia, kad mūsų vadovas sako, kad failo nuskaito visą failą į masyvą,
ir mes galime file_get_contents grąžinti failo turinį kaip eilutę,
bet paprastai tiesiog gauti jį kaip masyvo yra tikrai gražus, nes tai, ką jis daro
tai pertraukos jį taip, kad kiekvieną elementą
masyvas yra viena eilutė iš failo,
todėl, jei mes pažvelgti 0 failą, failo pirmoje eilutėje.
Failas 1, antra eilutė, failą 2, trečia eilutė, ir taip toliau ir taip toliau.
Ar nebūtų puiku, jei tai buvo viskas, ką turėjau padaryti, C?
Gana madingas.
Davidas parodė tai paskaitos ir idioma, jis parodė,
kad Be mūsų standartas kilpa PHP mes turėjo, kad
for ($ i = 0; i <10; i + +),
ir jūs galite tai padaryti, PHP, tas pats
mes taip pat turime šį atvėsti konstruktą, pavadintą foreach.
Foreach yra tikrai patogu, kai iteravimu per masyvai arba šių duomenų struktūros
nes jis leidžia jums ištraukti Kiekvienas masyvo elementas
be būtinybės rankiniu būdu padaryti INDEKSAVIMAS sau,
be būtinybės rankiniu būdu sukurti rodyklės kintamąjį, prieaugio,
ištraukite masyvo vertę tuo momentu, nes tai labai dažnas dalykas, kurį reikia padaryti.
>> Jūs tikriausiai padarė, kad kartais, kai jūs veikėte C stuff tonų
per semestrą, todėl šiame foreach
mes galime kilpa per šio failo masyvo,
ir sintaksė yra tai, kad mes norime dabar kilpa per šio masyvo
ir nurodyti, kad kintamasis, mes ketiname naudoti, laikyti
šio masyvo elementas lokaliai vietos iki šio foreach kilpa,
yra mes ketiname ją vadina linija.
, Jei tai yra tik žodžiai failas ir yra vienas žodis linija
galėtume vadinti žodį taip pat, tikrai tik jums duoti tai pavadinimą,
ką jūs norite jį pavadinti,
ir tada viduje kilpos galite daryti, ką norite Šis kintamasis linija.
, Jei tai nėra pakankamai gauti iš masyvo vertę, ir jūs taip pat norite gauti
kartu su juo indeksas galite nurodyti indekso pavadinimas
taip pat vertė, ir dabar jūs turite prieigą prie 2 kintamųjų.
Jūs turite $ i ir linija
kur $ i masyvo indeksas,
ir linija yra linija, kuri jums gauti iš failo.
Pavyzdžiui, jei norime atspausdinti echo Line 0 failą tokį, koks,
mes galime padaryti, kaip ir tai, "Eilutė $ i bylos yra $ linija"
ir čia yra tai, ką mes taip pat dar nemačiau arba
, kai aš tiesiog visiškai praleisti per visą šią% s% d verslo
kad mes turėjome kovoti su C, ir vietoj to, aš atvyko tiesiai į
raštu, atsižvelgiant kintamuosius savo eilutę.
>> Tai vadinama kintamasis interpoliacija, styginių interpoliacija
kur jūs įdaru kintamuosius teisę, ir PHP interpretatorius
yra pakankamai protingas, kai jis skaito per eilutę, kuri prasideda kabutes
ne apostrofai, su vienu simbolių eilutėse negali tai padaryti
bet su dvigubų kabučių, stygos, nes jis skaito per jį žiūri su kintamaisiais.
Jis medžiodamas juos žemyn, ir jei ji mano, kintamuosius, ji imsis kintamojo vertė
ir kita ją į eilutę, jei ji gali konvertuoti jį į styginių atstovavimo,
kuri yra gana madingas.
Nes dabar, tegul komentaras iš viską, poilsio,
išsaugoti tai, ir tai, ką mes galime padaryti dabar, mes galime atverti failą
kad mes galime paskambinti some_file.txt-let 's sukurti naują failą
ir mes galime įdėti į nesąmonė dalykų krūva čia tik bandymas viską,
išsaugokite jį, skambinkite tai some_file.txt, kaip aš darau čia viršuje,
ir dabar, jei aš nutolinti tiesiog įsitikinkite, kad viskas yra tame pačiame kataloge
atrodo, kaip aš turiu unique.php ir some_file.txt tame pačiame kataloge.
, Jei aš paleisti php unique.php
pamatyti, kaip ji spausdina kiekvienos eilutės į mano bylą, ir kokia linija?
>> Tai gana galingas, tiesa?
Atrodo, jis paėmė 3 eilutes kodo atverti failą.
Na, 4 eilučių kodo. Aš negaliu suskaičiuoti šiandien aiškiai.
Bet tikrai tik 2 įdomių eilučių kodo, nes kiti 2 buvo garbanotas petnešos,
, bet tai daug kodo mes galėjome atidaryti failą, per ją pakartoti,
ištraukite eilutės numerį ir linijos
ir atspausdinti jį.
Cool stuff. Charlotte.
[Charlotte] Turiu klausimų apie sintaksę.
Taigi foreach pasiūlymus kiekvieną failą, kurį atidaryti linijos,
ir tada, kai norite padaryti kažką su kiekviena linija jūs tiesiog padaryti jį kaip
ir tada susieti vertę.
[Nate H.] Ką jūs galite padaryti čia klausimas buvo
foreach turi daryti su masyvo, todėl foreach sintaksė
yra tikrai foreach "ir pamatysite, kad ten nėra vietos
arba nieko tarp ir kiekvienas.
Jie turi eiti vienas šalia kito,
ir tada ji trunka masyvo,
ir tada jūs turite šį kitą raktinį žodį vadinama, kuri turi būti ten,
ir po, kaip galite arba įdėti vieną kintamojo pavadinimą,
tokiu atveju jūs ketinate pasitraukė iš masyvo reikšmes,
ne indeksai, arba jei jūs tai darote kaip parašiau žemiau
gausite raktus ir vertybes.
Turite foreach elementą iš masyvo masyvo ar porai užpleištuotos vertės
arba tiesiog vertė.
Priklausomai nuo to, ko jums reikia, jei jums nereikia raktus,
tada jūs galite eiti su verte.
Jei norite, raktai, galite eiti su jais.
>> [Charlotte] Taip pat supratau, kad mes niekada pareiškė, i ar linijoje.
Kaip jis net nežino, ką jie?
[Nate H.] Ką reiškia deklaruoti?
[Charlotte] Mes niekada papasakojo jiems, kas i arba eilutės reiškia.
[Nate H.] Mes niekada sakė kompiuterį, ką aš linija reiškia, kalbant apie
[Charlotte], kad jie indeksuoti arba, kad Jie-
[Nate H.] Mes niekada nesakė, kad tai turėtų būti indeksas arba raktas ir vertė,
ir tai yra todėl, kad tai PHP interpretatorius.
Tai tarnauja kaip deklaraciją ir sako gerai, svarbiausia bus
kintamasis vadinamas saugomi kintamasis vadinamas i.
Vertė bus saugomi kintamasis vadinamas linija,
todėl tai tarnauja kaip šių kintamųjų deklaracijos
ir sako, $ i yra pagrindinis, ir $ linija vertė.
Taip, Ella.
[Ella] Jei raktus nebuvo padaryta skaitmeniniu būdu
kaip jis sprendžia, kokia tvarka jis ketina spausdinti viską?
Tai tiesiog patinka tvarka, ji įrašoma į?
[Nate H.] Leiskite give it a try.
Kurkime kintamasis vadinamas ARR,
ir mes galime padaryti eina iki 7.
Tarkime, kad 0 eina į kitą masyvą su 1, 2 arba Apple.
Tarkime, 7 eina į 1, b eina iki 2,
ir 3 eina iki 4.
Tai rūšies crazy ieškote pavyzdžiui, todėl, kad mes maišyti
styginiams ir sveikieji skaičiai visur.
Nėra jokio realaus siekiant šio masyvo.
Aš turiu galvoje, mes galime užsisakyti viską abėcėlės tvarka pagal klavišų.
Mes galime užsisakyti viską abėcėlės tvarka pagal vertę.
>> Galėtume pabandyti ir atsižvelgti į tai, kad kai kurie stygos, kai yra int,
ir mes galime pabandyti ir konvertuoti juos visus į tos pačios rūšies ir žiūrėsime kas atsitiks,
ar mes galime laikyti juos vertę, kurioje jau įrašyti į juos
kai mes šį vaikiną pirmasis, tai antras vaikinas, tai trečiųjų vaikinas
tai ketvirta, Et cetera vaikinas.
Pažiūrėkime, kas atsitinka, kai mes paleisti šį kodą.
Jei mes slinkite žemyn ir padaryti tos pačios rūšies dalykas,
ir čia jis nespausdina naujų linijų.
Kai jis perskaitė dalykų iš failo įskaitant naujų linijų reikšmes,
kuris buvo, kodėl ji atspausdinti gražiai, o šiuo atveju jis to nepadarė,
todėl tai, kodėl viskas yra smushed kartu.
Pridėkime toje naujojoje eilutėje, tik, kad viskas gražus.
Tegul iš naujo paleisti jį, ir todėl čia
pažvelgti į tai, kas atsitiko.
Jis atspausdintas viską tokia tvarka, kurioje mes įdėti ją į masyvo.
Ji išsaugoti tvarką, šia prasme.
>> Grįžtant prie šios problemos Unikalus
kur mes norime, kad būtų galima pakartoti per failą,
ir mes suteiksime jai some_file.txt,
ir mes ketiname pakartoti per jį, kaip šis.
Mes sakėme, kad mes norėjome naudoti masyvą įsitikinti, kad mes norime gavo visi
unikalus linijos iš ten, ir mes galime padaryti, kad tikrai lengvai
tiesiog saugoti masyve, kad mes, žinoma, ne kilpa, paskelbti,
ir mums sakė, kad jei mes naudojome raktus eilutes faile mūsų masyvas
įžengėme į pasikartojančius linija mes norime būti neatsižvelgti į ankstesnį vertę.
Tai ne tik įmanoma, turi 2 raktus, kurie yra identiški tame pačiame masyve.
Mes galime padaryti tik tai.
Mes atsikratyti šio aido ataskaitoje čia.
Čia mes saugoti eilutė faile mūsų masyvas
naudojant kaip raktą.
Niekas į jį, ir paaiškėja, kad mes net nereikia šį klavišą.
Mums nereikia, kad aš kintamasis.
Šiuo metu, jei mes padaryti kitą foreach kilpa
ir mes buvome kilpa ant kiekvieno ARR
ir linijos dabar, jei mes echo-Oi, atsiprašau.
Mes negalime naudoti kablelį. Mes turime naudoti tai kaip raktinį žodį.
Dabar, jei mes echo linija, mes turime gauti iš unikalių žodžių bylos.
Jei mes einame į some_file.txt
ir tegul sako, kad mes darome, obuoliai, bananai, obuolių, obuolių, bananų,
jei mes spausdinti šį failą iš unikalių žodžių turėtume gauti tik
obuolių ir bananų atsispausdinti.
Jei mes taupome tai, dabar čia mes padidinti atgal
Php unique.php, ir ta-da.
Mes sėkmingai uniqued failą.
>> Baigiamoji dalis šios problemos klausia galite rūšiuoti prieš šį masyvo Jums atspausdinti jį
nes šiame paprastame pavyzdyje, kad mes ką tik padaryta
mums pasisekė ta prasme, kad failų
mes padarėme šį nenatūralu pavyzdį su obuoliais ir bananais.
Jis jau buvo surūšiuoti.
Tačiau naudojant paprasta rūšiavimo funkcija galite rūšiuoti masyvo, kuris yra gana madingas.
Galutinis dalykas, aš norėjau kalbėti su jumis, vaikinai, apie tikrai greitai
yra tai, kad toks PHP yra viskas gerai ir gerai, ir tai super patogu
žinoti, kaip daryti, jei Jums kada nors reikės daryti mažai, greitai daikto programiškai.
Pavyzdžiui, jei man reikia parašyti programą, kad, tarkim,
kelia visiems į sekcijas, aš nesiruošia eiti ir rašyti C.
Tai bus ilgas.
Tai bus rūšies skausmas, ypač jei yra rinkmenomis,
tik kaip jus vaikinai mačiau.
Tai taip malonu, kad tik su šiuo daug code čia
mes buvome gali zgrać per failą, ištraukti visas unikalias reikšmes
ir spausdinti juos atgal.
>> Tačiau jūsų užduotis, jūsų projektams,
jei jūs kurti internetinius puslapius su PHP, kad galia yra
mes veikia mūsų PHP failus per šį vertėjo
ir vertėjas tvarko viską per PHP,
paliekant visa kita nepaliesta ir spjaudytis iš rezultatų.
Mes galime tai padaryti, sukurti HTML programiškai.
Dabar, jei mes einame atgal į spec, paskutinė problema spec
kalbama apie šios koncentracijų idėjos
ir sukurti išplečiamojo meniu,
kurį gali arba negali norite daryti, priklausomai nuo to, ką jūsų galutinis projektas daro,
, kuri leidžia vartotojui pasirinkti iš visų galimų koncentracijų sąrašą
jų viena koncentracija.
Dabar, tai yra rūšies skausmas, įrašykite šią
ir turi daryti visa tai rankiniu būdu, ypač jei jūs įsitikinkite, kad
kad, jūs turite visas laužtiniuose skliaustuose tinkamoje vietoje ir visus citatos tinkamoje vietoje,
su PHP, galite tai padaryti programiškai, ir jūs galite tai padaryti labai greitai.
>> Pažiūrėkime, kaip tai padaryti.
Mes ketiname atverti naują failą.
Mes ketiname įdėti į mūsų PHP žymių.
Mes ketiname jį vadinti concentrations.php,
ir dabar, kai jūs darote tai, tipo geras dalykas galvoti apie
kai bandote sumaišoma ir suderinti savo PHP ir HTML
yra suprasti, gerai, kas yra dalis, kad aš noriu programiškai sukurti?
Kokia yra dalis, kad galiu programiškai sukurti?
Tai tiesa, kad jūs galite padaryti savo HTML
viduje PHP blokų.
Galite pakartoti, kaip stygos HTML.
Pavyzdžiui, jei aš noriu pradėti daryti pasirinkite Žymos viduje PHP
Galiu pasakyti, aidas, pasakyti, pasirinkite pavadinimas = koncentracija,
ir tada žemyn žemiau aš turiu kitą echo tegus
arba kitas echo vadinamas arti pasirinkti.
Tai vienas iš būdų tai padaryti, nes tai, kas tai yra tiesiog ketinate daryti
atsispausdinti šią eilutę, kai jis eina per PHP vertėjo,
todėl rezultatas bus HTML.
Jei išsaugosite šį failą tokį, koks jis yra dabar
ir aš paleisti php concentrations.php
pažvelgti, ką aš turiu.
Aš gavau šį Atidaryti Uždaryti pasirinkite žymą.
>> Jei aš būčiau tai padaryti, ir aš buvo įrašyti šį rezultatą į failą,
pasakyti, concentrations.html-palaukti, atrodo kaip l perėjo į kitą pusę
dabar, jei aš atverti čia concentrations.html matote, aš turėti galiojantį HTML failą.
Ar tokia keista?
Mes naudojame PHP sukurti HTML, kurti galiojantį HTML.
Kaip mes darome tai yra, mes tiesiog PHP spausdinti
HTML, kad mes norime, kad ji spausdinti.
Tai yra tiesiog kaip PHP interneto svetaines, dirba.
Kai apsilankote svetainėje, kad siunčia jus į kažką panašaus į
kažkas, kažkas, kažkas dot com įžambus brūkšnys index.php
kompiuteris yra tiesiog iškviesti index.php,
paleisti jį per PHP vertėjo, ir neatsižvelgiant į šiukšlių išeina
ji atsiuntė atgal į naršyklę ir sako: hey, naršyklė, interpretuoti tai kaip HTML.
Malonus dalykas yra tai, kad ji gali būti skausmas nuolat rašyti echo, echo, echo, echo
ir pridėti viską į kabutes, kaip šis, todėl, jei norite rašyti
HTML, kad ketina būti statinis save jūs galite tai padaryti, kaip tai,
jį lauke, uždaryti,
ir tada čia jūs tik įdėti viduje PHP žymių, kad jūs žinote,
norite programiškai kurti, ir šiuo atveju tai yra tie variantas žymės
kad yra skausmas kurti.
>> Pavyzdžiui, mes galime sukurti tūkstantį variantas žodžius
daryti kažką panašaus į tai, $ i <1000, i + +
ir sako: echo sandorių vertės = $-oi, aš negali padaryti, kad.
Ką gi, give it a try ir pamatyti, kas atsitiks.
$ I ir tada sakydamas $ i </ option.
O ne, tipo, kad pasirinkimas žymeklį tūkstantis skirtingų kartų
Aš naudoju PHP kodą generuoti automatiškai, programiškai.
Rūšies madingas. Taip.
Aš atsimenu, tai paminėta nei paskaitos ar Walkthrough,
bet koks skirtumas tarp kabučių,
normalus tie ir vieno šios dalykų?
, Kad tikrai kažkas, kad aš neteisingai čia, kad aš buvau ketinate parodyti jums.
Apostrofai neleidžia jokių specialių simbolių,
kad viskas viduje vieną cituojamą eilutę aiškinti pažodžiui.
Jei aš turėjo \ n vidinė viengubomis kabutėmis ir išsaugoti tai, pavyzdžiui,
o dabar aš einu žemyn čia ir paleisti jį
Oi, kur aš einu?
Oh, tai todėl, kad aš pamiršau $.
>> Dabar, jei aš atverti iš tikrųjų, čia, mes atsikratyti įvesdami jį į failą.
Mes tiesiog jį perskaityti.
Čia jūs matote, kad aš turiu šis pažodinis \ n eilutės, kaip ir ne faktinė naują eilutę,
ir panašiai, o ne iš tikrųjų interpoliuojant šis kintamasis vertę
ji davė man $ i, kuris yra tipo skausmas.
Būdas išspręsti šią problemą yra naudoti dvigubas kabutes,
ir tada, kai jūs naudojate dvigubas kabutes, tai tikrai bus
tinkamai interpoliuoti visų šių kintamųjų reikšmes čia
ir taip pat pripažįsta šį \ n nauja eilutė, kad ji yra
, o ne \ n.
Naudodami vieną yra gražus, kai jūs turite
simbolių, kurie gali būti aiškinami kaip specialių simbolių, nes tada jums nereikia turi
nuolat nuo jų pabėgti.
Daiktai gali gauti purvinas, ir dažnai, kaip man tai padaryti,
tiesiog, kad viskas paprasta, yra tai, kad, jei aš turėti nieko
HTML patinka mano kodas, aš redaguoti per viengubomis kabutėmis
ir tada naudoti šį sąryšis operatorių
Jungiant kintamuosius in
Tai dar vienas būdas tai daryti
kur mes turime tašką, kuris ketina prisijungti tai yra eilutė
tai su
ir dabar aš neturiu turite pabėgti šias kabutes.
Aš neturiu naudoti šią vaikinas pabėgti.
Jie tiesiog būti spausdinami taip, kaip kabutes ir tada šis vaikinas čia.
Tai dar vienas būdas maišyti viskas kartu.
>> [Studentų] Taip pat, kai jūs atkartojo gettype buvo kabučių.
Teisus, todėl ECHO yra specialios rūšies, ta prasme, kad jums nereikia skliaustus.
Jums nereikia turėti Kabutės būtinai apie kintamuosius,
kaip tai pagrįsta sakyti, echo $ i, ir ji ketina interpretuoti kaip eilutę.
Jis ketina padaryti dauguma, todėl galėtume tai padaryti, ir tai galioja taip pat, bet mums nereikia.
Tai neprivaloma.
Šią savaitę problemą, atkreipti dėmesį, daug tokio daiktų
kur jūs maišymo ir atitikimo HTML su PHP
vien štai tai ir dabar, jei mes slinkti atgal ir mes paleisti šią
matome, kad mes turime visą krūva pasirinkimo vertybių
just got atspausdinti.
Mes turime visą sugeneruotą HTML kodą, kad gavo labai greitai mums.
Aš palikti jį kaip naudotis.
Jis labai panašus į bylos svarstymu, kad mes padarėme anksčiau.
>> Yra concentrations.txt failą, kurį galite išgriauti iš CDN,
ir jūs galite jį atidaryti naudojant tą patį foreach apgauti, kad mes padarėme anksčiau,
ir foreach, jums tereikia pakartoti pasirinktį ir prijunkite
atitinkamas vertes, atitinkami raktai ir indeksai
ir tada jums lašas nustatyta, kad tiesiog sukuria
programiškai jūs visi iš skirtingų koncentracijų Harvardo universiteto.
Patogus dalykas turėti.
Yra daug konfigūravimo stuff šią užduotį.
Jei to dar nepadarėte, tai jau kitą pusvalandį, valandą,
tam tikro laiko šį vakarą tikrai tikrai,
vaikščioti per problemą, spec,
pamatyti, kas vyksta su vhosts, mašinoje, visi, kad kita.
Vienas dalykas, kad atkreipti dėmesį į dabar yra tai, kad
daugeliu probleminių rinkinių mes jau vyksta į savo Dropbox aplanką
problemą, zip failą ir tada atsisiųsti ir rozpakowywania jį.
Norėdami išspręsti šią užduotį nustatyti nenorite.
Jūs norite eiti į šią vhosts knygos.
Jūs norite eiti į vhosts ir eiti į vietos priimančiosios kataloge joje,
ir tai, kur jūs norite nugriauti zip failą,
išpakuokite jį ir ruoštis eiti.
Jūs turite atlikti šiuos veiksmus atidžiai.
>> Jei turite kokių nors klausimų, siųsti elektroniniu paštu, įdėti jį į Aptarti, ateiti į darbo valandomis.
Ačiū vaikinai. Kitą savaitę, mes ketiname turėti apžvalginį viktorinoje.
Mėgaukitės paskutinė problema rinkinį. Aš tikiuosi, kad viskas eina labai gerai.
[CS50.TV]