PHP 7.1 UPGRADE NOTES 1. Backward Incompatible Changes 2. New Features 3. Changes in SAPI modules 4. Deprecated Functionality 5. Changed Functions 6. New Functions 7. New Classes and Interfaces 8. Removed Extensions and SAPIs 9. Other Changes to Extensions 10. New Global Constants 11. Changes to INI File Handling 12. Windows Support 13. Other Changes ======================================== 1. Backward Incompatible Changes ======================================== - Core: . 'void' can no longer be used as the name of a class, interface, or trait. This applies to declarations, class_alias() and use statements. . 'iterable' can no longer be used as the name of a class, interface, or trait. This applies to declarations, class_alias() and use statements. (RFC: https://wiki.php.net/rfc/iterable) . (int), intval() where $base is 10 or unspecified, settype(), decbin(), decoct(), dechex(), integer operators and other conversions now always respect scientific notation in numeric strings. (RFC: https://wiki.php.net/rfc/invalid_strings_in_arithmetic) . The ASCII 0x7F Delete control character is no longer permitted in unquoted identifiers in source code. . The following functions may no longer be called dynamically using $func(), call_user_func(), array_map() or similar: . extract() . compact() . get_defined_vars() . func_get_args() . func_get_arg() . func_num_args() . parse_str() with one argument . mb_parse_str() with one argument . assert() with a string argument (RFC: https://wiki.php.net/rfc/forbid_dynamic_scope_introspection) . If the error_log is set to syslog, the PHP error levels are mapped to the syslog error levels. This brings finer differentiation in the error logs in contrary to the previous approach where all the errors are loggged with the notice level only. . Don't call destructors of incompletely constructed objects, even if they are kept referenced. See bug #29368 and Zend/tests/bug29368_1.phpt. . call_user_func() will now consistently throw a warning if a function with reference arguments is called. However, call_user_func() will no longer abort the call in this case. . rand() and srand() are now aliases of mt_rand() and mt_srand(). Consequently the output of the following functions has changed: . rand() . shuffle() . str_shuffle() . array_rand() . Fixes to random number generators mean that mt_rand() now produces a different sequence of outputs to previous versions. If you relied on mt_srand() to produce a deterministic sequence, it can be called using mt_srand($seed, MT_RAND_PHP) to produce the old sequences. . URL rewriter has been improved. . Use dedicated buffer for Session module rewrite and User rewrite. . Full path URL rewrite is supported. Allowed domain can be specified. $_SERVER['HTTP_HOST'] is allowed by default when host whitelist is empty. . Use session.trans_sid_tags and session.trans_sid_hosts to control session rewrite. . Use url_rewriter.tags and url_rewriter.hosts to control user rewrite. .