[wp-trac] [WordPress Trac] #53635: PHP 8.1: various compatibility fixes
WordPress Trac
noreply at wordpress.org
Wed Sep 15 22:18:50 UTC 2021
#53635: PHP 8.1: various compatibility fixes
-------------------------------------------------+-------------------------
Reporter: SergeyBiryukov | Owner:
| hellofromTonya
Type: task (blessed) | Status: accepted
Priority: normal | Milestone: 5.9
Component: General | Version:
Severity: normal | Resolution:
Keywords: php81 has-patch has-unit-tests | Focuses: coding-
commit | standards
-------------------------------------------------+-------------------------
Comment (by hellofromTonya):
In [changeset:"51818" 51818]:
{{{
#!CommitTicketReference repository="" revision="51818"
Options, Meta APIs: Fix "passing null to non-nullable" deprecations to
`(get|add|update|delete)_option()`.
In all four of the `get_option()`, `add_option()`, `update_option()` and
`delete_option()` functions, the `$option` parameter (i.e. the option
name) is passed to the PHP native `trim()` function without prior input
validation.
In PHP 8.1, this could lead to a `trim(): Passing null to parameter #1
($string) of type string is deprecated` for each of these functions.
`trim()`:
- expects a text string and is only useful when ''passed'' a text string
as no other variable type can contain whitespace.
- will always return a `string`, which means that in practice for any non-
string values passed, it would effectively function as a type cast to
string.
This commit:
- Adds a check to verify the `$option` name is a scalar before processing
it with `trim()`.
- The "type cast" behavior is maintained.
- If the given `$option` name is not a scalar, such as `null`, the fix
prevents the PHP 8.1 deprecation notice.
- Tests are added for valid but undesired option names to safeguard
against regressions.
This issue is already covered by:
- the existing `Tests_Option_Option::test_bad_option_names()` test group.
- the new `test_valid_but_undesired_option_names()` tests.
Follow-up to [13858], [22633], [23510], [25002], [51817].
Props jrf, hellofromTonya, pbearne.
See #53635.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/53635#comment:113>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list