Používanie starého kódu s novými verziami PHP
Teraz, keď PHP vyrástlo na populárny skriptovací jazyk, vzniklo mnoho
verejných prameňom a knižníc obsahujúcich kód, ktorý môžete znovu použiť.
PHP vývojári sa čo najviac pokúsili zachovať spätnú kompatibilitu, takže
skript napísaný pre staršiu verziu bude bežať (ideálne) bez zmien v novšej
verzii PHP. V praxi to znamená, že nejaké zmeny budú zvyčajne potrebné.
Dve z najdôležitejších nedávnych zmien, ktoré ovplyvňujú starý kód sú:
-
Odmietanie starých $HTTP_*_VARS polí
(ktoré sa musia indikovať ako globálne pri použití vo vnútri funkcie
alebo metódy). Následujúce
autoglobálne polia
boli predstavené v PHP » 4.1.0.
Sú to: $_GET, $_POST,
$_COOKIE, $_SERVER,
$_FILES, $_ENV,
$_REQUEST a $_SESSION.
Staršie $HTTP_*_VARS polia, ako
$HTTP_POST_VARS, stále existujú od ich predstavenia v PHP 3.
Počínajúc PHP 5.0.0, dlhé PHP polia
preddefinovaných premenných
je možné zakázať s direktívou
register_long_arrays.
-
Externé premenné už viac nie sú registrované v globálnom hľadisku
ako východzie. Inými slovami, počiatkom PHP
» 4.2.0 je PHP direktíva
register_globals štandardne
off v php.ini. Preferovaná metóda
pristupovania k týmto hodnotám je cez autoglobálne polia spomenuté.
vyššie. Staršie skripty, knihy a tutoriály sa môžu spoliehať na to, že
je táto direktíva zapnutá. Ak by bola zapnutá, napríklad, dala by sa použiť
$id z URL
http://www.example.com/foo.php?id=42. Či už zapnutá
alebo vypnutá, $_GET['id'] je dostupná.
Pre viac detailov o týchto zmenách, pozri sekciu o
preddefinovaných premenných
a tam uvedené odkazy.