ПХП: глобална променљива у функцији

8. 4. 2019.

Веб страница коју генерише сервер мора бити исправна. Задатак језика сервера је формирање странице, али је његова улога секундарна. ПХП код је уметање у страницу, али не и сама страница. У идеалном случају, можете осигурати стварање странице у лету. Веб ресурс се заснива на идеји која се остварује у облику организованих, на одређени начин, информација. Само у малом делу - то су описи података који обрађују специфичне алгоритме.

ХТМЛ + ЈаваСцрипт и ЦСС = Страница

Све што претраживач добије је ток информација који је систематизован и организован на строго дефинисан начин. Пренос са сервера у претраживач можете назвати ток података, али ови подаци имају специфично значење и резултат су рада не само програмера.

Резултат који генерише сервер укључује рад дизајнера, аналитичара, менаџера пројекта. То је значење, односно, организовање информација на веб ресурсу. Грешка у овој нити из било ког разлога ће проузроковати оштећење заједничког узрока.

Карактеристично обиљежје модерног Интернет програма је тишина и тишина из било којег непредвиђеног разлога. Грешка може лако проћи незапажено и довести до неочекиваних посљедица, чак и ако након учитавања прегледника приказани примљени ток информација буде приказан на начин који су његови творци жељели видјети.

Претраживач, ДОМ и информације

Значајно:

  • података, а то нису само ПХП варијабле;
  • и то није само ПХП.

ПХП је језик уметања, али употреба глобалних података у локалним функцијама је важна. Оцењујући улогу било ког серверског језика, тешко је подићи његову вредност изнад места које заузима, али често је заиста неопходно. ПХП-ово мјесто је уметак унутар странице чак иу случају ограничавања када се страница креира искључиво језиком у цијелости. Страница никада није усамљена и хомогена:

  • има ХТМЛ;
  • елементима се додељују ЈаваСцрипт руковаоци;
  • ознаке су описане преко ЦСС-а;
  • на располагању: ЈаваСцрипт код, ЈСОН, други уметци.

Сва ова разноврсна заједница треба да одреди шта претраживач треба да анализира и како да направи ДОМ стабло које одређује изглед и функционалност странице.

ПХП уметци: описи и алгоритми

Постоје две фундаментално различите идеје које ПХП имплементира. Први вам омогућава да омогућите / онемогућите блокове ХТМЛ текста да учествују у излазном току. Други је тренутни код: описи варијабли, алгоритми и маса локалних функција којима су потребни глобални подаци.

У сваком случају, ПХП глобалне варијабле се могу користити. У првом пољу варијабле типа користи само. У уметцима другог типа могу се мењати.

Свака варијабла описана у прилогу се односи на глобални опсег. Локална варијабла чини њен опис унутар функције, објекта или методе објекта. Опште је прихваћено да сваки објекат треба да се сними као посебан фајл.

Када прегледате ХТМЛ текст, ПХП извршава код секвенцијално - опште правило тумача које програмер не би требало да прати да би избегао неочекиване грешке. Важно је поднијети: сви уметци се обрађују секвенцијално.

Уметните примере

У примеру (1), уметнут је опис само једне променљиве $ цПагеНаме. У примеру (2) на истом месту (блок „ХЕАД“) иницијализација скупа ПХП глобалних варијабли из ГЕТ и ПОСТ скупа података је $ _РЕКУЕСТ.

У другом примеру, ПХП код је убачен из датотека: сцКС.пхп и саве-висит-то-паге.пхп, прва датотека се учитава и иницијализира објектни систем апликације, друга датотека врши регистрацију посјете овој страници.

Обе датотеке такође креирају варијабле глобалне класе. ПХП не систематизује декларацију и употребу променљивих. Све најаве управља програмер.

Једна радикално другачија околност.

Глобални низови података $ _ГЕТ, $ _ПОСТ, $ _РЕКУЕСТ, $ _СЕРВЕР су увек доступни, али не садрже увек потребне податке. На ове сесије и колачиће можете рачунати. Све то можете замислити као оригиналан начин да прогласите глобалну варијаблу. ПХП сам управља подацима који се налазе у тим низовима.

