TypePHP 编译器 https://swoole.com/aot/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

53 lines
1.3 KiB

--TEST--
Bug #39576 (array_walk() doesn't separate userdata zval)
--SKIPIF--
<?php die("skip AOT array_walk userdata reference differs from PHP"); ?>
--FILE--
<?php
class Test
{
public $_table = '';
public $_columns = array();
public $_primary = array();
public $name;
}
function test($value, $column, &$columns)
{
}
function main()
{
$test = new Test();
$test->name = 'test';
$test->_columns['name'] = new stdClass();
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