From ff8e13dd86f2fde6047c2063432d8a916dcd7dff Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Thu, 28 Feb 2008 19:33:40 +0000 Subject: [PATCH] Add "Strict error" when assigning value to property of inexistent object --- Zend/tests/objects_016.phpt | 28 ++++++++++++++++++++++++++++ Zend/zend_execute.c | 1 + 2 files changed, 29 insertions(+) create mode 100644 Zend/tests/objects_016.phpt diff --git a/Zend/tests/objects_016.phpt b/Zend/tests/objects_016.phpt new file mode 100644 index 00000000000..a7085c415a3 --- /dev/null +++ b/Zend/tests/objects_016.phpt @@ -0,0 +1,28 @@ +--TEST-- +Strict error when assigning value to property of inexistent object +--FILE-- +p = 1; +echo "\nAbout to create a default object from empty value again:\n"; +$obj2->p[] = 1; +echo "\nAbout to create a default object from empty value one more time:\n"; +$a = 1; +$obj3->p = &$a; + +?> +--EXPECTF-- +About to create a default object from empty value: + +Strict Standards: Creating default object from empty value in %s on line %d + +About to create a default object from empty value again: + +Strict Standards: Creating default object from empty value in %s on line %d + +About to create a default object from empty value one more time: + +Strict Standards: Creating default object from empty value in %s on line %d diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 3b09f6cb0e2..5115c7b9fed 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1291,6 +1291,7 @@ static void zend_fetch_property_address(temp_variable *result, zval **container_ SEPARATE_ZVAL(container_ptr); container = *container_ptr; } + zend_error(E_STRICT, "Creating default object from empty value"); object_init(container); } else { result->var.ptr_ptr = &EG(error_zval_ptr);