mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Deprecate mb_ereg_replace with non-string pattern
I'm counting this towards the non-string needle deprecation from https://wiki.php.net/rfc/deprecations_php_7_3. I wasn't aware that mb_ereg_replace() is also affected by this issue. It's even more ridiculous than usual here, because the integer is interpreted as an ASCII codepoint, even though these are supposed to be multibyte functions :(
This commit is contained in:
parent
882dcb43f7
commit
e366ceebad
4 changed files with 49 additions and 2 deletions
|
@ -139,6 +139,11 @@ PHP 7.4 UPGRADE NOTES
|
|||
so is equivalent to calling a non-static method statically, which has been
|
||||
deprecated since PHP 7.0.
|
||||
|
||||
- Mbstring:
|
||||
. Passing a non-string pattern to mb_ereg_replace() is deprecated. Currently
|
||||
non-string patterns are interpreted as ASCII codepoints. In PHP 8 the
|
||||
pattern will be interpreted as a string instead.
|
||||
|
||||
========================================
|
||||
5. Changed Functions
|
||||
========================================
|
||||
|
|
|
@ -1049,6 +1049,10 @@ static void _php_mb_regex_ereg_replace_exec(INTERNAL_FUNCTION_PARAMETERS, OnigOp
|
|||
arg_pattern = Z_STRVAL_P(arg_pattern_zval);
|
||||
arg_pattern_len = Z_STRLEN_P(arg_pattern_zval);
|
||||
} else {
|
||||
php_error_docref(NULL, E_DEPRECATED,
|
||||
"Non-string patterns will be interpreted as strings in the future. "
|
||||
"Use an explicit chr() call to preserve the current behavior");
|
||||
|
||||
/* FIXME: this code is not multibyte aware! */
|
||||
convert_to_long_ex(arg_pattern_zval);
|
||||
pat_buf[0] = (char)Z_LVAL_P(arg_pattern_zval);
|
||||
|
|
|
@ -14,6 +14,8 @@ var_dump($var1);
|
|||
--EXPECTF--
|
||||
Notice: Undefined variable: var in %s on line %d
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
|
||||
Warning: mb_ereg_replace(): mbregex compile err: invalid code point value in %sbug72994.php on line %d
|
||||
bool(false)
|
||||
===DONE===
|
||||
|
|
|
@ -100,52 +100,82 @@ echo "Done";
|
|||
*** Testing mb_ereg_replace() : usage variations ***
|
||||
|
||||
-- Iteration 1 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 2 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 3 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 4 --
|
||||
|
||||
Warning: mb_ereg_replace(): mbregex compile err: invalid code point value in %smb_ereg_replace_variation1.php on line %d
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
|
||||
Warning: mb_ereg_replace(): mbregex compile err: invalid code point value in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 5 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 6 --
|
||||
|
||||
Warning: mb_ereg_replace(): mbregex compile err: invalid code point value in %smb_ereg_replace_variation1.php on line %d
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
|
||||
Warning: mb_ereg_replace(): mbregex compile err: invalid code point value in %s on line %d
|
||||
bool(false)
|
||||
|
||||
-- Iteration 7 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 8 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 9 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 10 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 11 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 12 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 13 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 14 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 15 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 16 --
|
||||
|
@ -164,11 +194,17 @@ string(10) "string_val"
|
|||
string(10) "string_val"
|
||||
|
||||
-- Iteration 21 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 22 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
|
||||
-- Iteration 23 --
|
||||
|
||||
Deprecated: mb_ereg_replace(): Non-string patterns will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in %s on line %d
|
||||
string(10) "string_val"
|
||||
Done
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue