PHP: глобална променлива във функция

08.04.2019

Уеб страницата, генерирана от сървъра, трябва да е правилна. Задачата на сървърния език е да създаде страница, но ролята й е вторична. PHP кодът е вмъкване в страницата, но не и самата страница. В идеалния случай можете да осигурите създаването на страници в движение. Уеб ресурсът се основава на идея, реализирана под формата на организирана, по определен начин информация. Само в малка част - това са описания на данни, които обработват специфични алгоритми.

HTML + JavaScript и CSS = Страница

Всичко, което браузърът получава, е поток от информация, който е систематизиран и организиран по строго определен начин. Прехвърлянето от сървъра към браузъра може да се нарече поток от данни, но тези данни имат специфично значение и са резултат от работата не само на програмиста.

Резултатът, генериран от сървъра, включва работата на проектанта, анализатора, мениджъра на проекта. Това е смисълът, т.е. организираната информация в уеб ресурс. Грешка в тази нишка по някаква причина ще причини вреда на общата причина.

Характерна черта на съвременното интернет програмиране е мълчанието и мълчанието по непредвидени причини. Грешката може лесно да остане незабелязана и да доведе до неочаквани последици, дори ако след зареждането на браузъра показваше получения поток от информация по начина, по който създателите му искаха да видят.

Браузър, DOM и информация

значително:

  • данни, и това не е само и не толкова PHP променливи;
  • код, и това не е просто PHP.

PHP е език на вмъкване, но използването на глобални данни в местните функции е важно. Оценявайки ролята на всеки сървър език, е трудно да се повиши неговата стойност над мястото, което заема, но често е наистина необходимо. Мястото на PHP е вмъкване в страницата дори в ограничителния случай, когато страницата е създадена единствено от самия език в пълен размер. Страницата никога не е самотна и хомогенна:

  • има HTML;
  • на елементите се задават JavaScript манипулатори;
  • таговете са описани чрез CSS;
  • на разположение: JavaScript код, JSON, други вложки.

Цялата тази пъстра общност трябва да определи какво трябва да анализира браузърът и как да създаде дърво DOM, което определя вида и функционалността на страницата.

PHP вмъквания: описания и алгоритми

Има две фундаментално различни идеи, които PHP прилага. Първият ви позволява да активирате / деактивирате блокове от HTML текст от участие в изходния поток. Вторият е незабавен код: описания на променливи, алгоритми и маса от местни функции, които се нуждаят от глобални данни.

Във всеки случай могат да се използват глобални променливи на PHP. В първото поле променливи тип използва се само. В вложките от втория тип те могат да бъдат променяни.

Всяка променлива, описана в притурката, се отнася до глобалния обхват. Локална променлива прави описанието й във функция, обект или метод на обект. Общоприето е, че всеки обект трябва да бъде записан като отделен файл.

Когато преглеждате HTML текст, PHP изпълнява кода последователно - общо правило за преводач, което програмистът не трябва да следва, за да избегне неочаквани грешки. Важно е да се представи: всички вставки се обработват последователно.

Вмъкнете примери

В примера (1) се вмъква описанието само на една променлива $ cPageName. В примера (2) на същото място (блокът HEAD) инициализирането на набора от глобални глобални променливи от GET и POST набора данни е $ _REQUEST.

Във втория пример PHP кодът се вмъква от файловете: scQS.php и save-visit-to-page.php, първият файл се зарежда и инициализира обективната система на приложението, вторият файл извършва регистрация на посещение на тази страница.

И двата файла създават глобални променливи клас. PHP не систематизира декларирането и използването на променливи. Всички съобщения се управляват от програмист.

Едно радикално различно обстоятелство.

Глобалните масиви от данни $ _GET, $ _POST, $ _REQUEST, $ _SERVER са винаги налични, но не винаги съдържат необходимите данни. Можете също да разчитате на тези сесии и „бисквитки“. Можете да мислите за всичко това като оригинален начин за обявяване на глобална променлива. PHP сам управлява данните, поставени в тези масиви.

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

