diff --git a/appendices/migration54.xml b/appendices/migration54.xml
index 5aed56dabf..dc9df9196a 100644
--- a/appendices/migration54.xml
+++ b/appendices/migration54.xml
@@ -112,6 +112,12 @@
and '5 foobar' are considered non-numeric and produce a E_WARNING, but are converted
to 12 and 5 respectively, for backward compatibility reasons.
+
+ Note: Following code returns different result.
+
+
+ $str='abc';var_dump(isset($str['x'])); // false for PHP 5.4 or later, but true for 5.3 or less
+
diff --git a/language/types/array.xml b/language/types/array.xml
index 323a2ec491..a4b5d4ef91 100644
--- a/language/types/array.xml
+++ b/language/types/array.xml
@@ -118,6 +118,61 @@ $array = [
+
+
+ From PHP 5.4, string offset access made consistent. As a result, some return values may be
+ different from older version. As of PHP 5.4, string offset should be integer or integer like
+ string, otherwise it will be in a warning.
+
+
+
+ String offset access example
+
+=: "b", Older versions: "b"
+var_dump(isset($str['1'])); // 5.4.0>=: true, Older versions: ture
+
+var_dump($str['1.0']); // 5.4.0>=: "b" with E_WARNING, Older versions: "b"
+var_dump(isset($str['1.0'])); // 5.4.0>=: false, Older versions: true
+
+var_dump($str['x']); // 5.4.0>=: "a" with E_WARNING, Older versions: "a"
+var_dump(isset($str['x'])); // 5.4.0>=: false, Older versions: true
+
+var_dump($str['1x']); // 5.4.0>=: "b", Older versions: "b"
+var_dump(isset($str['1x'])); // 5.4.0>=: true, Older versions: ture
+?>
+]]>
+
+ &example.outputs;
+
+
+
If multiple elements in the array declaration use the same key, only the last one