diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2017-01-30 22:09:32 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2017-02-03 18:52:57 +0100 |
commit | eaeecc523b665cfa856a376b9c55ca7fc9b7b596 (patch) | |
tree | 522b68f72aed5205fcb899501a4ca2b3acf7e08f | |
parent | fbeb900be4948d9a1bdc3e139937777534cc27e4 (diff) | |
download | php-git-eaeecc523b665cfa856a376b9c55ca7fc9b7b596.tar.gz |
Deprecate create_function()
26 files changed, 119 insertions, 42 deletions
diff --git a/Zend/tests/anonymous_func_001.phpt b/Zend/tests/anonymous_func_001.phpt index 644a7f49ad..8e4bc42a0b 100644 --- a/Zend/tests/anonymous_func_001.phpt +++ b/Zend/tests/anonymous_func_001.phpt @@ -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) diff --git a/Zend/tests/anonymous_func_002.phpt b/Zend/tests/anonymous_func_002.phpt index 4c40b62300..1b9375c89f 100644 --- a/Zend/tests/anonymous_func_002.phpt +++ b/Zend/tests/anonymous_func_002.phpt @@ -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) diff --git a/Zend/tests/anonymous_func_003.phpt b/Zend/tests/anonymous_func_003.phpt index 32c5cf085c..f06a463727 100644 --- a/Zend/tests/anonymous_func_003.phpt +++ b/Zend/tests/anonymous_func_003.phpt @@ -11,5 +11,6 @@ try { } ?> ---EXPECT-- +--EXPECTF-- +Deprecated: Function create_function() is deprecated in %s on line %d bool(true) diff --git a/Zend/tests/bug48693.phpt b/Zend/tests/bug48693.phpt index 41e0d82274..f916b6407b 100644 --- a/Zend/tests/bug48693.phpt +++ b/Zend/tests/bug48693.phpt @@ -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) diff --git a/Zend/tests/closure_025.phpt b/Zend/tests/closure_025.phpt index 8ee187e1c8..b3d03a7ad9 100644 --- a/Zend/tests/closure_025.phpt +++ b/Zend/tests/closure_025.phpt @@ -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) diff --git a/Zend/tests/exception_012.phpt b/Zend/tests/exception_012.phpt index bf00529a6c..a28e1643f5 100644 --- a/Zend/tests/exception_012.phpt +++ b/Zend/tests/exception_012.phpt @@ -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)') diff --git a/Zend/tests/instanceof_001.phpt b/Zend/tests/instanceof_001.phpt index 95e43ba506..9c86136c54 100644 --- a/Zend/tests/instanceof_001.phpt +++ b/Zend/tests/instanceof_001.phpt @@ -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) diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index 4ba9dc4189..397a043a5b 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -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) diff --git a/ext/opcache/tests/bug68252.phpt b/ext/opcache/tests/bug68252.phpt index e05467a244..bc2e5a0fb6 100644 --- a/ext/opcache/tests/bug68252.phpt +++ b/ext/opcache/tests/bug68252.phpt @@ -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 diff --git a/ext/pcre/tests/preg_replace_callback2.phpt b/ext/pcre/tests/preg_replace_callback2.phpt index 7989509aa1..1fe78d59ee 100644 --- a/ext/pcre/tests/preg_replace_callback2.phpt +++ b/ext/pcre/tests/preg_replace_callback2.phpt @@ -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) { diff --git a/ext/pcre/tests/preg_replace_callback_array.phpt b/ext/pcre/tests/preg_replace_callback_array.phpt index 9e9e819134..6780bfba1b 100644 --- a/ext/pcre/tests/preg_replace_callback_array.phpt +++ b/ext/pcre/tests/preg_replace_callback_array.phpt @@ -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); ?> diff --git a/ext/spl/tests/bug61697.phpt b/ext/spl/tests/bug61697.phpt index 064aaa2e2b..8cd38289ef 100644 --- a/ext/spl/tests/bug61697.phpt +++ b/ext/spl/tests/bug61697.phpt @@ -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) { diff --git a/ext/standard/tests/array/array_filter_variation7.phpt b/ext/standard/tests/array/array_filter_variation7.phpt index cb856f713d..79fb574e23 100644 --- a/ext/standard/tests/array/array_filter_variation7.phpt +++ b/ext/standard/tests/array/array_filter_variation7.phpt @@ -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" ?> diff --git a/ext/standard/tests/array/array_map_variation10.phpt b/ext/standard/tests/array/array_map_variation10.phpt index ecf9157620..effda06745 100644 --- a/ext/standard/tests/array/array_map_variation10.phpt +++ b/ext/standard/tests/array/array_map_variation10.phpt @@ -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]=> diff --git a/ext/standard/tests/array/array_walk_recursive_variation7.phpt b/ext/standard/tests/array/array_walk_recursive_variation7.phpt index 0cdd6d248d..bc0d205900 100644 --- a/ext/standard/tests/array/array_walk_recursive_variation7.phpt +++ b/ext/standard/tests/array/array_walk_recursive_variation7.phpt @@ -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-- diff --git a/ext/standard/tests/array/array_walk_variation7.phpt b/ext/standard/tests/array/array_walk_variation7.phpt index da85958b8e..692f276628 100644 --- a/ext/standard/tests/array/array_walk_variation7.phpt +++ b/ext/standard/tests/array/array_walk_variation7.phpt @@ -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-- diff --git a/ext/standard/tests/array/uasort_variation7.phpt b/ext/standard/tests/array/uasort_variation7.phpt index 44a2bb3a26..e37d9efe6b 100644 --- a/ext/standard/tests/array/uasort_variation7.phpt +++ b/ext/standard/tests/array/uasort_variation7.phpt @@ -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" diff --git a/ext/standard/tests/array/usort_variation7.phpt b/ext/standard/tests/array/usort_variation7.phpt index e567341b1a..171e751df2 100644 --- a/ext/standard/tests/array/usort_variation7.phpt +++ b/ext/standard/tests/array/usort_variation7.phpt @@ -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===
\ No newline at end of file +===DONE=== diff --git a/ext/standard/tests/general_functions/print_r.phpt b/ext/standard/tests/general_functions/print_r.phpt index e5b630a839..e502f61291 100644 --- a/ext/standard/tests/general_functions/print_r.phpt +++ b/ext/standard/tests/general_functions/print_r.phpt @@ -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: -2 * 3 = 6 +2 * 3 = 6 +Deprecated: Function create_function() is deprecated in %s on line %d + *** Testing error conditions *** diff --git a/ext/standard/tests/general_functions/print_r_64bit.phpt b/ext/standard/tests/general_functions/print_r_64bit.phpt index 40f44ea1e4..3054e0a431 100644 --- a/ext/standard/tests/general_functions/print_r_64bit.phpt +++ b/ext/standard/tests/general_functions/print_r_64bit.phpt @@ -1721,8 +1721,12 @@ Array *** Testing print_r() on anonymous functions *** + +Deprecated: Function create_function() is deprecated in %s on line %d New anonymous function: -2 * 3 = 6 +2 * 3 = 6 +Deprecated: Function create_function() is deprecated in %s on line %d + *** Testing error conditions *** diff --git a/ext/standard/tests/general_functions/var_dump.phpt b/ext/standard/tests/general_functions/var_dump.phpt index 9821e95eaa..78c862b77d 100644 --- a/ext/standard/tests/general_functions/var_dump.phpt +++ b/ext/standard/tests/general_functions/var_dump.phpt @@ -1563,8 +1563,12 @@ array(6) { } *** Testing var_dump() on anonymous functions *** + +Deprecated: Function create_function() is deprecated in %s on line %d New anonymous function: string(9) "2 * 3 = 6" + +Deprecated: Function create_function() is deprecated in %s on line %d string(9) " *** Testing error conditions *** diff --git a/ext/standard/tests/general_functions/var_dump_64bit.phpt b/ext/standard/tests/general_functions/var_dump_64bit.phpt index 6bbbb3f51d..3b8212204a 100644 --- a/ext/standard/tests/general_functions/var_dump_64bit.phpt +++ b/ext/standard/tests/general_functions/var_dump_64bit.phpt @@ -1563,8 +1563,12 @@ array(6) { } *** Testing var_dump() on anonymous functions *** + +Deprecated: Function create_function() is deprecated in %s on line %d New anonymous function: string(9) "2 * 3 = 6" + +Deprecated: Function create_function() is deprecated in %s on line %d string(9) " *** Testing error conditions *** diff --git a/ext/standard/tests/strings/bug37262.phpt b/ext/standard/tests/strings/bug37262.phpt index 5a9f7f724d..ffdc994f46 100644 --- a/ext/standard/tests/strings/bug37262.phpt +++ b/ext/standard/tests/strings/bug37262.phpt @@ -6,4 +6,5 @@ $func = create_function('$a', 'return $a;'); var_export($func); ?> --EXPECTF-- +Deprecated: Function create_function() is deprecated in %s on line %d '' . "\0" . 'lambda_%d' diff --git a/tests/lang/bug17115.phpt b/tests/lang/bug17115.phpt index 0cb3bf44d2..9500352799 100644 --- a/tests/lang/bug17115.phpt +++ b/tests/lang/bug17115.phpt @@ -10,7 +10,8 @@ var_dump($func()); var_dump($func()); var_dump($func()); ?> ---EXPECT-- +--EXPECTF-- +Deprecated: Function create_function() is deprecated in %s on line %d int(0) int(1) int(2) diff --git a/tests/lang/bug22690.phpt b/tests/lang/bug22690.phpt index 6aed5be6e9..9d5444051b 100644 --- a/tests/lang/bug22690.phpt +++ b/tests/lang/bug22690.phpt @@ -7,6 +7,8 @@ Bug #22690 (ob_start() is broken with create_function() callbacks) echo $foo("bar\n"); ?> bar ---EXPECT-- +--EXPECTF-- + +Deprecated: Function create_function() is deprecated in %s on line %d BAR BAR diff --git a/tests/lang/bug24926.phpt b/tests/lang/bug24926.phpt index 8f853dba47..e7fd86ce76 100644 --- a/tests/lang/bug24926.phpt +++ b/tests/lang/bug24926.phpt @@ -23,6 +23,7 @@ class foo { $a = new foo (); ?> ---EXPECT-- +--EXPECTF-- +Deprecated: Function create_function() is deprecated in %s on line %d FOO FOO |