Commit 6b2e2bf
committed
Code Modernization: Fix "passing null to non-nullable" deprecation in
The `_mb_substr()` function expects a string for the `$str` parameter, but does not do input validation. This function contains a `preg_match_all()` which also expects a string type for the given subject (i.e. `$str`).
Passing `null` to this parameter results in `preg_match_all(): Passing null to parameter WordPress#2 ($subject) of type string is deprecated` notice on PHP 8.1.
To maintain the same behaviour as before, a guard clause is added to bail out early when `$str` is passed as `null`. The outcome will, in that case, only ever be an empty string.
Note: this does mean that the `_mb_substr()` function now has a subtle difference in behaviour compared to the PHP native `mb_substr()` function as the latter ''will'' throw the deprecation notice.
The existing tests already cover this issue.
Follow-up to [17621], [36017], [32364].
Props jrf, hellofromTonya.
See #53635.
git-svn-id: https://develop.svn.wordpress.org/trunk@51853 602fd350-edb4-49c9-b593-d223f7449a82_mb_substr().1 parent 237efb5 commit 6b2e2bfCopy full SHA for 6b2e2bf
File tree
Expand file treeCollapse file tree
1 file changed
+4
-0
lines changedOpen diff view settings
Filter options
- src/wp-includes
Expand file treeCollapse file tree
1 file changed
+4
-0
lines changedOpen diff view settings
Collapse file
+4Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
79 | 79 | |
80 | 80 | |
81 | 81 | |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | + |
82 | 86 | |
83 | 87 | |
84 | 88 | |
|
0 commit comments