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.
64 lines
2.2 KiB
64 lines
2.2 KiB
--TEST--
|
|
Test array_walk_recursive() function : error conditions - callback parameters
|
|
--SKIPIF--
|
|
<?php
|
|
if (true) die("skip AOT does not support testing invalid argument counts in this way");
|
|
?>
|
|
|
|
--FILE--
|
|
<?php
|
|
function callback1($value, $key, $user_data)
|
|
{
|
|
echo "\ncallback1() invoked \n";
|
|
}
|
|
function callback2($value, $key, $user_data1, $user_data2)
|
|
{
|
|
echo "\ncallback2() invoked \n";
|
|
}
|
|
function main()
|
|
{
|
|
/*
|
|
* Testing array_walk_recursive() by passing more number of parameters to callback function
|
|
*/
|
|
$input = array(1);
|
|
echo "*** Testing array_walk_recursive() : error conditions - callback parameters ***\n";
|
|
// expected: Missing argument Warning
|
|
try {
|
|
var_dump(array_walk_recursive($input, "callback1"));
|
|
} catch (Throwable $e) {
|
|
echo "Exception: " . $e->getMessage() . "\n";
|
|
}
|
|
try {
|
|
var_dump(array_walk_recursive($input, "callback2", 4));
|
|
} catch (Throwable $e) {
|
|
echo "Exception: " . $e->getMessage() . "\n";
|
|
}
|
|
// expected: Warning is suppressed
|
|
try {
|
|
var_dump(@array_walk_recursive($input, "callback1"));
|
|
} catch (Throwable $e) {
|
|
echo "Exception: " . $e->getMessage() . "\n";
|
|
}
|
|
try {
|
|
var_dump(@array_walk_recursive($input, "callback2", 4));
|
|
} catch (Throwable $e) {
|
|
echo "Exception: " . $e->getMessage() . "\n";
|
|
}
|
|
echo "-- Testing array_walk_recursive() function with too many callback parameters --\n";
|
|
try {
|
|
var_dump(array_walk_recursive($input, "callback1", 20, 10));
|
|
} catch (Throwable $e) {
|
|
echo "Exception: " . $e->getMessage() . "\n";
|
|
}
|
|
echo "Done";
|
|
}
|
|
?>
|
|
--EXPECT--
|
|
*** Testing array_walk_recursive() : error conditions - callback parameters ***
|
|
Exception: Too few arguments to function callback1(), 2 passed and exactly 3 expected
|
|
Exception: Too few arguments to function callback2(), 3 passed and exactly 4 expected
|
|
Exception: Too few arguments to function callback1(), 2 passed and exactly 3 expected
|
|
Exception: Too few arguments to function callback2(), 3 passed and exactly 4 expected
|
|
-- Testing array_walk_recursive() function with too many callback parameters --
|
|
Exception: array_walk_recursive() expects at most 3 arguments, 4 given
|
|
Done
|
|
|