diff --git a/appendices/migration54.xml b/appendices/migration54.xml
index 7b3c673e0f..fdabd65186 100644
--- a/appendices/migration54.xml
+++ b/appendices/migration54.xml
@@ -72,20 +72,21 @@
The break
and continue
- keywords don't accept variable argument anymore. Consider using
- a static constant argument.
+ statements don't accept variable arguments anymore, i.e. writing
+ break 1 + foo() * $bar; is not possible. You can obviously still use
+ static arguments, like break 2;.
Safe mode is no
- longer supported. Any application that rely on safe mode may need
- adjustements in term of security.
+ longer supported. Any applications that rely on safe mode may need
+ adjustements in terms of security.
- Salsa10 and Salsa20 hash algorithms have been removed.
+ The Salsa10 and Salsa20 hash algorithms have been removed.
@@ -96,53 +97,60 @@
+
+ Magic quotes has been removed. Applications relying
+ on this feature need to be updated to avoid security issues.
+ get_magic_quotes_gpc and get_magic_quotes_runtime
now always return false. set_magic_quotes_runtime raises an
- E_CORE_ERROR
+ E_CORE_ERROR.
- Non-numeric string offsets - e.g. $a['foo'] where $a is a string - now 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. Note that offsets like '12.3' and '5 and a half' are considered non-numeric
- and produce warning, but are converted to 12 and 5 respectively for BC reasons.
+ Non-numeric string offsets - e.g. $a['foo'] where $a is a string - now return
+ false on isset and true on empty, and produce a warning
+ if you try to use them. Offsets of types double, bool and null produce a notice. Numeric strings
+ (e.g. $a['2']) still work as before. Note that offsets like '12.3'
+ and '5 foobar' are considered non-numeric and produce a warning, but are converted
+ to 12 and 5 respectively for BC reasons.
- Turning null, false or empty string into an object by adding a property
+ 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.
- Converting array to string now will cause E_NOTICE warning.
+ Converting an array to string will now cause an E_NOTICE. The result of
+ the cast will still be "Array".
- Shadowing names of superglobals for parameter names now causes a fatal error.
+ Parameter names that shadow superglobals now cause a fatal error. This prohibits code like
+ function foo($_GET, $_POST) {}.
- array_combine now returns array() instead of FALSE
+ array_combine now returns array() instead of &false;
when two empty arrays are provided as parameters.
- call_user_func_array no longer allows call-time pass by reference.
+ Call-time pass by reference has been removed.
htmlentities now emits an E_STRICT warning when used with
- asian characters, as in that case htmlentities has (and already had before this version)
- the same functionality as htmlspecialchars.
+ asian character sets, as in that case htmlentities has (and already had before
+ this version) the same functionality as htmlspecialchars.