Òdinatè, Pwogram
PHP: etalaj nan etalaj la. Search nan yon etalaj PHP
Programmation - se sentaks la ak Semantics. Premye a se defini nan règleman yo nan lang, ak dezyèm lan - eksperyans nan pwomotè la. Avèk respè ranje pwomotè ka chaje sijè Semantics sentaks la. Li pa yon objè, men se pa nan sans nan tradisyonèl nan etalaj la. PHP pèmèt ou kreye ranje nan varyab nan kalite diferan, ki gen ladan tèt yo. Yon eleman etalaj pouvwa gen yon fonksyon, li se posib yo chaje yon etalaj de algorithm reyèl, reyèl sans.
Sentaks se ki estab, men varye de vèsyon nan vèsyon, epi yo pa ka toujou dwe konpatib, menm anba nan fon moute a. Transparans nan pwogram - byen ki oubliyé reyalizasyon nan syèk ki sot pase. Semantics ap devlope epi yo ka toujou dwe aplike pa sèlman nan nenpòt vèsyon an nenpòt lang; Li te gen vin yon tradisyon yo sèvi ak yon sentaks eksprime sa yo panse lefèt ke règleman yo nan lang menm bay pa t '. Sou egzanp sa a, ranje ka pi fasil konprann.
Konstriksyon kouche
Yon etalaj nan PHP se yon sentaks pratik ak fonctionnalités. Sa a di ki kalite done ka dekri nan avanse, men li se souvan pratik yo kreye ranje sou vole a jan sa nesesè.
piblik $ aNone = etalaj (); // etalaj se dekri epi li gen pa gen anyen
piblik $ aFact = etalaj ( 'zaboka', "pèch", "Cherry"); // sa a etalaj de twa eleman
Kreye yon etalaj de pwosesis verifikasyon nan nenpòt ki kondisyon:
$ CSrcLine = 'fisèl analize done';
pou ($ mwen = 0; $ m <13; $ m ++) {
$ CUserLine = inputUserLine (); // D 'yon bagay
si (checkFunc ($ cSrcLine, $ cUserLine) {
'Wi' $ AResult [] =; // ajoute yon etalaj PHP
} Lòt Bagay {
$ AResult [] = 'Non';
}
}
Kòm yon rezilta nan ekzekisyon nan egzanp sa a pral kreye yon etalaj de 13 eleman ki gen valè yo, se sèlman 'Wi' oswa 'Se pa' liy. Eleman pral gen endis ki ant 0 a 12. ka efè a menm ka jwenn pa pre-anrejistre "lavni" PHP-etalaj nan yon fisèl:
$ CFutureArray = '';
pou ($ mwen = 0; $ m <13; $ m ++) {
$ CUserLine = inputUserLine (); // D 'yon bagay
si ($ m> 0) {$ cFutureArray = '|' .; }
si (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray = 'Wi' .;
} Lòt Bagay {$ cFutureArray = 'Non' .; }
}
$ AResult = eksploze ( '|', $ cFutureArray);
ranje pluridimansyonèl
Anpil sistèm jesyon kontni (SMS) lè l sèvi avèk ranje "sou yon echèl Grand." Sou yon bò, li se bon pratik, nan lòt men an, li se difisil a aplike. Menm si otè a se klè doktrin "PHP-etalaj nan etalaj la", Lè sa a, li pa ta dwe viktim abi: se pa sèlman pwomotè a pral gen jwenn itilize notasyon a konplèks. Anpil fwa, apre yon ti tan otè a tèt li pral long sonje, ki sa mwen te ekri okòmansman:
retounen etalaj (
'View_manager' => etalaj (41, 'template_path_stack' => etalaj (__DIR__. /../view ',),
= 'Routeur'> etalaj ( 'wout' => etalaj ( 'sayhello' => etalaj (
'Kalite' => 'Zend \ mv \ Routeur \ Http \ Literal',
'Opsyon' => etalaj ( 'wout' => '/ sayhello', => etalaj 'défaut' (
'Kontwolè' => 'HelloWorld \ Kontwolè \ Index', 'aksyon' => 'endèks',))))),
'Regulateur' => etalaj (= 'invokables'> etalaj (
'HelloWorld \ Kontwolè \ Index' => 'HelloWorld \ Kontwolè \ IndexController'))
);
Sa a se yon echantiyon pratik «PHP-etalaj nan etalaj la" nan ZF 2. Pa twò enspire nan premye, men li ap travay, e petèt fè kad sa a siksè (egzanp nan modil ZendSkeletonApplication / modil / HelloWorld / config / module.config.php an).
Array - yon estrikti done enpòtan pandan konsepsyon an ak devlopman. vèsyon pluridimansyonèl l 'te yon fwa popilè, men sou fwa li te rete yon bezwen pou ranje ki rive jiska de oswa twa dimansyon. L'ap pi fasil ak plis ankò entwisyon, men an tèm de pwofesyonalis lè yon bagay kòmanse miltipliye, se konsa yon bagay nan fòmilasyon a nan pwoblèm nan, oswa kòd la se pa ka a.
Senp, aksesib epi konprann
Kreye nan php etalaj nan etalaj la, li pi bon yo dwe limite a sa sèlman de oswa twa nivo. Malgre estabilite nan ak disponiblite nan PHP fè erè nan pwosesis la nan sentaks. Avèk sa a ou ka tolere li te gen yon editè Kòd bon, abitye avèk presizyon konte parantèz ak vigil. Sepandan, PHP pa kontwole ki kalite done (sa a se kama pwogram modèn) ak pèmèt pwomotè a yo pratike erè semantik.
Dwa a kontwole ki kalite varyab oswa ide pwòp yo nan Semantics transfòmasyon nan sentaks - souvan yon liksye. Sa a script pèt pousantaj, kòd lizibilite, fasilite ... paske kodaj se toujou esansyèl.
PHP gen yon siyifikatif karakteristik negatif: script la jis pandye nan evènman an nan ensèten. Se pa tout debogeur fè fas ak evènman enprevi, ak anpil depann sou eksperyans lan ak entwisyon nan pwomotè a. Algorithm a pi fasil pase estriktire enfòmasyon plis aksesib, chans yo plis jwenn yon erè oswa ou pa pèmèt li.
Karakteristik, lè ranje yo an premye nan opsyon done yo te ofri nan estrikti yo fòm - yon tantativ maladwa yo kreye yon bagay soti nan diferan kalite done. Premye a siviv ak te vin jwenn yon pwisan nouvo sentaks, dezyèm nan desann nan listwa.
Senp ak asosyatif ranje
Anrejistreman yon etalaj ki genyen de dimansyon - se yon lòt pè parantèz "[" ak "]", pou egzanp: $ aSrcData [1] [2] vle di aksè a yon atik [2] nan etalaj la [1], D 'etalaj la $ aSrcData. Nan PHP, pa gen okenn kondisyon deklare an avanse done an. Lyuboyu deklare Ka enfòmasyon toujou ap tcheke pou egzistans.
Trè efektivman yo kreye yon bagay sèlman lè li nesesè, nan fòm lan nan ki li se sa nesesè, ak detwi lè li se pa gen okenn ankò ki nesesè yo. Lè l sèvi avèk kòm yon kle (endèks) non sans pouvwa dwe prepare lizib estrikti sans nan yon kontèks la nan kote aktyèl la nan algorithm a:
$ AAnketa [ 'non'] = 'Ivanov';
$ AAnketa [ 'laj'] = 42;
$ AAnketa [ 'travay'] 'Direktè' =;
$ AAnketa [ 'aktif'] = verite;
$ ATable [] = $ aAnketa;
$ AAnketa [ 'non'] = 'Petrov';
$ AAnketa [ 'laj'] = 34;
$ AAnketa [ 'travay'] 'Manadjè' =;
$ AAnketa [ 'aktif'] = verite;
$ ATable [] = $ aAnketa;
$ AAnketa [ 'non'] = 'Afanasiev';
$ AAnketa [ 'laj'] = 28;
$ AAnketa [ 'travay'] 'Travay' =;
$ AAnketa [ 'aktif'] = fo;
$ ATable [] = $ aAnketa;
$ Pitit = enplod. ( ";", $ ATable [1]). '
'; // dezyèm PHP-etalaj nan yon fisèl
. $ Pitit = $ aTable [1] [ 'travay']; // rele nan yon sèl eleman nan etalaj la dezyèm
Nan rezilta nan sa a egzanp (nan premye etalaj - la abityèl kle ladan l 'kòmanse ak 0, nan dezyèm etalaj - asosyatif, gen kat kle:' Non ',' laj ',' travay ',' aktif '):
$ Pitit = 'Petrov; 34; manadjè; 1
Manadjè ';
Nan egzanp sa a ki senp, yon moun ka wè ki jan pouvwa etabli pwofil dwe aplike nan tout anplwaye yo. Ou ka kreye yon etalaj de anplwaye ki gen endis nan pèsonèl nimewo ak si yo bezwen yon anplwaye patikilye, Lè sa a, chwazi li sou kantite a pèsonèl sa yo.
Si òganizasyon ou a gen divizyon oswa ki gen travay sezon an, oswa si ou vle asiyen separeman travay espansyon ... konsepsyon "PHP-etalaj nan etalaj la" trè pratik, men ou pa ta dwe janm patisipe nan dimansyon a. De oswa twa dimansyon - limit la pou solisyon efikas.
Repons pou travay ak ranje
Si anvan konte, Ki jan bagay sa yo travay, nan dènye ane ki sot pase, tradisyon an nan epòk la binè, lè yon pwogramè te vle konnen egzakteman ki jan eleman yo etalaj yo estoke, ak te vle fè yo aksè dirèk, konplètman bliye. Te gen yon anpil nan ankodin karaktè, ki rete nan nan memwa a se pa gen yon sèl multiple. mo "ti jan nan" se kounye a posib al kontre sèlman nan yon operasyon ti jan-search, men rechèch la pou nan yon etalaj PHP - se yon pwoblèm ki apa a. Aksè nan eleman yo ka senp epi asosyatif. Nan ka a ansyen eleman yo etalaj (ki gen nenpòt nan kalite ki disponib PHP a) yo nimewote 0, 1, 2, ... Nan ka, dezyèm lan, pwogramè a espesifye endèks pwòp li yo, souvan refere yo kòm yon "kle" jwenn aksè nan valè a vle.
$ ALINE [ "fwi"] = "zoranj"; // isit la PHP-kle etalaj = "fwi"
oswa (tout bagay sa yo dwe kòrèk ak nan konfòmite avèk paj la Kòd kodaj):
$ Aline [ikonv ( 'utf-8', 'CP1251', "fwi")] = ikonv ( 'utf-8', 'CP1251', "zoranj");
Lè ou ajoute nan etalaj $ ALINE nouvo valè nan:
$ Aline [] = ikonv ( 'utf-8', 'CP1251', 'pèch');
$ Aline [ikonv ( 'utf-8', 'CP1251', "legim")] = ikonv ( 'utf-8', 'CP1251', "konkonb");
$ Aline [] = ikonv ( 'utf-8', 'CP1251', 'berejenn');
kòm yon rezilta nan bouk la:
fortch ($ Aline ke $ ck => $ CV) {
$ Kòn. = $ Ck. '='. $ Cv. '
';
}
Li se jwenn nan:
zoranj fwi =
0 = pèch
= Legim konkonb
1 = berejenn
PHP-kle etalaj lè ajoute 'pèch' atik ak 'berejenn' fòme sekans ki ant 0, ak lè ki espesifye valè li yo pral egal a sa a valè.
Retire eleman yo soti nan etalaj la
Fason ki pi fasil yo retire eleman nan PHP etalaj pandan pwosesis. Nan ka sa a, pou egzanp, kòm yon rezilta nan sik la ekzekisyon, etalaj la sous se wè, ak fòme yon nouvo, ki se tou senpleman eleman nesesè yo pa anrejistre.
Ou ka fè pi fasil. Si egzanp ki sot pase a yo sèvi ak:
dezarme ($ Aline [0]); // retire eleman nan PHP etalaj
rezilta a yo pral:
zoranj fwi =
= Legim konkonb
1 = berejenn
Opsyon pou manipile eleman yo etalaj ka konstwi ansanm. Pou egzanp, lè l sèvi avèk fonksyon an: enplod () ak eksploze (), yo ka ekri nan etalaj PHP-ligne ak yon sèl pataj, demont ak tounen lakay ou nan yon lòt etalaj - pa yon lòt séparation.
Tou senpleman retire yon etalaj PHP kòm yon antye, jis ekri: dezarme ($ Aline);
Sa a ase.
Search nan etalaj la
PHP gen yon espesyal fonksyon rechèch array_keys (), array_values (), array_key_exists (), ak in_array (), men anvan ou deside sèvi ak yo, ta dwe konsidere posibilite pou pou fè rechèch pou nan yon etalaj PHP sou pwòp li yo.
Chak pwojè gen yon patikilye matyè, ki fèt ranje, espesyalman lè yon pati nan Semantics yo demenaje ale rete nan sentaks la ak reprezante pa yon seri kle trè espesifik ki gen sans. Li pèmèt ou fè pwòp fonksyon rechèch ou an, ki tou ka dekri aktivman.
Nan PHP, ou ka rele fonksyon an, non an nan ki se detèmine pandan ekzekisyon an pwogram lan. Yon egzanp trè pratik nan PHPWord bibliyotèk ki pèmèt ou li ak ekri dokiman MS Pawòl:
$ Eleman = etalaj ( 'Tèks', 'Inline', 'TextRun', 'Link', 'PreserveText', 'TextBreak',
'ListItem', 'ListItemRun', 'Table', 'Imaj', 'objè', 'Nòt anba paj',
'Not', 'toulède kaz', 'tèkstboks', 'Jaden', 'Liy');
$ Fonksyon = etalaj ();
pou ($ mwen = 0; $ m
}
Kòm yon rezilta, yon etalaj de fonksyon $ yo resevwa $ eleman valè etalaj, se sa ki, non yo nan fonksyon yo reyèl ki fè travay la ak eleman reyèl nan dokiman an.
Rele pou $ eleman [4] fonksyon $ fonksyon [4], ou kapab jwenn rechèch la pafè ak rezilta rapid.
Sòt atik
done klasman travay enpòtan, ak PHP bay plizyè fonksyon pou sa a: sòt (), rsor (), asort (), ksort (), ... moute desann eleman nan de fonksyon yo lèt prezève relasyon ant kle ak valè. Pafwa li fè sans nan melanje valè yo nan etalaj la nan o aza - chefeul ().
Lè l sèvi avèk fonksyon yo PHP sòt, nou pa ta dwe bliye ke manm yo ka gen pa sèlman yon kalite diferan, men kontni pa byen natirèl. Premye bagay yo dwe pran anpil prekosyon sou klasman strings ki gen lèt, Ris, dat klasman, ak nimewo, ki fè yo ekri nan fòma diferan.
Pi bon fason pou yo ekri pwòp ou a solisyon ideyal, omwen nan etap la nan tès script la - se yon klasman manyèl. Li pral ede bay éventualité.
fisèl ranje
Ak karakteristik enplod () ak eksploze () etalaj ka fasil transfòme nan yon fisèl epi pou yo jwenn tounen. Li pèmèt ou nan magazen done nan yon reprezantasyon kontra enfòmèl ant ak deplwaye yo nan yon eta alèz, jan sa nesesè.
Array, fè fas a nan liy la louvri moute nouvo posiblite yo. Pou egzanp, travay la nan chèche pou mo kle nan tèks la mande ki te jwenn nan pa te ajoute ankò.
$ CSrcLine = 'Tèks Tèks ListItemRun tèkstboks ListItem tèkstboks Tcheke Box toulède kaz tèkstboks Nòt anba paj';
$ ASrc = eksploze ( '', $ cSrcLine);
$ CDstLine = '';
pou ($ mwen = 0; $ m
si (! is_integer (strpo ($ cDstLine, $ cFind))) {
. $ CDstLine = $ cFind;
}
}
$ ADst = eksploze ( '] [', $ cDstLine);
$ Kòn = implode ( ';', $ aDst);
Kòm yon rezilta, varyab $ CONE resevwa sèlman valè yo soti nan liy yo orijinal ki satisfè gen yon fwa: "Tèks; ListItemRun; tèkstboks; ListItem; Tcheke; PO Box; toulède kaz; Nòt anba paj".
lang Ris nan kle yo ak valè
Li pa rekòmande yo sèvi ak nenpòt ki bagay ki se konekte ak aparèy televisyon HD pèsonaj nasyonal peyi a nan konstriksyon Massachusetts Institute of Technology. lang, Ris, osi byen ke tout lòt lang, karaktè yo nan yo ki pi lwen pase az, yo pa pral kreye yon pwoblèm, yo te nan baz done a, men se pa nan sentaks la kòd. Pafwa menm yon travay ki senp pou PHP «pote yon etalaj de aparèy pou enprime a oswa sou ekran an" ta mennen nan "bavardaj" epi byen souvan yo tou senpleman sispann script la.
PHP - lang rete fidèl ak toleran nan karaktè nasyonal la, men gen anpil sitiyasyon kote kantite lajan an nan travay ki fèt te fè ankò jis paske nan plas la dwat nan moman an dwa pral pòp moute kle a, idantifye ki pa pral posib.
PHP sentaks ak anviwònman lang
Kenbe nan tèt ou ke PHP sentaks - yon sèl sa a, men desen an nan sa a sentaks "kontra" ak aplikasyon pou lòt, sistèm nan fonksyone ak opsyon ki disponib nan kenkayri. Gen anpil opsyon, bay tout pa janm yo pral posib.
Règ "nan la Kòd Gen sèlman nan Kòd, ak nan a antre, andedan ak nan nan pwodiksyon gen okenn enfòmasyon" ap ede evite inatandi supriz. PHP-valè nan etalaj la ka "Ris", men kle a li se yo dwe syntactically kòrèk, pa sèlman li apati de lang nan, men tou, an tèm de anviwònman travay l 'yo.
Similar articles
Trending Now