PHP: zmienna globalna w funkcji

08.04.2019

Strona wygenerowana przez serwer musi być poprawna. Zadaniem języka serwera jest utworzenie strony, ale jej rola jest drugorzędna. Kod PHP to wstawienie strony, ale nie sama strona. W idealnym przypadku można zapewnić tworzenie strony w locie. Zasób internetowy opiera się na idei realizowanej w formie zorganizowanej, w pewien sposób, informacji. Tylko w niewielkiej części - są to opisy danych, które przetwarzają określone algorytmy.

HTML + JavaScript i CSS = Strona

Wszystko, co przeglądarka otrzymuje to strumień informacji, który jest usystematyzowany i zorganizowany w ściśle określony sposób. Możesz wywołać transfer z serwera do przeglądarki strumień danych, ale dane te mają określone znaczenie i są wynikiem pracy nie tylko programisty.

Wynik generowany przez serwer obejmuje pracę projektanta, analityka, menedżera projektu. To jest znaczenie, to znaczy zorganizowane informacje na zasobach internetowych. Błąd w tym wątku z dowolnego powodu spowoduje uszkodzenie wspólnej przyczyny.

Charakterystyczną cechą współczesnego programowania internetowego jest cisza i cisza dla każdego nieprzewidzianego powodu. Błąd może z łatwością przejść niezauważony i prowadzić do nieoczekiwanych konsekwencji, nawet jeśli po załadowaniu przeglądarki wyświetlił odebrany strumień informacji w sposób, który chcieli zobaczyć jego twórcy.

Przeglądarka, DOM i informacje

Istotne:

  • dane, a to nie tylko i nie tyle zmienne PHP;
  • kod, a to nie jest tylko PHP.

PHP jest językiem wstawiania, ale ważne jest używanie globalnych danych w lokalnych funkcjach. Oceniając rolę dowolnego języka serwera, trudno jest zwiększyć jego wartość powyżej miejsca, w którym się znajduje, ale często jest to naprawdę konieczne. Miejsce PHP jest wstawką wewnątrz strony nawet w przypadku ograniczającym, gdy strona jest tworzona wyłącznie przez sam język w całości. Strona nigdy nie jest samotna i jednorodna:

  • ma HTML;
  • elementy są przypisane do obsługi JavaScript;
  • znaczniki są opisane za pomocą CSS;
  • dostępne: kod JavaScript, JSON, inne wstawki.

Cała ta pstrokata społeczność powinna określić, co przeglądarka powinna przeanalizować i jak zbudować drzewo DOM, które określa wygląd i funkcjonalność strony.

Wstawki PHP: opisy i algorytmy

Istnieją dwa fundamentalnie różne pomysły, które implementuje PHP. Pierwsza umożliwia włączanie / wyłączanie bloków tekstu HTML od uczestniczenia w strumieniu wyjściowym. Drugi to bezpośredni kod: opisy zmiennych, algorytmy i masa lokalnych funkcji, które potrzebują danych globalnych.

W każdym przypadku można użyć zmiennych globalnych PHP. W pierwszym oknie wpisz zmienne tylko używane. W insertach drugiego typu można je zmienić.

Każda zmienna opisana w wstawce odnosi się do zasięgu globalnego. Zmienna lokalna wpisuje swój opis do funkcji, obiektu lub metody obiektu. Ogólnie przyjmuje się, że każdy obiekt powinien być rejestrowany jako osobny plik.

Podczas przeglądania tekstu HTML PHP wykonuje sekwencyjnie kod - ogólną regułę interpretatora, której programista nie powinien przestrzegać, aby uniknąć nieoczekiwanych błędów. Ważne jest, aby przesłać: wszystkie inserty są przetwarzane sekwencyjnie.

Wstaw przykłady

W przykładzie (1) wstawiono opis tylko jednej zmiennej $ cPageName. W przykładzie (2) w tym samym miejscu (blok "HEAD") inicjalizacja zestawu zmiennych globalnych PHP z zestawu danych GET i POST to $ _REQUEST.

W drugim przykładzie kod PHP jest wstawiany z plików: scQS.php i save-visit-to-page.php, pierwszy plik ładuje i inicjuje system obiektowy aplikacji, drugi plik dokonuje rejestracji wizyty na tej stronie.

Oba pliki tworzą również globalne zmienne klasy. PHP nie usystematyzuje deklaracji i użycia zmiennych. Wszystkie ogłoszenia są zarządzane przez programistę.

Jedna radykalnie odmienna okoliczność.

Globalne tablice danych $ _GET, $ _POST, $ _REQUEST, $ _SERVER są zawsze dostępne, ale nie zawsze zawierają niezbędne dane. Możesz także liczyć na te sesje i pliki cookie. Możesz myśleć o tym wszystkim jako o oryginalnym sposobie deklarowania zmiennej globalnej. Sam PHP zarządza danymi umieszczonymi w tych tablicach.

