From 2df9346e7f9a0ecc204a1d615b5c151b8ed053f5 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 2 Feb 2017 00:44:18 +0100 Subject: [PATCH] Deprecate mb_parse_str() without second argument --- Zend/tests/this_in_mb_parse_str.phpt | 2 ++ ext/mbstring/mbstring.c | 2 ++ ext/mbstring/tests/bug20087.phpt | 2 ++ ext/mbstring/tests/common.inc | 1 + ext/mbstring/tests/mb_parse_str.phpt | 8 +++++++- ext/mbstring/tests/mb_parse_str02.phpt | 8 +++++++- 6 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Zend/tests/this_in_mb_parse_str.phpt b/Zend/tests/this_in_mb_parse_str.phpt index 8dfac94722e..2d5af4794e1 100644 --- a/Zend/tests/this_in_mb_parse_str.phpt +++ b/Zend/tests/this_in_mb_parse_str.phpt @@ -11,6 +11,8 @@ function foo() { foo(); ?> --EXPECTF-- +Deprecated: mb_parse_str(): Calling mb_parse_str() without the result argument is deprecated in %s on line %d + Fatal error: Uncaught Error: Cannot re-assign $this in %sthis_in_mb_parse_str.php:3 Stack trace: #0 %sthis_in_mb_parse_str.php(3): mb_parse_str('this=42') diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 6894d8eac7c..80393d8b35d 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -2195,6 +2195,8 @@ PHP_FUNCTION(mb_parse_str) return; } + php_error_docref(NULL, E_DEPRECATED, "Calling mb_parse_str() without the result argument is deprecated"); + symbol_table = zend_rebuild_symbol_table(); ZVAL_ARR(&tmp, symbol_table); detected = _php_mb_encoding_handler_ex(&info, &tmp, encstr); diff --git a/ext/mbstring/tests/bug20087.phpt b/ext/mbstring/tests/bug20087.phpt index 01bcc90388e..ea6ce1a37d7 100644 --- a/ext/mbstring/tests/bug20087.phpt +++ b/ext/mbstring/tests/bug20087.phpt @@ -15,8 +15,10 @@ var_dump(mb_parse_str("test=moo")); var_dump($test); ?> --EXPECT-- +ERR: Deprecated bool(true) string(0) "" +ERR: Deprecated bool(true) string(3) "moo" diff --git a/ext/mbstring/tests/common.inc b/ext/mbstring/tests/common.inc index 4205cce7bc1..c686b0696c0 100644 --- a/ext/mbstring/tests/common.inc +++ b/ext/mbstring/tests/common.inc @@ -21,6 +21,7 @@ function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { 1024=> "User Notice", // E_USER_NOTICE 2048=> "Strict Notice", // E_STRICT 4096=> "Recoverable fatal error", // E_RECOVERABLE_ERROR + 8192=> "Deprecated", // E_DEPRECATED ); if (!empty($debug)) { diff --git a/ext/mbstring/tests/mb_parse_str.phpt b/ext/mbstring/tests/mb_parse_str.phpt index 59d187bd05f..94f6a9f0a02 100644 --- a/ext/mbstring/tests/mb_parse_str.phpt +++ b/ext/mbstring/tests/mb_parse_str.phpt @@ -28,7 +28,7 @@ foreach ($queries as $query) { test($query); } ?> ---EXPECT-- +--EXPECTF-- array(2) { ["foo"]=> string(3) "abc" @@ -37,6 +37,8 @@ array(2) { } string(0) "" string(0) "" + +Deprecated: mb_parse_str(): Calling mb_parse_str() without the result argument is deprecated in %s on line %d string(3) "abc" string(3) "def" array(2) { @@ -47,6 +49,8 @@ array(2) { } string(0) "" string(0) "" + +Deprecated: mb_parse_str(): Calling mb_parse_str() without the result argument is deprecated in %s on line %d string(0) "" string(0) "" array(2) { @@ -67,6 +71,8 @@ array(2) { } string(0) "" string(0) "" + +Deprecated: mb_parse_str(): Calling mb_parse_str() without the result argument is deprecated in %s on line %d array(3) { [0]=> string(3) "abc" diff --git a/ext/mbstring/tests/mb_parse_str02.phpt b/ext/mbstring/tests/mb_parse_str02.phpt index f35699928e0..d89137de07b 100644 --- a/ext/mbstring/tests/mb_parse_str02.phpt +++ b/ext/mbstring/tests/mb_parse_str02.phpt @@ -31,7 +31,7 @@ foreach ($queries as $query) { test($query); } ?> ---EXPECT-- +--EXPECTF-- array(3) { ["foo"]=> string(3) "abc" @@ -43,6 +43,8 @@ array(3) { string(0) "" string(0) "" string(0) "" + +Deprecated: mb_parse_str(): Calling mb_parse_str() without the result argument is deprecated in %s on line %d string(3) "abc" string(3) "def" string(3) "ghi" @@ -57,6 +59,8 @@ array(3) { string(0) "" string(0) "" string(0) "" + +Deprecated: mb_parse_str(): Calling mb_parse_str() without the result argument is deprecated in %s on line %d string(0) "" string(0) "" string(0) "" @@ -86,6 +90,8 @@ array(3) { string(0) "" string(0) "" string(0) "" + +Deprecated: mb_parse_str(): Calling mb_parse_str() without the result argument is deprecated in %s on line %d array(4) { [0]=> string(3) "abc"