Forum und email
Używanie starej składni w nowych wersjach PHP

Używanie starej składni w nowych wersjach PHP

Odkąd PHP stało się popularnym językiem skryptowym, istnieją duże archiwa darmowych skryptów, które można często bez żadnych ograniczeń wykorzystywać na swoich stronach WWW. Twórcy PHP postarali się, aby uruchamianie starszych skryptów było możliwe we wszystkich nowszych wersjach środowiska. Czasami jednak, aby uruchomić taki program, trzeba będzie dokonać w nim pewnych zmian.

Dwie najistotniejsze zmiany w stosunku do starszych wersji PHP to:

  • Zastąpienie zmiennych $HTTP_*_VARS (które wewnątrz funkcji muszą być importowane tak jak zmienne globalne) tablicami superglobalnymi w wersji 4.1.0 środowiska PHP. Oto one: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST i $_SESSION. Wykorzystywane wcześniej tablice $HTTP_*_VARS, takie jak np. $HTTP_POST_VARS, nadal są dostępne dla skryptów. Od PHP w wersji 5.0.0, długie tablice zmiennych predefiniowanych mogą być wyłączone dyrektywą konfiguracji register_long_arrays.

  • Zmienne pochodzące "z zewnątrz" nie są już domyślnie rejestrowane jako zwyczajne zmienne skryptu. Inaczej mówiąc, od wersji 4.2.0 dyrektywa konfiguracyjna register_globals w pliku php.ini domyślnie przyjmuje wartość off. Zalecana metoda odwoływania się do zmiennych "z zewnątrz" polega na zastosowaniu opisanych wyżej tablic superglobalnych. W starszych skryptach, książkach i kursach możesz się spotkać ze starą składnią, która jest niestety mniej bezpieczna. Korzystając ze zmiennych superglobalnych masz pewność, że dane przesłane metodą GET znajdą się w tablicy $_GET, metodą POST w $_POST itd.

Więcej informacji na ten temat znajdziesz w sekcji Zmienne predefiniowane i na stronach pokrewnych.