Skip to content

Commit e9acf1f

Browse files
Code Modernization: Explicitly declare all properties in POMO_Reader et al.
Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2 and are expected to become a fatal error in PHP 9.0. There are a number of ways to mitigate this: * If it is an accidental typo for a declared property: fix the typo. * For known properties: declare them on the class. * For unknown properties: add the magic `__get()`, `__set()`, et al. methods to the class or let the class extend `stdClass` which has highly optimized versions of these magic methods built in. * For unknown ''use'' of dynamic properties, the `#[AllowDynamicProperties]` attribute can be added to the class. The attribute will automatically be inherited by child classes. In this case, the `$is_overloaded` property and the `$_f` property fall in the “known property” category. In both cases, these are being set in the `__construct()` method of the class they apply to. The `$_post` property appears to be a typo however. The `$_post` property looks to be unused, while there is an undeclared integer `$_pos` (“position”) property, which is used throughout the class and used by the child classes. Reference: [https://wiki.php.net/rfc/deprecate_dynamic_properties PHP RFC: Deprecate dynamic properties]. Follow-up to [11626], [12174], [53557], [53558], [53850], [53851], [53852], [53853], [53854], [53856], [53916], [53935], [53936], [53937], [53938], [53942], [53945], [53948], [53949], [53952], [53953]. Props jrf, antonvlasenko, costdev. See #56033. git-svn-id: https://develop.svn.wordpress.org/trunk@53954 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 48e9706 commit e9acf1f

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

src/wp-includes/pomo/streams.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
class POMO_Reader {
1313

1414
public $endian = 'little';
15-
public $_post = '';
15+
public $_pos;
16+
public $is_overloaded;
1617

1718
/**
1819
* PHP5 constructor.
@@ -152,6 +153,13 @@ public function close() {
152153
if ( ! class_exists( 'POMO_FileReader', false ) ) :
153154
class POMO_FileReader extends POMO_Reader {
154155

156+
/**
157+
* File pointer resource.
158+
*
159+
* @var resource|false
160+
*/
161+
public $_f;
162+
155163
/**
156164
* @param string $filename
157165
*/

0 commit comments

Comments
 (0)