PHP

5.0.0b4

Released on 12 Feb 2004
Project description.
PHP is a popular general-purpose scripting language that is especially suited to web development
PHP 5.0.0b4 Changelog
  • 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. (Andi, Zeev)
  • Added SPL extension. (Marcus, Derick)
  • Added checks for invalid characters in a cookie name and cookie data into set[raw]cookie(). (Brian)
  • Added support for ++ and += (and similar) to SimpleXML. (Andi, Zeev)
  • Added infrastructure for ++ and += (and similar) to object overloading modules. (Andi, Zeev)
  • Added error message when trying to re-assign to $this variable. (Zeev, Andi)
  • Added support for an interface to extend another interface. (Zeev)
  • Added new pspell functions: (Brian)
    • pspell_config_dict_dir()
    • pspell_config_data_dir()
  • Added new Interbase functions: (Ard)
    • 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. (Sara)
  • Added optional third parameter 'strict' to array_keys(). (Andrey)
  • Added stream_lock() method to userspace streams interface. (Hartmut, Wez)
  • Added xsltprocessor->registerPHPFunctions(). (Christian)
  • 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. (Zeev, Andi)
  • Completely overhauled SimpleXML extension. (Marcus, Rob, Sterling)
  • Upgraded bundled SQLite library to version 2.8.11. (Ilia, Wez)
  • Improved destructor implementation to always call destructors on clean shutdown. An order of destruction is not guaranteed. (Zeev, Andi)
  • Redesigned exception support. This fixes many bugs in the previous design such as nested try's and problems with overloaded extensions. (Zeev, Andi)
  • 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(). (Zeev, Andi)
  • Fixed interfaces to check for function return-by-reference equality when inheriting and implementing interfaces. (Andi, Zeev)
  • Fixed foreach() to respect property visibility. (Marcus)
  • Fixed problem with parse error in include() file not stopping PHP's execution. (Ilia)
  • Fixed var_export() to show public, protected and private modifiers properly. (Derick)
  • Fixed problems with longlong values in mysqli. (Georg)
  • Fixed class name case preserving of user defined classes. (Marcus)
  • Fixed bug #27145 (Unmangle private/protected property names before printing them inside error messages). (Ilia)
  • Fixed bug #27103 (preg_split('//u') incorrectly splits UTF-8 strings into octets). (Moriyoshi)
  • Fixed bug #27042 (SPL: SeekableIterator seek() broken). (Marcus)
  • Fixed bug #27008 (Every class method can be called as static). (Marcus)
  • Fixed bug #26938 (exec() has problems reading long lines). (Ilia, runekl[at]opoint[dot]com
  • Fixed bug #26947 (ext/dom: Crash when using DomDocument::getElementById()). (Christian)
  • Fixed bug #26911 (crash in sqlite extension when fetching data from empty queries). (Ilia)
  • Fixed bug #26844 (ext/mime_magic: magic file validation broken). (Jani)
  • Fixed bug #26819 (http_build_query() crashes on NULL output). (Ilia)
  • Fixed bug #26817 (http_build_query() does not handle private & protected object properties correctly). (Ilia)
  • Fixed bug #26815 (foreach of (DOM) childnodes crashes when Xinclude is used). (Rob)
  • Fixed bug #26796 (SQLite causes crashes with other extensions *connect() calls). (Marcus)
  • Fixed bug #26762 (unserialize() produces lowercase classnames). (Marcus)
  • Fixed bug #26743 (getElementsByTagName doesn't work properly). (Rob)
  • Fixed bug #26736 (__autoload not invoked for parent classes). (Marcus)
  • Fixed bug #26723 (domNode::appendChild() changes child node namespace). (Rob)
  • Fixed bug #26697 (calling class_exists() on a nonexistent class in __autoload results in segfault). (Marcus)
  • Fixed bug #26696 (string index in a switch() crashes with multiple matches). (Andi)
  • Fixed bug #26695 (Reflection API does not recognize mixed-case class hints). (Marcus)
  • Fixed bug #26690 (make xsltProcessor->transformToUri use streams wrappers). (Ilia)
  • Fixed bug #26680 (Added version check in mysqli_report_index). (Georg)
  • Fixed bug #26675 (Segfault on ArrayAccess use). (Marcus)
  • Fixed bug #26640 (__autoload() not invoked by Reflection classes). (Jani)
  • Fixed bug #26543 (call_user_func() broken for self, parent). (Stanislav)
  • Fixed bug #26077 (memory leak when new() result is not assigned and no constructor is defined). (Stanislav)
  • Fixed bug #26065 (Crash when nesting classes). (Marcus)
  • Fixed bug #25816 (disallow arrays in class constants). (Stanislav)
  • Fixed bug #25329 (sqlite_create_function with method and reference to $this). (Marcus)
  • Fixed bug #25038 (call_user_func() issues a warning if function throws an exception). (Marcus)
  • Fixed bug #24608 (__set not triggered when overloading with array). (Stanislav)
  • Fixed bug #24243 (enabling browscap causes segfault). (Wez)