Now that PHP has grown to be a popular scripting language, there are a lot of public repositories and libraries containing code you can reuse. The PHP developers have largely tried to preserve backwards compatibility, so a script written for an older version will run (ideally) without changes in a newer version of PHP. In practice, some changes will usually be needed.
Two of the most important recent changes that affect old code are:
The deprecation of the old
$HTTP_*_VARSarrays (which need to be indicated as global when used inside a function or method). The following autoglobal arrays were introduced in PHP 4.1.0. They are:
$_SESSION. The older
$HTTP_*_VARSarrays, such as
$HTTP_POST_VARS, still exist as they have since PHP 3. Od PHP 5.0.0 mohou být dlouhá pole předdefinovaných proměnných deaktivována direktivou register_long_arrays.
External variables are no longer registered in the global scope by default. In other words, as of PHP 4.2.0 the PHP directive register_globals is off by default in php.ini. The preferred method of accessing these values is via the autoglobal arrays mentioned above. Older scripts, books, and tutorials may rely on this directive being on. If it were on, for example, one could use
$idfrom the URL https://www.example.com/foo.php?id=42. Whether on or off,