Глобалне серверске променљиве

Манипулисањем вредности током преноса (ГЕТ, ПОСТ), у колачићима, у сесијама, можете пренијети податке између страница или саме странице савршено сигурно: ништа се не губи, једноставно је, иако изгледа чудно и гломазно.

Али важно је разумети и знати једну изузетно важну околност. Глобалне променљиве ПХП и СЕРВЕР "живе" само једном: у време конверзије! Када се прегледач отвори или освежи страницу: живот почиње. Чим страница уђе у претраживач, “живот” престаје.

Тираж ће бити милион значења "живота". Управо толико пута СЕРВЕР ће омогућити ПХП-у да креира и користи све што је програмер описао и прецизно према алгоритмима овог програмера.

Не постоји веза између “живота”!

Кардинални али ефикасни трикови.

ПХП програмер увијек треба глобалну варијаблу, а не само када је прегледник посјетио веб ресурс или је посјетитељ одлучио освјежити страницу. Програмер уопште може пожелети да читав систем објеката које је он створио не постоји с времена на време, већ трајно.

Дизајниран је, креиран веб ресурс. То значи да би све његове странице требале "живјети", ако не и заувијек, онда барем у контролираном временском распону. Између посета посетилаца.

Постоји само један сигуран начин да се ствари промене: декларишите глобалну ПХП променљиву у претраживачу. То је контуинтуитивно и може оштетити сигурносне проблеме, али ово је цоол и занимљива идеја.

Бровсер вариабле

Што се тиче сигурности, ово је забринутост програмера. Задатак је једноставан и решив. Што се тиче апсурда, није. Користећи ЈСОН, АЈАКС механизам и сопствену машту, можете пренети центар гравитације са сервера на претраживач и креирати опцију за приказ података о броју ПХП глобалних варијабли које је потребно.

Нестинг сцопе

Све што је објављено изван тијела функције, објекта или методе објекта припада свима. Али да бисте користили уобичајене (глобалне) варијабле на правом месту, морате користити кључну реч глобал.

Глобална употреба

У овом примеру, све променљиве које су наведене након глобалне кључне речи су доступне у конструктору и функцијама објекта сцСтартВиев (). Шта тачно носе значење, како се могу користити, само програмер зна. У ПХП-у, глобалне варијабле у функцији долазе само по имену. Програмер дефинише друго.

Тело функције, објекта или методе објекта треба схватити као значење свега што је унутар "{...}". Коврчаве заграде су границе локалног опсега. Функција описана унутар друге функције има свој опсег. Ниједан код не може да продре у локални опсег.

Пренос података унутар кода

Питање - како направити глобалну ПХП варијаблу, преводи у вријеме када се код зове. У супротном, ПХП не ограничава програмера. Можете користити колачиће, сесије и глобалне низове. Оптимал - ЈСОН & АЈАКС и утроба претраживача. Последња опција је најбоља, али захтева добро познавање ЈаваСцрипт-а.

Пренос података унутар кода

У основи, не постоји и никада није било раздвајања програмирања претраживача (фронтенд) и серверског (бацкенд) програмирања. Иако са становишта оглашавања, имиџа и начина да се купцу објасни да рад за пени кошта чак два рубља, то има смисла.

Сваки ПХП програмер мора имати солидно знање о томе шта је ХТМЛ и како је ДОМ изграђен, стога би иницијално ЈаваСцрипт знање требало бити у реду. ЈаваСцрипт програмер и само - глупост, иако постоји стварна потреба за изузетно уским квалификацијама. Пуно познавање делова клијента и сервера је нормално стање ствари.

Животни век странице, док се формира на серверу, ствара стварну потребу за преносом информација између страница и унутар исте странице током читавог времена када је посетилац на сајту.

