[Powered by Google Translate] [Seksyon 8] [Mwens Alèz]
[Nate Hardison] [Inivèsite Harvard]
[Sa a se CS50.] [CS50.TV]
>> Byenveni nan dezyèm nou an nan seksyon an dènye.
Nan semèn sa a nou pral pale sou PHP, ak Lè sa a, semèn pwochen
n ap fè yon revizyon ti kras pou kwiz 1.
Nou pwal kòmanse nan paj 3 nan pwoblèm la kouche pake,
epi n ap travay nan seksyon an nan kesyon jistis byen vit.
Nan paj 3 a, nou kòmanse pale sou sa a diferans ki genyen ant C ak PHP
nan sans ke PHP se yon lang dynamique tape,
Lè nou konsidere ke C a statik tape,
ak gen yon moun reyèlman byen vit fè nenpòt kodaj nan yon bagay tankou PHP
oswa Piton oswa Ruby anvan, JavaScript?
Totalman nouvo? Oke.
>> Tout nan lang sa yo ke mwen jis mansyone
yo trè diferan ki soti nan lang tankou C ak C + + Java ak
nan sans ke lè ou deklare yon varyab ou pa bezwen deklare
ki kalite varyab li se, konsa nan C nou te kole gen yo toujou di
sa a ki pral yo dwe genyen yon varyab Int, oswa sa a se pral gen yon varyab * Char,
Lè nou konsidere ke ak PHP, ak Piton, ak Ruby,
ki gen yon anpil nan lang sa yo pi plis modèn ou pa bezwen fè sa nan tout.
Ou jis deklare varyab ou a, epi nan ka a nan PHP
ou deklare ke li nan yon varyab pa prefiks l 'ak yon siy $,
ak Lè sa a, se kalite a nan varyab la detèmine pa tou sa valè li nan kenbe,
ki yon jan fre.
Yo jwe nan ak sa a yon ti jan, nou gen echantiyon PHP kòd dwa isit la
nan ant etikèt yo kòmanse ak yon fen.
Nou ap lè l sèvi avèk sa a kalite tankou HTML nan sans ke
nou te gen sa yo parantèz ang isit la yo ouvè epi fèmen.
Ou pral wè sa ak HTML.
Ou pral wè sòt nan menm nan sentaks ak XML tou.
>> Sa endike nan konmansman an nan yon blòk PHP.
Sa a php? A espesifik a PHP.
Nou fèmen tout bagay ak yon? Byen> kòm.
Se pou nou louvri moute yon dosye ki nan aparèy nou an lè l sèvi avèk tou sa ou ta renmen.
Nan pake sa a li di yo rele dynamic.php.
Nan verite, ou ka rele li tou sa ou ta renmen, men non an dosye ap vini
yo epi yo dwe enpòtan pita, se konsa jis sonje tou sa ou rele li.
Mwen pral chanje sou nan aparèy la,
ak mwen pral fè yon anyè pou
seksyon 9 Mwen kwè nou ap nan kounye a.
Epitou, n ap antre nan seksyon 9,
ak mwen pral sèvi ak jdi.
Ann gade pou wè, jdi, ak mwen pral rele m 'dynamic.php.
Boom.
Nan dynamic.php, depi sa a se yon dosye PHP
e mwen vle kouri sa a nan entèprèt la PHP
Mwen bezwen kòmanse tout bagay nan ak sa yo tags ouvè,
se konsa mwen pral kòmanse sa yo touswit,
bay tèt mwen yon espas ti kras nan ant etikèt yo,
ak Lè sa a, pwen nan egzèsis sa a te jwe otou ak
sa a fonksyon rele gettype, se konsa gettype, sa a fonksyon dwa isit la.
>> Remake gen nan pa gen souliye oswa espas oubyen tirè oswa yon bagay tankou sa
separe mo yo 2, jwenn ak tape, jis yon mo tout ansanm.
Men, sa ki sa a ap fè se si mwen pase nan yon varyab gettype,
di $ var oswa $ x,
sa a ap fè m 'konnen kalite nan yon fòma debogaj
ki sa non an nan ki kalite se.
Nou pwal fè eksperyans isit la.
An patikilye, si w gade tounen nan pset espèk a
nou te gen yon kèk liy diferan nan kòd isit la.
Nan liy nan premye nan kòd nou inisyalize sa a varyab, $ var,
yo dwe egal a 7yèm, ak Lè sa a, nou gen liy sa a printf
ki di hey, var printf se vid.
Printf se youn nan fason yo anpil nou ka enprime bagay sa yo nan PHP.
Souvan ou pral wè fonksyon an eko itilize olye pou yo printf,
men printf nou tout ki abitye avèk ke nou fin kodaj nan C pou yon ti tan.
Ki sa ou ka aktyèlman fè se kite a wè si kopi ak keratin travay.
Mwen pral bay sa a yon eseye.
Nou pral tounen nan men aparèy la.
Okay, epi gen nou ale.
Ak espas se yon fenki ti kras, men isit la nou ale.
Nou gen sa a kòd nan isit la.
>> [Elèv] Èske li style pa bon tab li?
Padon?
[Elèv] Èske li konvansyonèl tab li?
Dwa, se konsa Sam mande si li nan konvansyon tab li ou pa.
Tipikman wi.
Nan ka sa a mwen te chwazi pa fè sa.
Onètman, ou pral wè bagay sa yo diferan nan mitan pwogramasyon diferan.
PHP se tipikman itilize souvan nan konbinezon ak HTML
ak lòt lang yo, epi konsa pafwa enprime nan pral gade yon ti kras fenki
si ou itilize nan kòmansman PHP ak balises fen.
Li reyèlman depann.
Nan ka sa a kopi a ak keratin pa t 'keratin ongle yo ki nan pou m',
men li definitivman, tankou ou te di, fè l 'pi klè.
Tout dwa, si ou sove sa a kòd nan dynamic.php
Lè sa a, ki sa ou ka fè se desann vin jwenn fenèt tèminal ou kote mwen menm dwa desann isit la
nan jdi, ak fè ekivalan a nan konpile
lè l sèvi avèk fè ak Lè sa a, kouri kòd ou a nan C
tout sa ou dwe fè ak dosye a PHP se kòmanse moute entèprèt la PHP,
ki se yon pwogram ti kras rele PHP,
ak agiman ou bay la entèprèt la se dosye a ou vle entèprete.
Nan ka sa a, dynamic.php.
Whoops, kote mwen te mete l '?
Oh, mwen mete l 'nan seksyon 9, ak isit la mwen ye menm. Se poutèt sa.
>> Koulye a, si mwen kouri sa ankò
nou wè ke nan rele premye fwa mwen gettype fonksyon
var se yon nonb antye.
Nan var nan pwochen se yon sèl yon fisèl, ak Lè sa a, nan var nan twazyèm yon sèl se yon Boolean.
Ki sa ki nan enteresan sou sa a se si nou woulo liv tounen moute nou wè ke
sa yo, se kalite ki sanble ak sa yo ki nou te gen nan C.
Nou te gen antye nan C.
Nou sòt de te gen strings nan C,
Se konsa strings yo pa t 'yon kalite totalman legi nan sans ke
fisèl CS50 nou an te vrèman ki sa?
Padon? Missy?
[Missy] Char *.
Yeah, li te sa a * Char nou itilize yo.
Nan kòmansman la anpil nan semès la nou te lè l sèvi avèk kalite nan fisèl,
men li te reyèlman yon * Char anba kapo machin lan.
Nou jis kalite defini li, Lè nou konsidere ke nan PHP sa yo strings yo se yon kalite vrè.
Gen nan pa gen plis nan bagay sa a kalite * Char.
>> Ou pral wè ke nou ka fè anpil bagay plis ak strings
pi plis fasil nan PHP pase nou te kapab nan C,
yo, epi finalman, nou gen sa a ki kalite Boolean, epi diferans nan gwo isit la se ke
si nou woulo liv tounen desann nou wè ke non an nan sa yo kalite
yo kounye a se nonb antye relatif, fisèl, ak Boolean olye pou yo int ak bouleen,
ak jan ou ranmase lang programmation diferan,
an konsideran ke nan kèk pwen nan lavi ou, ou pral vin an kontak avèk
moun diferan ou pral avi Kapris ti kras tankou sa a
kote C rele nonm antye relatif antye.
Gen kèk rele li nonm antye relatif.
Gen lòt tèm ke ou pral kouri antre nan.
Big int nou te wè jodi a nan SQL.
Genyen tou nimewo ak Lè sa a, bouleen, Boolean,
tout kalite diferans la.
>> Sa a se pa fò anpil enteresan Men, koulye a mwen pral ba ou yon ti kras nan tan-
si nou rale tounen soti-a ap travay nan egzèsis sa a nan fon an nan paj 3
kote li mande ki kalite koresponn ak valè sa yo isit la nan pati anba nan.
Nou gen 3,50.
Nou gen bagay sa a isit la, ki se enteresan.
Nou pa t 'wè sa anvan, menm si si ou ve yo te swiv ansanm nan konferans
ou pwobableman deja konnen ki sa ki se.
Lè sa a, nou gen sa a, ki sa a se kalite Funky.
Ou rekonèt sa.
Ki sa ki se sa a nan C?
Sam? Ki sa ki ta sa a ba ou nan C?
Li ta louvri yon dosye rele dynamic.php, epi fè li lizib.
Yeah, ak sa ki ta ki kalite varyab ke nou ta bay sa a fè? Zetwal File >>.
Egzakteman, nou ta bay sa a nan yon etwal dosye-a.
Sa a se PHP lejitim tou.
Kouri sa. Al gade nan sa ki pase lè w fin pase ki nan gettype.
Lè sa a, tcheke tou soti sa ki nil se, ki sa ki ki ta ka nan PHP.
Mwen pral ba w yon minit koup.
Ou kapab literalman kopye ak keratin valè sa yo nan,
ak Lè sa a, n ap fè yon ti kras rele o aza sou ou
ak wè sa ki ou te resevwa.
>> [Elèv] Mwen gen yon kesyon. << Yeah.
Nan youn nan konferans yo David te di: gen nan yon bagay ou ka mete nan tèt yo nan dosye ou
pou ke ou pa bezwen tape nan PHP chak fwa.
Ki sa ki te sa?
Li te pwobableman ap pale de bang nan liv, bang lan regle.
Li se yon direktiv ke si ou make dosye ou tankou ou ègzèkutabl
Lè sa a, ki sa li fè, se lè ou egzekite dosye a
li pral di pwogram nan koki
yo sèvi ak entèprèt la PHP ka esplike nou rèv sa ki nan dosye a.
Kesyon an ke yo te sa ki te liy sa a espesyal
ke nou ka gen ladan nan tèt la nan dosye PHP nou pa bezwen mete non
sa a PHP liy oswa lòd sa a PHP chak fwa nou vle egzekite dosye a?
Epi ou ka aktyèlman fè sa a ak yon pakèt moun sou dosye diferan.
Mwen kwè ke li depann sou ki kote binè nan PHP estoke,
men souvan uzr / bin / php se yon bon plas yo kòmanse.
Ou ka figi sa a soti egzakteman pa pral tounen desann nan aparèy ou an
ak sezisman konnen ki php.
Lòd la ki figire lè w ap egzekite binè
oswa yon lòd kote dosye ki koresponn lan se.
Sa a di m 'ki PHP a se vrèman alyas sa a ranpli binè
ki nan ki estoke nan uzr / bin, ki se kote yo yon anpil nan binèr yo sistèm enstale.
Pou egzanp, si mwen woulo liv moute sou tèt la, kounye a ke mwen te mete sa a #! liy nan isit la
Mwen ka desann, epi mwen ka eseye kouri
dynamic.php, men mwen jwenn sa a erè sou pèmisyon yo te refize,
epi ki sa sa vle di se ke sa a ranpli se pa sa kounye a bay otorizasyon ègzèkutabl.
Li pa nan ki make kòm yon dosye gen yon moun ki ka kouri.
>> Lè ou kouri al fè oswa rezone, epi ou te resevwa yon ègzèkutabl soti nan li
du a te entelijan ase konnen ke hey, mwen bati yon ègzèkutabl.
Ou pwobableman vle egzekite li, se konsa li ta otomatikman konfigirasyon
otorizasyon yo pou ou.
Sa a se pa ka a, menm si, lè ou kreye yon dosye nòmal nan grafouyen,
rezon ki fè yo ke yo te tipikman ou pa vle gen nenpòt dosye sou sistèm ou a dwe ègzèkutabl,
konsa ou gen aktyèlman ale nan ak Manuel fè li.
Fason ki pi fasil fè li se ak yo lòd, ki chmod,
ak chmod + x di ajoute ti jan nan ègzèkutabl
paske gen nan ti jan a li, ti jan nan ekri ak ti jan nan ègzèkutabl,
R, W ak x,
yo t'ap di konsa chmod + x ap vire sou ti jan an ègzèkutabl
Lè sa a, pou dosye a ke nou presize, ki nan ka sa a yo pral dynamic.php.
>> [Elèv] se ke vire sou pou tout moun?
Se pou nou tcheke sa a soti, kidonk kouman m ta tcheke wè otorizasyon yo?
ou konnen ki jan mwen ta tcheke wè otorizasyon yo nan yon dosye?
[Fèbl repons elèv]
Padon? >> [Elèv] kss.
Kss ban nou dosye a nan antay.
Lis tout dosye yo,-l, yo pral montre m tout dosye yo nan anyè mwen
kalite nan tan yo, lis sil, e konsa isit la nou wè ke
sa a ranpli dynamic.php
te edite Novanm 5yèm nan PM 4:21.
Pwopriyetè a sa a ranpli jharvard.
Sa a itilizatè a ki moun ki louvri sesyon pous
Sa a itilizatè a, mwen ap travay kòm,
ak si w ap tou nan aparèy la w ap travay tou kòm jharvard itilizatè.
W ap nan gwoup la elèv yo,
ak sa yo, se bagay sa yo ke ou pral wè ase souvan.
>> Nou ka ale nan yon anpil nan detay isit la,
men pou pati ki pi sa ou vle fè yon gade nan lè ou ap chache wè
si ou pa yon dosye se ègzèkutabl se sitou
itilizatè a ki posede dosye a, mèt kay la,
kidonk sa a jharvard, ak Lè sa a, nou gen
Bits yo otorizasyon sou isit la sou bò gòch la,
yo ak fason pou yo li sa a se ke ti jan nan dènye
tipikman ki itilize pou nèf semenn klas si wi ou non-omwen nan ka sa a
sa a pral ti jan dènye souvan yo mete anons pou montre pou
ki dosye a se yon anyè epi li pa jis yon dosye nòmal.
Lè sa a, sa yo 3 Bits yo dwa isit la
detèmine otorizasyon yo ki mèt kay la nan dosye a gen,
Se konsa nan sa a jharvard ka, kòm mèt kay la nan dosye a, yo ka li ak ekri sa a ranpli,
, men tou genyen yon priz ki di ke jharvard pa ka egzekite sa a dosye.
Pwochen 3 Bits yo, se pou gwoup la, kidonk sa a se gwoup la elèv yo,
Se konsa, si te gen plizyè itilizatè sou aparèy m 'yo,
epi nou te gen plizyè itilizatè kòm yon pati nan gwoup la elèv yo,
Lè sa a, yo ka tout li sa a ranpli, men yo pa ka ekri li,
ak menm jan an tou nenpòt lòt moun, mond lan
ka sèlman li sa a ranpli kòm byen.
Genyen nan yon bon, writeup long sou sa,
pou ou kapab li sou entènèt.
Nan espèk nan seri pwoblèm nou ale nan sa a nan plis detay.
>> [Elèv] se 218 nan refere li a mond lan?
218 la ap-off tèt la nan tèt mwen mwen bliye,
men pa gen.
Ann gade pou wè. Mwen efasman sou sa kounye a.
Retounen nan ki sa nou yo te apeprè fè ak sa a chmod x +
kote nou te vle ba otorizasyon ègzèkutabl dynamic.php,
ansanm ak kesyon an se te si wi ou non sa a ta bay otorizasyon ègzèkutabl a tout moun
oswa jis jharvard, epi nou ka wè sa a pa
kouri kòmandman yo, epi ou tape ls-l,
e kounye a, nou wè ke li nan te make kòm ègzèkutabl.
Ou wè ke te gen yon chanjman koulè.
Koulye a, dynamic.php yo mete nan vèt,
ak li sanble repons lan nan kesyon an se sa ki, Charlotte?
[Charlotte] Se sèlman jharvard. >> Se sèlman jharvard, yeah.
>> Si nou te vle vire ti jan a ègzèkutabl sou pou tout moun
ki jan ta ka nou fè sa?
Nenpòt panse? >> A + x?
Yeah, egzakteman.
Charlotte di nou ka fè chmod nan yon x + nan dynamic.php,
e kounye a, si nou kouri ls-l nou wè ke ègzèkutabl Bits yo
yo tout bon vire sou pou tout moun.
Epi ou ka aktyèlman fè reverse sa a, kidonk, ou kapab vire li nan pou tout moun
lè l sèvi avèk mwens.
Kounye a li nan etenn, epi kounye a nou ka vire li sou do yo pou jharvard
pou nou ka aktyèlman kouri li kounye a,
e kounye a, ou wè lè nou kouri kòd la sa a espesyal #! liy nan tèt la,
#! liy, te di koki a,
te di tèminal nou hey, lè se sa a ranpli kouri,
itilize / uzr / bin / php ka esplike nou rèv sa a ranpli
ak Lè sa a, enprime pwodiksyon an.
[Fèbl kesyon elèv]
Asire w, kite m 'woulo liv tounen moute. Jis tankou sa a.
Ou pral wè tout moun sa yo direktiv kòmanse ak sa a liv ak Lè sa a, pwen an esklamasyon,
pafwa yo rele yon kaz, regle bang.
>> [Elèv] Ki jan nou ka kouri l 'ak dynamic.php php anvan nou fè l' ègzèkutabl?
Kesyon an te ki jan nou ka kouri sa a lè l sèvi avèk binè nan PHP
pandan y ap dynamic.php se pa ègzèkutabl?
Sa a se super enpòtan paske sa a se egzakteman ki jan
li pral travay lè ou ekri seri pwoblèm 7.
Pifò nan dosye yo lè PHP se pa dirèkteman ègzèkutabl.
Fason la ki ap travay se paske li nan binè nan PHP sa a, se ègzèkutabl.
Entèprèt la se bagay ki ke k ap egzekite,
ak Se konsa, sa li a ap fè se literalman slurping nan sa ki tout antye
nan dynamic.php dosye nou yo ak pral liy pa liy
e pou fè pwomenad sa yo kòmandman, se konsa li a lè l sèvi avèk dosye PHP nou
kòm yon lis enstriksyon yo.
Li pa nan dirèkteman pwomenad li.
Sa a kote nou di sa yo dosye yo entèprete nan moman kouri.
Li se yon lang tan kouri olye pou yo yon bagay ki nan detèmine nan moman konpile,
pa yon lang konpile tankou C.
>> Èske gen yon fason yo ka resevwa yon lang tan kouri yo aji kòm si li nan yon lang tan konpile,
renmen si w gen tout kouri a fè nan sèvè a
olye ke-w konnen ki sa m 'vle di?
Wi, se konsa kesyon an se
ki gen la yon fason jwenn kouri lang tan yo aji plis tankou kalite tan konpile nan lang?
E gen, mwen vle di, ki se yon zòn ki aktif nan rechèch pou yon anpil nan konpayi sa yo.
Mwen kwè Facebook te fè yon anpil nan travay ak PHP
ak konpile li desann, fè li pi vit, optimisation li
depi se sit yo bati sou PHP.
Si w te te swiv node.js nan tout,
ki se kalite yon entèprèt JavaScript
pou kapab kouri JavaScript deyò nan navigatè a, andeyò navigatè entènèt ou a,
paske tradisyonèlman JavaScript ta jis kouri andedan nan Firefox Chrome oswa,
epi li ta dwe itilize yo fè Animations fre rive sou yon paj entènèt
epi fè paj entènèt ou an dinamik.
Sa se te bati sou yon anpil nan travay ki Google te fè
fè JavaScript ak C + +
mare ansanm, se konsa gen nan yon anpil nan rechèch aktif
jwenn sa yo lang yo kominike ak optimize yo,
prensipalman paske pou anpil moun ka Kòd nan PHP ak JavaScript
paske li nan yon anpil pi fasil.
Li se yon anpil joli. Ou pa gen endikasyon.
Ou pa gen kalite waf alantou.
Yo te vle jwenn benefis yo nan lang sa yo tan konpile
ak tout kont kouran nan kalite ak vitès la ak l 'a memwa pi ba ak nan tout sa
pandan yo toujou kenbe fleksibilite a ak fasilite la itilize nan timoun sa yo plus.
>> Retounen nan orijinal plan nou an atak.
Nou te gen yon kèk nan kesyon sa yo isit la nan espèk seri pwoblèm nou yo.
Ann al nan yo vrèman byen vit, epi nou pral nan sal la.
Charlotte, ki kalite se 3,50?
[Charlotte] Sa se yon doub. >> Li se yon doub.
Jimmy, ki sa ki yon sèl sa a vin apre a? >> Yon etalaj.
Yon etalaj, awizom, epi Jerèd, ki sa ki fopen a?
[Jerèd] Li se yon resous. >> Li se yon resous.
Sa a kalite yon nouvo, pa yon etwal dosye, se pa yon dosye.
Li se yon resous se tip a nan PHP,
epi mwen regrèt sa, Ella, nil a pase a se ki sa?
Nil.
Nil, ki jan li eple nan PHP? >> Menm jan an.
Menm jan an, kapital? >> Yeah.
Yeah, tout dwa.
Isit la nou ale, nou te gen yon doub, nou te gen yon etalaj,
nou te gen yon resous, ak Lè sa a, nou te gen nil.
Ann wè koulye a gen ou te wè-
kite a wè sa, koulye a mwen devine sa m 'tou vle fè se rale moute
paj sit entènèt sa dwa isit la, sa a php.net / manyèl,
Se konsa, si ou nèg kopye sa ki epi louvri moute yon navigatè entènèt.
Mwen pral rale moute Chrome, mete sa pous
Mwen vle montre w sa a pa sèlman paske
nou ka pale tout jounen sou kalite ak tout sa ki bagay plezi
men pito paske sa se manyèl la PHP,
e gen yon anpil nan pwogramasyon PHP yo deyò.
Gen yon anpil nan sit entènèt PHP deyò,
e kòm yon rezilta, gen yon anpil nan dokiman yo nan PHP,
ak manyèl la, sa a php.net, se yon kote reyèlman bon yo ale
chak fwa w ap fè kesyon sou sa ki nan pi bon fason yo fè X nan PHP
oswa sa ki yon fonksyon sanble?
Jis kalite a ap resevwa abitye avèk ki sa sa a sanble paske
ou pral vini isit la souvan, yon ti jan pou pwoblèm mete 7.
>> Si ou fini yo ap fè yon pwojè final ki itilize PHP
sa a pral yon kote ki ou pral vin trè byen konnen ak.
Souvan fason moun fè sa se yo itilize Google pou fè rechèch pou sit la,
e yo pa sèvi ak bwat rechèch la ki nan moute isit la nan dwa nan tèt, ki se kalite ti.
Si w ap Googling alantou pou yon bagay fè ak PHP ak ou wè
youn nan lyen yo manyèl pòp moute ou ka tipikman konte sou ki
kòm yon resous san patipri bon.
Awesome, se konsa soti nan sa yo kalite, jis soti nan kiryozite,
ki sa nou pa t 'wè?
Nenpòt bagay nou poko janm wè isit la?
[Elèv] Resous. >> Nou te wè resous ak apèl la fopen.
[Elèv] objè yo. Objè >> nou pa t 'wè pou asire w.
Rapèl nou pa t 'wè.
Gen kèk nan sa yo kalite pseudo-.
Nou definitivman sèlman wè nonm antye ak doub.
Nou pa t 'wè kèk lòt moun ki, konsa si nou klike sou nonm antye relatif
nou ka wè èske genyen kèk nonm antye relatif lòt yo ke yo gen isit la?
Èske yo tout-konsa nonb antye relatif, nonb antye relatif, antye ki pè.
Gen kèk lang ki gen pi gwo kalite nonb antye relatif,
tankou nou te wè sou miskl jodi a te gen int ak Lè sa a, int gwo.
Fre.
>> Se konsa, PHP manyèl.
Se pou nou tounen nan espèk seri pwoblèm nou yo, epi nou pral kounye a woulo liv desann nan paj 4 la.
Youn nan bagay ki sa ki ap pase lè ou jwenn lang sa yo
ki pa gen sa a sezisman estatik, se konsa lang sa yo kote ou kapab deklare
kalite a nan yon moute devan varyab
se ou jwenn ka kote ou ta ka kòmanse gen varyab nan diferan kalite
kominike youn ak lòt,
ak PHP fè bagay sa a kote li eseye fè
ki sa li konsidere kòm yo dwe bagay ki pi sansib yo fè
lè ou gen 2 diferan kalite kominike youn ak lòt.
Pou egzanp, si nou gade nan liy sa yo nan kòd dwa isit la
ou wè sa a nou te gen sa ki pase lè
nou eseye epi ajoute fisèl la 1 a 2 an antye ki pè.
Kisa kap rive si nou eseye epi ajoute yon kòd ki se pa yon valè nimerik
men pito aktyèl karaktè, CS ak kantite 50?
Lè sa a, nou pral wè èske gen yon bagay diferan ki k ap pase kote
olye pou yo ajoute yon fisèl nan yon nimewo nou ap ajoute yon nimewo nan yon fisèl,
yo ak sou sa ak pou fè nan pwen kote nou ap vin
kèk kalite bagay etranj dwa isit la kote nou te gen 7 + vre.
Ki sa ki èk la sa vle di?
>> Si ou nèg ale pi devan ak keratin kèk nan sa a kòd nan aparèy ou an.
Ou ka kenbe l 'nan dynamic.php.
Nou pral wè sa k ap pase.
[Elèv] Jis itilize ekri ak lèt ​​detache, pa printf?
Yeah, kidonk, ou ap jwenn ki ekri ak lèt ​​detache a tou se yon fonksyon ki valid pou enprime nan PHP.
Gen anpil diferan fason pou fè li.
Nou pral wè ak yon koup nan egzanp yo pita sou yon fwa nou kòmanse pale
sou pwoblèm nan inik ki nou pral ekri
ak Lè sa a, konsantrasyon pwoblèm nan ke nou ap pral ekri
ke menm si nou gen fopen ak fkloz
sa a, se souvan pa chemen an sa ki pi senp li nan sa ki nan yon dosye.
PHP gen yon anpil nan sa yo holdovers C-tankou.
[Elèv] Lè m 'mete nan tout 6 nan bagay sa yo mwen sèlman jwenn youn nimewo kòm yon pwodiksyon.
[Nate H.] Lè ou mete nan tout 6 nan bagay sa yo.
Ann gade pou wè se li paske li nan posib-
yon bagay se ke sa yo apèl ekri ak lèt ​​detache yo pa sispann nan fen a ak nouvo liy.
Gen nan pa gen liy nouvo separe chak nan sa yo ekri ak lèt ​​detache apèl,
sa petèt w ap vin yon sèl gwo nonb,
epi li vrèman jis amalgam de karaktè liy nouvo.
[Elèv] Okay, ki jan mwen asire ou ke-
Oke, gen yon pakèt moun sou fason diferan.
Ou te kapab manyèlman mete nan yon enprime nan yon karaktè liy nouvo,
yon eko nan yon karaktè liy nouvo,
enprime nan liy nouvo.
[Elèv] Se konsa, eko se menm bagay la kòm printf?
>> Printf, se tankou C printf
ki kote ou enprime yon kòd formate.
W ap kap founi bay li fisèl la fòma ak Lè sa a, tout varyab yo kontneur.
Li nan souvan yon bagay ki pa te itilize-
kite a wè, kòm yon avètisman,
Se mwen menm mwens abitye avèk PHP pase mwen la avèk lang wèb lòt,
ak ki lè mwen te pwograme nan PHP mwen tipikman pa sèvi ak printf
paske mwen jwenn li pi vit yo sèvi ak kapasite yo entèpolasyon fisèl ke li genyen,
ki n ap antre nan ak mwen pral montre w nan jis dezyèm yon,
Lè nou konsidere ke nan C nou kalite dwe fè bagay sa a hacky jwenn li nan enprime soti byen.
Ou ka aktyèlman mete varyab dirèkteman nan strings nan PHP.
Printf se kalite tro lontan pou sa mwen konn fè. Wi, Ella.
[Ella] Jeneralman si w ap resevwa erè analizan sa vle di-
tankou sou C li pa di ou egzakteman ki kote erè a se ak sa li ye,
Se konsa sa vle di gade nan kòd ou ak tout figi l?
Li nan tipikman plis vize pase sa.
Mwen panse ke nan ka sa a li te yon koupe ti kras,
Se konsa, mwen panse ke nan ka sa a nou te manke yon virgules.
Li te ap eseye fè sans nan tout bagay,
konsa tankou lang sa yo entèprete, entèprèt la ki pral eseye
epi fè pi byen li yo fè travay tout bagay kòmsadwa.
>> Ou pral wè, pou egzanp, nan JavaScript
ou pral souvan-liy deklarasyon fen ak yon virgules menm jan yo fè nan PHP,
menm jan yo fè nan C.
Nan JavaScript kèk nan entèprèt la JavaScript
nan yon anpil nan navigatè yo pwal mete nan virgules pou ou
si ou rive kapab manke yo.
Yo pral eseye ak akomode pou kèk sloppiness sou pati ou.
Sa a kote li ta ka ap eseye epi eseye epi eseye fè bagay sa yo travay,
yo, epi finalman li pral jwenn nan yon pwen kote li di oke,
Mwen pa ka fè bagay sa yo travay sou bailing, e ke a kote ou pral jwenn yon nimewo liy
ki ta ka sanble yon ti kras nan koupe plas la egzak.
Oke, kidonk kite a ale nan sa a vrèman byen vit.
Nou kite koupe ak Ella, se konsa kite yo ale sou nan Missy,
ak Missy, ki sa ki ekri ak lèt ​​detache nan fisèl 1 plis nimewo 2 a ba ou?
[Missy] 3. >> 3.
ki fè sans? Sòt de?
li ba ou yon nimewo? li ba ou yon fisèl?
[Missy] Yon nimewo. >> Li se yon nimewo.
Men, li la enprime li, konsa li a pral ba ou kèk sòt de fisèl.
>> Youn nan bagay nou ka fè yo tcheke sa a soti
se si nou fè $ var = 1 + 2
ak Lè sa a, nou di eko nan gettype,
pou nou ap itilize yon kalite tyè nan enprime isit la.
Koulye a, nou ka wè kisa k ap rive isit la.
Isit la ki sa nou te gen se nou te resevwa yon nonb antye relatif soti nan sa a.
Menm si nou te ajoute sa a fisèl nan yon nimewo,
nou pa t 'jwenn yon fisèl soti nan li, jis tankou Missy te di.
Nou te resevwa yon antye relatif.
Oke, kidonk kite a wè, pwochen leve, Kevin.
CS + 50? >> [Kevin] 50.
[Nate H.] 50. ki fè sans?
[Kevin] Yeah.
[Nate H.] Poukisa? Poukisa pou l 'fè sans ou menm?
[Kevin] paske li nan jis gen fisèl la, li te gen zewo valè nimewo.
Yeah, gwo.
Kalite sitiyasyon Limit, men li la bon konnen ki sa k ap pase.
Stella, ki sa k ap pase answit avèk nimewo 1 + fisèl 2?
[Stella] 3. >> 3 ankò.
Ak nan ka sa a, nou jwenn yon kòd oswa yon nimewo yon?
>> Se pou nou bay sa a yon eseye.
Nenpòt moun pi vit pase m 'jwenn repons lan? Charlotte?
Oh, mwen did-oke, kite la wè, nou pwal fè sòt nan menm nan bagay
kote nou te gen yon nimewo plis fisèl yon, epi nou ap ale nan eko kalite a,
wè sa nou jwenn.
Nou menm tou nou jwenn yon nonb antye relatif.
Li pa enpòtan ki se yon sèl fisèl la, ki se yon sèl nimewo a.
Nou toujou ap pral jwenn yon nonb antye relatif.
Li nan toujou pral fè sa nou ta ka atann.
Tout dwa, se konsa Sam, sa ki sou 90 + 9 boutèy nan byè sou miray la?
[Sam] 99. >> 99.
Pa gen boutèy nan byè sou miray la, menm si.
Li ban nou enfòmasyon yon ti kras plis sou sa k ap pase.
[Sam] Si ou te ekri 9 nan lèt
Lè sa a, ou ta gen 90, dwa?
[Nate H.] Yeah.
Kesyon an te si nou ta ekri 9 deyò tankou N-I-N E-
nou ta gen vinn 99 oswa 90?
Nou ta jwenn 90.
Li nan literalman jis kap chèche karaktè chif.
Li pa entelijan ase yo rekonèt mo nimewo ak lòt bagay ki. Wi.
>> [Elèv] Èske gen yon bagay konsa kòm typecasting nan PHP?
Gen, epi li egzakteman nan fason ou ta fè l 'nan C.
Ki sa ki sou 10/7, Charlotte?
[Charlotte] 1,4285.
[Nate H.] Yeah konsa, sa ki ta ka etone sou sa a?
Ki sa ki ta rive si ou te fè sa a sòt menm bagay nan C,
si ou te fè 10/7 nan C?
[Charlotte] Li ta sèlman ba ou-depann sou ki jan ou typecasted mwen devine
li ta ba ou sèlman yon kantite limite chif apre desimal a.
Yeah, se konsa yon kantite limite chif apre desimal a.
Ki lòt bagay ta ka-li ta ba ou nenpòt chif apre desimal a?
Souvan se pa sa, sa ankò, depann sou ki jan w ap typecasting li
li ka oswa ka pa konvèti li nan yon nimewo pwen k ap flote.
Isit la li te kalite bèl ke li te fè sa.
Nou te montre ou sa a tounen lè nou te kòmanse ap fè sa a kalite bagay nan C
li pwobableman ki te ka fè yon ti kras plis sans
ke li pa jis ale nan 1.
Lè sa a, finalman, Jamie, sa ki sou 7 + vre?
[Jamie] 8. >> 8.
Kisa sa vle di?
Mwen devine li jis bay vre valè a 1.
Yeah. Kisa k ap pase si nou chanje ke yo fo?
[Elèv] 7.
Yeah, se konsa sonje kote nou pale de valè sa yo binè,
1 yo te sou, 0 ke yo te koupe?
Koulye a, nou gen vre se 1, 0 se fo,
ak ou pa ta ka gen pou wè sa a nan egzanp yo C ke nou te fè sa a semès sot pase yo,
men istorikman kalite a bouleen nan C pa te gen yon kalite reyèl,
Se konsa, pèp ki te itilize 0 ak 1 nan plas la nan vrè ak fo.
Sa a se yon manifestasyon sa.
>> Oke, kidonk yon sèl enpòtan pati a sou tout bagay sa a
se ke nou gen sa yo kalite diferan.
Yo kapab kominike youn ak lòt.
Yo ka souvan kominike avèk chak lòt nan fason ki bèl, jan nou te wè isit la.
Li bon pou kapab gen fil 1 ak nimewo 2 a, ajoute yo ansanm epi pou yo jwenn 3.
Ki fè sans.
Sepandan, lè w ap ekri sou sit entènèt, epi sitou lè w ap trete
D 'itilizatè, se konsa di ou te ekri yon fòm entènèt
ki kolekte enfòmasyon ki soti nan itilizatè a ak Lè sa a, ale nan travay sou li
sou fen a tounen, sou bò sèvè nan kòd PHP ou
si w ap tann ke valè ki itilizatè a tape nan ak soumèt
fòm ou yo dwe yon nonb antye relatif oswa yo dwe yon nimewo pwen k ap flote oswa yon bagay tankou sa
ou bezwen klèman voye l 'jete
ak Lè sa a, fè kèk kont kouran ki kalite.
>> Ou pa vle jis konte sou sistèm sa a Jungle kalite fè bagay sa yo travay deyò,
espesyalman pou rezon sekirite ak jis pou fyabilite nan sit entènèt ou.
Jis yon bagay kenbe nan tèt ou ke chak fwa w ap manyen done fòm,
anyen ki vini nan post la oswa superglobals la jwenn
asire w ke ou toujou valide li epi konvèti li ak kataloge li.
Ak jis tankou nou te pale osijè de yon moman Anons sa pibliye depi ke typecasting
nan PHP se egzakteman menm bagay la tou kòm nan C kote ou gen parantèz yo
ak Lè sa a, kalite a.
Kenbe sa nan tèt li.
Youn nan fonksyon ki pral vini an sou la men lè w ap fè sa a
se nou ve yo te lè l sèvi avèk-yo ak sa a se kalite kòm yon sou kote-
nou ve yo te lè l sèvi avèk fonksyon sa a gettype dwa isit la
figi l kalite a nan yon varyab,
ak pandan y ap sa a se sou la men pou debogaj ak yo wè sa ki kalite yon varyab la se
ou pa ta vle itilize sa, pou egzanp, nan yon kondisyon kote
w ap tcheke yo wè si gettype de $ var = nonb antye relatif fè yon bagay.
Sa a se mal, li mal, move.
Olye de sa, gen sa yo rele fonksyon se nonb antye relatif, se fisèl,
se etalaj ke ou vle sèvi ak olye de sa, se konsa nan ka sa a
ki sa mwen ta vle fè olye pou yo sa a Guy dwa isit la
se itilize se nan var antye ki pè.
Apre sa, yo ap souvan refere se * is_ nan sans ke ou ta ka ranplase * a ak nonm antye,
fisèl, et setra, ak jis asire ou ke reyèlman rapid
sa a se se int php.
Sanble ou ka fè swa se int oswa si yo gen nonm antye kòm byen?
Wi, alyas, se konsa int anpren antye ki pè.
Fre.
>> Kouman yo nou fè la a?
Se pou nou ranmase mach la yon ti jan.
Koulye a, nou ap ale nan pale sou ranje, se konsa kòm ou kapab wè
nan pati nan pwochen nan espèk a nou pale sou fason ranje nan PHP
yo se yon ti kras diferan pase yo nan C.
Nan verite a, yo ap kalite se yon amalgam de
ranje sa yo ke ou te vini nan konnen ak sa yo renmen nan C
kote tout bagay se kalite nan menm
ki estoke youn apre lòt ak kontigu nan memwa,
epi ou gen sa yo endis nimerik.
Ou gen endèks 0, 1, endèks endèks 2,
epi ou sere valè sou moun ki te endis.
Ou menm tou nan C, lè ou te ekri ortograf, yon anpil nan ou
te fè apwòch la tab regle, epi ou te wè ke gen nou te gen
yon lòt kalite diferan nan depo kote nou te planifikasyon
yon kle nan yon valè, se konsa lè ou te eseye nan magazen yon bagay nan tablo regle
ou te gen ou presize ke ou te vle kenbe l ak yon kle espesifik,
e ke kle detèmine ki kote valè a ak ki kote li ta dwe estoke.
Ou te kalite te resevwa tou de nan moun ki konsèp pase nan menm tan an nan yon etalaj PHP,
e kòm yon rezilta, nou souvan rele sa yo ranje asosyatif
kote nou yo frekante yon kle nan yon valè.
Nan pati sa a pwochen nou pale de yon etalaj PHP senp
kote nou gen kle yon, b, ak c,
tout strings, planifikasyon nonm antye relatif yo 1, 2, ak 3.
Epi ou ka gen pouvwa nan kalite diferan.
>> Ou ka gen kèk kle ki strings, gen kèk kle ki nonb antye relatif.
Ou ka gen valè nan kalite diferan.
Ou ka gen yon valè ki nan yon fisèl, yon valè ki nan yon nonb antye relatif,
yon valè ki nan yon bagay oswa yon etalaj yon lòt, pou egzanp,
tout moun ki nan objè a etalaj menm, ki se kalite etranj.
Ou pa oblije gen yon etalaj ki nan jis te yon kalite eleman nan li.
Ou ka gen anpil bagay diferan pase nan la.
Bagay a lòt sonje se ke lè ou fè wè yon bagay tankou sa a nan kòd ou a,
ki se PHP valid deklare yon etalaj jis tankou sa a, 0, 1, 2, 3, 4, 5,
ki pral deklare yon inisyalizèd $ ArR yo dwe sa a etalaj.
Men, sa ki w ap aktyèlman ap resevwa anba kapo machin lan se sa a kalite enplisit
jenerasyon nan kle kote nou te gen 0 a 0, 1 nan 1, 3 2 a 2, a 3.
Epi li sanble ke menm si ou fè gen yon etalaj tankou sa a Guy moute isit la
kote ou gen yon b, ak c kòm kle yo
ak Lè sa a, ou kòmanse lè l sèvi avèk metòd la pouse etalaj yo kòmanse lè l sèvi avèk sa a etalaj tankou yon pil,
pou ou kapab wè ke sa a objè etalaj, se sa a etalaj vrèman vin twò chaje.
Nou ka sèvi ak li kòm yon etalaj. Nou ka sèvi ak li kòm yon tab regle.
Nou ka sèvi ak li kòm yon pil.
Lè w kòmanse pouse bagay sa yo sou sa a etalaj
premye bagay la ou pouse sou sa a pral endèks 0 ak Lè sa a, endèks 1 ak endèks 2.
Ou ka jwenn sa a kalite moun k'ap viv koulye enplisit nan kle
sof si ou presize yo ouvètman.
Nan fason ou presize kle klèman, nan kou, se pa lè l sèvi avèk sa a notasyon bracket,
ki se menm jan ak ranje eksepte olye pou yo sèlman ki pèmèt
endis nonb antye relatif nan isit la, kounye a nou pèmèt anyen.
Si ou vle kle ou yo dwe yon fisèl, ou ta presize li tankou sa a.
Si ou vle li nan dwe yon int, ou presize l 'ak int la ou vle itilize.
>> Kesyon sou ki lwen sa?
Youn nan bagay ki bon sou sa a lide
se ke ou ka sèlman janm gen youn valè ki estoke ak yon kle patikilye.
Si nou tounen sou nan nou an aparèy-kite m 'efase kèk nan bagay sa a.
Li kite yo di mwen inisyalize yon etalaj yo dwe 0, 1, 2, fè.
Si m 'koulye a konnen ke, pou egzanp, si mwen repete $ ArR [0]
Mwen pral jwenn 0 a valè enprime soti,
ak depi gen ka sèlman janm fè yon sèl valè ki estoke pou yon kle patikilye
si mwen sere yon bagay nan $ ArR [0], di yon,
Lè sa a, mwen konnen lè m 'eko $ ArR [0] ankò
Mwen pa pwal jwenn 0 enprime deyò tankou anvan.
Mwen sèlman pwal jwenn yon.
Se konsa, sa a se fondamantalman an dizan ke mwen pa ka gen $ ArR [0] estoke 2 valè diferan.
Li pa ka magazen tou de 0 ak fisèl la yon, tankou sa a literalman ranplase
ki sa ki te nan $ ArR [0] deja a.
Rezon ki fè mwen pote sa a moute kouri li, wè sa ki rive.
Al gade nan isit la ke mwen te resevwa 0 enprime deyò epi yo Lè sa a, yon desann isit la.
Gen nan pa gen liy nouvo la, paske mwen te parese li pa t 'mete sa pous
Ki sa ki nan fre sou sa a se nou kapab itilize sa a kòm yon fason
pran ide sa a nan yon seri
kote nou pa kapab gen kle miltip ki nan yon etalaj.
Nou pa ka gen kle ki idantik ki nan yon etalaj.
Mwen pa ka gen kle 0 ak valè 1 ak kle 0 ak valè yon
oswa kle 0 ak valè vre.
Kle yo, yo tout-gen nan sèlman 1 kle nan etalaj la.
Menm si ou ka gen menm valè a ki estoke
plizyè fwa nan etalaj la anba kle diferan
li pa posib yo gen kle ki idantik plizyè fwa nan etalaj PHP ou.
>> Si nou gade nan pwoblèm sa a kap vini an, unique.php,
kote nou vle louvri moute yon dosye PHP
ki gen yon lis ki gen strings, youn fisèl pou chak liy,
e nou vle jwenn tout strings yo ki inik nan ki dosye
tout sa nou dwe fè se sèvi ak youn nan sa yo ranje PHP
epi sèvi ak strings yo nan dosye a kòm kle yo sa a etalaj
epi kenbe ajou etalaj nou jan nou sere sa yo kle nouvo.
Pandan n ap li chak liy soti nan dosye a nou ka mete yo nan etalaj la,
ak nan fen a nou pral genyen kòm kle nou yo nan etalaj nou
tout strings yo inik nan dosye a.
ki fè sans?
Ann gade pou wè ki jan sa a travay.
Nou pral louvri moute, selon espèk a, yon dosye nouvo rele unique.php.
Louvri. Wouch, regrèt, nouvo dosye.
Nou pwal kòmanse li koupe ak nan kòmansman an menm ak fen balises.
Nou pral sove li nan seksyon 9, epi nou ap ale nan rele li unique.php.
Okay, kounye a rale pous
Lide a isit la se louvri yon dosye,
li nan liy dosye pa liy.
Pou chak liy nan dosye
n ap gen yon etalaj kote nou gen
liy lan kòm kle nou yo.
Lè sa a, lè nou jwenn nan fen a isit la
Kle $ ArR a yo se liy ki inik
nan dosye a depi nou konnen ke si mwen mete liy nan sa a etalaj
plizyè fwa li pral jis kenbe aksyon net valè a fin vye granmoun,
epi nou ka aktyèlman mete liy etalaj nan kòm tèt li jis renmen sa.
>> Sa a se kalite etranj.
Nou ap estoke menm pè a kle valè sou yo ak sou yo ak sou ankò,
men depi nou yo garanti ke pwal gen sèlman 1 kle yo rele liy
Se konsa, si nou gen yon dosye ki di-yon dosye nan bwi bèt ak li gen abwaman, abwaman,
Meow, Meow, mujisman, mujisman, epi chak fwa nou li yon bri bèt soti
tankou abwaman epi nou mete yo nan etalaj nou an, nou jwenn abwaman, ak Lè sa a, yon dezyèm fwa
nou sere abwaman li pral recouvrir a premye fwa ke nou sere li.
Nan fen an nou pral sèlman gen yon sèl antre nan etalaj la
pou chak nan bri yo bèt nan dosye bèt nou bwi.
ou nèg santi konfidan ke ou ka atake ouvèti a nan yon dosye ki nan PHP?
Youn nan fason yo fè li-kite yo ale sou fason sa a byen vit-yon fè li
se ak fopen, tankou nou te wè pi bonè.
Ou ka fopen some_file.txt.
Ou ka louvri l 'nan li mòd, jis tankou nan C.
Sa a se yon fason parfe bon fè li.
Ou menm tou Lè sa a, pou lekti nan liy lan dosye pa liy
gen fonksyon yo menm, anpil nan yo, pou ou te fè nan C.
Ou gen fje.
Ou gen feof, menm si nou pa renmen lè l sèvi avèk ki
paske, sonje, ki pa te gwo nan C.
Ou kapab fè l menm jan an,
men isit la se yon bagay vrèman fre.
Padon, mwen pa vle fè $ dosye, men gen se yon fonksyon ki rele dosye ki nan PHP,
ak sa a fonksyon dwa isit la se fre paske li li sa ki tout antye
nan dosye a ke ou presize, se konsa some_file.txt,
li sa ki tout antye de sa a ranpli nan yon etalaj
ak Lè sa a, pèmèt ou repekte sou li, ki se trè debouya.
>> Si nou ale, pou egzanp, pou navigatè wèb nou an
ak nou gade nan Google pou dosye PHP
ou ka wè isit la ke manyèl nou di ke dosye li dosye tout nan yon etalaj,
epi nou ka file_get_contents retounen sa ki nan yon dosye kòm yon fisèl,
men anjeneral jis jwenn li kòm yon etalaj se reyèlman bon paske ki sa li fè
se li kraze l 'kanpe pou ke chak eleman
nan etalaj la se yon liy nan dosye a,
Se konsa, si nou gade nan dosye 0, ki nan liy nan premye nan dosye a.
File 1, dezyèm liy, dosye 2, twazyèm liy, ak sou sa ak sou sa.
Pa ta bon pou li si sa ki te tout sa ou te fè nan C?
Joli debouya.
David te montre sa a nan konferans, ak lekspresyon a li te montre te
ki nan adisyon a estanda nou an pou riban-an PHP nou te gen ki
pou ($ mwen = 0; mwen <10; mwen + +),
epi ou ka fè sa nan PHP tou, menm bagay-
nou menm tou nou gen sa a aranje fre rele fortch.
Fortch se reyèlman sou la men lè iteration sou ranje oswa estrikti sa yo done
paske li pèmèt ou rale mete deyò chak eleman nan etalaj la
san yo pa gen manuelman fè Indexing nan tèt ou,
san yo pa gen manuelman kreye yon varyab endèks, kantite li,
rale mete deyò valè a an pozisyon an nan pwen sa a, paske sa se yon bagay trè komen nan fè.
>> Ou pwobableman te fè ki tòn fwa lè ou te fè C bagay
sou semès la, se konsa ak sa a fortch
nou kapab riban sou sa a etalaj ranpli,
ak sentaks a se ke nou vle kounye a riban sou sa a etalaj
ak yo espesifye ki varyab sa a nou ap ale nan sèvi ak nan magazen
eleman sa a etalaj lokalman, lokal nan kad sa a riban fortch,
se nou pral rele li liy.
Si li nan yon dosye nan mo jis ak gen nan yon mo nan yon liy
nou te ka rele li mo kòm byen, vrèman jis ou bay sa a yon non,
tou sa ou vle rele l ',
ak Lè sa a, andedan riban an ou ka fè tou sa ou vle avèk liy sa a varyab.
Si li pa ase yo ka resevwa valè a nan etalaj la epi ou vle tou yo ka resevwa
endèks la ansanm ak li ou kapab presize yon non pou endèks la
kòm byen ke valè a, epi kounye a ou gen aksè nan 2 varyab.
Ou gen $ mwen ak liy
kote $ mwen se endèks la nan etalaj la,
ak liy se liy la ke ou Retrieved soti nan dosye a.
Pou egzanp, si nou te vle enprime soti eko 0 liy nan dosye a tankou sa a,
nou te kapab fè li jis tankou sa a, "Liy $ mwen nan dosye a la se $ liy,"
ak isit la se yon bagay nou menm tou nou pa t 'wè ankò swa
kote Mwen te jis totalman sote sou% sa a% antye nan d biznis
ke nou te fè fas ak nan C, ak olye mwen te ale tou dwat nan
ekri varyab yo nan liy nan fisèl mwen an.
>> Se sa yo rele varyab entèpolasyon, fisèl entèpolasyon
ki kote ou fars varyab yo dwa nan, ak entèprèt la PHP
se entelijan ase lè li nan lekti atravè yon kòd ki kòmanse ak doub quotes-
pa quotes sèl, ak strings sèl te site ou pa kapab fè sa a-
Men, se avèk strings doub te site kòm li li nan li a kap chèche varyab.
Li nan lachas yo desann, epi si li wè varyab li pral pran valè a nan varyab la
ak bagay li nan fisèl la si li kapab konvèti li an yon reprezantasyon fisèl,
ki se trè debouya.
Pou kounye a, kite nan kòmantè soti rès la nan tout bagay,
sove sa a, ak sa nou kapab fè kounye a se nou ka louvri moute yon dosye
ke nou ka rele some_file.txt-ann kreye yon nouvo dosye-
epi nou ka mete nan yon pakèt moun sou istwa san sans bagay nan isit la jis teste tout bagay soti,
sove li, rele l 'some_file.txt, menm jan mwen fè moute isit la nan tèt la,
e kounye a, si mwen rale soti jis asire ou ke tout bagay se nan menm anyè a-
li sanble mwen gen unique.php ak some_file.txt nan anyè a menm.
Si mwen kouri php unique.php
wè kouman li simagri soti chak liy nan dosye mwen e sa liy lan se?
>> Sa a se trè pwisan, dwa?
Gade, li te pran 3 liy nan kòd yo louvri moute yon dosye.
Oke, 4 liy nan kòd. Mwen pa ka konte jodi a, byen klè.
Men, vrèman jis 2 liy ki enteresan nan kòd, paske 2 nan lòt te aparèy òtopedik yo Curly,
men nan sa a kòd anpil nou te kapab louvri yon dosye, repekte atravè li,
rale mete deyò nimewo a liy ak liy lan tèt li
ak enprime li.
Cool bagay. Charlotte.
[Charlotte] Mwen gen yon kesyon sou sentaks la.
Se konsa, fortch kontra avèk chak sèl liy nan dosye a ke ou louvri,
ak Lè sa a, lè ou vle fè bagay sa yo ak tout sèl liy ou jis fè li kòm
ak Lè sa a, asosye valè an.
[Nate H.] Ki sa ou ka fè sa ki dwat isit la-kesyon an te
fortch a te fè avèk etalaj la, se konsa sentaks la fortch
se reyèlman fortch, ak avi ke gen nan pa gen espas
oswa nenpòt bagay ant la pou ak chak la.
Yo gen yo ale dwat pwochen nan chak lòt,
ak Lè sa a, li pran nan yon etalaj,
ak Lè sa a, ou gen sa a mo kle lòt yo rele kòm ki gen yo dwe la,
ak Lè sa a, apre kòm la, ou ka swa mete yon varyab non,
nan ki ka ou ap pral rale kò valè yo nan etalaj la,
pa endis yo, oswa si w fè l 'jan nou te ekri pi ba a
ou jwenn kle yo ak valè yo.
Ou gen fortch eleman nan etalaj la oswa pè etalaj la kòm antre nan valè
oswa kòm jis valè an.
Tou depan de ki sa ou bezwen, si ou pa bezwen kle yo,
Lè sa a, ou kapab ale ak valè an.
Si ou vle kle yo ou kapab ale ak yo tou.
>> [Charlotte] Mwen menm mwen te reyalize nou pa janm te deklare mwen an oswa liy.
Ki jan li menm konnen ki sa yo ye?
[Nate H.] Ki sa ou vle di pa deklare?
[Charlotte] Nou pa janm rakonte yo sa mwen oswa liy vle di.
[Nate H.] Nou pa janm te di òdinatè a sa m 'oswa liy vle di an tèm de-
[Charlotte] Sa yo ap Catalogue oswa ki they're-
[Nate H.] Nou pa janm rakonte l 'ke sa a se sipoze endèks la oswa kle a ak valè a,
ak sa a, se paske sa a, se entèprèt la PHP.
Sa a sèvi kòm deklarasyon an e li di oke, kle a a pwal
yon varyab rele mwen ki estoke nan yon varyab rele mwen.
Valè a ki pral dwe estoke nan yon liy varyab rele,
kidonk sa a sèvi kòm deklarasyon an nan sa yo varyab
e li di $ mwen se yon kle yo, ak $ liy se yon valè.
Yeah, Ella.
[Ella] Si kle yo yo pa fè numériquement
li montre kouman li deside sa ki lòd li a pral enprime tout bagay?
Èske li jis tankou lòd la li nan antre nan?
[Nate H.] Ann bay li yon eseye.
Se pou nou kreye yon varyab rele ArR,
epi nou ka fè yon ale nan 7.
Se pou nou di 0 ale nan yon lòt pozisyon ak 1, 2, oswa pòm.
Se pou nou di 7 ale nan 1, b ale nan 2,
ak 3 ale nan 4.
Sa a se kalite yon egzanp fou kap paske nou ap melanje moute
strings ak nonm antye relatif sou tout plas la.
Gen nan pa gen lòd reyèl sa a etalaj.
Mwen vle di, nou te ka bay lòd pou tout bagay yo pa òd alfabetik kle yo.
Nou te ka bay lòd pou tout bagay lòd avèk lèt ​​alfabè pa vo anyen an.
>> Nou te ka eseye ak pran an kont ki gen kèk ki strings, gen kèk ki antye,
e nou ta ka eseye ak konvèti yo tout kalite nan menm ak wè sa ki rive,
oswa nou kapab konsidere yo nan valè a nan ki nou deja rantre yo
kote nou mete sa a Guy nan premye, sa a Guy nan dezyèm, sa a Guy nan twazyèm,
sa a Guy nan katriyèm, setra et.
Ann wè sa ki pase lè nou kouri sa a kòd.
Si nou desann epi fè sòt nan menm nan bagay,
ak isit la li pa enprime soti liy ki nouvo.
Lè li li bagay sa yo soti nan dosye a li te tankou liy ki nouvo nan valè,
ki te pou ki sa li soti enprime joliman, Lè nou konsidere ke isit la li te fè pa,
pou ki nan poukisa tout bagay se smushed yo ansanm.
Se pou nou ajoute nan sa liy nouvo jis fè bagay sa yo bèl.
Se pou nou relance li, se pou nou isit la
gade nan sa ki te pase.
Li enprime tout bagay soti nan nan ki lòd nou mete l 'nan etalaj la.
Li prezève lòd nan sans sa.
>> Ale tounen nan pwoblèm sa a nan unik
kote nou vle pou kapab repekte sou yon dosye li an,
epi n ap ba ou li some_file.txt,
epi nou ap ale nan repekte sou li tankou sa a.
Nou te di ke nou te vle sèvi ak yon etalaj a asire w ke nou ta te resevwa tout nan
liy inik soti nan la, epi nou ka fè sa vrèman fasil
pa jis estoke nan yon etalaj ke nou nan kou deklare deyò dimansyon nan de yon riban,
epi nou te di ke si nou itilize liy ki nan dosye a kòm kle yo an pozisyon nou an
si nou antre nan yon liy kopi nou ta dwe aksyon net valè a anvan yo.
Li pa janm posib ke yon bon 2 kle ki idantik nan etalaj la menm.
Nou ka fè sèlman sa.
Nou pral debarase m de deklarasyon sa a eko dwa isit la.
Isit la nou ap estoke liy lan nan dosye a nan etalaj nou
lè l sèvi avèk tèt li kòm kle a.
Pa gen anyen sou li, epi li vire soti ke nou pa menm bezwen sa a kle.
Nou pa bezwen ke mwen varyab.
Nan pwen sa a si nou te fè yon lòt bouk fortch
epi nou te riban sou chak ArR
ak liy kounye a si nou repete-Wouch, regrèt.
Nou pa ka sèvi ak vigil la. Nou dwe sèvi ak sa kòm mo kle.
Koulye a, si nou repete liy nou ta dwe jwenn tout mo sa yo inik nan dosye a.
Si nou moute al some_file.txt,
epi kite pou nou di nou fè pòm, fig, pòm, pòm, fig,
si nou ap enprime soti tout mo yo ki inik nan sa a ranpli nou ta dwe jwenn sèlman
pòm ak fig nan enprime deyò.
Si nou sove sa a, kounye a isit la nou pral rale tounen nan,
php unique.php, ak TA-da.
Nou te avèk siksè uniqued dosye a.
>> Pati nan final nan pwoblèm sa a ap mande w sòt sa a pozisyon devan ou enprime li soti
paske se nan egzanp sa a ki senp ke nou te jis fè
nou tout nou te gen chans nan sans ke-a dosye
nou te fè sa egzanp sa a parvenus ak pòm ak fig mi.
Li te deja klase.
Men, lè l sèvi avèk fonksyon an sòt ki senp ou ka sòt yon etalaj, ki se trè debouya.
Bagay la final mwen te vle pale ak ou mesye sou vrèman byen vit
se ke sa a kalite PHP se tout byen epi yo bon, epi li nan super sou la men
konnen ki fason pou fè si ou te janm bezwen fè ti kras, bagay sa yo rapid programe.
Pou egzanp, si mwen bezwen ekri yon pwogram ki, di,
mete tout moun an seksyon Mwen pa pwal ale ak ekri l 'nan C.
Li nan pral fè lontan.
Li nan pral fè kalite yon doulè, espesyalman si gen dosye patisipe,
menm jan ou te wè nèg.
Li nan tèlman bèl ke ak jis kòd sa a anpil dwa isit la
nou te kapab RIP atravè yon dosye li an, rale mete deyò tout valè yo inik
epi enprime yo tounen deyò.
>> Sepandan, pou devwa ou a, pou pwojè ou a,
si w ap bati sou sit entènèt ak PHP pouvwa a se ke
nou ap kouri dosye PHP nou yo atravè sa a entèprèt,
ak entèprèt la ap trete tout bagay nan etikèt yo PHP,
kite tout lòt bagay intact ak voye krache deyò rezilta yo.
Nou ka fè sa a yo bati HTML programe.
Koulye a, si nou tounen nan espèk a, pwoblèm nan dènye nan espèk a
chita pale sou lide sa a nan konsantrasyon
ak kreye yon meni drop-desann,
ki ou ka oswa li ka pa vle fè a, depann sou sa ki pwojè final ou a ap travay,
ki pèmèt itilizatè a chwazi nan yon lis tout konsantrasyon posib
konsantrasyon yon sèl yo.
Koulye a, sa a se kalite yon doulè kalite sa a soti
e nou dwe fè tout bagay sa a manuelman, espesyalman lè w ap fè a asire w
ki di ou gen tout parantèz yo ang nan plas la dwat ak tout quotes yo nan plas la dwat,
konsa ak PHP ou ka fè sa programatik, epi ou ka fè sa vrèman byen vit.
>> Ann gade pou wè ki jan yo fè sa.
Nou pral louvri moute yon dosye nouvo.
Nou pral mete nan balises PHP nou yo.
Nou pral rele li concentrations.php,
e kounye a, lè w ap fè sa a, kalite yon bon bagay yo reflechi sou
lè w ap eseye melanje ak matche ak PHP ou ak HTML ou
se lè n ap kalkile soti, oke, sa ki se yon pati a ke mwen vle programatik jenere?
Ki sa ki se yon pati nan ke mwen ka programe jenere?
Li nan vre ke ou ka fè tout HTML ou
andedan nan blòk PHP.
Ou ka repete tout HTML an kòm strings.
Pou egzanp, si mwen vle kòmanse fè etikèt yo chwazi andedan nan PHP
Mwen kapab di eko, di chwazi non = konsantrasyon,
ak Lè sa a, desann pi ba a mwen te kapab gen yon lòt tag eko
oswa yon lòt eko rele pre chwazi a.
Sa a se yon fason fè li paske sa sa a se literalman pral fè
se enprime soti sa a fisèl lè li nan kouri nan entèprèt la PHP,
konsa rezilta a yo pral HTML.
Si m 'sove sa a ranpli kòm li se kounye a
a epi mwen kouri php concentrations.php
gade a sa ki mwen te resevwa.
Mwen te resevwa sa a louvri fèmen tag chwazi.
>> Si m 'te fè sa ak m' te pou konsève pou sa a rezilta nan yon dosye li an,
di, concentrations.html-datant, li sanble l la te ale sou nan lòt bò a-
kounye a si mwen louvri moute isit la concentrations.html ou wè mwen gen yon valid dosye HTML.
Se ke kalite etranj?
Nou ap lè l sèvi avèk PHP yo kreye HTML, kreye valid HTML.
Wout la n ap fè li se nou ap jis gen ekri ak lèt ​​detache nan PHP
HTML a ke nou vle li nan enprime.
Sa a se literalman ki jan sou sit entènèt PHP ap travay.
Lè w ap vizite yon sit wèb ki voye ou nan yon bagay tankou
yon bagay, yon bagay, yon bagay dot com koupe index.php
òdinatè a ap literalman rele moute index.php,
kouri li nan entèprèt la PHP, ak tou sa tenten soti
li nan voye tounen nan navigatè a epi yo di hey, navigatè, entèprete sa kòm HTML.
Bagay la bon se ke li kapab yon doulè toujou ap ekri eko, eko, eko, eko
ak fèmen tout bagay nan quotes tankou sa a, Se konsa, si ou vle ekri
HTML a ki k ap pase yo dwe estatik tèt ou ou ka fè li tankou sa a,
mete l 'deyò, fèmen li,
ak Lè sa a, isit la ou sèlman mete anndan etikèt yo PHP sa ki ou konnen
ou vle programatik jenere, epi nan ka sa a li nan sa yo tags opsyon
ki se yon doulè jenere.
>> Pou egzanp, nou te ka jenere yon etikèt opsyon mil
pa fè yon bagay tankou sa a, $ mwen <1000, mwen + +
yo t'ap di konsa valè opsyon eko = $-whoops, mwen pa ka fè sa.
Oke, kite la bay li yon eseye ak wè sa ki rive.
$ Mwen ak Lè sa a, li di $ mwen </ opsyon.
Olye de mil ki gen kalite ke tag opsyon yon fwa diferan
Mwen sèvi ak PHP kòd jenere sa otomatikman, programe.
Kalite debouya. Yeah.
Mwen sonje sa a ke yo te mansyone nan swa konferans la oswa solisyon an,
men sa ki nan diferans ki genyen ant mak yo sitasyon,
sa yo nòmal epi bagay sa yo yon sèl?
Sa a se aktyèlman yon bagay ki mwen te fè mal isit la ke mwen te pral montre w.
Quotes yo sèl pa pèmèt okenn karaktè espesyal,
se konsa tout bagay andedan yon fisèl sèl te site entèprete literalman.
Si mwen te gen yon \ n andedan nan quotes sèl epi mwen sove sa a, pou egzanp,
e kounye a, m 'desann isit la epi kouri li-
Wouch, kote m 'prale?
Oh, se paske mwen bliye $ la.
>> Koulye a, si mwen louvri moute-aktyèlman, isit la, nou pral debarase m de ou tape nan li bay yon dosye.
Nou pral jis li li l '.
La a ou wè ke mwen te gen sa a literal \ n nan fisèl la, tankou pa yon liy aktyèl nouvo,
ak menm jan an tou, olye pou yo aktyèlman entèrpolan valè a nan sa a varyab
li te ban m '$ a mwen tèt li, ki se kalite yon doulè.
Fason nan alantou sa a se sèvi ak quotes yo doub,
ak Lè sa a, lè w itilize quotes doub li pral aktyèlman
byen entèrpolasyon valè yo nan tout moun sa yo varyab nan isit la
epi tou li rekonèt sa n \ yo dwe liy lan nouvo ke li se
epi yo pa \ n.
Sèvi ak sa yo se sèl nan bèl lè ou gen
karaktè ke sa ta kapab entèprete kòm karaktè espesyal paske lè sa a ou pa bezwen
chape anba yo toujou ap.
Bagay sa yo ka jwenn sal, epi souvan fason mwen fè l ',
jis fè bagay sa yo fasil, se ke si mwen pral gen anyen
HTML renmen nan kòd m 'mwen pral gen ladan yo edit nan quotes sèl
ak Lè sa a, itilize sa a operatè seri
anchene varyab yo pous
Sa a se yon lòt fason pou fè li
kote nou te gen dot la ki a pral konekte sa a se yon fisèl
ak sa a ak sa-a ak sa a,
e kounye a, mwen pa gen yo sove sa yo quotes doub.
Mwen pa gen yo sèvi ak sa a Guy yo sove.
Yo pral literalman ap enprime soti kòm quotes double ak Lè sa a, nèg sa a isit la menm.
Sa a se yon lòt fason nan melanje tout bagay ansanm.
>> [Elèv] Epitou, lè ou répéta gettype pa te gen okenn giymè nan tout.
Dwa, se konsa eko se kalite espesyal nan sans ke ou pa bezwen parantèz.
Ou pa bezwen gen sitasyon pi ba la make nesesèman alantou varyab,
tankou li nan ki valab yo di eko $ mwen, ak li a pral entèprete sa a kòm yon fisèl.
Li nan pral fè jete a, se konsa nou te ka fè sa, e ke an valab tou, men nou pa bezwen li.
Li nan si ou vle.
Nan seri pwoblèm yo semenn sa a gade deyò pou yon anpil nan sa a kalite bagay
ki kote ou melanje ak matche HTML ak PHP
jis tankou sa a, e kounye a, si nou woulo liv retounen lakay yo epi nou kouri sa a
nou ka wè ke nou gen yon pakèt antye nan valè opsyon
ki fèk sot enprime deyò.
Nou gen tout bagay sa a HTML ke yo kouri pwodwi reyèlman byen vit pou nou.
Mwen pral kite li kòm yon fè egzèsis.
Li nan anpil menm jan ak lekti a dosye ke nou te fè pi bonè.
>> Gen yon dosye concentrations.txt ke ou ka rale desann soti nan CDN la,
epi ou ka louvri li lè l sèvi avèk menm jwe fent la fortch ke nou te fè pi bonè,
ak fortch ou jis gen eko yon opsyon ak plòg nan
valè yo ki apwopriye, kle yo apwopriye ak endis yo,
ak Lè sa a, ou jwenn yon gout desann ki literalman kreye
programe pou ou tout konsantrasyon yo diferan nan Harvard.
Yon bagay sou la men genyen.
Gen yon anpil nan bagay konfigirasyon pou sa a plasman.
Si ou pa ta fè l 'deja pran lè a mwatye kap vini an, lè sa a,
kèk tan aswè a definitivman pou asire w,
mache nan espèk a seri pwoblèm,
wè sa k ap pase sou ak mete kanpe vost yo, lame lokal la, tout sa ki bagay.
Youn nan bagay nan pwen soti kounye a se ke
nan pi fò kouche pwoblèm nou ve yo te ale nan folder Dropbox ou
ak Lè sa a, Téléchargez seri dosye a postal pwoblèm ak dezipe li.
Pou sa seri pwoblèm ou pa vle.
Ou vle ale nan anyè sa a vost.
Ou pral vle ale nan vost ak ale nan anyè a lame lokal nan li,
e sa se kote ou pral vle ki rale desann dosye a postal ou,
ouvriers li, epi pou yo jwenn pare yo ale.
Ou ap gen yo swiv etap sa yo pre.
>> Si ou gen nenpòt kesyon, voye email, kole li sou Diskite, vini nan lè biwo louvri.
Mèsi guys. Semèn pwochen nou pral gen yon sesyon revizyon pou egzamen an.
Jwi seri dènye pwoblèm ou. Mwen espere ke tout bagay sa yo ale vrèman byen.
[CS50.TV]