5.0 has reached end-of-life and will no longer receive
bugfixes or security patches from the PHP Project. Some downstream distributions may still continue to provide
backported fixes for a time, depending on their support policy.
Fixed bug #26737 (private/protected properties not serialized when user declared method __sleep() exists). E_NOTICE thrown when __sleep() returns name of non-existing member.
Fixed bug #27722 (Segfault on schema without targetNamespace).
Fixed bug #27719 (mktime issues on and around DST changeover).
Fixed bug #27681 (soap extension fails without HAVE_TM_GMTOFF).
Fixed bug #27641 (Object cloning in ze1_compatibility_mode was reimplemented)
Fixed bug #27628 (Simplify the process of making a POST request via stream context).
Fixed bug #27619 (filters not applied to pre-buffered stream data).
Fixed bug #27519 (Reflection_Function constructor crashes with non-existant function's name).
Fixed bug #27457 (handling of numeric indexes in strtr()).
Fixed bug #27397 (debug_backtrace() not showing function arguments).
Fixed bug #27283 (The last catch statement was sometimes skipped).
Fixed bug #26441 (When __set() returned a value it corrupted it).
Fixed bug #19749 (shouldn't mmap() files larger than memory_limit).
Fixed numerous bugs with the just-in-time auto-global initialization, that could cause $_SERVER, $argv/$argc and other variables not to work properly.
Fixed data corruption with constant assignments to object properties.
Changed __toString() to be called automatically only with print and echo statements.
Replaced the exec_finished hook by the zend_post_deactive hook for extensions. The new hook will be run after the symbol table and destructors are run.
Fixed possible crash when internal get_method() is not defined.
Fixed calling methods using call_user_func() in conjunction with the array("Class","Method") syntax to use the scope of the PHP user function.
Fixed php-cgi to not ignore command-line switches when run in a web context. This fixes our test cases allowing INI with GET sections to work.
Fixed getopt() so it works without $_SERVER.
Added support for PHP 4 style object comparisons which is enabled in ze1_compatiblity_mode.
Added support for PHP 4 style object conversion to long, double, and boolean values which is enabled in ze1_compatibility_mode.
Allow object oriented extensions to overload comparison functions and other operations. Solves problems using SimpleXML values.
Fixed crash when accessing a class constant with a value which in turn is also a constant.
Fixed object's truth value conversion. It is always true unless ze1_compatibility_mode is on in which it behaves like in PHP 4.
Improved out of memory handling in new memory manager.
Fixed crash when an object references itself during destructor call.
Fixed crash in foreach() when iterating over object properties or a method's return values.
Fixed crash when an exception is thrown in a destructor. Such exceptions are now ignored as destruction happens out of context at no definite time.
Fixed crashes in exception handling.
Changed prototype checks so that they aren't done on constructors.
Changed prototype checks to output an E_STRICT message instead of an E_COMPILE_ERROR.
changed iterator
Upgraded bundled oniguruma library to version 2.2.2.
Added mb_list_encoding() to return an array with all mbstring supported encodings.
Added support for more ISO8601 datetime formats in strtotime().
Timezone specifier
Week specifier
Renamed php.ini option "zend2.implicit_clone" to "zend.ze1_compatibility_mode" as it doesn't only affect implicit cloning.
Methods that override parent methods are now subject to prototype checking, and have to be compatible with the method they're overriding - this check is disabled in compatibility mode.
Fixed crash in php_ini_scanned_files() when no additional INI files were actually parsed.
Fixed bug in gdImageFilledRectangle in the bundled GD library, that required x1 < x2 and y1 < y2 for coordinates.
Fixed crash with foreach() and temporary objects($obj->method()->a ...) where method returns a non-referenced object.
Fixed problem preventing startup errors from being displayed.
Fixed start-up problem if both SPL and SimpleXML were enabled. The double initialization of apache 1.3 was causing problems here.
Fixed bug #27606 (Expression must be a modifiable lvalue compiler error).
Fixed bug #27597 (pg_fetch_array not returning false).
fixed bug #27586 (arrayobject
Fixed bug #27537 (Objects pointing to each other segfaults).
Fixed bug #27535 (Problem with object freeing mechanism).
Fixed bug #27504 (Visibility bugs in call_user_function()).
Fixed bug #27338 (memory leak inside tsrm_virtual_cwd.c on win32).
Changed exceptions so that they must now inherit from the built-in Exception class. This allows for a general catch(Exception $e) statement to catch all exceptions.
Added SPL extension.
Added checks for invalid characters in a cookie name and cookie data into set[raw]cookie().
Added support for ++ and += (and similar) to SimpleXML.
Added infrastructure for ++ and += (and similar) to object overloading modules.
Added error message when trying to re-assign to $this variable.
Added support for an interface to extend another interface.
added new pspell functions
pspell_config_dict_dir()
pspell_config_data_dir()
added new interbase functions
ibase_service_attach() and ibase_service_detach().
ibase_backup() and ibase_restore().
ibase_maintain_db(), ibase_db_info() and ibase_server_info().
Added context option "http"/"request_fulluri" to send entire URI in request which is required format for some proxies.
Added optional third parameter 'strict' to array_keys().
Added stream_lock() method to userspace streams interface.
Added xsltprocessor->registerPHPFunctions().
Readded support for using classes before they are declared according to the behavior in PHP 4. This won't work with classes who are using PHP 5 features such as interfaces.
Completely overhauled SimpleXML extension.
Upgraded bundled SQLite library to version 2.8.11.
Improved destructor implementation to always call destructors on clean shutdown. An order of destruction is not guaranteed.
Redesigned exception support. This fixes many bugs in the previous design such as nested try's and problems with overloaded extensions.
Redesigned clone by adding a clone keyword (clone $obj) and copying all properties before __clone() is called. Also allows calling parent __clone function by using parent::__clone().
Fixed interfaces to check for function return-by-reference equality when inheriting and implementing interfaces.
Fixed foreach() to respect property visibility.
Fixed problem with parse error in include() file not stopping PHP's execution.
Fixed var_export() to show public, protected and private modifiers properly.
Fixed problems with longlong values in mysqli.
Fixed class name case preserving of user defined classes.
Fixed bug #27145 (Unmangle private/protected property names before printing them inside error messages).
Fixed bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into octets).
fixed bug #27042 (spl
Fixed bug #27008 (Every class method can be called as static).
Fixed bug #26938 has problems reading long lines). (Ilia, runekl[at]opoint[dot]com
fixed bug #26947 (ext/dom
Fixed bug #26911 (crash in sqlite extension when fetching data from empty queries).
fixed bug #26844 (ext/mime_magic
Fixed bug #26819 (http_build_query() crashes on NULL output).
Fixed bug #26817 (http_build_query() does not handle private & protected object properties correctly).
Fixed bug #26815 (foreach of (DOM) childnodes crashes when Xinclude is used).
Fixed bug #26796 (SQLite causes crashes with other extensions *connect() calls).
Fixed bug #25494 (array_merge*() allows non-arrays as argument).
Fixed bug #24766 (strange result array from unpack()).
Fixed bug #24729 ($obj = new $className; causes crash when $className is not set).
Fixed bug #24565 (cannot read array elements received via $_REQUEST).
Fixed bug #24445 (get_parent_class() returns different values).
fixed bug #24403 (preg_replace() problem
Fixed bug #24399 (PEAR DB isError crash [instanceof_function fault?]).
Fixed bug #24396 (foreach ($k=>$v), the key $k is missing).
Fixed bug #24279 (__get() crash when no value is returned).
Fixed bug #22367 (undefined variable has a value).
Fixed bug #19859 (allow fast_call_user_function to support __call).
Fixed bug #17997 (Warning when switch() and reference are combined).
Fixed bug #17988 (strtotime failed to parse postgresql timestamp).
Removed the bundled MySQL client library.
Switched to Zend Engine 2, which includes numerous engine level improvements. A full list is available at http://www.php.net/zend-engine-2.php.
added sqlite (http
Includes bundled SQLite library
Enabled by default
completely overhauled xml support
New simplexml extension.
New DOM extension.
New XSL extension.
Moved the old DOM-XML and XSLT extensions to PECL.
ext/xml can now use either libxml2 or expat to parse XML.
Removed bundled expat library.
new php.ini options
"session.hash_function" and "session.hash_bits_per_character".
"mail.force_extra_paramaters".
"register_long_arrays".
Improved the speed of internal functions that use callbacks by 40% due to a new internal fast_call_user_function() function.
improved the streams support
Improved performance of readfile(), fpassthru() and some internal streams operations under Win32.
stream_socket_client() - similar to fsockopen(), but more powerful.
stream_socket_server() - Creates a server socket.
stream_socket_accept() - Accept a client connection.
stream_socket_get_name() - Get local or remote name of socket.
stream_copy_to_stream()
stream_get_line() - Reads either the specified number of bytes or until the ending string is found.
Added context property to userspace streams object.
Added generic crypto interface for streams.
Added lightweight streaming input abstraction to the Zend Engine scanners to provide uniform support for include()'ing data from PHP streams across all platforms.
Added 'string.base64' stream filter.
Renamed stream_register_wrapper() to stream_wrapper_register().
improved the gd extension
imagefilter() - Apply different filters to image.
Antialiased drawing support: o imageantialias() - active antialias o imageline() and imagepolygon() antialias support
Changed the length parameter in fgetss() to be optional.
Changed ini parser to allow for handling of quoted multi-line values.
Changed get_extension_funcs() to return list of the built-in Zend Engine functions if "zend" is specified as the module name.
Changed array_search() to accept also objects as a needle.
Changed ext/mcrypt to require libmcrypt version 2.5.6 or greater.
Changed uniqid() parameters to be optional and allow any prefix length.
Added new iconv functions.
iconv_strlen()
iconv_substr()
iconv_strpos()
iconv_strrpos()
iconv_mime_decode()
iconv_mime_encode()
added misc. new functions
ldap_sasl_bind().
imap_getacl().
file_put_contents().
proc_nice() - Changes priority of the current process.
pcntl_getpriority() and pcntl_setpriority().
idate(), date_sunrise() and date_sunset().
strpbrk() - Searches a string for a list of characters.
get_headers() - Returns headers sent by the server of the specified URL.
str_split() - Breaks down a string into an array of elements based on length.
array_walk_recursive().
array_combine().
Added optional parameter to get_browser() to make it return an array.
Added optional parameter to openssl_sign() to specify the hashing algorithm.
Added optional parameter to sha1(), sha1_file(), md5() and md5_file() which makes them return the digest as binary data.
Added optional parameter to mkdir() to make directory creation recursive.
Added optional parameter to file() which makes the result array not contain the line endings and to skip empty lines.
added new range() functionality
Support for float modifier.
Detection of numeric values inside strings passed as high & low.
Proper handle the situations where high == low.
Added an optional step parameter.
Added encoding detection feature for expat XML parser.
Added missing multibyte (unicode) support and numeric entity support to html_entity_decode().
Added IPv6 support to ext/sockets.
added context options 'method', 'header' and 'content' for "http
Added input filter support. See README.input_filter for more info.
Added a replace count for str_[i]replace(), see bug #8218.
Fixed is_executable() to be available also on Windows.
Fixed dirname() and strip_tags() to be binary-safe.