[wp-trac] [WordPress Trac] #53635: PHP 8.1: various compatibility fixes
WordPress Trac
noreply at wordpress.org
Wed Aug 11 01:37:09 UTC 2021
#53635: PHP 8.1: various compatibility fixes
----------------------------+-------------------------------
Reporter: SergeyBiryukov | Owner: (none)
Type: task (blessed) | Status: new
Priority: normal | Milestone: 5.9
Component: General | Version:
Severity: normal | Resolution:
Keywords: php81 | Focuses: coding-standards
----------------------------+-------------------------------
Comment (by jrf):
The patch I've just uploaded - `53635-05-null-to-non-nullable-in-
testcode.patch` - is a test code only patch and ready for commit.
Fixes two tests which were erroring out.
Commit details:
== PHP 8.1: Tests_Functions_DoEnclose: fix bug in test
As per the PHP manual:
> If the component parameter is omitted, an associative array is returned.
> If the component parameter is specified, parse_url() returns a string
(or an int, in the case of PHP_URL_PORT) instead of an array. If the
requested component doesn't exist within the given URL, null will be
returned.
Ref: https://www.php.net/manual/en/function.parse-
url.php#refsect1-function.parse-url-returnvalues
In this case, `parse_url()` is called with the `PHP_URL_PATH` as
`$component`, but the returned value is subsequently checked against
`false`.
In other words, this condition would previously always result `true` and
would lead to `null`, potentially, being passed to the PHP native
`pathinfo()` function which expects a string.
On PHP 8.1, this will result in a test failure with a `pathinfo(): Passing
null to parameter #1 ($path) of type string is deprecated` error.
Ref: https://www.php.net/manual/en/function.pathinfo.php
--
Ticket URL: <https://core.trac.wordpress.org/ticket/53635#comment:23>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list