Често је важно управљати подацима између различитих (вишеструких) посјетилаца. Чување и пренос (транзит) података током времена је веома одговорна и важна процедура. Пренос података унутар кода у времену проширује могућности програмирања.

Најједноставнији пример ПХП решења: креирање глобалне променљиве може бити тривијално у текстуалној датотеци. Није тешко. Ово се ради у време посете страници (као пример). Чита се када се страница отвори (сви уноси се узимају из датотека). Ништа не спречава промену фајлова у току посете од стране једног посетиоца, у очекивању да га посети други.

Проблеми сигурности и сигурности података

Свака глобална варијабла је потенцијална пријетња. Крађа ПХП варијабле је тешка ако није могуће. Готово увек можете видети ЈаваСцрипт варијаблу. Ако је све кодирано у претраживачу и на серверу, ствара се препрека за нападача, што има негативан ефекат на програмера.

Кодирани текст скрипте, где год да је, за програмера - непотребне тешкоће. Све похрањене у текстуалним датотекама или у бази података такођер нису аргумент.

Безбедносна питања

Добро рјешење је кориштење објектно оријентираног програмирања, када се креира систем објеката који сам одређује варијабле које су потребне у одређеном времену.

Такав систем објеката постоји у претраживачу заједно са ДОМ страницом у тренутном стању и мења стање према промени у ДОМ-у. Праћење динамике је теже од статике, а имплементација трансформације система јавасцрипт објецтс У адекватној верзији ПХП-а, тј. На серверу, можете осигурати и интегритет података и сигурносна питања.

Место ПХП-а и његове варијабле

Обликовање странице - главни задатак ПХП-а. Употреба система за управљање локацијама (ЦМС) ограничава програмера и намеће му одређени концепт управљања глобалним променљивим. Сваки ЦМС је маса сопствених варијабли, а 99% њих није обавезно креирати одређену локацију.

Кориштење ЦМС: оквира

У свом чистом облику, серверски део сајта је база података и датотека. Место где се чувају информације које претраживач "препознаје" као веб ресурс. У ствари, програмер који нешто кодира у ПХП-у, наводећи нешто у ЈаваСцрипту, помаже му у томе. ХТМЛ / ЦСС изглед је прикључен на њега.

Али у сваком случају, сервер је способност да се чува, чита, мења. У овом контексту, ако следите класичну људску логику ствари: клијент је увек у праву, онда можете да померите центар гравитације у претраживач и „пренесете“ клијенту узде „владе“. У ствари, клијент неће ништа добити, али према његовим радњама можете планирати понашање сервера.

Са овим приступом, посета веб ресурсу иницира сесију рада, генерише почетне вредности варијабли, а генерисана страница лети у претраживач, иницира рад одређеног клијента. Радње овог клијента доводе до промена које се емитују на сервер који одговара на одговарајући начин. Садржај у прегледачу се адекватно мења. Сљедећа иницијатива клијента је друга промјена.

Померање центра гравитације са сервера на клијента омогућава вам да погледате веб ресурсе са друге стране и посветите више пажње процесима формирања садржаја веб сајта од правог потрошача.

Девелопер Фантасиес

Времена у којима су сајтови креирани према шаблонима поуздано улазе у историју. Времена снаге система за управљање локацијама и даље трају, што ствара реална ограничења како у употреби варијабли тако иу креирању прогресивних алгоритама.

У суштини, ЦМС је пренос центра гравитације са програмера на купца. Први инсталира и конфигурише ЦМС, други га попуњава информацијама и користи га. Често се од програмера тражи да пише код за аутоматску анализу и попуњавање базе података информацијама, али то није баш оно што живот захтијева.

ПХП Типс

Долази време динамичких сајтова. Постоји стварна потреба за управљањем подацима, брзим одговором на пријетње и осигуравањем адаптивног постојања веб ресурса. Фантазија програмера у верзији "специјалиста у динамичким подацима и алгоритмима" је прво темељно искуство у управљању варијаблама и кодовима унутар претраживача и на послужитељу, а затим дјелотворан и динамичан веб сајт нове генерације идеја.