КампутарыІнфармацыйныя тэхналогіі

Эфектыўныя цыклы foreach: PHP і правільныя масівы

Інфармацыя, прадстаўленая ў масівах, можа адрознівацца тыпам значэнняў і іх памерам, а колькасць элементаў не заўсёды можна вызначыць загадзя. Сучаснае праграмаванне, асабліва ў размеркаванай варыянце, дазваляе ствараць складаныя структуры дадзеных, змест і ўласцівасці якіх могуць вызначыцца дынамічна ў нявызначаны момант часу ў выніку розных дзеянняў або падзей, у рознай паслядоўнасці.

Не заўсёды на этапе распрацоўкі можна спрагназаваць працэс эксплуатацыі, прадбачыць усе магчымыя варыянты падання і выкарыстання інфармацыі, дынаміку іх з'яўлення і выкарыстання.

Сінтаксіс цыкла па змесце

Фармулюючы сінтаксіс foreach, PHP прапанаваў два варыянты доступу да элементаў. Абодва не залежаць ні ад тыпу ключа, ні ад тыпу значэння і могуць быць эмуляваць звычайным цыклам. Прапанавана разглядаць масіў як сукупнасць элементаў, колькасць якіх першапачаткова не вызначана. Масіў можа фармавацца на ляту, як з ключамі, так і без. У масіве можа быць выдалены элемент, ключы могуць быць асацыятыўнымі і адукаванымі па змаўчанні.

foreach ($ aArrayName as $ xValue) {цела цыклу}

Такая канструкцыя абавязвае цыкл foreach PHP прайсціся па ўсіх элементах запар. У целе цыклу зменная $ xValue будзе паслядоўна прымаць усе значэння масіва $ aArrayName ў тым парадку, у якім яны былі дададзены. Значэння ключоў элементаў даступныя не будуць.

foreach ($ aArrayName as $ xKey => $ xValue) {цела цыклу}

Тут таксама, выконваючы канструкцыю foreach, PHP прагледзіць усё змесціва масіва, але ў целе цыклу парамі будуць прымаць адпаведныя значэння як зменная $ xValue, так і зменная $ xKey - ключ элемента.

паслядоўнасць элементаў

Ўнутры foreach PHP будзе прапаноўваць змесціва ў тым парадку, у якім дадаваліся элементы, але калі пры фарміраванні масіва мелі месца неаднаразовыя дадання / выдалення, прычым нешта дадавалася з ключамі, а што-то без, то лепш за ўсё выконваць працу з масівам няма з пазіцый паслядоўнасці элементаў, а грунтуючыся на іх змесце або на ключах.

У сілу розных аб'ектыўных прычын паслядоўнасць ўнутры масіва можа быць не выкананая і / ці можа не мець асаблівага значэння, але на яе не варта арыентавацца ў любым выпадку. У простых задачах, на трывіяльных наборах дадзеных, праблем няма, і алгарытм можна наладзіць на паслядоўную апрацоўку, але калі на працэс стварэння / рэдагавання масіва ўплывае мноства фактараў, варта арыентавацца на ўтрыманне.

Сучасныя «правільныя» элементы

З пазіцый якая склалася ўласнай канцэпцыі, без уліку нават безумоўны падобных моў, PHP foreach масіў неабходна праектаваць самастойна з улікам рэальнай канкрэтнай задачы.

Практыка, калі маеце гэтую, а ў дадзенага ёсць індэкс ў агульнай калекцыі яму падобных па вызначаным крытэру, - гэта было ўчора.

Індэкс стаў ключом, а масіў прыняў аблічча асацыятыўнага масіва. Гэта значыць ключ страціў сваю паслядоўную унікальнасць (звычайна быў паслядоўным: 0, 1, 2, ... n) і стаў таксама значэннем, але простым значэннем (гэта значыць ключом) звязаным з рэальным значэннем (гэта значыць утрыманнем элемента). Гэта сёння, гэта правільна, але не зусім.

Менавіта таму цыкл foreach PHP разглядае як альтэрнатыву звычайнаму цыкле, арыентаваным на звычайныя масівы. Гэта перш за ўсё, і менавіта гэта вельмі важна, таму як з гэтага вынікае рэальная правільнасць элементаў масіва, а таксама за іх ключоў!

Правільныя масівы правільных элементаў

Спачатку быў элемент, потым два элемента ... так з'явіўся масіў элементаў і цыкл па масіве такіх:

for ($ i = 0; $ i

цела апрацоўкі кожнага $ aArrayName [$ i]

}

Потым у элемента замест безаблічнага 0, 1, 2, ... n з'явілася ўласнае імя - ключ і сталі тады масівы асацыятыўным і спатрэбіўся тады цыкл foreach - «цыкл па кожнаму":

foreach ($ aArrayName as $ xKey => $ xValue) {

цела апрацоўкі кожнага $ aArrayName [$ xKey] або $ xValue што адно і тое ж

}

Зараз надышла пара, калі ў масіў павінны прыйсьці правільныя элементы, гэта значыць такія, якія самі па сабе. Яны самі ведаюць свой індэкс, сваё ўтрыманне, сваё месца ў паслядоўнасці, схільныя праяўляць уласны выбар паслядоўнасці і дэлегаваць ўсе гэтыя свае магчымасці уласна масіву, іх утрымоўвальнаму.

Такія правільныя масівы будуць апрацоўвацца самі па сабе. Асаблівай патрэбы ў выкарыстанні звычайных цыклаў і цыклаў па кожнаму проста не будзе. Фармальна сінтаксіс і семантыка гэта ўжо дазваляюць, пытанне толькі за інэрцыяй свядомасці распрацоўніка.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.atomiyme.com. Theme powered by WordPress.