|
version 1.1, 2012/02/21 23:47:51
|
version 1.1.1.3, 2013/07/22 01:31:37
|
|
Line 1
|
Line 1
|
| $Id$ |
$Id$ |
| |
|
| UPGRADE NOTES - PHP 5.3 | PHP 5.4 UPGRADE NOTES |
| |
|
| 1. Reserved words and classes | =========== |
| 2. Changes made to existing functions | 0. Contents |
| 3. Changes made to existing methods | =========== |
| 4. Changes made to existing classes | |
| 5. Deprecated | 1. Changes to INI directives |
| 6. Undeprecated | 2. Changes to reserved words and classes |
| 7. Extensions: | 3. Changes to engine behavior |
| a. moved out to PECL and actively maintained there | 4. Changes to existing functions |
| b. no longer maintained | 5. Changes to existing classes |
| c. with changed behaviour | 6. Changes to existing methods |
| d. no longer possible to disable | 7. Deprecated Functionality |
| 8. Changes in SAPI support | 8. Removed Functionality |
| 9. Changes in INI directives | a. Removed features |
| 10. Syntax additions | b. Removed functions |
| | c. Removed syntax |
| | d. Removed hash algorithms |
| | 9. Extension Changes: |
| | a. Extensions no longer maintained |
| | b. Extensions with changed behavior |
| | 10. Changes in SAPI support |
| 11. Windows support |
11. Windows support |
| 12. New in PHP 5.3: | 12. New in PHP 5.4: |
| a. New libraries | a. New features |
| b. New extensions | b. Syntax additions |
| c. New stream wrappers | c. New functions |
| d. New stream filters | d. New global constants |
| e. New functions | e. New classes |
| f. New global constants | f. New methods |
| g. New classes | g. New hash algorithms |
| h. New methods | |
| i. New class constants | |
| |
|
| ============================= |
============================= |
| 1. Reserved words and classes | 1. Changes to INI directives |
| ============================= |
============================= |
| |
|
| - **namespace** and **goto** are now reserved keywords. | - PHP 5.4 now checks at compile time if /dev/urandom or /dev/arandom |
| | are present. If either is available, session.entropy_file now |
| | defaults to that file and session.entropy_length defaults to 32. |
| | This provides non-blocking entropy to session id generation. If you |
| | do not want extra entropy for your session ids, add: |
| |
|
| - **Closure** is now a reserved class. (Used by lambda and closure.) | session.entropy_file= |
| | session.entropy_length=0 |
| |
|
| ===================================== | to your php.ini to preserve pre-PHP 5.4 behavior. |
| 2. Changes made to existing functions | |
| ===================================== | |
| |
|
| - Paths containing NULL (like /some/path\0foo.txt) are now considered invalid. | - Deprecated php.ini directives will now throw an E_CORE_WARNING's |
| See http://news.php.net/php.internals/50191 | instead of the previous E_WARNING's. |
| |
|
| - The HTTP stream wrapper now considers all status codes from 200 to 399 to be | - The following php.ini directives are no longer available in PHP 5.4 |
| successful. | and will now throw an E_CORE_ERROR upon startup: |
| | - allow_call_time_pass_reference |
| | - define_syslog_variables |
| | - highlight.bg |
| | - magic_quotes_gpc |
| | - magic_quotes_runtime |
| | - magic_quotes_sybase |
| | - register_globals |
| | - register_long_arrays |
| | - safe_mode |
| | - safe_mode_gid |
| | - safe_mode_include_dir |
| | - safe_mode_exec_dir |
| | - safe_mode_allowed_env_vars |
| | - safe_mode_protected_env_vars |
| | - session.bug_compat_42 |
| | - session.bug_compat_warn |
| | - y2k_compliance |
| | - zend.ze1_compatibility_mode |
| |
|
| - The array functions natsort(), natcasesort(), usort(), uasort(), uksort(), | - the following new php.ini directives were added: |
| array_flip(), and array_unique() no longer accept objects passed as arguments. | - max_input_vars - specifies how many GET/POST/COOKIE input |
| If you need to use them to access an object's properties, you must cast the | variables may be accepted. The default value is 1000. |
| object to an array first. | |
| |
|
| - var_dump() output now includes private object members. | - E_ALL now includes E_STRICT. |
| |
|
| - session_start() now returns FALSE when the session startup fails. | - The recommended production value for error_reporting changed to E_ALL & |
| | ~E_DEPRECATED & ~E_STRICT. |
| |
|
| - property_exists() now checks the existence of a property independent of | - Added new session support directives: |
| accessibility (like method_exists()). | session.upload_progress.enabled |
| | session.upload_progress.cleanup |
| | session.upload_progress.prefix |
| | session.upload_progress.name |
| | session.upload_progress.freq |
| | session.upload_progress.min_freq |
| |
|
| - The $initial parameter for array_reduce can now be of any type. | - Added a zend.multibyte directive as a replacement of the PHP compile time |
| | configuration option --enable-zend-multibyte. Now the Zend Engine always |
| | contains code for multibyte support, which can be enabled or disabled at |
| | runtime. Note: It doesn't make a lot of sense to enable this option if |
| | ext/mbstring is not enabled, because most functionality is implemented by |
| | mbstrings callbacks. |
| |
|
| - clearstatcache() no longer clears the realpath cache by default. | - Added zend.script_encoding. This value will be used unless a |
| | "declare(encoding=...)" directive appears at the top of the script. |
| |
|
| - realpath() is no longer system-dependent and works identically on all | - Added zend.signal_check to check for replaced signal handlers on shutdown |
| platforms. | |
| |
|
| - call_user_func() now propagates $this even if the callee is the parent class. | - Added enable_post_data_reading, which is enabled by default. When it's |
| | disabled, the POST data is not read (or processed); the behavior is similar |
| | to that of other request methods with body, like PUT. This allows reading |
| | the raw POST data in multipart requests and reading/processing the POST data |
| | in a stream fashion (through php://input) without having it copied in memory |
| | multiple times. |
| |
|
| - The filesystem functions opendir(), scandir(), and dir() now use the default | - Added windows_show_crt_warning. This directive shows the CRT warnings when |
| context if no context argument is passed. | enabled. These warnings were displayed by default until now. It is disabled |
| | by default. |
| |
|
| - The behaviour of functions with by-reference parameters called by value has | - Added cli.pager to set a pager for CLI interactive shell output. |
| changed. Where previously the function would accept the by-value argument, a | |
| warning is now emitted and all by-ref parameters are set to NULL. | |
| |
|
| - There is now native support for the following math functions: asinh(), | - Added cli.prompt to configure the CLI interactive shell prompt. |
| acosh(), atanh(), log1p(), and expm1(). | |
| |
|
| - In the GD extension, there is now pixelation support available through | - Added cli_server.color to enable the CLI web server to use ANSI color coding |
| the imagefilter() function. | in terminal output. |
| |
|
| - crypt() now has Blowfish and extended DES support, and crypt() features are | ======================================== |
| now 100% portable. PHP has its own internal crypt implementation which drops | 2. Changes to reserved words and classes |
| into place when system support for crypt or crypt_r() is not found. | ======================================== |
| |
|
| - get_cfg_var() is now able to return "array" INI options. | - "callable", "insteadof" and "trait" are now reserved words. |
| |
|
| - Stream wrappers can now be used by the include_path INI directive. | ============================= |
| | 3. Changes to engine behavior |
| | ============================= |
| |
|
| - These functions now take new parameters: | - The __construct arguments of an extended abstract constructor must |
| clearstatcache(): $clear_realpath_cache and $filename. | now match: |
| copy(): $context | |
| fgetcsv(): $escape | |
| ini_get_all(): $details | |
| json_encode(): $options | |
| json_decode(): $depth | |
| nl2br(): $is_xhtml | |
| parse_ini_file(): $scanner_mode | |
| round(): $mode | |
| stream_context_create(): $params | |
| strstr(), stristr(): $before_needle | |
| sybase_connect(): $new | |
| |
|
| - And new mode option for fopen: 'n' (O_NONBLOCK) | abstract class Base |
| | { |
| | abstract public function __construct(); |
| | } |
| | class Foo extends Base |
| | { |
| | public function __construct($bar) {} |
| | } |
| |
|
| - The new mysqlnd library necessitates using MySQL's newer 41-byte password | This now emits a Fatal error due the incompatible declaration. |
| format. Continued use of the old 16 byte passwords will cause mysql_connect() | |
| and other related functions to produce the following error message: | |
| "mysqlnd cannot connect to MySQL 4.1+ using old authentication" | |
| |
|
| - The dl() function is now disabled by default, and only available under the | - In previous versions, superglobal names could be used for parameter |
| cli, cgi, and embed SAPIs. | names, thereby shadowing the corresponding superglobal. In PHP 5.4 |
| | this now causes a fatal error such as "Cannot re-assign auto-global |
| | variable GLOBALS". |
| |
|
| - mail() now supports the logging of sent mail. | - Turning null, false or an empty string into an object by adding a |
| | property will now emit a warning instead of an E_STRICT error. |
| |
|
| - stream_select(), stream_set_blocking(), stream_set_timeout(), and | $test = null; |
| stream_set_write_buffer() now work with user-space stream wrappers. | $test->baz = 1; |
| |
|
| - getopt() accepts "long options" now on all platforms. | To create a generic object you can use StdClass: |
| Optional values and using = as a separator for short options are now | |
| supported. | |
| |
|
| |
$test = new StdClass; |
| |
$test->baz = 1; |
| |
|
| =================================== | - Converting an array to a string now will cause an E_NOTICE warning. |
| 3. Changes made to existing methods | |
| =================================== | |
| |
|
| - The magic methods __get(), __set(), __isset(), __unset(), and __call() should | - Non-numeric string offsets, e.g. $a['foo'] where $a is a string, now |
| always be public and can no longer be static. Method signatures are enforced. | return false on isset() and true on empty(), and produce warning if |
| | trying to use them. Offsets of types double, bool and null produce |
| | notice. Numeric strings ($a['2']) still work as before. |
| |
|
| - The __call() magic method is now invoked on access to private and protected | Note that offsets like '12.3' and '5 and a half' are considered |
| methods. | non-numeric and produce warning, but are converted to 12 and 5 |
| | respectively for backwards compatibility reasons. |
| |
|
| - The __toString() magic method can no longer accept arguments. | - Long numeric strings that do not fit in integer or double (such as |
| | "92233720368547758070") are compared using string comparison if |
| | they could otherwise result in precision loss - since 5.4.4. |
| |
|
| - There is a new magic method, __callStatic(). | - Closures now support scopes and $this and can be rebound to |
| | objects using Closure::bind() and Closure::bindTo(). |
| |
|
| - Internal count() vs. count_elements() handler resolution rules have changed. | - <?= is now always available regardless of the short_open_tag |
| (This could potentially break custom PHP extensions.) | setting. |
| |
|
| - The trailing / has been removed from SplFileInfo and other related directory | - Parse error messages are changed to contain more information about |
| classes. | the error. |
| |
|
| - SplFileInfo::getpathinfo() now returns information about the path name. | - __clone and __destruct since 5.4.4 follow the same scoping rules as |
| | the rest of the methods (see bug #61782 for details). |
| |
|
| - There are new parameters in: | ================================ |
| Exception::__construct(): $previous | 4. Changes to existing functions |
| | ================================ |
| |
|
| =================================== | - array_combine now returns array() instead of FALSE when two empty arrays are |
| 4. Changes made to existing classes | provided as parameters. |
| =================================== | |
| |
|
| - SplObjectStorage now has ArrayAccess support. It is also now possible to | - dns_get_record() has an extra parameter which allows requesting DNS records |
| store associative information with objects in SplObjectStorage. | by numeric type and makes the result include only the raw data of the |
| | response. |
| ===================== | |
| 4.1 New in PHP 5.3.9 | |
| ===================== | |
| |
|
| - Write operations within XSLT (for example with the extension sax:output) are | - call_user_func_array() no longer allows call-time pass by reference. |
| disabled by default. You can define what is forbidden with the INI option | |
| xsl.security_prefs. This option will be marked as deprecated in 5.4 again. | |
| Use the method XsltProcess::setSecurityPrefs($options) there. | |
| |
|
| - the following new directives were added | - the default character set for htmlspecialchars() and htmlentities() is |
| | now UTF-8. In previous versions it was ISO-8859-1. Note that changing |
| | your output charset via the php.ini default_charset directive does not |
| | affect htmlspecialchars/htmlentities unless you are passing "" (an |
| | empty string) as the encoding parameter to your htmlspecialchars/htmlentities |
| | calls. |
| |
|
| - max_input_vars - specifies how many GET/POST/COOKIE input variables may be | - htmlentities() and htmlspecialchars() are stricter in the code units they |
| accepted. default value 1000. | accept for the asian encodings. For Big5-HKSCS, the octets 0x80 and 0xFF are |
| | rejected. For GB2312/EUC-CN, the octets 0x8E, 0x8F, 0xA0 and 0xFF are |
| | rejected. For SJIS, the octets 0x80, 0xA0, 0xFD, 0xFE and 0xFF are rejected, |
| | except maybe after a valid starting byte. For EUC-JP, the octets 0xA0 and |
| | 0xFF are rejected. |
| |
|
| ============= | - htmlentities() now emits an E_STRICT warning when used with asian characters, |
| 5. Deprecated | as in that case htmlentities has (and already had before this version) the |
| ============= | same functionality as htmlspecialchars. |
| |
|
| - define_syslog_variables() is deprecated. | - htmlentities() no longer numerically encodes high characters for single-byte |
| | encodings (except when there's actually a corresponding named entity). This |
| | behavior was not documented and was inconsistent with that for "UTF-8". |
| |
|
| - set_socket_blocking() is deprecated. | - html_entity_decode() and htmlspecialchars_decode() behave more consistently, |
| | now decoding entities in malformed strings such as "&&" or "&#&". |
| |
|
| - call_user_method() and call_user_method_array() are now deprecated. Use | - htmlentities(), htmlspecialchars(), html_entity_decode(), and |
| call_user_func() and call_user_func_array() instead. | htmlspecialchars_decode: Added the flags ENT_HTML401, ENT_XML1, ENT_XHTML, |
| | and ENT_HTML5. The behavior of these functions including, but not limited to, |
| | the characters that are encoded and the entities that are decoded depend on |
| | the document type that is specified by those flags. |
| |
|
| - dl() is deprecated. | - htmlentities() and htmlspecialchars() with !$double_encode do more strict |
| | checks on the validity of the entities. Numerical entities are checked for a |
| | valid range (0 to 0x10FFFF); if the flag ENT_DISALLOWED is given, the |
| | validity of such numerical entity in the target document type is also |
| | checked. Named entities are checked for necessary existence in the target |
| | document type instead of only checking whether they were constituted by |
| | alphanumeric characters. |
| |
|
| - The set_magic_quotes_runtime() function is now deprecated. | - The flag ENT_DISALLOWED was added. In addition to the behavior described in |
| | the item before, it also makes htmlentities() and htmlspecialchars() |
| | substitute characters that appear literally in the argument string and which |
| | are not allowed in the target document type with U+FFFD (UTF-8) or �. |
| |
|
| - mysql_listtables(), mysql_dropdb(), mysql_createdb(), mysql_list_tables(), | - The flag ENT_SUBSTITUTE was added. This flag makes invalid multibyte |
| mysql_drop_db(), and mysql_create_db() are now deprecated. | sequences be replaced by U+FFFD (UTF-8) or &#FFFD; by htmlspecialchars() and |
| | htmlentities(). It is an alternative to the default behavior, which just |
| | returns an empty string and to ENT_IGNORE, which is a security risk. The |
| | behavior follows the recommendations of Unicode Technical Report #36. |
| |
|
| - All ereg functions are now deprecated and emit E_DEPRECATED errors: | - htmlspecialchars_decode() and html_entity_decode() now decode ' if the |
| sql_regcase(), spliti(), split(), ereg_replace(), eregi(), | document type is ENT_XML1, ENT_XHTML, or ENT_HTML5. |
| ereg_replace(), and ereg(). | |
| Use the PCRE family of functions (preg_*()) instead. | |
| |
|
| - mcrypt_generic_end() is deprecated. | - Charset detection with $charset == '' no longer turns to mbstring's |
| | internal encoding defined through mb_internal_encoding(). Only the encoding |
| | defined through the php.ini setting mbstring.internal_encoding is considered. |
| |
|
| - mysql_db_query() is deprecated. | - number_format() no longer truncates multibyte decimal points and thousand |
| | separators to the first byte. |
| |
|
| - mysql_escape_string() is deprecated. | - The third parameter ($matches) to preg_match_all() is now optional. If |
| | omitted, the function will simply return the number of times the pattern was |
| | matched in the subject and will have no other side effects. |
| |
|
| - session_register(), session_unregister(), and session_is_registered() are now | - The second argument of scandir() now accepts SCANDIR_SORT_NONE (2) as a |
| deprecated. Use the $_SESSION superglobal array instead. | possible value. This value results in scandir() performing no sorting: on |
| | local filesystems, this allows files to be returned in native filesystem |
| | order. |
| |
|
| - Comments starting with '#' are now deprecated in .INI files. | - stream_select() now preserves the keys of the passed array, be they numeric or |
| | strings. This breaks code that iterated the resulting stream array using a |
| | numeric index, but makes easier to identify which of the passed streams are |
| | present in the result. |
| |
|
| - The following INI directives will now emit an E_DEPRECATED warning | - stream_set_write_buffer() no longer disables the read buffer of a plain |
| upon startup if they are activated: | stream when 0 is given as the second argument. |
| |
|
| - define_syslog_variables | - stream_set_write_buffer() no longer changes the chunk size in socket streams. |
| - register_globals | |
| - register_long_arrays | |
| - safe_mode | |
| - magic_quotes_gpc | |
| - magic_quotes_runtime | |
| - magic_quotes_sybase | |
| |
|
| - The is_dst parameter to mktime() is deprecated. | - fclose() closes streams with resource refcount > 1; it doesn't merely |
| | decrement the resource refcount. |
| |
|
| - Assigning the return value of "new" by reference is deprecated | - socket_set_options() and socket_get_options() now support multicast options. |
| |
|
| - Call-time pass-by-reference has been deprecated | - The raw data parameter in openssl_encrypt() and openssl_decrypt() is now an |
| | options integer rather than a boolean. A value of true produces the same |
| | behavior. |
| |
|
| - Usage of {} to access string offsets is deprecated | - Write operations within XSLT (for example with the extension sax:output) are |
| | disabled by default. You can define what is forbidden with the method |
| | XsltProcess::setSecurityPrefs($options). |
| |
|
| - Passing locale category name as string to setlocale() is deprecated. | - Added AES support to OpenSSL. |
| |
|
| =============== | - openssl_csr_new() expects the textual data to be in UTF-8. |
| 6. Undeprecated | |
| =============== | |
| |
|
| - By popular request, is_a() is no longer deprecated. | - Added no-padding option to openssl_encrypt() and openssl_decrypt(). |
| |
|
| ============== | - Added a "no_ticket" SSL context option to disable the SessionTicket TLS |
| 7. Extensions: | extension. |
| ============== | |
| |
|
| a. moved out to PECL and actively maintained there | - Added new json_encode() options: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, |
| | JSON_NUMERIC_CHECK, JSON_BIGINT_AS_STRING, JSON_UNESCAPED_UNICODE. |
| |
|
| - fdf | - Added Tokyo Cabinet and Berkley DB 5 support to DBA extension. |
| - ming | |
| - ncurses | |
| |
|
| b. no longer maintained | - Added support for CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE |
| | to cURL. |
| |
|
| - dbase | - Added optional argument to debug_backtrace() and debug_print_backtrace() |
| - fbsql | to limit the amount of stack frames returned. |
| - msql | |
| - sybase (use sybase_ct, which is still in PHP core) | |
| - mhash (hash has full BC layer) | |
| - mime_magic (use fileinfo, has full BC layer) | |
| |
|
| c. with changed behaviour | - Fixed crypt_blowfish handling of 8-bit characters. crypt() in Blowfish mode |
| | now supports hashes marked $2a$, $2x$, $2y$ and $2z$. |
| |
|
| - dns: dns_check_record() will now return an extra "entries" index, | - mbstring now supports following encodings: Shift_JIS/UTF-8 Emoji, |
| containing the TXT elements. | JIS X0213:2004 (Shift_JIS-2004, EUC-JP-2004, ISO-2022-JP-2004), |
| | MacJapanese (Shift_JIS), gb18030. |
| |
|
| - datetime: date/time functions will no longer use the TZ environment | - Added encode and decode in hex format to mb_encode_numericentity() and |
| variable to guess which timezone should be used. | mb_decode_numericentity(). |
| |
|
| - cURL now supports SSH | - Added support for SORT_NATURAL and SORT_FLAG_CASE in array sort functions: |
| | sort(), rsort(), ksort(), krsort(), asort(), arsort() and array_multisort(). |
| |
|
| - hash: The SHA-224 and salsa hash algorithms are now supported. | - is_a() and is_subclass_of() now have third boolean parameter, which specifies |
| | if the first argument can be a string class name. Default if false for is_a |
| | and true for is_subclass_of() for BC reasons. |
| |
|
| - mbstring: Now supports CP850 encoding. | - ob_start() will now treat a chunk size of 1 as meaning 1 byte, rather than |
| | the previous special case behavior of treating it as 4096 bytes. |
| |
|
| - oci8: Database Resident Connection Pooling (DRCP) and Fast Application | - idn_to_ascii() and idn_to_utf8() now take two extra parameters, one indicating |
| Notification (FAN) are now supported. | the variant (IDNA 2003 or UTS #46) and another, passed by reference, to return |
| | details about the operation in case UTS #46 is chosen. |
| |
|
| Oracle External Authentication is now supported (except on Windows). | - gzencode() used with FORCE_DEFLATE now generates RFC1950 compliant data. |
| |
|
| The oci8 function oci_bind_by_name() now supports SQLT_AFC (aka the | - ob_start() no longer starts multiple output buffers when passed |
| CHAR datatype). | array("callback1", "callback2", "callback3", ...). |
| |
|
| Calling oci_close() on a persistent connection, or when the variable | - Since 5.4.4, "php://fd" stream syntax is available only in CLI build. |
| that references a persistent connection goes out of scope, will now | |
| trigger a roll back of an uncommitted transaction. To avoid unexpected | |
| behavior explicitly issue a commit or roll back as needed. The old | |
| behavior can be enabled with the INI directive | |
| oci8.old_oci_close_semantics. | |
| |
|
| - openssl: OpenSSL digest and cipher functions are now supported. | - Since 5.4.5, resourcebundle_create() accepts null for the first two arguments. |
| It is also now possible to access the internal values of DSA, RSA and | |
| DH keys. | |
| |
|
| - session: Sessions will no longer store session-files in "/tmp" when | - Since 5.4.6, SimpleXMLElement::getDocNamespaces() has and extra parameter which |
| open_basedir restrictions apply, unless "/tmp" is explicitly added to | allows for toggling if the list of namespaces starts from the document root |
| the list of allowed paths. | or from the node you call the method on |
| |
|
| - SOAP: Now supports sending user-supplied HTTP headers. | - Since 5.4.7, ctor is always called when new user stream wrapper object is created. |
| | Before, it was called only when stream_open was called. |
| |
|
| - MySQLi: Now supports persistent connections by prepending the hostname | ============================== |
| with "p:". | 5. Changes to existing classes |
| | ============================== |
| |
|
| - imagepstext now rejects invalid antialiasing steps and raises a warning. | - Classes that implement stream wrappers can define a method called |
| | stream_truncate that will respond to truncation, e.g. through ftruncate. |
| | Strictly speaking, this is an addition to the user-space stream wrapper |
| | template, not a change to an actual class. |
| |
|
| d. no longer possible to disable | - Classes that implement stream wrappers can define a method called |
| | stream_metadata that will be called on touch(), chmod(), chgrp(), chown(). |
| |
|
| - PCRE | - Arrays cast from SimpleXMLElement now always contain all nodes instead of |
| - Reflection | just the first matching node. |
| - SPL | |
| |
|
| ========================== | - All SimpleXMLElement children are now always printed when using var_dump(), |
| 8. Changes in SAPI support | var_export(), and print_r(). |
| ========================== | |
| |
|
| - A new "litespeed" SAPI is now available. | - Added iterator support in MySQLi. mysqli_result implements Traversable. |
| |
|
| - FastCGI is now always enabled and can not be disabled. See sapi/cgi/CHANGES | ============================== |
| for more details. | 6. Changes to existing methods |
| | ============================== |
| |
|
| - A new CGI SAPI option, -T, can be used to measure execution time of a script | - DateTime::parseFromFormat() now has a "+" modifier to allow trailing text in |
| repeated several times. | the string to parse without throwing an error. |
| | |
| - CGI/FastCGI now has support for .htaccess style user-defined php.ini files. | |
| See the new user_ini.filename and user_ini.cache_ttl INI directives. | |
| |
|
| ============================ | - Added the ability to pass options to DOMDocument::loadHTML(). |
| 9. Changes in INI directives | |
| ============================ | |
| |
|
| - zend_extension_debug and zend_extension_ts have been removed. Always use the | - FilesystemIterator, GlobIterator and (Recursive)DirectoryIterator now use |
| zend_extension directive to load Zend Extensions. | the default stream context. |
| |
|
| - zend.ze1_compatibility_mode has been removed. If this INI directive is set to | - Since 5.4.5, the constructor of ResourceBundle accepts NULL for the first two |
| on, then an E_ERROR is emitted at startup. | arguments. |
| |
|
| - There is now support for special sections: [PATH=/opt/httpd/www.example.com/] | =========================== |
| and [HOST=www.example.com]. Directives set in these sections cannot be | 7. Deprecated Functionality |
| overridden by user-defined INI files or at runtime. | =========================== |
| |
|
| - Added mbstring.http_output_conv_mimetype. This directive specifies the | - The following functions are deprecated in PHP 5.4: |
| regex pattern of content types for which mb_output_handler() is activated. | - mcrypt_generic_end(): use mcrypt_generic_deinit() instead |
| | - mysql_list_dbs() |
| |
|
| - It is now possible to use the full path to load modules using the "extension" | ======================== |
| directive. | 8. Removed Functionality |
| | ======================== |
| |
|
| - "INI variables" can now be used almost anywhere in a php.ini file. | a. Removed features |
| |
|
| - It is now possible to use alphanumeric or variable indices in INI option | The following features have been removed from PHP 5.4: |
| arrays. | |
| |
|
| - open_basedir is now PHP_INI_ALL | - Magic quotes |
| | - Register globals |
| | - Safe mode |
| | - Session extension bug compatibility mode |
| | - Y2K compliance mode |
| |
|
| - Runtime tightening of open_basedir restrictions is now possible. | b. Removed functions |
| |
|
| - The default value of session.use_only_cookies has changed to "1". | The following functions are no longer available in PHP 5.4: |
| |
|
| - The default value of oci8.default_prefetch has been changed from 10 to 100. | - define_syslog_variables() |
| | - import_request_variables() |
| | - session_is_registered() |
| | - session_register() |
| | - session_unregister() |
| | - set_magic_quotes_runtime() |
| | - mysqli_bind_param() (alias of mysqli_stmt_bind_param()) |
| | - mysqli_bind_result() (alias of mysqli_stmt_bind_result()) |
| | - mysqli_client_encoding() (alias of mysqli_character_set_name()) |
| | - mysqli_fetch() (alias of mysqli_stmt_fetch()) |
| | - mysqli_param_count() (alias of mysqli_stmt_param_count()) |
| | - mysqli_get_metadata() (alias of mysqli_stmt_result_metadata()) |
| | - mysqli_send_long_data() (alias of mysqli_stmt_send_long_data()) |
| | - mysqli::client_encoding() (alias of mysqli::character_set_name) |
| | - mysqli_stmt::stmt() (never worked/always throws, undocumented) |
| |
|
| - A new directive, request_order, controls the behavior of $_REQUEST | c. Removed syntax |
| independently of variables_order. | |
| - A new directive, called windows.show_crt_warning, has been introduced. | |
| This directive shows the CRT warnings when enabled. These warnings were | |
| displayed by default until now. It is disabled by default. | |
| |
|
| - New INI directives: | - break $var; |
| - mail.add_x_header | - continue $var; |
| - user_ini.filename | |
| - user_ini.cache_ttl | |
| - exit_on_timeout | |
| - mysqli.allow_persistent | |
| - mysqli.default_host | |
| - mysqli.default_socket | |
| - mysqli.allow_local_infile | |
| - mysqli.cache_size | |
| - oci8.connection_class | |
| - oci8.events | |
| - pdo_mysql.default_socket | |
| - pdo_mysql.cache_size | |
| - sqlite3.extension_dir | |
| - mysql.default_socket | |
| - mysql.allow_local_infile | |
| - mysql.cache_size | |
| - mysqlnd.collect_statistics | |
| - mysqlnd.collect_memory_statistics | |
| - mysqlnd.net_cmd_buffer_size | |
| - mysqlnd.net_read_buffer_size | |
| - mysqlnd.log_mask | |
| |
|
| |
d. Removed hash algorithms |
| |
|
| |
- Salsa10 and Salsa20, which are actually stream ciphers |
| |
|
| ==================== |
==================== |
| 10. Syntax additions | 9. Extension Changes |
| ==================== |
==================== |
| |
|
| - NOWDOC: Similar to HEREDOC, but with single quotes: | a. Extensions no longer maintained |
| |
|
| <<<'LABEL' ... | - ext/sqlite is no longer part of the base distribution and has been moved |
| | to PECL. Use sqlite3 or PDO_SQLITE instead. |
| |
|
| Static HEREDOCs can be used to initialize static variables and class members | b. Extensions with changed behavior |
| or constants: | |
| |
|
| static $foo = <<<LABEL | - The MySQL extensions (ext/mysql, mysqli and PDO_MYSQL) use mysqlnd |
| No variables here... | as the default library now. It is still possible to use libmysql by |
| LABEL; | specifying a path to the configure options. |
| |
|
| - HEREDOC now supports wrapping the identifier with double-quotes, to complement | - PDO_MYSQL: Support for linking with MySQL client libraries older |
| the NOWDOC syntax: | than 4.1 is removed. |
| |
|
| <<<"LABEL" ... | - The session extension now can hook into the file upload feature |
| | in order to provide upload progress information through session |
| | variables. |
| |
|
| - The ?: operator has been introduced: | - SNMP extension |
| | - Functions in SNMP extension now returns FALSE on every error |
| | condition including SNMP-related (no such instance, end of MIB, |
| | etc). Thus, in patricular, breaks previous behavior of get/walk |
| | functions returning an empty string on SNMP-related errors. |
| | - Multi OID get/getnext/set queries are now supported. |
| | - New constants added for use in snmp_set_oid_output_format() |
| | function. |
| | - Function snmp_set_valueretrieval() changed it's behavior: |
| | SNMP_VALUE_OBJECT can be combined with one of |
| | SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY resulting OID value |
| | changes. When no SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY |
| | is supplied with SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY is used. |
| | Prior to 5.4.0 when no SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY |
| | was supplied with SNMP_VALUE_OBJECT, SNMP_VALUE_PLAIN was used. |
| | - Added feature-rich OO API (SNMP class) |
| | - Dropped UCD-SNMP compatibility code. Consider upgrading to |
| | net-snmp v5.3+. Net-SNMP v5.4+ is required for Windows version. |
| | - In sake of adding support for IPv6 DNS name resolution of |
| | remote SNMP agent (peer) is done by extension now, not by Net-SNMP |
| | library anymore. |
| |
|
| var_dump(0 ?: 'Hello!'); | - Date extension |
| | - Setting the timezone with the TZ environment variable is no longer |
| | supported, instead date.timezone and/or date_default_timezone_set() |
| | have to be used. |
| | - The extension will no longer guess the default timezone if none |
| | is set with date.timezone and/or date_default_timezone_set(). |
| | Instead it will always fall back to "UTC". |
| |
|
| - Namespaces were added: | - Hash extension |
| | - the output of the tiger hash family has been corrected, see |
| | https://bugs.php.net/61307 |
| |
|
| namespace my\name; | =========================== |
| $obj = new \my\name\MyClass; | 10. Changes in SAPI support |
| | =========================== |
| |
|
| - Dynamic access to static methods is now possible: | - A REQUEST_TIME_FLOAT value returns a floating point number indicating the |
| | time with microsecond precision. All SAPIs providing this value should be |
| | returning float and not time_t. |
| |
|
| $foo::myFunc(); | - apache_child_terminate(), getallheaders(), apache_request_headers() |
| | and apache_response_headers() are now supported on FastCGI. |
| |
|
| - Exceptions can now be nested: | - The interactive shell allows a shortcut #inisetting=value to change php.ini |
| | settings at run-time. |
| |
|
| class MyCustomException extends Exception {} | - The interactive shell now works with the shared readline extension. |
| try { | |
| throw new MyCustomException("Something happend", 112); | |
| } catch(Exception $e) { | |
| throw new InvalidArgumentException("You are doing it wrong!", 911, $e); | |
| } | |
| |
|
| - Exceptions can now be handled in destructors. | - The interactive shell no longer terminates on fatal errors. |
| |
|
| - A garbage collector has been added and is enabled by default. | - A new PHP CLI command line option --rz <name> shows information about the |
| | named Zend extension. |
| |
|
| =================== |
=================== |
| 11. Windows support |
11. Windows support |
| =================== |
=================== |
| |
|
| - The minimum Windows version is now Windows 2000. (Windows 98, ME and NT4 are | - is_link now works properly for symbolic links on Windows Vista |
| no longer supported). | or later. Earlier systems do not support symbolic links. |
| |
|
| - PHP Windows binaries target i586 or later. i386 and i486 are not supported. | - As of PHP 5.4.5 and above the COM extension isn't compiled statically in PHP |
| | anymore but shared. It'll still be delivered with the standard PHP release but |
| | must be activated manually with the "extension = php_com_dotnet.dll" directive |
| | in php.ini. |
| |
|
| - Support for the IIS SAPI has been dropped. Use the FastCGI SAPI instead | - Apache 2.4 handler is supported as of PHP 5.4.9 |
| (available for IIS5 and later)). FastCGI is the recommended way to use PHP | |
| with IIS (see http://php.iis.net/). | |
| |
|
| - A new build is available based on the latest Visual C++ Compiler (VC9). | ================== |
| Its use is recommended with FastCGI or CLI. Apache's Windows binaries are not | 12. New in PHP 5.4 |
| compatible with VC9; however, you can use Apache Lounge's build | ================== |
| (http://apachelounge.com). | |
| |
|
| - The x64 binaries are for experimental usage only. They are not meant to be | a. New Features |
| used in production. | |
| |
|
| - A new site is available to download Windows releases as well as Windows-only | - A built-in CLI web server for testing purposes is now available: |
| releases: http://windows.php.net. Windows-specific releases will be made to | $ php -S 127.0.0.1:8888 |
| fix security issues in the bundled libraries (libpng, openssl, etc.). Please | |
| note that this site does not replace the main PHP site as a source of PHP | |
| news, resources, or documentation. | |
| |
|
| - Windows support has been added for the following functions: getopt(), | - File Upload Progress support is implemented in the Session extension. |
| imagecolorclosesthwb(), mcrypt_create_iv(), inet_ntop(), inet_pton(), | |
| getmxrr(), checkdnsrr(), dns_get_record(), linkinfo(), readlink(), | |
| symlink(), link(), fnmatch(), stream_socket_pair(), time_nanosleep(), | |
| time_sleep_until(), and socket_create_pair(). | |
| |
|
| - Crypt supports now all available algorithms on Windows (blowfish included). | b. Syntax additions |
| |
|
| - Improved portability of stat(), touch(), filemtime(), filesize() and related | - Traits: |
| functions (100% portable for the available data). | trait HelloWorld { |
| | public function sayHello() { |
| | echo 'Hello World!'; |
| | } |
| | } |
| |
|
| - It is now possible to create hard links on Windows using the link() function, | class CanIGetHello { |
| and symbolic links using the symlink() function. Hard links are available | use HelloWorld; |
| as of Windows 2000 and symbolic links as of Windows Vista. | } |
| |
|
| - The PDO_OCI php_pdo_oci8.dll library (for use with Oracle version 8 client | $hello = new CanIGetHello(); |
| libraries) is no longer being built. Instead, use php_pdo_oci.dll (note no | $hello->sayHello(); |
| '8') with Oracle 10 or 11 client libraries. Connection to other database | |
| versions is still supported. | |
| |
|
| - For the OCI8 extension, a new library php_oci8_11g.dll is available in | - Function call result array access, e.g.: |
| addition to php_oci8.dll. Only one can be enabled at any time. Use | foo()[0] |
| php_oci8.dll with Oracle 10.2 client libraries. Use php_oci8_11g.dll with | $foo->bar()[0] |
| Oracle 11 client libraries. Connection to other database versions is still | |
| supported. | |
| |
|
| - Firebird and SNMP support are no longer available on Windows. Firebird support | - Callable typehint indicating argument must be callable: |
| may be reintroduced in the future. | function foo(callable $do) { |
| | } |
| | foo("strcmp"); |
| | foo(function() {}); |
| | $o = new ArrayObject(); |
| | foo(array($o, "count")); |
| |
|
| ===================== | - Short array syntax: |
| 11.1 New in PHP 5.3.4 | $a = [1, 2, 3, 4]; |
| ===================== | $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4]; |
| | $a = ['one' => 1, 2, 'three' => 3, 4]; |
| |
|
| - open_basedir supports now symbolic links (checks the target). | - Binary number format: |
| - is_link and SplFileInfo symbolic links related method are now fully supported | 0b00100 0b010101 |
| (on Windows Vista or later). | |
| |
|
| =================== | - Chained string array offsets now work. |
| 12. New in PHP 5.3: | $a = "abc"; |
| =================== | echo $a[0][0]; |
| |
|
| a. New libraries | - Anonymous functions now support using $this and class scope. |
| | Anonymous function can be declared as "static" to ignore the scope. |
| |
|
| - mysqlnd is a new core library shipped with PHP. It is a PHP-specific | - Class::{expr}() syntax is now supported: |
| replacement for libmysql and is recommended for all installations for | class A { |
| increased performance. | static function foo() { |
| | echo "Hello world!\n"; |
| | } |
| | } |
| | $x = "f"; |
| | $y = "o"; |
| | A::{$x.$y.$y}(); |
| |
|
| b. New extensions | - Class member access on instantiation: |
| | (new foo)->method() |
| | (new foo)->property |
| | (new foo)[0] |
| |
|
| - enchant |
|
| - fileinfo (replaces mime_magic) |
|
| - intl |
|
| - Phar |
|
| - SQLite3 |
|
| |
|
| c. New stream wrappers | c. New functions |
| |
|
| - glob:// stream wrapper | - Core: |
| - phar:// stream wrapper for accessing phar archives | - get_declared_traits() |
| | - getimagesizefromstring() |
| | - hex2bin() |
| | - header_register_callback() |
| | - http_response_code() |
| | - stream_set_chunk_size() |
| | - socket_import_stream() |
| | - trait_exists() |
| |
|
| d. New stream filters | - Intl: |
| | - transliterator_create() |
| | - transliterator_create_from_rules() |
| | - transliterator_create_inverse() |
| | - transliterator_get_error_code() |
| | - transliterator_get_error_message() |
| | - transliterator_list_ids() |
| | - transliterator_transliterate() |
| |
|
| - "dechunk" (HTTP/1.1 chunked transfer encoding) | - LDAP: |
| - The bz2.decompress filter now supports concatenation | - ldap_control_paged_result() |
| | - ldap_control_paged_result_response() |
| |
|
| e. New functions | - libxml: |
| | - libxml_set_external_entity_loader() |
| |
|
| - Core: gc_collect_cycles() | - mysqli: |
| gc_enabled() | - mysqli_error_list() |
| gc_enable() | - mysqli_stmt_error_list() |
| gc_disable() | |
| class_alias() | |
| get_called_class() | |
| forward_static_call() | |
| forward_static_call_array() | |
| str_getcsv() | |
| quoted_printable_encode() | |
| lcfirst() | |
| - Array: array_replace() | |
| array_replace_recursive() | |
| - Date: date_add() | |
| date_sub() | |
| date_diff() | |
| date_parse_from_format() | |
| date_create_from_format() | |
| date_get_last_errors() | |
| timezone_version_get() | |
| - INI: parse_ini_string() | |
| - GMP: gmp_testbit() | |
| - Hash: hash_copy() | |
| - IMAP: imap_gc() | |
| imap_utf8_to_mutf7() | |
| imap_mutf7_to_utf8() | |
| - JSON: json_last_error() | |
| - libxml: libxml_disable_entity_loader | |
| - MySQLi: mysqli_fetch_all() | |
| mysqli_get_connection_stats() | |
| mysqli_poll() | |
| mysqli_reap_async_query() | |
| - Network: gethostname() | |
| header_remove() | |
| - OpenSSL: openssl_random_pseudo_bytes() | |
| - PCNTL: pcntl_signal_dispatch() | |
| pcntl_sigprocmask() | |
| pcntl_sigwaitinfo() | |
| pcntl_sigtimedwait() | |
| - PCRE: preg_filter() | |
| - SHM: msg_queue_exists() | |
| shm_has_var() | |
| - Streams: stream_supports_lock() | |
| stream_context_set_default() | |
| stream_context_get_params() | |
| - Userspace stream wrappers: | |
| stream_cast() | |
| stream_set_options() | |
| |
|
| f. New global constants | - pgsql |
| | - pg_escape_identifier() (5.4.4) |
| | - pg_escape_literal() (5.4.4) |
| |
|
| - Core: E_DEPRECATED | - Session: |
| E_USER_DEPRECATED | - session_register_shutdown() |
| __DIR__ | - session_status() |
| __NAMESPACE__ | |
| PHP_MAXPATHLEN | |
| PHP_WINDOWS_VERSION_MAJOR | |
| PHP_WINDOWS_VERSION_MINOR | |
| PHP_WINDOWS_VERSION_BUILD | |
| PHP_WINDOWS_VERSION_PLATFORM | |
| PHP_WINDOWS_VERSION_SP_MAJOR | |
| PHP_WINDOWS_VERSION_SP_MINOR | |
| PHP_WINDOWS_VERSION_SUITEMASK | |
| PHP_WINDOWS_VERSION_PRODUCTTYPE | |
| PHP_WINDOWS_NT_DOMAIN_CONTROLLER | |
| PHP_WINDOWS_NT_SERVER | |
| PHP_WINDOWS_NT_WORKSTATION | |
| - INI: INI_SCANNER_NORMAL | |
| INI_SCANNER_RAW | |
| - cURL CURLOPT_PROGRESSFUNCTION | |
| - GD: IMG_FILTER_PIXELATE | |
| - JSON: JSON_ERROR_NONE | |
| JSON_ERROR_DEPTH | |
| JSON_ERROR_STATE_MISMATCH | |
| JSON_ERROR_CTRL_CHAR | |
| JSON_ERROR_SYNTAX | |
| JSON_FORCE_OBJECT | |
| JSON_HEX_TAG | |
| JSON_HEX_AMP | |
| JSON_HEX_APOS | |
| JSON_HEX_QUOT | |
| - LDAP: LDAP_OPT_NETWORK_TIMEOUT | |
| - libxml: LIBXML_LOADED_VERSION | |
| - PCRE: PREG_BAD_UTF8_OFFSET_ERROR | |
| - PCNTL: SIG_BLOCK | |
| SIG_UNBLOCK | |
| SIG_SETMASK | |
| SI_USER | |
| SI_NOINFO | |
| SI_KERNEL | |
| SI_QUEUE | |
| SI_TIMER | |
| SI_MESGQ | |
| SI_ASYNCIO | |
| SI_SIGIO | |
| SI_TKILL | |
| CLD_EXITED | |
| CLD_KILLED | |
| CLD_DUMPED | |
| CLD_TRAPPED | |
| CLD_STOPPED | |
| CLD_CONTINUED | |
| TRAP_BRKPT | |
| TRAP_TRACE | |
| POLL_IN | |
| POLL_OUT | |
| POLL_MSG | |
| POLL_ERR | |
| POLL_PRI | |
| POLL_HUP | |
| ILL_ILLOPC | |
| ILL_ILLOPN | |
| ILL_ILLADR | |
| ILL_ILLTRP | |
| ILL_PRVOPC | |
| ILL_PRVREG | |
| ILL_COPROC | |
| ILL_BADSTK | |
| FPE_INTDIV | |
| FPE_INTOVF | |
| FPE_FLTDIV | |
| FPE_FLTOVF | |
| FPE_FLTUND | |
| FPE_FLTRES | |
| FPE_FLTINV | |
| FPE_FLTSUB | |
| SEGV_MAPERR | |
| SEGV_ACCERR | |
| BUS_ADRALN | |
| BUS_ADRERR | |
| BUS_OBJERR | |
| |
|
| g. New classes | - SPL |
| | - class_uses() |
| |
|
| - Date: DateInterval | d. New global constants |
| DatePeriod | |
| - Phar: Phar | |
| PharData | |
| PharFileInfo | |
| PharException | |
| - SPL SplDoublyLinkedList | |
| SplStack | |
| SplQueue | |
| SplHeap | |
| SplMinHeap | |
| SplMaxHeap | |
| SplPriorityQueue | |
| SplFixedArray | |
| FilesystemIterator | |
| GlobIterator | |
| RecursiveTreeIterator | |
| MultipleIterator | |
| |
|
| h. New methods | - CURLOPT_MAX_RECV_SPEED_LARGE |
| | - CURLOPT_MAX_SEND_SPEED_LARGE |
| | - ENT_DISALLOWED |
| | - ENT_HTML401 |
| | - ENT_HTML5 |
| | - ENT_SUBSTITUTE |
| | - ENT_XHTML |
| | - ENT_XML1 |
| | - IPPROTO_IP |
| | - IPPROTO_IPV6 |
| | - IPV6_MULTICAST_HOPS |
| | - IPV6_MULTICAST_IF |
| | - IPV6_MULTICAST_LOOP |
| | - IP_MULTICAST_IF |
| | - IP_MULTICAST_LOOP |
| | - IP_MULTICAST_TTL |
| | - JSON_BIGINT_AS_STRING |
| | - JSON_OBJECT_AS_ARRAY |
| | - JSON_PRETTY_PRINT |
| | - JSON_UNESCAPED_SLASHES |
| | - JSON_UNESCAPED_UNICODE |
| | - LIBXML_HTML_NODEFDTD |
| | - LIBXML_HTML_NOIMPLIED |
| | - LIBXML_PEDANTIC |
| | - MCAST_JOIN_GROUP |
| | - MCAST_LEAVE_GROUP |
| | - MCAST_BLOCK_SOURCE |
| | - MCAST_UNBLOCK_SOURCE |
| | - MCAST_JOIN_SOURCE_GROUP |
| | - MCAST_LEAVE_SOURCE_GROUP |
| | - OPENSSL_CIPHER_AES_128_CBC |
| | - OPENSSL_CIPHER_AES_192_CBC |
| | - OPENSSL_CIPHER_AES_256_CBC |
| | - OPENSSL_RAW_DATA |
| | - OPENSSL_ZERO_PADDING |
| | - PHP_OUTPUT_HANDLER_CLEAN |
| | - PHP_OUTPUT_HANDLER_CLEANABLE |
| | - PHP_OUTPUT_HANDLER_DISABLED |
| | - PHP_OUTPUT_HANDLER_FINAL |
| | - PHP_OUTPUT_HANDLER_FLUSH |
| | - PHP_OUTPUT_HANDLER_FLUSHABLE |
| | - PHP_OUTPUT_HANDLER_REMOVABLE |
| | - PHP_OUTPUT_HANDLER_STARTED |
| | - PHP_OUTPUT_HANDLER_STDFLAGS |
| | - PHP_OUTPUT_HANDLER_WRITE |
| | - PHP_QUERY_RFC1738 |
| | - PHP_QUERY_RFC3986 |
| | - PHP_SESSION_ACTIVE |
| | - PHP_SESSION_DISABLED |
| | - PHP_SESSION_NONE |
| | - SCANDIR_SORT_ASCENDING |
| | - SCANDIR_SORT_DESCENDING |
| | - SCANDIR_SORT_NONE |
| | - SORT_FLAG_CASE |
| | - SORT_NATURAL |
| | - STREAM_META_ACCESS |
| | - STREAM_META_GROUP |
| | - STREAM_META_GROUP_NAME |
| | - STREAM_META_OWNER |
| | - STREAM_META_OWNER_NAME |
| | - STREAM_META_TOUCH |
| | - T_CALLABLE |
| | - T_INSTEADOF |
| | - T_TRAIT |
| | - T_TRAIT_C |
| | - ZLIB_ENCODING_DEFLATE |
| | - ZLIB_ENCODING_GZIP |
| | - ZLIB_ENCODING_RAW |
| | - U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR |
| | - IDNA_CHECK_BIDI |
| | - IDNA_CHECK_CONTEXTJ |
| | - IDNA_NONTRANSITIONAL_TO_ASCII |
| | - IDNA_NONTRANSITIONAL_TO_UNICODE |
| | - INTL_IDNA_VARIANT_2003 |
| | - INTL_IDNA_VARIANT_UTS46 |
| | - IDNA_ERROR_EMPTY_LABEL |
| | - IDNA_ERROR_LABEL_TOO_LONG |
| | - IDNA_ERROR_DOMAIN_NAME_TOO_LONG |
| | - IDNA_ERROR_LEADING_HYPHEN |
| | - IDNA_ERROR_TRAILING_HYPHEN |
| | - IDNA_ERROR_HYPHEN_3_4 |
| | - IDNA_ERROR_LEADING_COMBINING_MARK |
| | - IDNA_ERROR_DISALLOWED |
| | - IDNA_ERROR_PUNYCODE |
| | - IDNA_ERROR_LABEL_HAS_DOT |
| | - IDNA_ERROR_INVALID_ACE_LABEL |
| | - IDNA_ERROR_BIDI |
| | - IDNA_ERROR_CONTEXTJ |
| |
|
| - Date: DateTime::diff() | e. New classes |
| DateTime::add() | |
| DateTime::sub() | |
| DateTime::createFromFormat() | |
| DateTime::getLastErrors() | |
| - DOM: DOMNode::getLineNo() | |
| - Exception: Exception::getPrevious() | |
| - PDO_Firebird: PDO::setAttribute() | |
| - Reflection: ReflectionProperty::setAccessible() | |
| ReflectionFunction::inNamespace() | |
| ReflectionFunction::getNamespaceName() | |
| ReflectionFunction::getShortName() | |
| ReflectionClass::inNamespace() | |
| ReflectionClass::getNamespaceName() | |
| ReflectionClass::getShortName() | |
| - SPL: DirectoryIterator::getExtension() | |
| SplFileInfo::getExtension() | |
| SplObjectStorage::addAll() | |
| SplObjectStorage::removeAll() | |
| - XSL: XSLTProcessor::setProfiling() | |
| |
|
| i. New class constants | - Reflection: |
| | - ReflectionZendExtension |
| |
|
| - PDO_Firebird: PDO::FB_ATTR_DATE_FORMAT | - Intl: |
| PDO::FB_ATTR_TIME_FORMAT | - Transliterator |
| PDO::FB_ATTR_TIMESTAMP_FORMAT | - Spoofchecker |
| | |
| | - JSON: |
| | - JsonSerializable |
| | |
| | - Session: |
| | - SessionHandler |
| | |
| | - SNMP: |
| | - SNMP |
| | |
| | - SPL: |
| | - CallbackFilterIterator |
| | - RecursiveCallbackFilterIterator |
| | |
| | f. New methods |
| | |
| | - Closure: |
| | - Closure::bind() |
| | - Closure::bindTo() |
| | |
| | - Reflection: |
| | - ReflectionClass::getTraitAliases() |
| | - ReflectionClass::getTraitNames() |
| | - ReflectionClass::getTraits() |
| | - ReflectionClass::isCloneable() |
| | - ReflectionClass::isTrait() |
| | - ReflectionClass::newInstanceWithoutConstructor() |
| | - ReflectionExtension::isPersistent() |
| | - ReflectionExtension::isTemporary() |
| | - ReflectionFunction::getClosure() |
| | - ReflectionFunction::getClosureScopeClass() |
| | - ReflectionFunction::getClosureThis() |
| | - ReflectionFunctionAbstract::getClosureScopeClass() |
| | - ReflectionFunctionAbstract::getClosureThis() |
| | - ReflectionMethod::getClosure() |
| | - ReflectionMethod::getClosureScopeClass() |
| | - ReflectionMethod::getClosureThis() |
| | - ReflectionObject::getTraitAliases() |
| | - ReflectionObject::getTraitNames() |
| | - ReflectionObject::getTraits() |
| | - ReflectionObject::isCloneable() |
| | - ReflectionObject::isTrait() |
| | - ReflectionObject::newInstanceWithoutConstructor() |
| | - ReflectionParameter::canBePassedByValue() |
| | - ReflectionParameter::isCallable() |
| | |
| | - PDO_DBLIB: |
| | - PDO::newRowset() |
| | |
| | - SPL: |
| | - DirectoryIterator::getExtension() |
| | - RegexIterator::getRegex() |
| | - SplDoublyLinkedList::serialize() |
| | - SplDoublyLinkedList::unserialize() |
| | - SplFileInfo::getExtension() |
| | - SplFileObject::fputcsv() |
| | - SplObjectStorage::getHash() |
| | - SplQueue::serialize |
| | - SplQueue::unserialize |
| | - SplStack::serialize |
| | - SplStack::unserialize |
| | - SplTempFileObject::fputcsv |
| | |
| | - XSLT: |
| | - XsltProcessor::setSecurityPrefs() |
| | - XsltProcessor::getSecurityPrefs() |
| | |
| | - Zlib: |
| | - zlib_decode() |
| | - zlib_encode() |
| | |
| | g. New Hash algorithms |
| | |
| | - fnv132 |
| | - fnv164 |
| | - joaat |