Globalne zmienne serwerowe

Poprzez manipulowanie wartościami podczas transferu (GET, POST), w ciasteczkach, w sesjach, możesz przenosić dane między stronami lub samą stronę, całkowicie bezpieczne: nic nie ginie, jest proste, chociaż wygląda dziwnie i nieporęcznie.

Ale ważne jest, aby zrozumieć i znać jedną niezwykle ważną okoliczność. Zmienne globalne PHP i SERVER "żyją" tylko raz: w momencie konwersji! Kiedy przeglądarka otwiera lub odświeża stronę: zaczyna się życie. Jak tylko strona przejdzie do przeglądarki, "życie" przestaje działać.

Krążek będzie miliona, co oznacza "życie". Dokładnie tyle razy SERVER umożliwi PHP tworzenie i używanie wszystkiego, co programista opisał i dokładnie według algorytmów tego programisty.

Nie ma żadnego związku między "życiem"!

Kardynał, ale skuteczne sztuczki.

Programista PHP zawsze potrzebuje zmiennej globalnej, a nie tylko wtedy, gdy przeglądarka odwiedziła zasób sieciowy lub użytkownik zdecydował się odświeżyć stronę. Ogólnie rzecz biorąc programista może życzyć sobie, aby cały system tworzonych przez niego obiektów istniał nie od czasu do czasu, ale na stałe.

Zasób internetowy został zaprojektowany, stworzony. Oznacza to, że wszystkie jego strony powinny "żyć", jeśli nie na zawsze, to przynajmniej w kontrolowanym przedziale czasowym. Pomiędzy wizytami odwiedzających.

Jest tylko jeden pewny sposób na zmianę rzeczy: zadeklaruj globalną zmienną PHP w przeglądarce. Jest to sprzeczne z intuicją i może zaszkodzić problemom bezpieczeństwa, ale jest to ciekawy i interesujący pomysł.

Zmienna przeglądarki

Jeśli chodzi o bezpieczeństwo, jest to problem programisty. Zadanie jest proste i możliwe do rozwiązania. Co do absurdu, to nie jest. Korzystając z JSON, mechanizmu AJAX i własnej wyobraźni, możesz przenieść środek ciężkości z serwera do przeglądarki i utworzyć tam opcję wyświetlania danych na temat liczby zmiennych globalnych PHP, które są potrzebne.

Zagnieżdżanie zakresu

Wszystko, co deklarowane jest poza ciałem funkcji, obiektu lub metody obiektu, należy do wszystkich. Ale aby używać wspólnych (globalnych) zmiennych we właściwym miejscu, musisz użyć słowa kluczowego global.

Globalny - użyj

W tym przykładzie wszystkie zmienne wymienione po słowie globalnym są dostępne w konstruktorze i funkcjach obiektu scStartView (). Co dokładnie mają one znaczenie, jak dokładnie mogą być używane, tylko programista wie. W PHP zmienne globalne w funkcji pochodzą tylko z nazwy. Programista określa drugi.

Ciało funkcji, obiektu lub metody obiektu należy rozumieć jako oznaczające wszystko, co znajduje się wewnątrz "{...}". Nawiasy klamrowe są ograniczeniami zakresu lokalnego. Funkcja opisana w innej funkcji ma swój własny zakres. Żaden kod nie może przeniknąć do zakresu lokalnego.

Tranzyt danych wewnątrz kodu

Pytanie - jak stworzyć globalną zmienną PHP, przekłada się na czas wywołania kodu. W przeciwnym razie PHP nie ogranicza programisty. Możesz używać plików cookie, sesji i globalnych tablic. Optymalny - JSON i AJAX oraz trzewiki przeglądarki. Ostatnia opcja jest najlepsza, ale wymaga dobrej znajomości JavaScript.

Tranzyt danych wewnątrz kodu

Zasadniczo nie ma i nigdy nie było oddzielenia programowania przeglądarki (frontend) i serwera (backend) programowania. Chociaż z punktu widzenia reklamy, wizerunku i sposobu wyjaśnienia klientowi, że praca za grosza kosztuje aż dwa ruble, ma to sens.

Każdy programista PHP musi mieć solidną wiedzę na temat tego, czym jest HTML i jak zbudowany jest DOM, dlatego początkowa wiedza JavaScript powinna być w porządku rzeczy. Programista JavaScript i tylko - bzdury, choć istnieje realna potrzeba niezwykle wąskich kwalifikacji. Pełna znajomość części klienta i serwera jest normalnym stanem rzeczy.

Czas życia strony, gdy jest tworzony na serwerze, stwarza rzeczywistą potrzebę przesyłania informacji między stronami i na tej samej stronie przez cały czas przebywania użytkownika w witrynie.

Często ważne jest zarządzanie danymi między różnymi (wieloma) użytkownikami. Przechowywanie i przesyłanie (tranzyt) danych w czasie jest bardzo odpowiedzialną i ważną procedurą. Tranzyt danych wewnątrz kodu rozszerza możliwości programowania.

