Closed
Description
Description
function mb_trim(string $string, string $characters = " \f\n\r\t\v\x00\u{00A0}...\u{180E}", ?string $encoding = null): string {}
The default values for the parameter $characters
of the new mb_trim functions are not accurate.
When the very same value as the default is implied to $characters
like the code below, mb_trim()
does not necessarily work the same way, because $characters
also depends on $encoding
.
The parameter should be typed as ?string $characters = null
instead.
<?php
$strUtf8 = "\u{3042}\u{3000}"; // U+3000: fullwidth space
var_dump(mb_strlen(mb_trim($strUtf8))); // 1
var_dump(mb_strlen(mb_trim($strUtf8, encoding: 'UTF-8'))); // 1
mb_internal_encoding('Shift_JIS');
$strSjis = mb_convert_encoding($strUtf8, 'Shift_JIS', 'UTF-8');
var_dump(mb_strlen(mb_trim($strSjis))); // 1
var_dump(mb_strlen(mb_trim($strSjis, encoding: 'Shift_JIS'))); // 2
PHP Version
PHP dev-master
Operating System
No response