While PHP 4 comes with a lot of new features, functions and
extensions, you may still find some functions from version 3
missing. A small number of core functions has vanished because
they do not work with the new scheme of splitting parsing and
execution as introduced into 4 with the Zend engine. Other
functions and even complete extensions have become obsolete as
newer functions and extensions serve the same task better and/or
in a more general way. Some functions just simply haven't been
ported yet and finally some functions or extensions may be missing
due to license conflicts.
As PHP 4 now separates parsing from execution it is no longer
possible to change the behavior of the parser (now embedded in
the Zend engine) at runtime as parsing already happened by
then. So the function short_tags() no longer
exists. You can still change the parsers behavior by setting
appropriate values in the php.ini file.
Another feature of PHP 3 that is not a part of PHP 4 is the bundled
debugging interface. There are third-party add-ons for the Zend engine
which add similar functionality.
The Adabas and Solid database extensions are no more. Long live
the unified ODBC extension instead.
unset(), although still available, is
implemented as a language construct rather than a function.
This does not have any consequences on the behavior of
unset(), but testing for "unset" using
function_exists() will return FALSE as it would with
other language constructs that look like functions such as
echo().
Another more practical change is that it is no longer possible to
call unset() indirectly, that is
$func="unset"; $func($somevar) won't work
anymore.