diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-11-30 16:45:48 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2021-02-11 21:46:13 +0100 |
commit | b10416a652d26577a22fe0b183b2258b20c8bb86 (patch) | |
tree | 3b79102286b2307575f487bf97d572ffc292631d /ext/standard/tests/general_functions | |
parent | f06895488a5fabd27ac4c2e66a9d311f14d8594e (diff) | |
download | php-git-b10416a652d26577a22fe0b183b2258b20c8bb86.tar.gz |
Deprecate passing null to non-nullable arg of internal function
This deprecates passing null to non-nullable scale arguments of
internal functions, with the eventual goal of making the behavior
consistent with userland functions, where null is never accepted
for non-nullable arguments.
This change is expected to cause quite a lot of fallout. In most
cases, calling code should be adjusted to avoid passing null. In
some cases, PHP should be adjusted to make some function arguments
nullable. I have already fixed a number of functions before landing
this, but feel free to file a bug if you encounter a function that
doesn't accept null, but probably should. (The rule of thumb for
this to be applicable is that the function must have special behavior
for 0 or "", which is distinct from the natural behavior of the
parameter.)
RFC: https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg
Closes GH-6475.
Diffstat (limited to 'ext/standard/tests/general_functions')
7 files changed, 10 insertions, 186 deletions
diff --git a/ext/standard/tests/general_functions/escapeshellarg_variation1-win32.phpt b/ext/standard/tests/general_functions/escapeshellarg_variation1-win32.phpt index c7cab179b4..752b1dfa7e 100644 --- a/ext/standard/tests/general_functions/escapeshellarg_variation1-win32.phpt +++ b/ext/standard/tests/general_functions/escapeshellarg_variation1-win32.phpt @@ -10,10 +10,6 @@ if( substr(PHP_OS, 0, 3) != "WIN" ) echo "*** Testing escapeshellarg() : usage variations ***\n"; -//get an unset variable -$unset_var = 10; -unset ($unset_var); - // heredoc string $heredoc = <<<EOT abc @@ -39,10 +35,6 @@ $inputs = array( 1.234567E-2, .5, - // null data -/*11*/ NULL, - null, - // boolean data /*13*/ true, false, @@ -53,12 +45,6 @@ $inputs = array( /*17*/ "", '', - // undefined data -/*19*/ @$undefined_var, - - // unset data -/*20*/ @$unset_var, - ); // loop through each element of $inputs to check the behaviour of escapeshellarg() @@ -103,7 +89,7 @@ string(12) ""0.01234567"" string(5) ""0.5"" -- Iteration 11 -- -string(2) """" +string(3) ""1"" -- Iteration 12 -- string(2) """" @@ -115,19 +101,7 @@ string(3) ""1"" string(2) """" -- Iteration 15 -- -string(3) ""1"" - --- Iteration 16 -- -string(2) """" - --- Iteration 17 -- -string(2) """" - --- Iteration 18 -- -string(2) """" - --- Iteration 19 -- string(2) """" --- Iteration 20 -- +-- Iteration 16 -- string(2) """" diff --git a/ext/standard/tests/general_functions/escapeshellarg_variation1.phpt b/ext/standard/tests/general_functions/escapeshellarg_variation1.phpt index 15ebbfcd4e..028b987eec 100644 --- a/ext/standard/tests/general_functions/escapeshellarg_variation1.phpt +++ b/ext/standard/tests/general_functions/escapeshellarg_variation1.phpt @@ -10,10 +10,6 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) echo "*** Testing escapeshellarg() : usage variations ***\n"; -//get an unset variable -$unset_var = 10; -unset ($unset_var); - // heredoc string $heredoc = <<<EOT abc @@ -39,10 +35,6 @@ $inputs = array( 1.234567E-2, .5, - // null data -/*11*/ NULL, - null, - // boolean data /*13*/ true, false, @@ -52,13 +44,6 @@ $inputs = array( // empty data /*17*/ "", '', - - // undefined data -/*19*/ @$undefined_var, - - // unset data -/*20*/ @$unset_var, - ); // loop through each element of $inputs to check the behaviour of escapeshellarg() @@ -103,7 +88,7 @@ string(12) "'0.01234567'" string(5) "'0.5'" -- Iteration 11 -- -string(2) "''" +string(3) "'1'" -- Iteration 12 -- string(2) "''" @@ -115,19 +100,7 @@ string(3) "'1'" string(2) "''" -- Iteration 15 -- -string(3) "'1'" - --- Iteration 16 -- -string(2) "''" - --- Iteration 17 -- -string(2) "''" - --- Iteration 18 -- -string(2) "''" - --- Iteration 19 -- string(2) "''" --- Iteration 20 -- +-- Iteration 16 -- string(2) "''" diff --git a/ext/standard/tests/general_functions/get_cfg_var_variation3.phpt b/ext/standard/tests/general_functions/get_cfg_var_variation3.phpt deleted file mode 100644 index 1a99242ba6..0000000000 --- a/ext/standard/tests/general_functions/get_cfg_var_variation3.phpt +++ /dev/null @@ -1,42 +0,0 @@ ---TEST-- -Test function get_cfg_var() by substituting argument 1 with emptyUnsetUndefNull values. ---CREDITS-- -Francesco Fullone ff@ideato.it -#PHPTestFest Cesena Italia on 2009-06-20 ---INI-- -session.use_cookies=0 -session.serialize_handler=php -session.save_handler=files ---FILE-- -<?php - - -echo "*** Test substituting argument 1 with emptyUnsetUndefNull values ***\n"; - - - -$unset_var = 10; -unset($unset_var); - -$variation_array = array( - 'unset var' => @$unset_var, - 'undefined var' => @$undefined_var, - 'empty string DQ' => "", - 'empty string SQ' => '', - 'uppercase NULL' => NULL, - 'lowercase null' => null - ); - - -foreach ( $variation_array as $var ) { - var_dump(get_cfg_var( $var ) ); -} -?> ---EXPECT-- -*** Test substituting argument 1 with emptyUnsetUndefNull values *** -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) diff --git a/ext/standard/tests/general_functions/getservbyname_variation10.phpt b/ext/standard/tests/general_functions/getservbyname_variation10.phpt deleted file mode 100644 index db1d47f3ef..0000000000 --- a/ext/standard/tests/general_functions/getservbyname_variation10.phpt +++ /dev/null @@ -1,36 +0,0 @@ ---TEST-- -Test function getservbyname() by substituting argument 2 with emptyUnsetUndefNull values. ---FILE-- -<?php - - -echo "*** Test substituting argument 2 with emptyUnsetUndefNull values ***\n"; - -$service = "www"; - - -$unset_var = 10; -unset($unset_var); - -$variation_array = array( - 'unset var' => @$unset_var, - 'undefined var' => @$undefined_var, - 'empty string DQ' => "", - 'empty string SQ' => '', - 'uppercase NULL' => NULL, - 'lowercase null' => null, - ); - - -foreach ( $variation_array as $var ) { - var_dump(getservbyname( $service, $var ) ); -} -?> ---EXPECT-- -*** Test substituting argument 2 with emptyUnsetUndefNull values *** -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) diff --git a/ext/standard/tests/general_functions/getservbyname_variation3.phpt b/ext/standard/tests/general_functions/getservbyname_variation3.phpt deleted file mode 100644 index 6602ce0bfc..0000000000 --- a/ext/standard/tests/general_functions/getservbyname_variation3.phpt +++ /dev/null @@ -1,36 +0,0 @@ ---TEST-- -Test function getservbyname() by substituting argument 1 with emptyUnsetUndefNull values. ---FILE-- -<?php - - -echo "*** Test substituting argument 1 with emptyUnsetUndefNull values ***\n"; - -$protocol = "tcp"; - - -$unset_var = 10; -unset($unset_var); - -$variation_array = array( - 'unset var' => @$unset_var, - 'undefined var' => @$undefined_var, - 'empty string DQ' => "", - 'empty string SQ' => '', - 'uppercase NULL' => NULL, - 'lowercase null' => null, - ); - - -foreach ( $variation_array as $var ) { - var_dump(getservbyname( $var , $protocol ) ); -} -?> ---EXPECT-- -*** Test substituting argument 1 with emptyUnsetUndefNull values *** -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) diff --git a/ext/standard/tests/general_functions/getservbyport_variation1.phpt b/ext/standard/tests/general_functions/getservbyport_variation1.phpt index a6358027a5..03cc5b46e9 100644 --- a/ext/standard/tests/general_functions/getservbyport_variation1.phpt +++ b/ext/standard/tests/general_functions/getservbyport_variation1.phpt @@ -15,16 +15,13 @@ Simone Gentili (sensorario@gmail.com) ?> --FILE-- <?php - var_dump(getservbyport( -1, "tcp" )); - var_dump(getservbyport( 80, "ppp" )); - var_dump(getservbyport( null, null)); - var_dump(getservbyport( 2, 2)); - var_dump(getservbyport( "80", "tcp")); - +var_dump(getservbyport( -1, "tcp" )); +var_dump(getservbyport( 80, "ppp" )); +var_dump(getservbyport( 2, 2)); +var_dump(getservbyport( "80", "tcp")); ?> --EXPECTF-- bool(false) bool(false) bool(false) -bool(false) string(%d) "%s" diff --git a/ext/standard/tests/general_functions/uniqid_basic.phpt b/ext/standard/tests/general_functions/uniqid_basic.phpt index 0e782cdfd1..408f72bfdb 100644 --- a/ext/standard/tests/general_functions/uniqid_basic.phpt +++ b/ext/standard/tests/general_functions/uniqid_basic.phpt @@ -6,8 +6,8 @@ echo "*** Testing uniqid() : basic functionality ***\n"; echo "\nuniqid() without a prefix\n"; var_dump(uniqid()); -var_dump(uniqid(null, true)); -var_dump(uniqid(null, false)); +var_dump(uniqid('', true)); +var_dump(uniqid('', false)); echo "\n\n"; echo "uniqid() with a prefix\n"; @@ -17,7 +17,6 @@ $prefix = array ( 99999, "99999", 10.5e2, - null, true, false ); @@ -52,10 +51,6 @@ string(17) "1050%s" string(27) "1050%s.%s" string(17) "1050%s" -string(13) "%s" -string(23) "%s.%s" -string(13) "%s" - string(14) "1%s" string(24) "1%s.%s" string(14) "1%s" @@ -63,4 +58,3 @@ string(14) "1%s" string(13) "%s" string(23) "%s.%s" string(13) "%s" - |