[wp-trac] [WordPress Trac] #52728: Widgets: Uncaught TypeError in PHP 8 when using objects for settings
WordPress Trac
noreply at wordpress.org
Tue Nov 16 01:41:37 UTC 2021
#52728: Widgets: Uncaught TypeError in PHP 8 when using objects for settings
-------------------------------------------------+-------------------------
Reporter: dlh | Owner:
| hellofromTonya
Type: defect (bug) | Status: closed
Priority: normal | Milestone: 5.9
Component: Widgets | Version: 4.3
Severity: normal | Resolution: fixed
Keywords: has-patch php8 has-unit-tests | Focuses:
commit |
-------------------------------------------------+-------------------------
Changes (by hellofromTonya):
* status: reviewing => closed
* resolution: => fixed
Comment:
In [changeset:"52173" 52173]:
{{{
#!CommitTicketReference repository="" revision="52173"
Widgets: Use `isset()` in `WP_Widget:: display_callback()` to support
`ArrayIterator` and `ArrayObject`.
[33696] introduced support returning `ArrayIterator` and `ArrayObject`
objects from `WP_Widget::get_settings()`.
Per the PHP manual, `array_key_exists()` stopped supporting this in PHP
8.0.0 and deprecated in PHP 7.4.0.
>For backward compatibility reasons, array_key_exists() will also return
true if key is a property defined within an object given as array. This
behaviour is deprecated as of PHP 7.4.0, and removed as of PHP 8.0.0.
This commit uses `isset()` instead of `array_key_exists()` which is
supported on all current versions of PHP.
Includes unit tests.
Ref:
* https://www.php.net/manual/en/function.array-key-
exists.php#refsect1-function.array-key-exists-notes
Follow-up to [32602], [33696].
Props dlh, hellofromTonya, jrf, sergeybiryukov.
Fixes #52728.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/52728#comment:16>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list