mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Deprecate create_function()
This commit is contained in:
parent
fbeb900be4
commit
eaeecc523b
26 changed files with 119 additions and 42 deletions
|
@ -12,24 +12,43 @@ for ($i = 0; $i < 10; $i++) {
|
|||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
--EXPECTF--
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(0)
|
||||
int(0)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(1)
|
||||
int(1)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(2)
|
||||
int(2)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(3)
|
||||
int(3)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(4)
|
||||
int(4)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(5)
|
||||
int(5)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(6)
|
||||
int(6)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(7)
|
||||
int(7)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(8)
|
||||
int(8)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(9)
|
||||
int(9)
|
||||
|
|
|
@ -11,6 +11,9 @@ var_dump($arr[$test(1)]);
|
|||
var_dump($arr[$test(0)]() == $arr);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
--EXPECTF--
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(2)
|
||||
bool(true)
|
||||
|
|
|
@ -11,5 +11,6 @@ try {
|
|||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
--EXPECTF--
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
bool(true)
|
||||
|
|
|
@ -31,15 +31,22 @@ var_dump(
|
|||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
ParseError: syntax error, unexpected '}', expecting end of file in %sbug48693.php(4) : runtime-created function:1
|
||||
Stack trace:
|
||||
#0 %sbug48693.php(4): create_function('', 'return 1; }')
|
||||
#1 {main}
|
||||
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
ParseError: syntax error, unexpected end of file in %sbug48693.php(14) : runtime-created function:1
|
||||
Stack trace:
|
||||
#0 %sbug48693.php(14): create_function('', '{')
|
||||
#1 {main}
|
||||
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(2)
|
||||
int(3)
|
||||
|
|
|
@ -8,5 +8,6 @@ $a = create_function('$x', 'return function($y) use ($x) { return $x * $y; };');
|
|||
var_dump($a(2)->__invoke(4));
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
--EXPECTF--
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
int(8)
|
||||
|
|
|
@ -13,6 +13,8 @@ $func();
|
|||
--EXPECTHEADERS--
|
||||
Content-type: text/html; charset=UTF-8
|
||||
--EXPECTF--
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
|
||||
Fatal error: Uncaught AssertionError: assert(false) in %sexception_012.php(%d) : runtime-created function:%d
|
||||
Stack trace:
|
||||
#0 %sexception_012.php(%d) : runtime-created function(%d): assert(false, 'assert(false)')
|
||||
|
|
|
@ -22,6 +22,8 @@ var_dump("$a" instanceof stdClass);
|
|||
--EXPECTF--
|
||||
bool(true)
|
||||
bool(true)
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
|
|
|
@ -368,7 +368,7 @@ static const zend_function_entry builtin_functions[] = { /* {{{ */
|
|||
ZEND_FE(get_declared_interfaces, arginfo_zend__void)
|
||||
ZEND_FE(get_defined_functions, arginfo_zend__void)
|
||||
ZEND_FE(get_defined_vars, arginfo_zend__void)
|
||||
ZEND_FE(create_function, arginfo_create_function)
|
||||
ZEND_DEP_FE(create_function, arginfo_create_function)
|
||||
ZEND_FE(get_resource_type, arginfo_get_resource_type)
|
||||
ZEND_FE(get_resources, arginfo_get_resources)
|
||||
ZEND_FE(get_loaded_extensions, arginfo_get_loaded_extensions)
|
||||
|
|
|
@ -16,5 +16,6 @@ function a() {
|
|||
create_function('', 'var_dump("22");');
|
||||
|
||||
a();
|
||||
--EXPECT--
|
||||
--EXPECTF--
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
okey
|
||||
|
|
|
@ -19,7 +19,7 @@ var_dump(preg_replace_callback('@\b\w{1,2}\b@', 'g', array('a b3 bcd', 'v' => 'a
|
|||
|
||||
var_dump(preg_replace_callback('~\A.~', 'g', array(array('xyz'))));
|
||||
|
||||
var_dump(preg_replace_callback('~\A.~', create_function('$m', 'return strtolower($m[0]);'), 'ABC'));
|
||||
var_dump(preg_replace_callback('~\A.~', function($m) { return strtolower($m[0]); }, 'ABC'));
|
||||
?>
|
||||
--EXPECTF--
|
||||
array(3) {
|
||||
|
|
|
@ -38,7 +38,7 @@ var_dump(preg_replace_callback_array(
|
|||
'/d/' => array("Foo", "rep"),
|
||||
"/c/" => new Rep,
|
||||
"/a/" => 'b',
|
||||
"/b/" => create_function('$a', 'return "ok";')), 'a', -1, $count));
|
||||
"/b/" => function($a) { return "ok"; }), 'a', -1, $count));
|
||||
|
||||
var_dump($count);
|
||||
?>
|
||||
|
|
|
@ -8,8 +8,8 @@ function f2($class) { echo "f2: [[$class]]\n"; }
|
|||
|
||||
spl_autoload_register('f1');
|
||||
spl_autoload_register('f2');
|
||||
spl_autoload_register(create_function('$class', 'echo "cf1: [[$class]]\n";'));
|
||||
spl_autoload_register(create_function('$class', 'echo "cf2: [[$class]]\n";'));
|
||||
spl_autoload_register(function($class) { echo "cf1: [[$class]]\n"; });
|
||||
spl_autoload_register(function($class) { echo "cf2: [[$class]]\n"; });
|
||||
|
||||
foreach (spl_autoload_functions() AS $func)
|
||||
{
|
||||
|
|
|
@ -17,19 +17,19 @@ $input = array(0, 1, -1, 10, 100, 1000, 'Hello', null);
|
|||
|
||||
// anonymous callback function
|
||||
echo "Anonymous callback function with regular parameter and statement\n";
|
||||
var_dump( array_filter($input, create_function('$input', 'return ($input > 1);') ) );
|
||||
var_dump( array_filter($input, function($input) { return ($input > 1); }) );
|
||||
|
||||
// anonymous callback function with reference
|
||||
echo "Anonymous callback function with reference parameter\n";
|
||||
var_dump( array_filter($input, create_function('&$input', 'return ($input < 1);') ) );
|
||||
var_dump( array_filter($input, function(&$input) { return ($input < 1); }) );
|
||||
|
||||
// anonymous callback function with null argument
|
||||
echo "Anonymous callback funciton with null argument\n";
|
||||
var_dump( array_filter($input, create_function(null, 'return true;') ) );
|
||||
var_dump( array_filter($input, function() { return true; }) );
|
||||
|
||||
// anonymous callback function with argument and null statement
|
||||
echo "Anonymous callback function with regular argument and null statement\n";
|
||||
var_dump( array_filter($input, create_function('$input', null) ) );
|
||||
var_dump( array_filter($input, function($input) { }) );
|
||||
|
||||
echo "Done"
|
||||
?>
|
||||
|
|
|
@ -17,23 +17,23 @@ $array1 = array(1, 2, 3);
|
|||
$array2 = array(3, 4, 5);
|
||||
|
||||
echo "-- anonymous function with all parameters and body --\n";
|
||||
var_dump( array_map( create_function('$a, $b', 'return array($a, $b);'), $array1, $array2));
|
||||
var_dump( array_map( function($a, $b) { return array($a, $b); }, $array1, $array2));
|
||||
|
||||
echo "-- anonymous function with two parameters and passing one array --\n";
|
||||
try {
|
||||
var_dump( array_map( create_function('$a, $b', 'return array($a, $b);'), $array1));
|
||||
var_dump( array_map( function($a, $b) { return array($a, $b); }, $array1));
|
||||
} catch (Throwable $e) {
|
||||
echo "Exception: " . $e->getMessage() . "\n";
|
||||
}
|
||||
|
||||
echo "-- anonymous function with NULL parameter --\n";
|
||||
var_dump( array_map( create_function(NULL, 'return NULL;'), $array1));
|
||||
var_dump( array_map( function() { return NULL; }, $array1));
|
||||
|
||||
echo "-- anonymous function with NULL body --\n";
|
||||
var_dump( array_map( create_function('$a', NULL), $array1));
|
||||
var_dump( array_map( function($a) { }, $array1));
|
||||
|
||||
echo "-- passing NULL as 'arr1' --\n";
|
||||
var_dump( array_map( create_function('$a', 'return array($a);'), NULL));
|
||||
var_dump( array_map( function($a) { return array($a); }, NULL));
|
||||
|
||||
echo "Done";
|
||||
?>
|
||||
|
@ -64,7 +64,7 @@ array(3) {
|
|||
}
|
||||
}
|
||||
-- anonymous function with two parameters and passing one array --
|
||||
Exception: Too few arguments to function __lambda_func(), 1 passed and exactly 2 expected
|
||||
Exception: Too few arguments to function {closure}(), 1 passed and exactly 2 expected
|
||||
-- anonymous function with NULL parameter --
|
||||
array(3) {
|
||||
[0]=>
|
||||
|
|
|
@ -21,19 +21,19 @@ echo "*** Testing array_walk_recursive() : anonymous function as callback ***\n"
|
|||
$input = array( array(2, 5), array(10, 0));
|
||||
|
||||
echo "-- Anonymous function with one argument --\n";
|
||||
var_dump( array_walk_recursive($input, create_function('$value', 'var_dump($value); echo "\n";')));
|
||||
var_dump( array_walk_recursive($input, function($value) { var_dump($value); echo "\n"; }));
|
||||
|
||||
echo "-- Anonymous function with two arguments --\n";
|
||||
var_dump( array_walk_recursive($input, create_function('$value, $key', 'var_dump($key); var_dump($value); echo "\n";')));
|
||||
var_dump( array_walk_recursive($input, function($value, $key) { var_dump($key); var_dump($value); echo "\n"; }));
|
||||
|
||||
echo "-- Anonymous function with three arguments --\n";
|
||||
var_dump( array_walk_recursive($input, create_function('$value, $key, $user_data', 'var_dump($key); var_dump($value); var_dump($user_data); echo "\n";'), 10));
|
||||
var_dump( array_walk_recursive($input, function($value, $key, $user_data) { var_dump($key); var_dump($value); var_dump($user_data); echo "\n"; }, 10));
|
||||
|
||||
echo "-- Anonymous function with one more argument --\n";
|
||||
var_dump( array_walk_recursive($input, create_function('$value, $key, $user_data', 'var_dump($key); var_dump($value); var_dump($user_data); echo "\n";'), 20, 30));
|
||||
var_dump( array_walk_recursive($input, function($value, $key, $user_data) { var_dump($key); var_dump($value); var_dump($user_data); echo "\n"; }, 20, 30));
|
||||
|
||||
echo "-- Anonymous function with null argument --\n";
|
||||
var_dump( array_walk_recursive( $input, create_function(null, 'echo "1\n";')));
|
||||
var_dump( array_walk_recursive( $input, function() { echo "1\n"; }));
|
||||
echo "Done"
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
|
|
@ -21,19 +21,19 @@ echo "*** Testing array_walk() : anonymous function as callback ***\n";
|
|||
$input = array(2, 5, 10, 0);
|
||||
|
||||
echo "-- Anonymous function with one argument --\n";
|
||||
var_dump( array_walk($input, create_function('$value', 'var_dump($value); echo "\n";')));
|
||||
var_dump( array_walk($input, function($value) { var_dump($value); echo "\n"; }));
|
||||
|
||||
echo "-- Anonymous function with two arguments --\n";
|
||||
var_dump( array_walk($input, create_function('$value, $key', 'var_dump($key); var_dump($value); echo "\n";')));
|
||||
var_dump( array_walk($input, function($value, $key) { var_dump($key); var_dump($value); echo "\n"; }));
|
||||
|
||||
echo "-- Anonymous function with three arguments --\n";
|
||||
var_dump( array_walk($input, create_function('$value, $key, $user_data', 'var_dump($key); var_dump($value); var_dump($user_data); echo "\n";'), 10));
|
||||
var_dump( array_walk($input, function($value, $key, $user_data) { var_dump($key); var_dump($value); var_dump($user_data); echo "\n"; }, 10));
|
||||
|
||||
echo "-- Anonymous function with one more argument --\n";
|
||||
var_dump( array_walk($input, create_function('$value, $key, $user_data', 'var_dump($key); var_dump($value); var_dump($user_data); echo "\n";'), 20, 30));
|
||||
var_dump( array_walk($input, function($value, $key, $user_data) { var_dump($key); var_dump($value); var_dump($user_data); echo "\n"; }, 20, 30));
|
||||
|
||||
echo "-- Anonymous function with null argument --\n";
|
||||
var_dump( array_walk( $input, create_function(null, 'echo "1\n";')));
|
||||
var_dump( array_walk( $input, function() { echo "1\n"; }));
|
||||
echo "Done"
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
|
|
@ -15,16 +15,26 @@ Test uasort() function : usage variations - anonymous function as 'cmp_function'
|
|||
|
||||
echo "*** Testing uasort() : anonymous function as 'cmp_function' ***\n";
|
||||
|
||||
$cmp_function = 'if($value1 == $value2) {return 0;} else if($value1 > $value2) {return 1;} else{return -1;}';
|
||||
$cmp_function = function($value1, $value2) {
|
||||
if ($value1 == $value2) { return 0; }
|
||||
else if ($value1 > $value2) { return 1; }
|
||||
else { return -1; }
|
||||
};
|
||||
|
||||
$array_arg = array(0 => 100, 1 => 3, 2 => -70, 3 => 24, 4 => 90);
|
||||
echo "-- Anonymous 'cmp_function' with parameters passed by value --\n";
|
||||
var_dump( uasort($array_arg, create_function('$value1, $value2',$cmp_function) ) );
|
||||
var_dump( uasort($array_arg, $cmp_function) );
|
||||
var_dump($array_arg);
|
||||
|
||||
$cmp_function = function(&$value1, &$value2) {
|
||||
if ($value1 == $value2) { return 0; }
|
||||
else if ($value1 > $value2) { return 1; }
|
||||
else { return -1; }
|
||||
};
|
||||
|
||||
$array_arg = array("b" => "Banana", "m" => "Mango", "a" => "Apple", "p" => "Pineapple");
|
||||
echo "-- Anonymous 'cmp_function' with parameters passed by reference --\n";
|
||||
var_dump( uasort($array_arg, create_function('&$value1, &$value2', $cmp_function) ) );
|
||||
var_dump( uasort($array_arg, $cmp_function ) );
|
||||
var_dump($array_arg);
|
||||
|
||||
echo "Done"
|
||||
|
|
|
@ -13,18 +13,28 @@ Test usort() function : usage variations - Anonymous comparison function
|
|||
|
||||
echo "*** Testing usort() : usage variation ***\n";
|
||||
|
||||
$cmp_function = 'if($value1 == $value2) {return 0;} else if($value1 > $value2) {return 1;} else{return -1;}';
|
||||
$cmp_function = function($value1, $value2) {
|
||||
if ($value1 == $value2) { return 0; }
|
||||
else if ($value1 > $value2) { return 1; }
|
||||
else { return -1; }
|
||||
};
|
||||
|
||||
$array_arg = array(0 => 100, 1 => 3, 2 => -70, 3 => 24, 4 => 90);
|
||||
|
||||
echo "\n-- Anonymous 'cmp_function' with parameters passed by value --\n";
|
||||
var_dump( usort($array_arg, create_function('$value1, $value2',$cmp_function) ) );
|
||||
var_dump( usort($array_arg, $cmp_function) );
|
||||
var_dump($array_arg);
|
||||
|
||||
$array_arg = array("b" => "Banana", "m" => "Mango", "a" => "Apple", "p" => "Pineapple");
|
||||
|
||||
$cmp_function = function(&$value1, &$value2) {
|
||||
if ($value1 == $value2) { return 0; }
|
||||
else if ($value1 > $value2) { return 1; }
|
||||
else { return -1; }
|
||||
};
|
||||
|
||||
echo "\n-- Anonymous 'cmp_function' with parameters passed by reference --\n";
|
||||
var_dump( usort($array_arg, create_function('&$value1, &$value2', $cmp_function) ) );
|
||||
var_dump( usort($array_arg, $cmp_function) );
|
||||
var_dump($array_arg);
|
||||
?>
|
||||
===DONE===
|
||||
|
@ -58,4 +68,4 @@ array(4) {
|
|||
[3]=>
|
||||
string(9) "Pineapple"
|
||||
}
|
||||
===DONE===
|
||||
===DONE===
|
||||
|
|
|
@ -1720,8 +1720,12 @@ Array
|
|||
|
||||
|
||||
*** Testing print_r() on anonymous functions ***
|
||||
|
||||
Deprecated: Function create_function() is deprecated in %s on line %d
|
||||
New anonymous function: |