[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