mirror of
https://github.com/php/php-src.git
synced 2026-03-25 08:42:29 +01:00
Writing to a proprety that hasn't been declared is deprecated, unless the class uses the #[AllowDynamicProperties] attribute or defines __get()/__set(). RFC: https://wiki.php.net/rfc/deprecate_dynamic_properties
61 lines
1.2 KiB
PHP
61 lines
1.2 KiB
PHP
--TEST--
|
|
Bug #39576 (array_walk() doesn't separate userdata zval)
|
|
--FILE--
|
|
<?php
|
|
|
|
class Test {
|
|
public $_table = '';
|
|
public $_columns = array ();
|
|
public $_primary = array ();
|
|
public $name;
|
|
|
|
}
|
|
|
|
$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--
|
|
Notice: Only variables should be passed by reference in %s on line %d
|
|
|
|
Warning: test(): Argument #3 ($columns) must be passed by reference, value given in %s on line %d
|
|
|
|
Warning: test(): Argument #3 ($columns) must be passed by reference, value given in %s on line %d
|
|
|
|
Warning: test(): Argument #3 ($columns) must be passed by reference, value given in %s on line %d
|
|
|
|
Warning: test(): Argument #3 ($columns) must be passed by reference, value given 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
|