V matriki PHP sta dve zanimivi možnosti: gibanje foreach in zadnji element. To je v smeri naprej in nazaj. Jezik vsaki spremenljivki daje pravico, da po svoji presoji spremeni svoj tip, element matrike pa je tudi spremenljivka.
Če upoštevamo, da je kazalec na aktivni element v matriki in ga je mogoče nadzorovati, kot želite, potem, če razvijalec premaga, program ne šteje čudežev, njegovo vedenje pa bo "neodvisno".
Nizi so bili v programiranju vedno priljubljen koncept, v zadnjem času pa so pridobili nov pomen in skladenjske oblike. PHP foreach zanka in pojem »zadnji element« sta v nekem smislu enakovredna in se razlikujeta le v smeri gibanja:
V obeh primerih lahko ustvarite polja, kot se izkaže, vendar lahko vedno vidite vse. Oba primera odpirata možnost, da v sintakso PHP postavita lastno semantiko.
V prvem primeru cikel uradno pregleda vse elemente po vrstnem redu njihovega pojavljanja v nizu ali v zaporedju, ki se je razvil po manipulacijah z njim. V drugem primeru je postopek enak, vendar se pojavlja od repa polja do njegovega začetka.
Če pride do težave, PHP razglasi napako elementa. Če kot parameter ne uporabimo matrike, imamo v prvem primeru PHP sporočilo: opozorilni napačen argument za foreach, v drugem - napako ravni E_WARNING, to je, “nič strašnega, vendar bodo težave prišle kasneje”.
Pojav asociativnih nizov je zaznamoval banalno spremembo v odnosu do njih. Če programer ne nadzoruje situacije, se težavam ni mogoče izogniti.
Številne naloge ali deli algoritma predpisujejo ustvarjanje urejenih nizov, nato pa tipke vedno urejajo.
Če lahko izbrišete element in ključi, ki sledijo, se ne pomaknejo naprej, se matrika ne razlikuje veliko od asociativnega. Je, da razvijalec ni imel v roki, kako poklicati ta ali tisti element matrike.
Običajna ponovitev elementov v zanki za () je zanimiva in smiselna, ko ključi zaporedoma gredo. Vsako polje vedno ima ključ v vrstnem redu. Ko je element izbrisan, se ustvari prazen prostor in v zanki for () se bo pojavila napaka.
Pri iskanju po matriki s pomočjo foreach () ali array_pop () nikoli ne bo težav, ampak samo v prvem primeru bo polje ostalo, v drugem pa bo izginilo.
Oblika foreach v PHP-ju je znana oblika. Iskanje lahko podate tako, kot je: ($ aPass kot $ cLine) ali pa določite ključ: ($ aPass kot $ cKey => $ cLine).
Loop skozi array_pop ($ aPass) - s polja stim improvizacije preteklosti, čeprav je relevantno in zanimivo v sedanjosti. To sploh ni zanka, ampak le izhod zadnjega elementa matrike, v katerem je odstranjen iz matrike.
Ko se zažene stavek PHP foreach, je kazalec notranjega niza vedno nastavljen na njegov prvi element. Spreminjanje kazalca v zanki lahko pripelje do čudežev.
Pomembno je, da spremenljivka $ cLine ne navaja elementa matrike $ aPass, ampak vsebuje njegovo vrednost, zato morate, če želite spremeniti element matrike, pred njo postaviti znak &. V tem primeru bo $ cLine sklic na element matrike, ne na njeno vrednost.
Katera napaka je bolj dragocena: smrtna ali preskočena je kot začimba, po okusu razvijalca, ob upoštevanju ustreznega odziva stranke. Če je bil element odstranjen iz matrike, bo opazil samo zanke for. PHP foreach zanke in PHP array_pop so tukaj popolnoma zvesti.
Če je element napačne vrste, bo opazen na enak način kot v glavnem delu programa.
Če parameter foreach ne vključuje matrike ali objekta, bo obstajal argument Invalid ..., čeprav je varianta z array_pop navadno nerealna. Toda, ko se to zgodi vse skupaj, se nič ne bo zgodilo razen NULL.
PHP omogoča obdelavo objektov kot nizov. Kaj je smisel tega težko reči, vendar je to na voljo. Polja lahko vsebujejo vrednosti katere koli vrste in jo med izvajanjem programa spremenijo. Seveda je lahko element matrike druga matrika ali objekt. Raven gnezdenja je omejena z razumom.
Operaterji in jezikovni konstrukti nimajo nič skupnega s stopnjo rekurzije ali gnezdenja. To je resen zaostanek v skladnji kontrolnih struktur od skladnje opisa podatkov. Razvijalci se uporabljajo za takšne pojave, kot so PHP polja, foreach, array_pop, zato je priročno delati z njimi.
Možnosti, da se bodo nadzorne strukture spremenile (tudi v daljni prihodnosti), še niso predvidene.
Moramo se zahvaliti dejstvu, da videz para foreach / array_pop ni bil predolg, vendar je to le polovica zgodbe. Običajno za () {}, medtem () {} in do {} while () zanke, je čas, da ustrezno kontrolirajo praznine v nizih in reši problem rekurzije, ko je element matrika.
Vendar se zavest razvijalca še vedno spominja nespremenljive doktrine: matrika je niz elementov, kjer je element matrike druga entiteta, ki jo je treba ustrezno obdelati.
Težave tukaj ni mogoče rešiti v bližnji prihodnosti, tudi ob upoštevanju stopnje rasti razvoja informacijske tehnologije. Zaradi tega, kar je potrebno, da se zadovoljimo s tem, kar je.
Najbolj primitivni primer, ko so elementi matrike številke, nizi, drugi elementi s konstantno sestavo in oznako.
Na primer, številke binarnega sistema izračuna. Podobno:
Reči, da bo najenostavnejši niz mesecev, toda le pod določenimi pogoji, ker boste v večini primerov potrebovali digitalno predstavitev meseca, tri-črkovne, ruske, kitajske, polne ali kakšne druge.
Zagotovo bo najpreprostejši niz črk abecede. V najpreprostejšem nizu lahko definirate vse, kar se običajno imenuje konstante, in vedno za reševanje problema.
Če boste opustili kakršnekoli druge možnosti za vrsto elementa, poleg predmeta in najpreprostejšega niza, bo vse v celoti postalo čudovito tudi v rokah sodobnih kontrolnih struktur jezika, ki so ohranile svoje bistvo iz antičnih časov.
Znano je, da objekt združuje podatke in metode, spomin in dejanje. Splošna praksa objektno usmerjenega programiranja, ki jo razumejo mnogi, je abstraktni objekt, ki nima nič, vendar je vse načrtovano.
Čudovito stanje, z razvojem verige dedičev iz abstraktnega objekta, dobimo priložnost za oblikovanje nizov iste vrste podatkov - abstraktnih objektov. Kaj točno bodo v vsakem posameznem primeru je stvar tehnike in ko smo skrb za implementacijo semantike prestavili v roke vsakega posameznega potomca v skladu z njegovim bistvom, dobimo tisto, kar želimo.