Najprostszy przykład rozwiązania PHP: tworzenie zmiennej globalnej może być trywialne w pliku tekstowym. To nie jest trudne. Odbywa się to podczas odwiedzania strony (jako przykład). Jest czytany po otwarciu strony (wszystkie inserty są pobierane z plików). Nic nie stoi na przeszkodzie do zmiany plików podczas odwiedzin przez jednego odwiedzającego, w oczekiwaniu na wizytę drugiego.

Bezpieczeństwo i bezpieczeństwo danych

Każda globalna zmienna jest potencjalnym zagrożeniem. Kradzież zmiennej PHP jest trudna, jeśli nie jest możliwa. Niemal zawsze możesz zobaczyć zmienną JavaScript. Jeśli wszystko jest zakodowane w przeglądarce i na serwerze, dla atakującego tworzona jest przeszkoda, która ma negatywny wpływ na programistę.

Zakodowany tekst skryptu, w dowolnym miejscu, dla programisty - niepotrzebne trudności. Wszystkie przechowywane w plikach tekstowych lub w bazie danych również nie są argumentem.

Zagadnienia bezpieczeństwa

Dobrym rozwiązaniem jest użycie programowania obiektowego, gdy tworzony jest system obiektów, który sam określa zmienne, które są niezbędne w danym czasie.

Taki system obiektów istnieje w przeglądarce wraz ze stroną DOM w bieżącym stanie i zmienia swój stan zgodnie ze zmianą w DOM. Śledzenie dynamiki jest trudniejsze niż statyka i wdrożenie transformacji systemowej obiekty javascript W odpowiedniej wersji PHP, czyli na serwerze, możesz zapewnić zarówno integralność danych, jak i kwestie bezpieczeństwa.

Miejsce PHP i jego zmiennych

Kształtowanie strony - główne zadanie PHP. Korzystanie z systemów zarządzania stronami (CMS) ogranicza programistę i narzuca mu pewną koncepcję zarządzania zmiennymi globalnymi. Każdy CMS jest masą własnych zmiennych, a 99% z nich nie jest wymagane do stworzenia konkretnej witryny.

Korzystanie z CMS: framework

W czystej postaci częścią serwerową serwisu jest baza danych i pliki. Miejsce przechowywania informacji, które przeglądarka "rozpoznaje" jako zasób internetowy. W rzeczywistości programista, który koduje coś w PHP, podając coś w JavaScript, pomaga mu w tym. Układ HTML / CSS jest do niego dołączony.

Ale w każdym przypadku serwer to możliwość zapisywania, czytania, zmieniania. W tym kontekście, jeśli podążasz za klasyczną ludzką logiką rzeczy: klient ma zawsze rację, możesz przesunąć środek ciężkości do przeglądarki i "przenieść" do klienta stery "rządu". W rzeczywistości klient nie otrzyma niczego, ale zgodnie z jego działaniami można zaplanować zachowanie serwera.

Dzięki takiemu podejściu wizyta w zasobach sieci inicjuje sesję pracy, generuje wartości początkowe zmiennych, a wygenerowana strona leci do przeglądarki, inicjując pracę określonego klienta. Działania tego klienta prowadzą do zmian nadawanych na serwer, który odpowiednio reaguje. Zawartość w przeglądarce zmienia się odpowiednio. Kolejną inicjatywą klienta są inne zmiany.

Przeniesienie środka ciężkości z serwera na klienta pozwala spojrzeć na zasoby sieciowe z drugiej strony i zwrócić większą uwagę na procesy tworzenia treści witryny od prawdziwego konsumenta.

Fantazje programistów

Czasy, w których strony zostały stworzone zgodnie z szablonami, z pewnością przejdą do historii. Nadal trwają czasy działania systemu zarządzania stronami, co stwarza realne ograniczenia zarówno w zakresie wykorzystania zmiennych, jak i tworzenia progresywnych algorytmów.

W gruncie rzeczy CMS to przeniesienie środka ciężkości z programisty na klienta. Pierwszy instaluje i konfiguruje CMS, drugi wypełnia go informacjami i używa go. Często programista jest proszony o napisanie kodu, który automatycznie analizuje i zapełnia bazę danych informacjami, ale nie jest to dokładnie to, czego wymaga życie.

Porady PHP

Nadchodzi czas dynamicznych stron. Istnieje realna potrzeba zarządzania danymi, szybkiego reagowania na zagrożenia i zapewnienia adaptacyjnego istnienia zasobu sieciowego. Fantazja programisty w wersji "Specjalista w zakresie dynamicznych danych i algorytmów" jest po pierwsze podstawowym doświadczeniem w zarządzaniu zmiennymi i kodem w przeglądarce i na serwerze, a następnie skuteczną i dynamiczną witryną nowej generacji pomysłów.