diff options
author | Antony Dovgal <tony2001@php.net> | 2006-11-22 10:42:41 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2006-11-22 10:42:41 +0000 |
commit | df1a1c84412b28323a3818f1a5bed931491bddb3 (patch) | |
tree | 30c230c3d7d6b841f9163ef11b8cb3825e87044d /ext/standard/tests/array/bug39576.phpt | |
parent | 090a83b9744ab66a9131ba634c006ed0cc104203 (diff) | |
download | php-git-df1a1c84412b28323a3818f1a5bed931491bddb3.tar.gz |
MFH: fix #39576 (array_walk() doesn't separate userdata zval)
Diffstat (limited to 'ext/standard/tests/array/bug39576.phpt')
-rw-r--r-- | ext/standard/tests/array/bug39576.phpt | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ext/standard/tests/array/bug39576.phpt b/ext/standard/tests/array/bug39576.phpt new file mode 100644 index 0000000000..7c8aeef175 --- /dev/null +++ b/ext/standard/tests/array/bug39576.phpt @@ -0,0 +1,52 @@ +--TEST-- +Bug #39576 (array_walk() doesn't separate userdata zval) +--FILE-- +<?php + +class Test { + + public $_table = ''; + public $_columns = array (); + public $_primary = array (); + +} + +$test = new Test (); +$test->name = 'test'; +$test->_columns['name'] = new stdClass; + +function test ($value, $column, &$columns) {} + +array_walk ( + get_object_vars ($test), + 'test', + $test->_columns +); + +var_dump($test); + +array_intersect_key ( + get_object_vars ($test), + $test->_primary +); + +echo "Done\n"; +?> +--EXPECTF-- +Strict Standards: Only variables should be passed by reference in %s on line %d +object(Test)#%d (4) { + ["_table"]=> + string(0) "" + ["_columns"]=> + array(1) { + ["name"]=> + object(stdClass)#%d (0) { + } + } + ["_primary"]=> + array(0) { + } + ["name"]=> + string(4) "test" +} +Done |