diff options
| -rw-r--r-- | Zend/tests/array_offset.phpt | 21 | ||||
| -rw-r--r-- | Zend/zend_execute.c | 4 |
2 files changed, 23 insertions, 2 deletions
diff --git a/Zend/tests/array_offset.phpt b/Zend/tests/array_offset.phpt new file mode 100644 index 0000000000..76c25f9298 --- /dev/null +++ b/Zend/tests/array_offset.phpt @@ -0,0 +1,21 @@ +--TEST-- +Ensure "undefined offset" notice formats message corectly when undefined key is negative +--FILE-- +<?php + +[][-1]; +[][-1.1]; +(new ArrayObject)[-1]; +(new ArrayObject)[-1.1]; + +echo "Done\n"; +?> +--EXPECTF-- +Notice: Undefined offset: -1 in %s on line 3 + +Notice: Undefined offset: -1 in %s on line 4 + +Notice: Undefined offset: -1 in %s on line 5 + +Notice: Undefined offset: -1 in %s on line 6 +Done diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 40868f0dc8..386ddf3989 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1438,14 +1438,14 @@ num_index: if (retval == NULL) { switch (type) { case BP_VAR_R: - zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, hval); + zend_error(E_NOTICE,"Undefined offset: " ZEND_LONG_FMT, hval); /* break missing intentionally */ case BP_VAR_UNSET: case BP_VAR_IS: retval = &EG(uninitialized_zval); break; case BP_VAR_RW: - zend_error(E_NOTICE,"Undefined offset: " ZEND_ULONG_FMT, hval); + zend_error(E_NOTICE,"Undefined offset: " ZEND_LONG_FMT, hval); /* break missing intentionally */ case BP_VAR_W: retval = zend_hash_index_add_new(ht, hval, &EG(uninitialized_zval)); |
