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 |