Rekenaars, Inligtingstegnologie
Effektiewe siklusse foreach: PHP en reg skikkings
Inligting verskaf in skikkings, kan die tipe waardes en hul grootte en aantal elemente wissel kan nie altyd vooraf bepaal. Moderne ontwikkeling, veral in die versprei verpersoonliking, laat dit die skep van komplekse data struktuur, inhoud en eienskappe kan dinamiese gedefinieer in 'n onbepaalde tyd as gevolg van verskeie aksies of gebeure in 'n ander volgorde.
Dit is nie altyd moontlik by die ontwerp stadium aan die operasie proses vir alle moontlike vertoë en gebruik van inligting, die dinamika van hul voorkoms en gebruik te voorspel.
Die sintaksis van die inhoud
In die formulering van die sintaksis van foreach, PHP voorgestelde twee maniere om toegang te verkry elemente. Beide is nie afhanklik van die tipe van sleutel, of die tipe van waardes en kan nagevolg konvensionele siklus. Voorgestel dat 'n skikking as 'n pluraliteit van elemente oorweeg, is die aantal wat nie aanvanklik bepaal. Die skikking kan ingestel word op die vlieg as die sleutels, en sonder. Die skikking element kan verwyder word, kan die sleutels assosiatiewe en standaard opgevoed word.
foreach ($ aArrayName as $ xValue) {lus liggaam}
Hierdie ontwerp vereis die foreach PHP lus om te gaan deur al die elemente in 'n ry. In die liggaam van die lus veranderlike sal $ xValue konsekwent te neem al die waardes van die skikking $ aArrayName in die volgorde waarin hulle is bygevoeg. Die waardes van die belangrikste elemente nie beskikbaar sal wees.
foreach ($ aArrayName as $ xKey => $ xValue) {lus liggaam}
Ook hier vervulling van die ontwerp foreach, PHP sal die hele inhoud van die skikking te scan, maar die lus pare sal gepaste waarde as die veranderlike $ xValue, en die veranderlike $ xKey neem - sleutel element.
Die volgorde van elemente
Binne-in die foreach PHP inhoud in die einde sal bied waarin die bykomende elemente, maar as daar is herhaalde optelling / verwydering, en voeg iets aan die sleutels, en iets sonder, is dit die beste om die werk in die vorming van die skikking te doen met 'n verskeidenheid met posisie volgorde elemente, en wat gebaseer is op die inhoud daarvan of op die sleutels.
As gevolg van verskeie objektiewe redes volgorde binne die skikking nie voldoen kan word en / of mag nie saak veel nie, maar dit moet nie gerig op enige manier. In eenvoudige take op triviale datastelle, geen probleem, en die algoritme kan ingestel word om opeenvolgende verwerking, maar wanneer die skep van / redigering die skikking proses word beïnvloed deur verskeie faktore, moet fokus op die inhoud.
Moderne "reg" elemente
Uit die oogpunt van die huidige selfbeeld, selfs sonder inagneming van onvoorwaardelike soos tale, moet PHP foreach verskeidenheid ontwerp onafhanklik met inagneming van die werklike spesifieke taak.
Die praktyk, wanneer daar 'n gegewe, en in hierdie is daar 'n indeks in die algemene versameling van verwante produkte volgens spesifieke kriteria - dit was gister.
Indeks was die sleutel, en het die vorm van 'n verskeidenheid van assosiatiewe skikkings. Dit is die sleutel verloor sy unieke reeksnommer (gewoonlik konsekwent: 0, 1, 2, ... n) en ook begin om waarde, maar 'n eenvoudige waarde (dws die sleutel) wat verband hou met die werklike waarde (dws die inhoud van die element). Dit is vandag, dit is korrek, maar nie heeltemal.
Dit is waarom die siklus foreach PHP oorweeg as 'n alternatief vir die normale siklus, gefokus op konvensionele skikkings. Dit is bo alles, en dit is baie belangrik, want dit impliseer dat die werklike akkuraatheid van verskeidenheid elemente, sowel as hul sleutels!
Reg skikkings van gereelde elemente
Eers was daar 'n element, dan twee elemente ... so daar was 'n verskeidenheid van elemente en die lus deur die skikking van dié:
vir ($ i = 0; $ i verwerking van die liggaam van elke $ aArrayName [$ i] } Toe die element in plaas van 'n gesiglose 0, 1, 2, ... N sal sy eie naam het - die sleutel en dan raak assosiatiewe skikkings en dan nodig om 'n foreach lus - "siklus vir elke": foreach ($ aArrayName as $ xKey => $ xValue) { verwerking van die liggaam van elke $ aArrayName [$ xKey] $ xValue of dat een en dieselfde } Nou is die tyd het aangebreek toe die skikking reg elemente moet kom, dit wil sê diegene wat deur hulself. Hulle weet jou kode, die inhoud daarvan, sy plek in die ry is geneig om jou eie keuse van volgorde wees en delegeer al hierdie moontlikhede hul eie skikkings hulle met. Soos gereelde skikkings word hanteer deur hulself. Spesiale behoeftes in konvensionele siklusse en siklusse van elke sal nie maklik wees nie. Formeel, die sintaksis en semantiek van hierdie reeds te laat, die enigste vraag vir die ontwikkelaar traagheid van bewussyn.
Similar articles
Trending Now