[Powered by Google Translate] [Seksyon 8 - pi konfòtab]
[Rob Bowden - Inivèsite Harvard]
[Sa a se CS50. - CS50.TV]
>> Nòt sa seksyon semèn yo pral yo dwe trè kout,
se konsa mwen jis ale nan kenbe pale, ou nèg yo ale nan kenbe poze kesyon,
e nou ap eseye ranpli moute tan kòm anpil ke posib.
Yon anpil moun panse ke sa a pset se pa nesesèman difisil, men li trè long.
Espèk nan pset tèt li pran yon èdtan li.
Nou ba ou yon anpil nan SQL an ou kapab pètèt bezwen sèvi ak.
Nou mache ou atravè yon anpil nan li, se konsa li pa dwe ni twò move.
Èske gen moun ki te kòmanse oswa fini?
Li nan pset an dènye. Oh, Bondye mwen an.
Anjeneral gen yon JavaScript youn apre sa a, men bagay sa yo chanjman nan kalandriye
fè tout bagay 1 semèn ki pi kout yo, epi nou pa gen yon pset JavaScript.
Mwen pa konnen kijan ki afekte si wi ou non JavaScript ki pral parèt nan egzamen an
oswa Kwiz 1.
Mwen imajine li pral yon bagay tankou sa ou bezwen konnen bagay sa yo-wo nivo sou JavaScript,
men mwen gen dout nou ta jis ba ou tou dwat JavaScript kòd
paske ou pa t te gen yon pset nan li.
Men, ki pral bagay pou revizyon egzamen an semèn pwochèn.
>> Seksyon de kesyon.
Yon anpil nan bagay sa a se yon ti jan mal remak bwèf, men nou pwal diskite sou pou ki rezon.
Kontrèman ak C, PHP se yon "dynamique-tape" lang. Kisa sa vle di, ou mande?
Oke, di orevwa nan tout nan tout sa yo flote Char,, int, ak mo kle lòt ou bezwen itilize
lè deklare varyab ak fonksyon nan C.
Nan PHP, se kalite yon varyab an detèmine pa valè a ke li nan kounye a kenbe.
Se konsa, anvan nou tape sa a kòd nan yon dosye rele dynamic.php,
PHP se dynamique tape. Sa se vre.
Mwen dakò avèk lefèt ke sa vle di nou ap di orevwa Char, flote, int,
ak mo kle ak lòt.
Diferans la egzak ant dynamique tape ak altènatif a,
ki se statik tape, se ke dynamique tape, nan tout kont kouran kalite ou ak lòt bagay
k ap pase nan moman kouri, Lè nou konsidere ke statik tape li k ap pase nan moman konpile.
Pawòl Bondye a estatik an jeneral sanble yo vle di bagay sa yo tan konpile.
Mwen devine gen sèvi ak lòt pou li, men nan C lè ou deklare yon varyab estatik,
se depo li yo afekte nan moman konpile.
Isit la, dynamique tape jis vle di ke -
Nan C si ou eseye ajoute yon kòd li ansanm ak nonb antye relatif yon, lè ou konpile li,
li pral pote plent paske li k ap pase yo di ke ou pa kapab ajoute yon int ak konsèy yon.
Li nan jis pa yon operasyon ki valid.
Sa a se yon lòt bagay ke nou ap jwenn nan yon dezyèm fwa.
Men, ki sòt de kont kouran, kont lefèt ke li plenyen nan moman konpile,
se kont kouran estatik kalite.
Gen lang ki kote ou pa bezwen di Char, flote, int, ak tout bagay sa yo,
men lang nan ka di soti nan kontèks la nan bagay la ki kalite li a sipoze,
Men, li la toujou statik tape.
Se konsa, si ou pran 51, okanl, ou pa janm bezwen sèvi ak nenpòt nan sa yo kalite,
men li toujou ap nan moman konpile di ou pa kapab fè sa a paske w ap melanje yon int ak fisèl yon.
Dynamique tape jis vle di ke nenpòt moman pandan kouri tan w ap ale nan jwenn yon plent.
Si ou te tou te itilize Java anvan, an jeneral, prèske nenpòt lang C-kalite
yo pral statik tape, se konsa C, C + +, Java, tout moun sa yo yo jeneralman statik tape.
Nan Java lè ou konpile yon bagay e yo w ap di
fisèl la egal yon bagay nouvo ki se pa yon fisèl,
ki nan ale nan plenyen paske sa yo kalite jis pa matche ak moute.
Sa a pral pote plent nan moman konpile.
Men, li tou te gen kèk tan dinamik bagay sa yo tankou si ou eseye jete yon bagay
nan yon kalite ki an plis espesifik pase kalite li ye kounye a,
pa gen anyen li ka fè nan moman konpile a tcheke si ke jete ki pral reyisi.
Java tou te gen kèk kalite dinamik tcheke ke le pli vit ke li vin ak sa yo ki liy nan kòd
lè li la aktyèlman egzekite, li te pral fè jete a,
tcheke si sa jete te valid an plas an premye,
epi si li pa t ', lè sa a li pral plenyen pou di ke ou gen yon lòt kalite valab.
Dinamik kalite tcheke.
Tape sa a nan yon dosye rele dynamic.php.
Dynamic.php.
Mwen pral ouvriers ki fòma.
Nou gen yon varyab, nou mete l 'a 7 an nonb antye relatif,
Lè sa a, nou pral enprime li ak s% -
Oh, nou ap enprime ki kalite li, se konsa gettype ki pral retounen kalite a nan varyab la.
Nou jis ap enprime kalite a sou yo ak sou ankò.
Nou jis php.dynamic.php.
Nou pral wè ke li chanjman nan nonb antye relatif fisèl Boolean kòm nou ale nan.
Nan C pa gen okenn Boolean done kalite, pa gen okenn fil done ki kalite.
Genyen nan * Char ak Boolean jis gen tandans ka int oswa Char oswa yon bagay.
Nan sa yo kalite PHP egziste, e ke se youn nan avantaj ki genyen nan gwo PHP sou C -
ki operasyon fisèl yo se enfiniman pi fasil nan PHP pase C. Yo senpleman travay.
>> Se konsa, nou tounen isit la.
Nou kouri dynamic.php.
Sa a di entèprèt la PHP, ki rele php, kouri kòd la PHP nan dynamic.php.
Si ou gen nenpòt ki erè nan dosye a, entèprèt la ap fè w konnen!
Entèprèt la, sa a se yon lòt gwo diferans ant PHP ak C.
Nan C ou gen konpile yon bagay e yo Lè sa a, ou kouri ke dosye konpile.
Nan PHP ou pa janm konpile anyen.
Se konsa, entèprèt la PHP se fondamantalman jis lekti sa a liy pa liy.
Li frape var = 7 Lè sa a, li frape printf Lè sa a, li frape var Lè sa a, li frape printf ak sou sa.
Gen yon ti jan nan konpile li fè sa, epi li kachèt rezilta yo
Se konsa, si w kouri script la pita ou kapab fè kèk,
men fondamantalman li nan yon liy pa sòt liy nan bagay sa yo.
Sa vle di ke yon anpil nan optimizasyon sa yo ke nou jwenn nan C,
tankou konpile, li nan jis jeneralman du a ka fè yon anpil nan ke trik nouvèl pou ou.
Li ka pran soti varyab rès, li ka fè tout moun sa yo kalite bagay sa yo,
li ka fè rkursyon ke.
Nan PHP ou pa ap pral jwenn ki avantaj
paske li jis pral kòmanse egzekite liy pa liy pa liy,
e li pa vrèman rekonèt bagay sa yo kòm byen fasil
depi li pa 1 pas gwo konpilasyon sou bagay la ak Lè sa a, ekzekisyon;
li jis liy pa liy.
Se konsa, sa a, se entèprèt la.
>> Retounen nan sezisman dinamik nou an: trè fre, eh?
Ou definitivman pa t 'kapab fè sa nan yon C!
Koulye a, wè si w kapab konnen ki kalite nan chak nan valè sa yo.
Al gade nan sa a pou referans.
Se konsa, 3.50. Ki kalite ou panse ke k ap pase yo dwe?
Isit la yo se kalite sa yo nou genyen.
Nou gen bools, nonm antye relatif, pwen k ap flote, strings, ranje, objè,
ak Lè sa a, resous, ki se kalite vag.
Mwen panse ke gen nan aktyèlman yon egzanp isit la.
Lè sa a, gen nan nil. Nil se yon kalite espesyal.
Kontrèman ak C kote nil se jis yon konsèy ak adrès 0,
nan PHP, nil se tip pwòp li yo ki kote bagay la sèlman ki valab nan ki kalite se nil.
Sa a se pi plis itil pou w tcheke erè.
Nan C kote nou te gen pwoblèm sa a kote si ou retounen nil,
sa vle di ou ap retounen yon konsèy nil oswa lè l sèvi avèk nil siyifi erè
oswa nan tout sa konfizyon nou te gen nan yon pwen.
Isit la, retounen nil vle di jeneralman erè.
Yon anpil nan bagay sa yo tou retounen fo pou erè.
Men, pwen an se kalite a nil, bagay la sèlman nan kalite la nil se nil.
Lè sa a, kalbak, se tankou ou ka defini kèk fonksyon anonim.
Ou pa oblije bay fonksyon an yon non, men ou pa pral gen kontra avèk ki isit la.
Gade nan kalite yo ke yo atann nou konnen,
ki sa ou panse kalite a nan 3.50 se? >> [Elèv] Flote.
Yeah.
Se konsa, Lè sa a, isit la, ki sa ou panse kalite a nan sa a se? >> [Elèv] Samari.
Yeah. Yon sèl nan premye te flote, youn nan dezyèm se yon etalaj.
Remake sa a etalaj se pa tankou yon etalaj C
ki kote ou gen endèks 0 gen kèk valè, endèks 1 gen kèk valè.
Isit la endis yo se yon, b, ak c ak valè yo se 1, 2, ak 3.
Nan PHP pa gen okenn diferans ant yon etalaj asosyatif ak jis yon etalaj regilye
menm jan ou ta panse a li nan C.
Gen se jis sa a, ak anba kapo a yon etalaj regilye se jis yon etalaj asosyatif
kote 0 kat lòt valè menm jan an yon kat jeyografik nan kèk valè.
Pou rezon sa a, PHP ka trè move pou bagay sa yo reyèlman vit kòd / benchmarking
depi nan C lè w ap sèvi ak yon etalaj ou konnen ke gen aksè nan yon manm se tan konstan.
Nan PHP aksè yon manm se moun ki konnen konbyen tan?
Li pwobableman konstan si li achaj kòrèkteman.
Ki moun ki konnen sa ki li vrèman ap fè anba kapo a?
Ou reyèlman bezwen fè yon gade nan aplikasyon an wè kouman li pral fè fas ak sa.
Se konsa, Lè sa a, fopen.
Mwen panse ke isit la kite yo jis PHP fopen manyèl fè yon gade nan kalite nan retou.
Nou wè isit la ou ka gade moute bèl anpil nenpòt fonksyon nan PHP manyèl la
ak sa a se sòt de paj la nonm nan PHP.
Kalite a retounen a pwal resous.
Se poutèt sa mwen voye je l 'kanpe, paske nou pa t' reyèlman defini resous.
Lide a nan resous, nan C ou kalite te resevwa yon * DOSYE oswa kèlkeswa sa;
nan PHP resous la se * DOSYE ou a.
Li nan ki sa ou ap pral li nan, li nan ki sa ou ap pral ekri nan.
Li nan anjeneral ekstèn, kidonk li a yon resous ou ka rale bagay sa yo soti nan 'voye jete bagay sa yo nan.
Epi finalman, sa ki se ki kalite nil? >> [Elèv] nil.
Yeah. Se konsa, bagay la sèlman ki se nil se nil.
Nil se nil.
>> Yon karakteristik nan sistèm kalite PHP a (pou pi bon oswa pou vin pi mal) se kapasite li nan Jungle kalite.
Lè w ekri yon liy nan kòd PHP ki melanje valè nan kalite diferan,
PHP pral eseye fè menm bagay la sansib.
Eseye soti chak nan liy sa yo nan kòd PHP. Kisa ki soti enprime?
Èske li ki sa ou yo espere a? Poukisa oswa poukisa pa?
Reyalite sa a se sou PHP se sa ki fè li sa nou rele chetif tape.
Chetif tape ak fòtman tape,
gen sèvi avèk diferan pou sa yo tèm,
men pifò moun sèvi ak chetif tape ak fòtman tape vle di sa a sòt de bagay sa
kote ("1" + 2); ki travay.
Nan C ki pa ta renmen travay.
Ou ka imajine sa a pa ap travay.
Yon anpil moun melanje moute dinamik sezisman ak fèb sezisman ak estatik sezisman ak sezisman fò.
Piton se yon lòt egzanp nan yon lang ki nan dynamique tape.
Ou ka voye jete alantou kalite nan varyab ak li a pral detèmine nan moman kouri
nenpòt checkings erè.
Nan Piton li a pral egzekite sa a epi li pral wè ("1" + 2);
ak sa a ap fail paske li di ou pa kapab ajoute yon kòd li ansanm ak nonb antye relatif yon.
Nan PHP, ki se jis kòm dynamique tape, sa a pa pral febli.
Sezisman fèb te fè avèk lefèt ke li fè bagay avèk tip
ki pa vrèman fè sans nesesèman.
Se konsa, ("1" + 2); mwen ka imajine ke yo te fisèl la 12, mwen ka imajine li ke yo te fisèl la 3,
Mwen ka imajine li ke yo te 3 nan nonb antye relatif.
Li pa nan nesesèman byen defini, epi nou ap pwobableman pral wè isit la
ke lè nou enprime ("1" + 2); li la pwobableman ale nan yo te fini diferan
pase enprime (1 + "2").
Lè sa a gen tandans yo dwe, nan opinyon mwen, pou vin pi mal la.
Isit la nou ka eseye sa yo.
Yon lòt Trick ti kras sou PHP se ou pa bezwen aktyèlman ekri dosye a.
Li te kouri sa a mòd lòd.
Se konsa, php-r, Lè sa a, nou ka jete nan yo lòd, ki isit la:
"Ekri ak lèt ​​detache ('1 '+ 2);" epi mwen pral voye jete yon liy nouvo.
Sa a enprime 3.
Li sanble tankou li simagri 3 ak li nan 3 a antye ki pè.
Se konsa, kounye a kite a eseye nan lòt fason alantou:
"Ekri ak lèt ​​detache (1 + '2 ');
Nou jwenn 3, epi li se li tou pral fè nonm antye 3? Mwen franchman pa gen okenn lide.
Li sanble ke se sa ki konsistan.
Pa janm gen nenpòt chans pou li ke yo te 12 an fisèl oswa yon bagay tankou sa
paske PHP, kontrèman ak JavaScript ak Java tou,
gen yon operatè apa pou seri.
Seri nan PHP se dot.
Se konsa, enprime (1 '2 '.); Ki pral ban nou 12.
Sa a gen tandans pou mennen a konfizyon kote moun eseye fè yon bagay tankou str = +
kèk lòt bagay ki yo ke yo vle ajoute sou a nan fen fisèl yo, epi yo ki nan ale nan febli.
Ou bezwen fè str. =
Se konsa, pa bliye seri nan PHP se yon dot.
Lòt bagay eseye: enprime ("CS" + 50);
Mwen te di ou ke pa gen okenn espwa sa a ki kapab lakòz yon CS50
depi seri se pa +.
Ki sa ou panse sa a ki pral yo te fini?
Mwen franchman pa gen absoliman okenn lide.
Li sanble ke li jis 50.
Li wè fisèl la, epi mwen parye si nou mete 123CS -
Li wè fisèl la an premye, li ap eseye li yon nonb antye relatif soti nan li oswa yon nimewo soti nan li.
Nan ka sa a li wè 123CS.
"Sa pa fè sans kòm yon nonb antye relatif, se konsa mwen jis ale nan panse a 123."
Se konsa, 123 + 50 a pwal 173.
Ak isit la li kòmanse lekti sa a kòm yon antye relatif.
Li pa wè anyen, se konsa li jis trete li kòm 0. Se konsa, 0 + 50 a pwal 50.
Sa a mwen asepte ki pral fè yon bagay menm jan an.
Mwen ap panse 99.
Yeah, paske li nan pral pran premye a -
Se konsa, 99.
Isit la (10/7), si sa a te C, sa ki ta pou retounen?
[Elèv] 1. >> Yeah, li ta 1 paske 10/7 i diviz 2 nonb antye relatif.
Yon nonb antye relatif divize pa yon nonb antye relatif ki pral retounen yon nonb antye relatif.
Li pa ka retounen 1 kèlkeswa sa pwen ki ta ka, se konsa li jis ale nan retounen 1.
Isit la enprime (10/7); li a pral aktyèlman entèprete sa.
Lè sa a vle di ke si ou aktyèlman vle fè nonm antye awondi ak lòt bagay tankou sa,
ou bezwen fè ekri ak lèt ​​detache (etaj (10/7));
Nan C li la pwobableman etranj ke ou ka konte sou tronkatur nonb antye relatif regilyèman,
men nan PHP ou pa kapab paske li pral otomatikman vire l 'nan yon flote.
Lè sa a, (7 + vre); ki sa ou panse ki k ap pase yo dwe?
Mwen devine 8 si li pral entèprete vre kòm 1.
Li sanble ke li nan 8.
>> Se konsa, anyen nou te fè l 'nan 10 minit ki sot pase yo ou ta dwe absoliman pa janm fè.
Ou gen pou wè kòd ki sa sa.
Li pa dwe fè kòm senp tankou sa a.
Ou te kapab gen 2 varyab, ak 1 varyab k ap pase yo yon kòd
ak varyab la lòt k ap pase yo yon int, ak Lè sa a, ou ajoute sa yo varyab yo ansanm.
Depi PHP se dynamique tape e li pa pral fè nenpòt ki kont kouran kalite pou ou
epi depi li nan chetif tape ak depi li pral jis otomatikman voye jete tout bagay sa yo ansanm
ak tout bagay pral jis travay, li difisil menm konnen ke sa a varyab dwe yon fisèl, koulye a,
Se konsa, mwen pa ta dwe ajoute li nan sa a varyab, ki se yon nonb antye relatif.
Pratik pi bon se si yon varyab se yon fisèl, kenbe li kòm yon fisèl pou tout tan.
Si yon varyab se yon int, kenbe li kòm yon int pou tout tan.
Si ou vle fè fas ak nonm antye relatif ak strings,
ou ka itilize varsint - sa a JavaScript.
Entval. M 'fè sa a tout tan tout tan an. PHP ak JavaScript mwen melanje moute tout bagay.
Se konsa, entval ki pral retounen valè a nonm antye nan yon varyab.
Si nou pase nan "ekri ak lèt ​​detache (entval ('123 ')); ou jwenn 123.
Entval tèt li se pa sa pral fè chèk la pou nou ke li nan sèlman yon nonb antye relatif.
Manyèl la PHP, gen yo se jis pou anpil fonksyon ki disponib,
Se konsa isit la mwen panse ki sa mwen ta itilize se is_numeric an premye.
Mwen devine ki tounen fo.
Sa a se yon lòt bagay nou gen ale sou se ===.
Se konsa, is_numeric (''123df), ou pa ta panse a ki is_numeric kòm.
Nan C ou ta gen repekte sou tout karaktè
epi tcheke yo wè si chak karaktè se chif oswa kèlkeswa sa.
Isit la is_numeric ki pral fè sa pou nou,
epi li retounen fo.
Se konsa, lè mwen enprime sa, li pa gen anyen enprime, se konsa isit la mwen konpare li nan wè la a,
ou te rive yo dwe fo? Se konsa, kounye a li nan enprime 1.
Aparamman li simagri 1 kòm vre olye pou yo enprime vre kòm vre.
M ap mande si m 'fè print_r. Non, li toujou ap fè sa ki 1.
>> Ale tounen nan ===, == toujou egziste,
epi si ou pale ak Tommy l ap di == se parfe amann.
Mwen pral di ke == se terib ak ou pa janm ta dwe itilize ==.
Diferans lan se ke == konpare bagay sa yo
kote li kapab vre menm si yo pa santi w kalite a menm,
Lè nou konsidere ke === konpare bagay sa yo ak premye li chèk yo se yo ki kalite nan menm?
Wi. Okay, kounye a mwen pral wè si yo aktyèlman konpare yo dwe egal-ego.
Ou resevwa bagay sa yo etranj tankou 10 egal - Ann gade pou wè ki sa ki di.
Se konsa, ('10 Haitian Creole Edition '== '1 E1');
Sa a retounen vre.
nenpòt moun ki gen nenpòt ki Estimation poukisa sa a retounen vre?
Li se pa sèlman sou sa. Petèt sa a se yon allusion.
Men, si mwen chanje sa nan yon f - reprize li! Mwen kenbe lè l sèvi avèk quotes doub.
Rezon ki fè yo quotes yo doub yo tap rele ke nan m 'se paske mwen te mete sa a nan quotes doub.
Se konsa, mwen te kapab chape anba quotes yo doub nan isit la, men quotes sèl fè li pi fasil.
Se konsa, ('10 Haitian Creole Edition '== '1 F1'); pa enprime vre. ('10 Haitian Creole Edition '== '1 E1'); simagri vre.
[Elèv] Èske li Egzagòn? >> Li pa Egzagòn, men li la tou pre ke li nan tankou -
1e1, notasyon syantifik.
Li rekonèt 1e1 kòm 1 * 10 ^ 1 oswa kèlkeswa sa.
Moun sa yo se nonm antye relatif egal.
Si nou fè sa === Lè sa a, li la pral fè fo.
Mwen aktyèlman pa gen okenn lide, si nou fè == sa ki sou (10 ak ''10abc);? Tout dwa. Se konsa, sa a, se vre.
Se konsa, jis renmen lè ou te fè (10 + ''10abc); epi li ta ka 20,
isit la (10 == ''10abc); se vre.
Menm pi mal yo se bagay sa yo tankou (fo == nil); se vre
oswa (fo == 0); se vre, (fo == []);
Gen ka etranj nan - Se youn nan ka sa yo etranj.
Remake (fo == []); se vre.
('0 '== Fo); se vre.
('0 '== []); Se fo.
Se konsa, == se nan okenn fason tranzitif.
yon ka egal a b ak yon ka egal a c,
men b pa ka egal a c.
Sa a se yon abominasyon m ', epi ou ta dwe toujou sèvi ak ===.
[Elèv] Èske nou ka fè! == Kòm byen? >> [Bowden] Wi.
Ekivalan a ta dwe! = Ak! ==.
Sa a se aktyèlman te pote moute nan pset espèk a
kote yon anpil nan retounen fonksyon -
Manyèl la PHP se yon bon bagay sou sa a.
Li mete nan yon bwat gwo wouj, "Sa a pral retounen fo si gen nan yon erè."
Men, 0 retounen se yon bagay parfe rezonab retounen.
Reflechi sou nenpòt fonksyon ki espere retounen yon nonb antye relatif.
Se pou nou di sa a se fonksyon sipoze konte kantite liy nan yon dosye oswa yon bagay.
Daprè sikonstans nòmal, ou pase sa a fonksyon yon dosye
ak li a pral retounen yon nonb antye relatif ki reprezante ki kantite liy yo.
Se konsa, 0 se yon nimewo parfe rezonab si dosye a se jis vid.
Men, sa ki si ou pase l yon dosye envalid ak fonksyon nan k ap pase nan retounen fo
si ou pase l yon dosye envalid?
Si ou jis fè == ou pa ap différencier ka a ant dosye envalid ak dosye vid.
Toujou itilize ===.
Sa a tout moun sa yo.
>> Nan PHP, kalite nan etalaj ki diferan de sa w ap itilize yo nan C.
Vreman vre, ou kapab te deja remake sa a pi wo a lè ou wè ke sa a se nan etalaj kalite.
Sentaks nan parantèz se nouvo kòm nan, 5.4 PHP ki se vèsyon an Newest nan PHP.
Anvan sa a ou toujou te gen yo ekri etalaj ('yon' -> 1, 'B' -> 2.
Sa yo ki te konstrukteur la pou yon etalaj.
Koulye a, PHP finalman te vini otou nan sentaks la bèl nan jis parantèz kare,
ki se jis tèlman pi bon pase etalaj.
Men, konsidere PHP 5.4 se vèsyon an Newest,
ou ka rankontre kote ki pa menm gen PHP 5.3.
Pandan ete a nou li pran kouri nan pwoblèm sa a kote PHP 5.3 te sa nou te genyen sou aparèy la,
men sèvè a ke nou deplwaye tout liv klas nou an epi soumèt ak tout sa ki lòt bagay
te PHP 5.4.
Pa t 'konnen sa a, nou devlope nan 5.3, pouse 5.4,
e kounye a, tout nan yon toudenkou okenn nan kòd nou an ap travay
paske se la ki te rive yo te chanjman ant 5.3 ak 5.4
ki fè yo pa bak konpatib,
epi nou gen yo ale ak repare tout de bagay sa yo nou an ki pa travay pou PHP 5.4.
Pou klas sa a, depi aparèy la fè sa ki gen PHP 5.4,
li nan parfètman bon itilize parantèz kare.
Men, si w ap leve je l 'bagay sa yo otou entènèt la,
si w ap leve je l 'kèk kalite bagay etalaj, gen plis chans w ap ale nan wè
te période a soti sentaks konstrukteur etalaj depi lè sa a te alantou depi PHP fèt
e li te kare sentaks bracket te alantou pou mwa ki sot pase koup
oswa nenpòt lè 5.4 te vini alantou.
Sa a se ki jan ou endèks.
Jis tankou nan C ki jan ou ta endèks pa parantèz kare tankou $ etalaj [0], $ etalaj [1], $ etalaj [2],
ou endèks menm jan an si ou rive gen endis ou ke yo te strings.
Se konsa, $ etalaj ['yon'] ak $ etalaj ['B'].
$ Etalaj [b]. Poukisa sa a ta dwe mal?
Li pral pwobableman jenere yon avètisman men yo toujou travay. PHP gen tandans fè sa.
Sa gen tandans a sèlman, "Mwen pral avèti ou sou sa a, men mwen jis ale nan kenbe prale
"Ak fè tout sa mwen kapab."
Li pral pwobableman tradwi sa a nan yon fisèl,
men li se posib ke nan kèk pwen nan yon moun ki sot pase a te di
defini b yo dwe 'HELLO WORLD'.
Se konsa, kounye a b te kapab fè yon etalaj konstan ak $ [b] pral aktyèlman ap fè 'HELLO WORLD'.
Mwen panse ke nan pwen sa a, oswa omwen anviwònman PHP nou an,
si ou eseye endèks nan yon etalaj e ke kle pa egziste, li pral febli.
Mwen pa panse li pral jis avèti ou.
Oswa omwen ou ka mete li pou ke li pa jis avèti ou, li jis dwat yo echwe.
>> Nan fason ou tcheke yo wè si gen aktyèlman se tankou yon endèks se ise.
Se konsa, ise ($ etalaj ['HELLO WORLD']) ap retounen fo.
ise ($ etalaj ['B']) ap retounen vre.
Ou ka melanje sa yo sentaks.
Mwen trè asire ki sa sa a etalaj ta yo te fini se - Nou ka fè tès li soti.
Oh, mwen bezwen PHPWord.
Sa a se melanje sentaks la kote ou presize ki sa kle a se
epi ou pa presize ki sa kle a se.
Se konsa, 3 dwa isit la se yon valè.
Ou te di li pa trete keksyon ki sa li yo kle a pwal.
Ki sa ou panse li yo kle a pwal?
[Elèv] 0. >> Mwen devine 0 sèlman paske li nan yon sèl nan premye nou pa t 'espesifye.
Nou ka aktyèlman fè yon koup la ka sa yo.
Se konsa, print_r se enprime repetitif. Li pral enprime etalaj a tout antye.
Li ta enprime subarrays nan etalaj la si te gen nenpòt ki.
Se konsa, print_r ($ etalaj); php.test.php.
Li sanble li te bay li 0.
Genyen aktyèlman yon bagay kenbe nan tèt ou isit la, men nou pwal jwenn tounen nan l 'nan yon dezyèm fwa.
Men, sa ki si mwen rive fè sa-a endèks 1?
PHP pa distenksyon ant endis kòd li ansanm ak endis nonb antye relatif,
Se konsa nan pwen sa a Mwen te jis defini yon endèks 1 ak mwen kapab fè tou de etalaj $ [1] ak $ etalaj ['1 ']
epi li pral endèks la menm ak kle a menm.
Se konsa, kounye a ki sa ou panse 3 a pwal? >> [Elèv] 2. >> [Bowden] Mwen devine 2.
Yeah. Li nan 2.
E si nou te fè sa sa a se 10, sa a se 4? Ki sa ou panse endèks la nan 3 a pwal?
Mwen ap panse 11.
Mwen devine tankou sa ki PHP fè - e mwen panse mwen te wè sa a anvan -
èske l annik kenbe yon dosye sou ki sa endèks ki pi wo a nimerik li a te itilize byen lwen tèlman se.
Li pa janm a pral bay yon endèks fisèl nan 3. Li ap toujou gen yon endèks nimerik.
Se konsa, li kenbe yon dosye sou yon sèl ki pi wo a li nan plase twò lwen, ki k ap pase yo 10,
epi li pral ba 11 a 3.
Ki sa mwen te di anvan, remake wout la li se enprime sa a etalaj.
Li simagri kle 10, 4 kle yo, 11 kle kle d.
Oswa menm kite a fè -
Mwen devine mwen pa t 'mete yon 0, men li la enprime 1, 2, 3, 4.
E si mwen chanje isit la? Oswa kite a aktyèlman chanje sa yo 2.
Kounye a li simagri 2, 1, 3, 4.
Ranje PHP a yo pa jis tankou tab regilye ou regle.
Li nan parfe rezonab panse a yo kòm tab regle 99% nan moman an.
Men, nan tab regle ou gen nan pa gen sans nan ki lòd bagay sa yo te eleman.
Se konsa, osito ke ou insert l 'nan tab regle ou a,
asime gen nan pa gen lis lye ak ou ta ka jije nan yon lis lye
ki te antre an premye.
Men, isit la nou mete 2 premye ak li konnen lè li nan enprime soti sa a etalaj ke 2 ki vini anvan.
Li pa enprime li nan jis lòd nenpòt.
Estrikti nan done teknik ke li nan lè l sèvi avèk la se yon kat jeyografik te bay lòd,
se konsa li kat kle nan valè epi li sonje nan ki lòd moun kle yo te eleman.
Fondamantalman li nan nan kèk konplikasyon ki kote li nan annwiyeu aktyèlman -
Se pou nou di ou gen yon etalaj 0, 1, 2, 3, 4, 5
, epi ou vle pran endèks 2.
Youn nan fason ki fè li, se pou yo wè kisa sa sanble.
0, 2, 1, 3, 4.
Dezarme k ap pase nan dezarme tou de varyab ak endis etalaj.
Se konsa, dezarme ($ etalaj [2]);
Koulye a, sa ki sa a pral sanble? 2 se jis ale, pou ki nan parfe amann.
Plis annwiyeu se si ou vle bagay sa yo nan aktyèlman ap tankou yon etalaj.
Mwen pral mete nimewo o aza.
Koulye a, remake endis m 'yo.
Mwen vle li nan jis ap tankou yon etalaj C kote li ale ki ant 0 a longè - 1
e mwen ka rèspèté sou li kòm sa yo.
Men, kòm pli vit ke mwen dezarme endèks, dezyèm lan, sa ki te nan endèks 3 pa kounye a vin endèks 2.
Olye de sa li jis retire ke endèks e kounye a, ou ale 0, 1, 3, 4.
Sa a se parfe ki rezonab.
Se jis nan annwiyeu ak sa ou dwe fè bagay sa yo tankou antur etalaj. Yeah.
>> [Elèv] Ki sa ki ta rive si ou te gen yon riban pou
epi ou te vle ale sou tout eleman yo?
Lè li frape 2, li ta sede tout tan?
Iteration sou plis pase yon etalaj. Gen 2 fason ou kapab fè li.
Ou ka itilize yon regilye pou riban.
Sa a se yon lòt konpleksite nan PHP.
Pifò lang, mwen ta ka di yo, yo gen kèk sòt de longè oswa Len oswa yon bagay
ki endike longè nan yon etalaj.
Nan PHP li nan konte.
Se konsa, konte ($ etalaj); $ mwen + +)
Se pou nou jis ekri ak lèt ​​detache ($ etalaj [$ mwen]);
Avi: endefini konpanse: 2.
Li nan jis pral febli.
Sa a se rezon an sa, pou pati ki pi, ou pa janm bezwen repekte sou yon etalaj tankou sa a.
Li ta ka yon egzajerasyon, men ou pa janm bezwen repekte sou yon etalaj tankou sa a
paske PHP bay sentaks fortch li yo ki kote fortch ($ etalaj kòm $ atik).
Koulye a, si nou enprime ($ atik); - we'll diskite sou li nan yon dezyèm - ki travay parfètman anfòm.
Fason la ki fortch ap travay se agiman an premye se etalaj la ke w ap iteration sou.
Ak agiman, dezyèm lan, atik, nan chak pas nan la pou riban
li pral pran sou bagay la pwochen nan etalaj la. Se konsa, sonje etalaj la gen yon lòd pou.
Premye fwa a nan la pou riban, atik a pwal 123
Lè sa a, li pral 12 Lè sa a, li pral 13 Lè sa a, li pral 23 Lè sa a, li pral 213.
Bagay sa yo jwenn vrèman etranj lè ou fè yon bagay tankou fortch.
Ann gade pou wè sa k ap pase paske ou pa ta dwe janm fè sa.
E si nou dezarme ($ etalaj [1]);
Ki te pwobableman atann.
W ap iteration sou sa a etalaj, ak chak fwa ou ap dezame endèks la an premye.
Se konsa, pou endèks 0, premye bagay, bagay la pran sou valè 0, Se konsa, li pral fè 123.
Men, anndan pou riban nou dezarme, 1 endèks konsa sa vle di 12 la ale. La
Se konsa, enprime. PHP_EOL.
PHP_EOL se jis newline, men li la teknikman plis pòtab
depi newlines nan Windows ki diferan de newlines sou Mac ak UNIX.
Nan Windows newline se \ r \ n, Lè nou konsidere ke tout kote lòt moun li gen tandans jis yo dwe \ n.
PHP_EOL se configuré konsa ke li itilize tou sa newline an nan sistèm ou a se.
Se konsa, ekri AN LÈT MAJISKIL. Se pou nou pa print_r ($ etalaj) nan fen an.
Mwen pa te gen okenn lide ki ke sa ta konpòtman an.
Item toujou pran sou valè a 12 menm si nou dezarme 12 anvan nou janm te rive nan li nan men etalaj la.
pa pran pawòl mwen sou sa, men li te sanble fortch kreye yon kopi etalaj la
ak Lè sa a, atik pran sou tout valè ki kopi.
Se konsa, menm si ou modifye etalaj la andedan an pou riban,
li pa pral pran swen. Item pral pran sou valè orijinal la.
Ann eseye dezame li.
E si sa a se $ etalaj [1] = "alo";
Menm si nou mete "alo" nan etalaj la, atik pa janm pran sou sa valè.
Genyen yon lòt sentaks fortch pasan
kote ou te mete 2 varyab ki separe pa yon flèch.
Sa a varyab premye a pwal kle a nan ki valè,
ak sa a varyab dezyèm a pwal menm bagay la egzak.
Sa a se entérésan isit la, men si nou tounen nan ka orijinal nou an nan 'yon' -> 1,
'B' -> 1,
la a si nou jis répétèr pou chak etalaj kòm atik, atik a pwal 1 chak fwa sèl.
Men, si nou menm tou nou vle konnen kle a ki asosye ak ki atik
Lè sa a, nou fè kòm $ kle -> $ atik.
Se konsa, kounye a nou ka fè ekri ak lèt ​​detache ($ kle. ':'.
Kounye a li nan iteration sou yo ak enprime chak kle ak valè ki asosye li yo.
>> Yon bagay anplis nou ka fè nan fortch pasan se ou ta ka wè sa a sentaks.
Ampersands anvan non varyab gen tandans yo dwe ki jan PHP fè referans.
Ki kote referans yo trè menm jan ak endikasyon,
ou pa gen endikasyon, kidonk, ou pa janm fè fas ak memwa dirèkteman.
Men, ou gen referans ki kote 1 varyab refere a menm bagay la kòm yon lòt varyab.
Anndan nan isit la kite a fè $ atik. Se pou nou tounen nan 1 10,.
Se pou nou fè $ atik + +; ki toujou egziste nan PHP. Ou ka toujou fè + +.
php.test.php. Mwen dwe enprime li. print_r ($ etalaj);
Nou enprime 2, 11.
Si m 'te fèk fè fortch ($ etalaj kòm $ atik) Lè sa a, atik yo pral valè a 1
premye fwa a nan riban an. Li pral kantite 1 a 2 ak Lè sa a, nou ap fè.
Se konsa, Lè sa a, li pral ale nan pas an dezyèm nan riban an ak ki atik se 10.
Li ogmantasyon atik a 11, ak Lè sa a, sa se sèlman jete lwen.
Lè sa a, nou print_r ($ etalaj); e kite yo wè ke sa a se jis 1, 10.
Se konsa, te kantite a nou te fè sa pèdi.
Men, fortch ($ etalaj kòm & $ atik)
kounye a sa a atik se atik la menm jan ak dwa sa a isit la. Li nan menm bagay la.
Se konsa, $ atik + + ap chanje pozisyon 0.
Fondamantalman, ou ka tou fè $ k -> $ atik ak ou ka fè $ etalaj [$ k] + +;
>> Se konsa, yon lòt fason pou fè sa, nou yo gratis modifye atik,
men sa pa pral gen pou modifye etalaj orijinal nou an.
Men, si nou itilize k, ki se kle nou an, Lè sa a, nou ka jis endèks nan etalaj yo ke nou itilize kle
ak kantite sa.
Sa a plis dirèkteman modifye etalaj orijinal nou an.
Ou ka menm fè ke si pou kèk rezon ou te vle kapasite nan modifye -
Aktyèlman, sa se yon bagay ki rezonab.
Ou pa t 'vle gen yo ekri $ etalaj [$ k] + +,
ou jis te vle ekri $ atik + + men ou toujou te vle di si ($ k === 'yon')
Lè sa a, kantite atik ak Lè sa a, enprime etalaj nou an.
Se konsa, kounye a sa nou espere print_r fè? Ki sa ki valè yo ta dwe enprime?
[Elèv] 2 ak 10. >> [Bowden] Se sèlman si kle a te 'yon' nou aktyèlman enprime sa.
>> Ou pwobableman trè raman, si tout tan, ap bezwen defini fonksyon nan PHP,
men ou ta ka wè yon bagay similè kote ou defini yon fonksyon tankou tou sa fonksyon.
Anjeneral ou ta di ($ foo, $ bar) ak Lè sa a, defini li nan dwe tou sa.
Men, si mwen fè sa, Lè sa a, ki vle di ke kèlkeswa sa rele tou sa,
kèlkeswa sa rele Baz, se konsa agiman an premye pase bay Baz ka chanje.
Se pou nou fè $ foo + +;
ak andedan nan isit la kite a fè Baz ($ atik);
Koulye a, nou ap rele yon fonksyon.
Se agiman an pran pa referans, ki vle di ke si nou chanje li
nou ap chanje bagay la ki te pase pous
Ak enprime sa a nou espere - sof si mwen messed moute sentaks - nou te resevwa 2, 11,
se konsa li te aktyèlman enkremante.
Notifikasyon ke nou bezwen referans nan 2 kote.
E si mwen te fè sa? Ki sa sa vle di?
[Elèv] Li pral chanje. >> Yeah.
Item se jis yon kopi valè a an pozisyon an.
Se konsa, atik ap chanje nan 2, men etalaj la ['yon'] ap toujou gen 1.
Oswa sa ki si mwen fè sa?
Koulye a, atik yo voye kòm yon kopi nan Baz.
Se konsa, yo pral kopi a nan agiman a ap enkremante a 2,
men atik tèt li pa te janm enkremante a 2.
Ak atik se menm bagay la kòm bracket etalaj tou sa,
pou ke etalaj pa te janm enkremante.
Se konsa, tou de moun ki kote bezwen li.
>> PHP se nòmalman trè entelijan osijè de sa a.
Ou ta ka panse mwen vle pase pa referans -
Sa a te aktyèlman yon kesyon sou youn nan psets yo.
Se te yon bagay questions.txt kote li te di,
Poukisa ta ka ou vle pase sa a struct pa referans?
Ki sa ki te repons lan nan sa?
[Elèv] Se konsa, ou pa gen a kapab bay kopi yon bagay gwo. >> Yeah.
Yon struct ka abitrèman gwo, ak ki lè ou pase struct a nan kòm yon agiman
li bezwen yo kopye ki struct tout yo pase l 'bay fonksyon an,
Lè nou konsidere ke si ou jis pase struct la pa referans
Lè sa a, li jis bezwen yon kopi yon adrès 4-multiple kòm agiman nan fonksyon an.
PHP se yon ti kras pi entelijan pase sa.
Si mwen gen kèk fonksyon ak mwen pase ak li yon etalaj de 1,000 bagay sa yo,
sa vle di li pral gen a kapab bay kopi tout 1,000 nan bagay sa yo
yo pase l 'nan fonksyon an? Li pa gen fè sa imedyatman.
Si andedan sa a fonksyon li pa janm aktyèlman modifye foo,
Se konsa, si ($ foo === 'alo') retounen vre.;
Avi nou pa janm aktyèlman modifye andedan kay la agiman sa a fonksyon,
ki vle di ke kèlkeswa sa te pase nan kòm foo pa janm bezwen yo dwe kopye
paske li pa chanje li.
Se konsa, yo wout la PHP travay se agiman yo toujou pase pa referans
jiskaske ou aktyèlman eseye modifye li.
Koulye a, si m 'di $ foo + +; li pral kounye a fè yon kopi orijinal foo a epi modifye kopi a.
Sa a ekonomis kèk tan.
Si ou pa janm ap manyen sa a etalaj masiv, ou pa janm aktyèlman chanje li,
li pa bezwen fè kopi a,
Lè nou konsidere ke si nou jis mete sa a comercial sa vle di li pa menm kopi li
menm si ou chanje li.
Sa a se konpòtman rele kopi-sou-ekri.
Ou pral wè l 'nan lòt kote, espesyalman si w pran yon kou sistèm opere.
Kopi-sou-ekri a se yon modèl trè nòmal kote ou pa bezwen fè yon kopi yon bagay
sòf si li la aktyèlman chanje. Yeah.
[Elèv] Ki sa ki si ou te gen kantite a anndan egzamen an,
Se konsa sèlman 1 eleman soti nan 1,000 ta bezwen chanje?
Mwen pa si.
Mwen panse ke li ta kopye bagay la an antye, men li posib li nan entelijan ase ki -
Aktyèlman, sa m 'ap panse se imajine nou te gen yon etalaj ki sanble tankou sa a: $ array2 = [
Lè sa a, 'yon' endèks la se yon etalaj nan [1 2 3 4] 'B', ak endèks la se yon etalaj nan tou sa.
Mwen bezwen vigil ant tout moun sa yo. Imajine gen vigil.
Lè sa a, 'C' se 3 a valè.
Oke.
Koulye a, kite pou nou di nou fè $ Baz ($ array2);
kote Baz pa pran sa a pa referans.
Se konsa, $ foo ['C'] + +;
Sa a se tankou yon egzanp kote nou yo ap pase array2 kòm yon agiman
ak Lè sa a, li se modifye yon endèks espesifik nan etalaj la pa incrementing li.
Mwen franchman pa gen okenn lide ki sa PHP ki pral fè.
Li ka byen fasil fè yon kopi bagay la tout antye, men si li nan entelijan,
li pral fè yon kopi sa yo kle kote sa a pral gen menm valè distenk li yo
men sa a ka toujou lonje dwèt sou etalaj la menm 1,2,3,4
ak sa a ka toujou lonje dwèt sou etalaj la menm.
M'a iPad li.
Nou pase nan sa a etalaj kote sa a Guy pwen a 3, sa a pwen nèg [1,2,3,4],
sa a Guy pwen [34, ...]
Kounye a ke nou ap pase li nan Baz, nou yo modifye sa a.
Si PHP se entelijan, li ka jis fè -
Nou toujou te gen a kapab bay kopi kèk memwa yo, men si te gen sa yo gwo subarrays enbrike
nou pa t 'bezwen yon kopi sa yo.
Mwen pa konnen si sa a, se ki sa li fè, men mwen ka imajine li fè sa.
Sa a se tou yon avantaj trè gwo nan C sou PHP.
>> PHP fè lavi ki tèlman pi fasil pou yon anpil nan bagay sa yo,
men ou kalite pa gen absoliman okenn lide kouman byen li pral fè
paske mwen pa gen okenn lide anba kapo a lè li nan fè sa yo kopi bagay sa yo,
oh, se ke pral gen yon kopi tan konstan,
èske l annik pral chanje 1 konsèy, se li pral gen yon ridikulousli difisil kopi lineyè?
Ki sa ki si li pa ka jwenn espas?
li Lè sa a, bezwen kouri ranmasaj fatra jwenn kèk plis espas?
Ak koleksyon fatra kapab pran abitrèman lontan.
Nan C ou pa gen enkyete sou bagay sa yo.
Chak sèl liy ou ekri ou kapab bèl anpil rezon ki fè sou ki jan li pral fè.
>> Se pou yo gade tounen nan sa yo.
Ki jan bèl se li ke ou pa gen fè fas ak fonksyon regle,
lye lis, oswa yon bagay tankou sa?
Depi k ap travay avèk tab regle se tèlman fasil kounye a, isit la nan yon devinèt plezi yo travay sou.
Louvri moute yon dosye rele unique.php ak nan li ekri yon pwogram PHP
(Li rele tou yon "script").
Nou gen tandans yo rele yo Scripts yo si yo ap bagay sa yo kout ke ou kouri nan liy lan lòd.
Fondamantalman, nenpòt lang ke ou pa konpile men w ap ale nan kouri ègzèkutabl a
nan liy lan bay lòd, ou ka rele ki script ègzèkutabl.
Mwen te kapab jis kòm byen ekri yon pwogram C ki fè sa a,
men mwen pa rele li yon script depi m 'premye konpile li epi li Lè sa a, kouri binè la.
Men, pwogram sa a PHP nou pwal rele yon script.
Oubyen si nou te ekri l 'nan Piton oswa pèrl oswa Node.js oswa nenpòt nan moun sa bagay sa yo,
nou ta rele yo tout Scripts paske ou kouri yo nan liy la bay lòd
men nou pa konpile yo.
Nou te ka fè sa yo byen vit.
Nou pa pwal itilize argv. Se pou nou jis kònen atravè sa a.
Rele li inik, ekri yon pwogram nan.
Ou ka asime ke D 'a ap gen ladan yon mo pou chak liy.
Aktyèlman, argv pral trè trivial yo itilize.
unique.php.
Premye bagay premye fwa, nou vle tcheke si nou te pase 1 lòd-liy agiman.
Menm jan ou ta atann arg ak argv nan C, nou toujou gen sa yo ki nan PHP.
Se konsa, si ($ arg! == 2) Lè sa a, mwen pa pral fè fas avèk enprime yon mesaj oswa anyen.
Mwen pral jis sòti, kòd erè nan 1.
Mwen te kapab tou retounen 1.
Raman nan PHP se ou nan eta sa a kote nou ap nan -
Anjeneral w ap nan yon fonksyon aple pa yon fonksyon aple pa yon fonksyon aple pa yon fonksyon.
Men, si yon bagay ale mal, epi ou jis vle sòti tout bagay antyèman,
sòti jis fini pwogram lan.
Sa a tou egziste nan C.
Si w ap nan yon fonksyon nan yon fonksyon nan yon fonksyon nan yon fonksyon
, epi ou vle jis touye pwogram nan, ou ka rele sòti epi li pral jis sòti.
Men, nan PHP li nan menm plis ra ke nou se nan nivo sa a tèt.
Anjeneral nou ap andedan kèk sòt de fonksyon, se konsa nou rele sòti
pou ke nou pa oblije retounen moute 1 bagay ki Lè sa a, reyalize gen nan yon erè
pou ke retounen moute si ki rekonèt te gen yon erè.
Nou pa vle fè fas ak sa, se konsa sòti (1);
retounen (1); nan ka sa a ta dwe ekivalan.
>> Lè sa a, sa nou vle louvri nou vle fopen.
Agiman yo yo ale nan gade bèl menm jan an.
Nou vle fopen ($ argv [1], e nou vle louvri l 'pou lekti.
Sa retounen yon resous ki nou ap ale nan rele f.
Sa a sanble trè sanblab yo ki jan C fè li eksepte nou pa bezwen di * DOSYE.
Olye de sa nou jis di $ f. Oke.
Aktyèlman, mwen panse ke sa a menm ba nou yon allusion kòm PHP fonksyon rele dosye-a. PHP dosye-a.
Ki sa sa pral fè a se li yon dosye tout nan yon etalaj.
Ou pa menm bezwen fopen li. Li nan pwal fè sa pou ou.
Se konsa, $ liy = dosye ($ argv [1]);
Koulye a, tout liy yo nan dosye a yo nan liy yo. Koulye a, nou vle sòt liy yo.
Ki jan nou ka klase liy yo?
Nou sòt liy yo.
Epi, koulye a nou ka enprime yo oswa kèlkeswa sa.
Pwobableman fason ki pi fasil se fortch ($ liy kòm $ liy) eko $ liy;
[Elèv] pa ta nou menm travèse liy pa indican yon bagay nan sòt?
Sa a se kote sòt ta dwe defini kòm sòt fonksyon (& $ etalaj).
Lè ou rele fonksyon an w pa pase l 'nan referans.
Li nan fonksyon an ki defini li kòm pran li kòm referans.
Sa a se aktyèlman ekzakteman ki sa ale mal
lè nou mete tout bagay sa yo serveurs nou yo lè nou te ale soti nan 5.3 5.4.
Up jiskaske 5.4, sa a te parfe ki rezonab.
Yon fonksyon pa atann yo pran li kòm referans, men ou ka pase l kòm referans
Se konsa, si fonksyon an rive chanje li, li la toujou modifye.
Kòm a 5.4, ou pa ap sipoze fè sa.
Se konsa, kounye a wout la sèlman ou pase pa referans se si fonksyon an klèman fè li.
Si ou pa vle li nan chanje li, Lè sa a, ou bezwen fè $ kopi = $ liy ak kopi pas.
Se konsa, kounye a liy yo pral konsève ak kopi ap chanje.
php.unique.php. Mwen ta ka yo te messed yon bagay yo.
Inatandi 'sòt'.
Gen k ap pase yo dwe yon bagay ki fè sa a pou nou.
Li pa menm la.
Peye atansyon lè w ap li manyèl sa a, ki agiman an premye atann yo aske yon etalaj
epi li pran pa referans.
Poukisa sa a se plenyen m 'konsa? Paske mwen gen sa a sòt fonksyon toujou nan isit la ke mwen pa vle.
Okay, php.unique.php. Mwen pa t 'pase l gen yon diskisyon paske mwen pa gen yon dosye.
Li nan php.unique.php sou test.php.
Isit la se test.php tout enprime deyò nan yon lòd bèl Ranje.
Remake lòd Ranje se kalite etranj pou yon dosye kòd
paske tout liy vid nou yo ale nan vini an premye
Lè sa a, yo ale nan vin tout nan 1 kreu nivo nou an
Lè sa a, vini tout kreu pa gen okenn nou an.
Yeah. >> [Elèv] Se konsa, pou kòd la sous li pa te pase pa referans?
Se ke jeneralman t'ap pase bò la valè?
[Bowden] Lè ou rele yon fonksyon, li pa janm detèmine si li te pase pa referans.
Li nan definisyon an fonksyon ki detèmine si li te pase pa referans.
Ak gade nan definisyon an fonksyon de sòt oswa jis gade nan sa a,
li pran agiman an pa referans.
Se konsa, kèlkeswa si ou vle l 'pran li pa referans, li fè sa pran l' ak referans.
Li modifye etalaj la nan plas li.
Sa a se jis pa aksepte. Ou pa ap pèmèt yo fè sa. >> [Elèv] Oh, oke.
[Bowden] sa a, sòt a pral pran liy pa referans epi modifye li.
Epi ankò, si nou pa t 'vle li fè sa, ou ta ka fè yon kopi zèl.
Menm nan ka sa a, kopi se pa aktyèlman yon kopi liy yo.
Li jis pwen menm bagay la jiskaske li vin premye modifye,
ki kote l ye premye pwal jwenn modifye nan fonksyon an sòt,
kote, paske li nan kopi-sou-ekri, kounye a yon kopi kopi yo pral fè fè yo.
Ou kapab tou fè sa. Sa a se plas la lòt ou ka wè comercial.
Ou wè l 'nan fortch pasan, ou wè li nan deklarasyon fonksyon,
epi ou wè li lè jis plase varyab.
Koulye a, nou te akonpli pa gen anyen nan fè sa a
paske kopi ak liy yo se literalman menm bagay la.
Ou kapab sèvi ak liy ak fè kopi interchangeable.
Ou ka fè dezarme ($ kopi); ak ki pa liy dezarme,
ou jis pèdi referans ou a menm bagay la.
Se konsa, kòm nan pwen sa a, kounye a liy se yon fason a sèlman ou kapab jwenn aksè nan liy yo.
>> Kesyon?
Yeah.
[Elèv] Konplètman koupe topic, men ou pa bezwen fèmen PHP ak - >> a Ou pa fè sa.
Oke.
[Bowden] mwen ta ale osi lwen ke yo di li nan pratik move yo fèmen yo.
Sa a se pwobableman yon egzajerasyon, espesyalman nan yon script,
Men, kite a wè sa ki pral rive si m fè sa.
Sa te fè pa gen anyen. E si mwen te vle - [soupir]
Mwen bezwen pase yon agiman.
Tire. Mwen rele l 'mal.
Se konsa, php.unique.php ak yon agiman.
Koulye a, mwen pa menm bezwen sa a.
Mwen pral pase l yon agiman valid.
Sa a enprime tou sa li a enprime.
Mwen enprime kopi ak kopi pa egziste. Se konsa, liy yo.
Li enprime tout bagay, ak Lè sa a, remake tout bagay sa a tenten desann isit la,
paske se nan anyen PHP ki se deyò nan Tags PHP
se jis yo pral enprime literalman.
Se poutèt sa HTML, li la konsa nice ke mwen ka fè div bla, bla, bla klas oswa kèlkeswa sa,
bla, bla, bla ak Lè sa a, fè kèk kòd PHP ak Lè sa a, fè div fen.
Epi, koulye a enprime sa a mwen jwenn div bèl m 'kanpe sou tèt, tout bagay ki PHP an lèt detache, div nan pati anba.
Dezastre lè yon bagay tankou sa a k ap pase, ki se trè komen,
jis yon eran newline nan fon an nan dosye-a.
Ou pa ta panse li ta ke gwo de yon kontra
jiskaske ou konsidere lefèt ke ak navigatè -
>> Ki jan redireksyon travay oswa fondamantalman nenpòt ki travay Tèt,
lè ou fè koneksyon ou a nan yon sit entènèt epi li voye tounen tout bagay sa yo Tèt ak bagay sa yo
tankou repons 200 oswa repons redireksyon oswa kèlkeswa sa,
Tèt yo, se sèlman valab jouk lè multiple an premye nan done te voye yo.
Ou ka redireksyon dè milye de fwa, men le pli vit ke se multiple an premye nan done voye
ou pa ap sipoze fè redireksyon ankò.
>> Si ou gen yon newline pèdi nan fon an nan yon dosye
epi kite pou yo di ke ou itilize sa a fonksyon ak Lè sa a, ou vle -
Se pou nou di li nan yon lòt dosye ki nan index.php, epi ou require_once yon bagay -
Mwen pa ka panse a yon bon egzanp nan li.
Pwoblèm nan rive lè vin liy sa a nan pati anba a répéta.
Ou pa vle anyen yo te répéta ankò.
Menm si ou pa t 'gen entansyon sou anyen ap resevwa répéta, yon bagay t' jwenn répéta
ak konsa koulye a ou pa ap sipoze voye nenpòt ki plis Tèt
ak w ap ale nan jwenn plent.
Ou jis pa bezwen sa yo tags fèmti a.
Si ou fè plan sou fè yon bagay ak nan HTML -
epi li parfe rezonab li fè desann isit la div kèlkeswa sa
ak Lè sa a, nan pwen sa a ou ka oswa ou pa ka gen ladan yo yo.
Li pa reyèlman gen pwoblèm.
Men, nan PHP Scripts li nan ra yo fèmen l '.
Lè tout bagay se PHP, absoliman tout bagay,
ou pa vrèman bezwen fèmen li / ou pa ta dwe fèmen li.
>> Jan pou jere strings se pi joli pase nan C.
Nan PHP ou ka endike yon fil avèk quotes yon selibatè oubyen doub.
Avèk quotes sèl ou pa kapab itilize "chape" sekans.
Toujou ap sove, bla, bla, bla.
Se konsa, printf trè ra nan PHP.
Mwen devine mwen ta sèvi ak printf si mwen te vle fè yon sòt de bagay sa - nan pset 5, ou te itilize sprintf oswa kèlkeswa sa.
Men, ou vle fè 001.jpg ak 002.jpg.
Se konsa, pou sa sòt de bagay sa kote mwen aktyèlman vle fòma tèks la mwen ta sèvi ak printf.
Men, otreman mwen ta jis itilize seri fisèl.
Mwen pa janm reyèlman itilize printf.
Nou jis ap différencier detay yo ant quotes sèl ak quotes doub.
Pi gwo diferans lan se ke quotes sèl, li ap enprime literalman.
Pa gen okenn Char done kalite nan PHP, kontrèman ak C, kidonk sa a se ekivalan a sa a.
Yo ap tou de strings.
Epi bagay la bèl sou strings quote se sèl nan mwen te kapab nou di "Alo mond! ' bla, bla, bla,
$ $ Wooo.
Kisa k ap pase lè m 'enprime sa a se li pral enprime li literalman.
Se pou nou debarase m de tout bagay nou yo.
Se konsa, eko $ str1;
Li literalman enprime tout bagay sa yo: siy dola,
antislach n, ki ou ta panse ta dwe newlines -
tout bagay sa yo li simagri literalman.
Bagay la sèlman ou bezwen yo sove yo se quotes sèl
paske otreman li ta panse li an fèmen quotes yo sèl.
Quotes doub, konplètman diferan.
Nou deja wè makè yo sentaks la cluing nou nan fè sa a sou yo ale fò anpil mal.
php.unique. Endefini varyab: wooo paske sa a se entèprete kòm yon varyab rele wooo.
Quotes Double kite ou insert varyab nan -
Se pou nou di $ non = "Rob";
Se konsa, eko "Hi, non mwen se $ non!";
Li rekonèt sa a kòm yon varyab.
Lè m 'kouri sa - epi mwen pral insert yon newline - Hi, non mwen se Rob! ak alo mond!
Sa a se paske mwen pa janm retire enprime nan wooo pi wo a.
Gen se 1 etap pi lwen ou ka fè.
$ Etalaj = [1, 2, 3];
E si mwen vle enprime endèks an premye nan etalaj?
Ou fè $ etalaj [0].
Makè yo sentaks se yon endikasyon. Ki sa ki sa a pral fè?
php.unique.
Hi, non mwen se 1! ki se pa sa m 'te vle.
Makè sentaks te bay manti a mwen.
Ann eseye 'yon' -> 1, 'B' -> 2.
Sa a se ki jan mwen ta gen yo ekri li.
Inatandi quote sèl (T_ENCAPSED bla, bla, bla, bla, bla).
Lide a se ke li pa la rekonèt sa a kòm yon pati nan etalaj la.
Li pa nan rekonèt sa a kòm etalaj Catalogue nan yon lèt nan yon.
Ou vle fè sa ki te antoure pa aparèy òtopedik Curly,
e kounye a, tou sa se nan sa a atèl Curly pral entèrpole,
ki se pawòl Bondye a nou itilize pou maji yo mete sa yo varyab nan kote ki dwat.
Koulye a, fè sa, php.unique, ak Hi, non mwen se 1! kòm espere
oswa Hi, non mwen se Rob!
Youn nan bagay ki nan kalite bèl sou quotes sèl se ke -
Genyen kèk pou peye pou entèrpolan.
Si ou itilize quotes doub, entèprèt la gen yo ale sou sa a fil,
fè si ke, "O, isit la nan yon varyab. Koulye a mwen bezwen ale jwenn varyab sa a epi antre li isit la."
Menm si ou pa sèvi ak nenpòt varyab,
pa gen anyen anndan nan sa yo quotes doub bezwen yo dwe entèrpole,
men li ap toujou gen pi dousman paske li bezwen yo ale sou quotes yo doub
kap chèche bagay sa yo ke yo bezwen entèrpole.
Se konsa, yon sèl quotes ka yon ti jan pi vit si pa gen anyen bezwen yo dwe entèrpole,
epi mwen gen tandans menm yo sèvi ak quotes sèl pou, 'Hi, non mwen se. $ Etalaj ['yon'] de tout fason.
Sa k ap pase yo dwe ekivalan a sa nou te genyen anvan.
Men, li la yon kesyon de preferans.
Si w ap lè l sèvi avèk PHP, pwobableman ou pa pran swen sou diferans nan vitès.
Gen se pa ase fè lojik yo soti vin jwenn kòmanse avèk yo.
>> Nenpòt kesyon final?
>> Nou aktyèlman pa t 'menm jwenn atravè tout sou li, men li bagay sa a te raz.
Bagay la pase sa a, se kalite bèl nan PHP se lè w ap fè fas ak HTML,
ou pral sèvi ak li yon ti jan, se konsa sentaks la rakoursi bèl pou enprime yon varyab.
San yo pa mete PHP isit la, yo rele sa tags kout.
Ofisyèlman kòm nan PHP 5.4, sa a se Obsoleted.
Ou yo rekòmande yo mete php.
Sa a se toujou sipòte, balises pou kout ak <a? = Yo toujou parfe amann.
Li se pa default sipòte, kidonk, ou ka itilize sa yo jan ou vle, e yo ap trè pratik.
>> Nenpòt kesyon?
Tout dwa.
>> Rete élégance, San Diego.
[Chuckles]
Bye. [Ri]
[Aplodisman] [ri]
>> [CS50.TV]