КампутарыПраграмаванне

PHP: апошні элемент. Масіў у дынаміцы

PHP - гэта перспектыўна і сучасна: якасны сінтаксіс і магчымасць рабіць семантыку за межамі дазволенага. Рэалізацыя ідэй аб'ектна-арыентаванага праграмавання і свабода змены тыпу зменнай робіць рэальнасцю самыя смелыя фантазіі.

Масівы - старажытная канструкцыя, а асацыятыўныя - хутчэй даніна часу, чым патрабаванне практыкі. Хоць ёсць дастатковую колькасць задач, якія прадугледжваюць стварэнне сукупнасцей дадзеных загадзя ня прадугледжанага ўтрымання (колькасць, значэння, тыпы і індэксы), якія даступныя для прагляду і выкарыстання ў цыклах PHP foreach. Апошні элемент масіва даступны пры любым спосабе стварэння. Array - звычайныя і асацыятыўныя - дазваляюць ствараць спісы, але ў звычайным сінтаксісе PHP гэта мае абмежаванае ўжыванне.

Актуальнае значэнне масіва

Калі абстрагавацца ад індэксаў і выкарыстоўваць канструкцыю

$ ArData [] = new scField (); // scNumber, scString, scParagraph, ...

дзе scField () - канструктар абстрактнага аб'екта - "элемента інфармацыі", які мае нашчадкаў: чысла (scNumber), радкі (scString), фразы (scParagraph), ... атрымаем на PHP: апошні элемент = масіў аб'ектаў, які праяўляе свае ўласцівасці як актуальны элемент.

Па сутнасці, усё роўна, які элемент лічыць актуальным, але ў гэтым выпадку прыйдзецца сачыць за паказальнікам (у PHP - курсор) усярэдзіне масіва. Часцей - трэба мець уласны паказальнік элемента. Неабходнасці ў курсоры пазбаўленая ідэя PHP "апошні элемент = масіў". Даступны праз функцыі end () і array_pop (), апошні элемент як бы дэлегуе свае ўласцівасці масіву. Выкарыстанне array_pop (), акрамя гэтага, аўтаматычна перакладае масіў на папярэдні элемент, і яго ўласцівасці змяняюцца адпаведна. Гэтым абумоўліваецца магчымасць руху па элементам.

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

Першы і іншыя элементы

Маюцца функцыі для працы з першым элементам масіва і перамяшчэння ўнутранага паказальніка. У звычайным сінтаксісе, які рэалізуе класічную практыку праграмавання, яны дастасавальныя. У дачыненні да стварэння масіваў з дынамічна зменлівых сэнсам - не.

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

Калі перанесці цэнтр цяжару на ўласна элемент і даць яму самому прымаць рашэнні, рэалізацыя праграмы набывае зусім іншы, асэнсаваны выгляд. Часцей за ўсё менавіта такі спосаб дазваляе дасягнуць мэты, асабліва калі гаворка ідзе, напрыклад, пра выкарыстанне шматлікіх тэгаў дакумента * .docx, запісаных у стандарце Open XML.

На PHP атрымаць апошні элемент масіва - гэта новы сэнс і добрыя магчымасці.

Загрузка файлаў і дынаміка уласцівасцяў масіваў

Калі сайт прадастаўляе магчымасць загрузкі якія-небудзь файлаў, зручна выкарыстоўваць ідэю абстрактнага аб'екта, напрыклад, scFile і нашчадкаў ад яго scImage, scDocument, scTabe, якія будуць мець аднайменныя ўласцівасці, але рознае іх праява і сэнс (змест). У кантэксце сінтаксісу PHP (апошні элемент = масіў), выкарыстоўваючы функцыю end (), можна выкарыстоўваць яго так, як гэта вызначае апошні элемент. Гэта рашэнне цікава тым, што яно Інвертуйце звычайныя ўяўленні і дазваляе перамяшчацца па структуры дадзеных так, як яна была сфарміравана.

Такое прымяненне масіваў дае ім зусім новы змест. Гэта прадугледжана сінтаксісам PHP, але такое выкарыстанне адкрывае шырокія магчымасці.

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

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

Стэк і Рэкурсія ў межах сінтаксісу

Калі ідзе праца толькі з апошнім элементам, асноўная ўмова - гэта стэк, але, калі гэты элемент спаўняецца і ў ім выкарыстоўваецца тая ж канструкцыя, а асабліва ён сам, - гэта Рэкурсія. Можна сказаць шмат добрага пра бібліятэкі PHPOffice, напрыклад PHPWord, але сцвярджаць, што яны рэалізуюць паўнавартасны механізм, транслявальны зыходнае фарматаванне дакумента ў вынік, нельга.

Сапраўды, выкарыстоўваючы PHPOffice \ PHPWord можна элементарна адкрыць любы вордаўскія дакумент (* .docx), але гэта ўсяго толькі архіў мноства структураваных xml-файлаў, малюнкаў, аб'ектаў і інш.

Пры гэтым, калі ўзяць толькі xml-файлы, хоць яны ўзаемазвязаны (у частцы стыляў, табліцы, малюнкаў), не атрымаецца сфармаваць новы дакумент на аснове старога і проста перанесці ў яго жаданыя змены (напрыклад, змяніць шрыфт, колеру, фарматаванне). Варыянтаў прымянення тэгаў Open XML мноства, і нават гэтак адладжаны прадукт, як MS Word, не заўсёды спраўляецца з ідэямі карыстальніка, дапушчаючы памылкі.

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

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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