--TEST-- Bug #63217 (Constant numeric strings become integers when used as ArrayAccess offset) --INI-- opcache.enable_cli=1 opcache.enable=1 opcache.optimization_level=-1 --FILE-- $value) { return $key; } } var_dump(test()); /** * Make sure we don't break arrays. */ $array = []; $key = '123'; $array[$key] = 1; $array['321'] = 2; $array['abc'] = 3; var_dump($array); /** * Make sure that we haven't broken ArrayObject */ $ao = new ArrayObject(); $key = '123'; $ao = []; $ao[$key] = 1; $ao['321'] = 2; $ao['abc'] = 3; var_dump($ao); ?> --EXPECT-- offsetExists given string(1) "0" offsetExists given string(3) "123" offsetUnset given string(1) "0" offsetUnset given string(3) "123" offsetSet given string(1) "0" offsetSet given string(3) "123" offsetGet given string(1) "0" offsetGet given string(3) "123" offsetExists given string(1) "0" offsetExists given string(3) "123" offsetUnset given string(1) "0" offsetUnset given string(3) "123" offsetSet given string(1) "0" offsetSet given string(3) "123" offsetGet given string(1) "0" offsetGet given string(3) "123" string(2) "10" array(3) { [123]=> int(1) [321]=> int(2) ["abc"]=> int(3) } array(3) { [123]=> int(1) [321]=> int(2) ["abc"]=> int(3) }