Чрез манипулиране на стойностите по време на прехвърлянето (GET, POST), в бисквитките, в сесиите, можете да прехвърляте данни между страниците или самата страница напълно безопасно: нищо не се губи, просто е, въпреки че изглежда странно и тромаво.

Но е важно да се разбере и да се знае едно изключително важно обстоятелство. Глобалните променливи PHP и SERVER "живеят" само веднъж: по време на конвертирането! Когато браузърът отвори или освежи страницата: животът започва. Щом страницата влезе в браузъра, „животът“ спира.

Тиражът ще бъде един милион означава "живот". Точно толкова пъти сървърът ще даде възможност на PHP да създава и използва всичко, което програмистът е описал и точно според алгоритмите на този програмист.

Няма връзка между “живота”!

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

PHP програмистът винаги се нуждае от глобална променлива, а не само когато браузърът е посетил уеб ресурс или посетителят е решил да обнови страницата. Програмистът по принцип може да пожелае цялата система от създадени от него предмети да съществува не от време на време, а постоянно.

Създаден е уеб ресурс. Това означава, че всичките му страници трябва да “живеят”, ако не завинаги, тогава поне в контролиран времеви диапазон. Между посещенията на посетителите.

Има само един сигурен начин да промените нещата: обявете глобална променлива PHP в браузъра. Това е нелогично и може да навреди на проблемите, свързани със сигурността, но това е страхотна и интересна идея.

Променлива на браузъра

Що се отнася до сигурността, това е загриженост на програмиста. Задачата е проста и разрешима. Що се отнася до абсурдността, това не е така. Използвайки JSON, механизма AJAX и собственото си въображение, можете да прехвърлите центъра на тежестта от сървъра към браузъра и да създадете опция за показване на данни за броя на глобалните глобални променливи, които са необходими.

Обхват на гнездене

Всичко, което е обявено извън телата на функция, обект или метод на обект, принадлежи на всеки. Но за да използвате общи (глобални) променливи на правилното място, трябва да използвате ключовата дума global.

Глобално - използване

В този пример всички променливи, които са изброени след глобалната ключова дума, са налични в конструктора и функциите на обекта scStartView (). Какво точно те носят смисъла, как точно те могат да бъдат използвани, само програмист знае. В PHP глобалните променливи във функция идват само по име. Програмистът определя другото.

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

Транзит на данни в кода

Въпросът - как да се направи глобална променлива PHP, се превежда по времето, когато кодът се нарича. В противен случай PHP не ограничава програмиста. Можете да използвате бисквитки, сесии и глобални масиви. Оптимал - JSON & AJAX и недрата на браузъра. Последната опция е най-добра, но изисква добро познаване на JavaScript.

Транзит на данни в кода

По принцип не съществува и никога не е имало разделяне на програмирането на браузъра (frontend) и сървърното (backend) програмиране. Въпреки че от гледна точка на рекламата, имиджа и начина, по който се обяснява на клиента, че работата за една стотинка струва колкото две рубли, това е истински смисъл.

Всеки PHP програмист трябва да има солидни познания за това какво е HTML и как се изгражда DOM, следователно първоначалните знания по JavaScript трябва да са в реда на нещата. JavaScript програмист и само - глупости, въпреки че има реална нужда от изключително тесни квалификации. Пълното познаване на клиентските и сървърните части е нормалното състояние на нещата.

Животът на страницата, докато се формира на сървъра, създава реална нужда от прехвърляне на информация между страници и в рамките на една и съща страница през цялото време, през което посетителят е на сайта.

Често е важно да управлявате данни между различни (множествени) посетители. За съхраняване и прехвърляне (транзит) на данни с течение на времето е много отговорна и важна процедура. Транзитът на данните в рамките на кода разширява възможностите за програмиране.

