summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-02-27 11:42:36 +0800
committerXinchen Hui <laruence@php.net>2015-02-27 11:42:36 +0800
commit3e82816ba1a82843a352ce4050b2010fd9932dee (patch)
treea4f71b3bf68a747a8b381553b8c4be9ab70477cf
parente441d71baae89bdc5dc6f75407b4a8f5e42b8fa9 (diff)
downloadphp-git-3e82816ba1a82843a352ce4050b2010fd9932dee.tar.gz
Fixed bug #69125 (Array numeric string as key)
-rw-r--r--NEWS1
-rw-r--r--ext/opcache/Optimizer/zend_optimizer.c1
-rw-r--r--ext/opcache/tests/bug69125.phpt22
3 files changed, 24 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index f8d653fd5b..a020e6954b 100644
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,7 @@ PHP NEWS
. Fixed bug #68964 (Allowed memory size exhausted with odbc_exec). (Anatol)
- Opcache:
+ . Fixed bug #69125 (Array numeric string as key). (Laruence)
. Fixed bug #69038 (switch(SOMECONSTANT) misbehaves). (Laruence)
- OpenSSL:
diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c
index ca5d41d8d5..be49b4956b 100644
--- a/ext/opcache/Optimizer/zend_optimizer.c
+++ b/ext/opcache/Optimizer/zend_optimizer.c
@@ -241,6 +241,7 @@ static void update_op2_const(zend_op_array *op_array,
case ZEND_ISSET_ISEMPTY_DIM_OBJ:
case ZEND_ADD_ARRAY_ELEMENT:
case ZEND_INIT_ARRAY:
+ case ZEND_ASSIGN_DIM:
case ZEND_UNSET_DIM:
case ZEND_FETCH_DIM_R:
case ZEND_FETCH_DIM_W:
diff --git a/ext/opcache/tests/bug69125.phpt b/ext/opcache/tests/bug69125.phpt
new file mode 100644
index 0000000000..913be01b00
--- /dev/null
+++ b/ext/opcache/tests/bug69125.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #69125 (Array numeric string as key)
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+const SZERO = '0';
+const SONE = '1';
+
+$array[SZERO] = "okey";
+$array[1] = "okey";
+
+var_dump($array[SZERO]);
+var_dump($array[SONE]);
+?>
+--EXPECT--
+string(4) "okey"
+string(4) "okey"