Backward incompatible changesAlthough most existing PHP 5 code should work without changes, please take note of some backward incompatible changes: Array keys won't be overwritten when defining an array as a property of a class via an array literalPreviously, arrays declared as class properties which mixed explicit and implicit keys could have array elements silently overwritten if an explicit key was the same as a sequential implicit key. For example:
<?php Output of the above example in PHP 5.5: array(2) { [0]=> string(3) "bar" [1]=> string(4) "quux" } Output of the above example in PHP 5.6: array(3) { [1]=> string(3) "foo" [2]=> string(3) "bar" [3]=> string(4) "quux" } json_decode strictnessjson_decode now rejects non-lowercase variants of the JSON literals true, false and null at all times, as per the JSON specification, and sets json_last_error accordingly. Previously, inputs to json_decode that consisted solely of one of these values in upper or mixed case were accepted. This change will only affect cases where invalid JSON was being passed to json_decode: valid JSON input is unaffected and will continue to be parsed normally. Stream wrappers now verify peer certificates and host names by default when using SSL/TLSAll encrypted client streams now enable peer verification by default. By default, this will use OpenSSL's default CA bundle to verify the peer certificate. In most cases, no changes will need to be made to communicate with servers with valid SSL certificates, as distributors generally configure OpenSSL to use known good CA bundles.
The default CA bundle may be overridden on a global basis by setting
either the openssl.cafile or openssl.capath configuration setting, or on a
per request basis by using the
While not recommended in general, it is possible to disable peer
certificate verification for a request by setting the
GMP resources are now objectsGMP resources are now objects. The functional API implemented in the GMP extension has not changed, and code should run unmodified unless it checks explicitly for a resource using is_resource or similar. Mcrypt functions now require valid keys and IVsmcrypt_encrypt, mcrypt_decrypt, mcrypt_cbc, mcrypt_cfb, mcrypt_ecb, mcrypt_generic and mcrypt_ofb will no longer accept keys or IVs with incorrect sizes, and block cipher modes that require IVs will now fail if an IV isn't provided. cURL file uploads
Uploads using the @file syntax now require CURLOPT_SAFE_UPLOAD to be set to
|