Currently PHP development team announces the immediate availability of PHP 5.6.3. By this release now fixes several bugs and one CVE in the fileinfo extension. All PHP 5.6 users are encouraged to upgrade to this version. Most improvements in PHP 5.6.x have no impact on existing code. There are new features and few incompatibilities that should be considered, and in production environments ,code should be tested before switching PHP versions. Php old versions are 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x and 5.5.x… “5.6” is a lot better than older versions.
It is now possible to provide a scalar expression involving numeric and string literals and/or constants in contexts where PHP previously expected a static value, such as constant and property declarations and default function arguments.
BY using the operator, instead of relying on func_get_args(),Variadic functions can now be implemented.
Traversable objects and Arrays can be unpacked into argument lists when calling functions by using the operator.Including Ruby, this is also known as the splat operator in other languages.
Along with a shorthand assignment operator, right associative operator has been added to support exponentiation..
New gost-crypto hash algorithm has been added.
The USE operator has been extended to support importing constants and functions in addition to classes. This is achieved by the use function and use const constructs.
PHP now includes an interactive debugger known as phpdbg.
Another Features are Default character encoding , Large file uploads, GMP supports operator overloading , hash_equals() for timing attack safe string comparison.
Changed functions :
Change in PHP Core
now raise an E_NOTICE error if the salt parameter is omitted in crypt().
now accept 0 for its length parameter in substr_compare() .
Change in CURL Now Uploads using the @file syntax are only supported if the CURLOPT_SAFE_UPLOAD option is set to FALSE. CURLFile should be used instead.
Change in Mcrypt The source parameter of mcrypt_create_iv() now defaults to MCRYPT_DEV_URANDOM instead of MCRYPT_DEV_RANDOM.
Change in PostgreSQL pg_insert() , pg_select() , pg_update() and pg_delete() are no longer experimental now.
Change in Reflection ReflectionClass::newInstanceWithoutConstructor() now allows non-final internal classes to be instantiated.
New functions in this:
GMP gmp_root() , gmp_rootrem()
LDAP ldap_escape() , ldap_modify_batch()
OpenSSL openssl_get_cert_locations() , openssl_x509_fingerprint() , openssl_spki_new() , openssl_spki_verify() , openssl_spki_export_challenge() , openssl_spki_export()
PostgreSQL pg_connect_poll() , pg_consume_input() , pg_flush() , pg_socket()
PDO_PGSQL PDO::pgsqlGetNotify() , PDO::pgsqlGetPid()
Session session_abort() , session_reset()
Zip ZipArchive::setPassword() , OpenSSL changes in PHP 5.6.x
Other new functions are : Certificate fingerprints , Default ciphers updated , Compression disabled by default , Allow servers to prefer their cipher order , Access the negotiated protocol and cipher , New options for perfect forward secrecy in encrypted stream servers , Now Possible SSL/TLS version selection , openssl_get_cert_locations() added , SPKI support added
Other changes to extensions:
cURL : Number of constants marked obsolete and removed from cURL library.
Zip: A –with-libzip configure option has been added to use a system libzip installation.
OCI8 : Via new oci_get_implicit_resultset() function adds support for implicit result sets for Oracle Database 12c.
oci_internal_debug() is now a no-op.
The phpinfo() output format for OCI8 has totally changed.
New global constants:
LDAP includes LDAP_ESCAPE_DN , LDAP_ESCAPE_FILTER
OPENSSL_DEFAULT_STREAM_CIPHERS , STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER , STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT , STREAM_CRYPTO_METHOD_TLSv1_0_SERVER , STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT , STREAM_CRYPTO_METHOD_TLSv1_1_SERVER , STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT , STREAM_CRYPTO_METHOD_TLSv1_2_SERVER .
PGSQL_CONNECT_ASYNC , PGSQL_CONNECTION_AUTH_OK, PGSQL_CONNECTION_AWAITING_RESPONSE , PGSQL_CONNECTION_MADE , PGSQL_CONNECTION_SETENV , PGSQL_CONNECTION_SSL_STARTUP , PGSQL_CONNECTION_STARTED , PGSQL_DML_ESCAPE , PGSQL_POLLING_ACTIVE , PGSQL_POLLING_FAILED , PGSQL_POLLING_OK , PGSQL_POLLING_READING , PGSQL_POLLING_WRITING .