Най-простият пример за PHP решение: създаването на глобална променлива може да бъде тривиално в текстов файл. Не е трудно. Това се прави по време на посещението на страницата (като пример). Той се чете при отваряне на страницата (всички вложки се вземат от файлове). Нищо не пречи да се сменят файловете в хода на посещението от един посетител, в очакване на посещение от втория.

Въпроси, свързани със сигурността и сигурността на данните

Всяка глобална променлива е потенциална заплаха. Кражбата на PHP променлива е трудна, ако не е възможно. Почти винаги можете да видите променливата на JavaScript. Ако всичко е кодирано в браузъра и на сървъра, се създава пречка за нападателя, което има отрицателен ефект върху разработчика.

Кодираният текст на скрипта, където и да е, за разработчика - ненужни трудности. Всички съхранени в текстови файлове или база данни също не са аргумент.

Въпроси, свързани с безопасността и сигурността

Добро решение е да се използва обектно-ориентирано програмиране, когато се създава система от обекти, която сама определя променливите, които са необходими в даден момент.

Такава система от обекти съществува в браузъра заедно с DOM страницата в текущото състояние и променя състоянието й според промяната в DOM. Проследяването на динамиката е по-трудно, отколкото статиката и след като се осъществи трансформацията на системата обекти на javascript В една адекватна версия на PHP, т.е. на сървъра, можете да осигурите както цялостност на данните, така и проблеми със сигурността.

Място на PHP и неговите променливи

Оформянето на страницата - основната задача на PHP. Използването на системи за управление на обекти (CMS) ограничава програмиста и му налага определена концепция за управление на глобални променливи. Всяка CMS е масата на собствените си променливи, а 99% от тях не са задължени да създават конкретен сайт.

Използване на CMS: рамки

В чист вид сървърната част на сайта е база данни и файлове. Мястото, където се съхранява информацията, която браузърът "разпознава" като уеб ресурс. В действителност, програмист, който кодира нещо в PHP, посочвайки нещо в JavaScript, му помага в това. HTML / CSS оформлението е прикачено към него.

Но във всеки случай, сървърът е способността да записва, чете, променя. В този контекст, ако следвате класическата човешка логика на нещата: клиентът винаги е прав, тогава можете да изместите центъра на тежестта в браузъра и да „прехвърлите” на клиента юздите на „правителството”. Всъщност, клиентът няма да получи нищо, но според действията си можете да планирате поведението на сървъра.

С този подход посещението на уеб ресурс инициира сесия на работа, генерира първоначални стойности на променливите и генерираната страница лети в браузъра, инициирайки работата на конкретен клиент. Действията на този клиент водят до промени, които се излъчват на сървъра, който отговаря по подходящ начин. Съдържанието в браузъра се променя адекватно. Следващата инициатива на клиента е друга промяна.

Преместването на центъра на тежестта от сървъра към клиента ви позволява да разглеждате уеб ресурса от другата страна и да обръщате повече внимание на процесите на формиране на съдържание на уебсайта от реалния потребител.

Фантазии на програмисти

Времената, в които сайтовете са създадени според шаблоните, са уверени в историята. Времето на силата на системата за управление на обекта все още продължава, което създава реални ограничения както при използването на променливи, така и при създаването на прогресивни алгоритми.

По същество, CMS е прехвърляне на центъра на тежестта от програмиста към клиента. Първият инсталира и конфигурира CMS, втората я запълва с информация и я използва. Често програмистът е помолен да напише код, за да анализира автоматично и да попълни базата данни с информация, но това не е точно това, което животът изисква.

PHP Съвети

Идва време за динамични сайтове. Съществува реална необходимост от управление на данните, бързо реагиране на заплахи и осигуряване на адаптивно съществуване на уеб ресурс. Фантазията на разработчика в версията „специалист по динамични данни и алгоритми“ е на първо място основен опит в управлението на променливи и код в браузъра и на сървъра, а след това и ефективен и динамичен уебсайт на ново поколение идеи.