Conditions | 5 |
Paths | 12 |
Total Lines | 31 |
Code Lines | 13 |
Lines | 0 |
Ratio | 0 % |
Tests | 13 |
CRAP Score | 5 |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
6174 | 29 | public static function str_ireplace($search, $replacement, $subject, &$count = null) |
|
6175 | { |
||
6176 | 29 | $search = (array) $search; |
|
6177 | |||
6178 | /** @noinspection AlterInForeachInspection */ |
||
6179 | 29 | foreach ($search as &$s) { |
|
6180 | 29 | $s = (string) $s; |
|
6181 | 29 | if ($s === '') { |
|
6182 | 6 | $s = '/^(?<=.)$/'; |
|
6183 | } else { |
||
6184 | 24 | $s = '/' . \preg_quote($s, '/') . '/ui'; |
|
6185 | } |
||
6186 | } |
||
6187 | |||
6188 | // fallback |
||
6189 | /** @phpstan-ignore-next-line - only a fallback for PHP8 */ |
||
6190 | 29 | if ($replacement === null) { |
|
6191 | 1 | $replacement = ''; |
|
6192 | } |
||
6193 | /** @phpstan-ignore-next-line - only a fallback for PHP8 */ |
||
6194 | 29 | if ($subject === null) { |
|
6195 | 1 | $subject = ''; |
|
6196 | } |
||
6197 | |||
6198 | /** |
||
6199 | * @psalm-suppress PossiblyNullArgument |
||
6200 | * @phpstan-var TStrIReplaceSubject $subject |
||
6201 | */ |
||
6202 | 29 | $subject = \preg_replace($search, $replacement, $subject, -1, $count); |
|
6203 | |||
6204 | 29 | return $subject; |
|
6205 | } |
||
13694 |