From: Nikita Popov Date: Wed, 1 Feb 2017 23:37:24 +0000 (+0100) Subject: Deprecate parse_str() without second argument X-Git-Tag: php-7.2.0alpha1~408 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2634b13e88e1b2be91cb06d041be15814b2b6082;p=php Deprecate parse_str() without second argument --- diff --git a/Zend/tests/bug73181.phpt b/Zend/tests/bug73181.phpt index 2994e99b9f..3ab93ebf5b 100644 --- a/Zend/tests/bug73181.phpt +++ b/Zend/tests/bug73181.phpt @@ -11,7 +11,8 @@ function x() { x(); ?> ---EXPECT-- +--EXPECTF-- +Deprecated: parse_str(): Calling parse_str() without the result argument is deprecated in %s on line %d array(2) { [1]=> string(0) "" diff --git a/Zend/tests/parse_str_with_unpack.phpt b/Zend/tests/parse_str_with_unpack.phpt index 50b296d710..8daa711374 100644 --- a/Zend/tests/parse_str_with_unpack.phpt +++ b/Zend/tests/parse_str_with_unpack.phpt @@ -11,5 +11,6 @@ function test() { test(); ?> ---EXPECT-- +--EXPECTF-- +Deprecated: parse_str(): Calling parse_str() without the result argument is deprecated in %s on line %d int(42) diff --git a/Zend/tests/this_in_parse_str.phpt b/Zend/tests/this_in_parse_str.phpt index 4540d282cc..0bd9064d60 100644 --- a/Zend/tests/this_in_parse_str.phpt +++ b/Zend/tests/this_in_parse_str.phpt @@ -9,6 +9,8 @@ function foo() { foo(); ?> --EXPECTF-- +Deprecated: parse_str(): Calling parse_str() without the result argument is deprecated in %s on line %d + Fatal error: Uncaught Error: Cannot re-assign $this in %sthis_in_parse_str.php:3 Stack trace: #0 %sthis_in_parse_str.php(3): parse_str('this=42') diff --git a/ext/standard/string.c b/ext/standard/string.c index 3addfbd19d..c0120e1fc8 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -4563,6 +4563,8 @@ PHP_FUNCTION(parse_str) return; } + php_error_docref(NULL, E_DEPRECATED, "Calling parse_str() without the result argument is deprecated"); + symbol_table = zend_rebuild_symbol_table(); ZVAL_ARR(&tmp, symbol_table); sapi_module.treat_data(PARSE_STRING, res, &tmp); diff --git a/ext/standard/tests/strings/bug24208.phpt b/ext/standard/tests/strings/bug24208.phpt index bed28d95c5..f85c9c1e54 100644 --- a/ext/standard/tests/strings/bug24208.phpt +++ b/ext/standard/tests/strings/bug24208.phpt @@ -6,7 +6,8 @@ $a = $b = $c = "oops"; parse_str("a=1&b=2&c=3"); var_dump($a, $b, $c); ?> ---EXPECT-- +--EXPECTF-- +Deprecated: parse_str(): Calling parse_str() without the result argument is deprecated in %s on line %d string(1) "1" string(1) "2" string(1) "3" diff --git a/ext/standard/tests/strings/parse_str_basic1.phpt b/ext/standard/tests/strings/parse_str_basic1.phpt index 7a8fda80db..a1222814f7 100644 --- a/ext/standard/tests/strings/parse_str_basic1.phpt +++ b/ext/standard/tests/strings/parse_str_basic1.phpt @@ -36,6 +36,8 @@ var_dump($res3_array); --EXPECTF-- *** Testing parse_str() : basic functionality *** Basic test WITHOUT result arg + +Deprecated: parse_str(): Calling parse_str() without the result argument is deprecated in %s on line %d NULL string(4) "val1" string(4) "val2" @@ -73,4 +75,4 @@ array(3) { ["third"]=> string(4) "val3" } -===DONE=== \ No newline at end of file +===DONE=== diff --git a/ext/standard/tests/strings/parse_str_basic2.phpt b/ext/standard/tests/strings/parse_str_basic2.phpt index e42c9caaa4..88a13ca387 100644 --- a/ext/standard/tests/strings/parse_str_basic2.phpt +++ b/ext/standard/tests/strings/parse_str_basic2.phpt @@ -12,15 +12,20 @@ arg_separator.input = "/" echo "*** Testing parse_str() : non-default arg_separator.input specified ***\n"; $s1 = "first=val1/second=val2/third=val3"; -var_dump(parse_str($s1)); -var_dump($first, $second, $third); +var_dump(parse_str($s1, $result)); +var_dump($result); ?> ===DONE=== ---EXPECTF-- +--EXPECT-- *** Testing parse_str() : non-default arg_separator.input specified *** NULL -string(4) "val1" -string(4) "val2" -string(4) "val3" -===DONE=== \ No newline at end of file +array(3) { + ["first"]=> + string(4) "val1" + ["second"]=> + string(4) "val2" + ["third"]=> + string(4) "val3" +} +===DONE=== diff --git a/ext/standard/tests/strings/parse_str_basic3.phpt b/ext/standard/tests/strings/parse_str_basic3.phpt index 84f6a53bb1..a38395b884 100644 Binary files a/ext/standard/tests/strings/parse_str_basic3.phpt and b/ext/standard/tests/strings/parse_str_basic3.phpt differ diff --git a/ext/standard/tests/strings/parse_str_basic4.phpt b/ext/standard/tests/strings/parse_str_basic4.phpt index 894dbf0c2d..b6126e974b 100644 --- a/ext/standard/tests/strings/parse_str_basic4.phpt +++ b/ext/standard/tests/strings/parse_str_basic4.phpt @@ -22,8 +22,8 @@ var_dump($res); echo "\nTest string with badly formed % numbers\n"; $str = "first=%41&second=%a&third=%b"; -var_dump(parse_str($str)); -var_dump($first, $second, $third); +var_dump(parse_str($str, $res)); +var_dump($res); echo "\nTest string with non-binary safe name\n"; $str = "arr.test[1]=sid&arr test[4][two]=fred"; @@ -66,9 +66,14 @@ array(2) { Test string with badly formed % numbers NULL -string(1) "A" -string(2) "%a" -string(2) "%b" +array(3) { + ["first"]=> + string(1) "A" + ["second"]=> + string(2) "%a" + ["third"]=> + string(2) "%b" +} Test string with non-binary safe name NULL @@ -84,4 +89,4 @@ array(1) { } } } -===DONE=== \ No newline at end of file +===DONE===