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.