1.2.585. Integer As Property¶
It is backward incompatible to use integers are property names. This feature was introduced in PHP 7.2.
If the code must be compatible with previous versions, avoid casting arrays to object.
<?php
// array to object
$arr = [0 => 1];
$obj = (object) $arr;
var_dump(
$obj,
$obj->{'0'}, // PHP 7.2+ accessible
$obj->{0} // PHP 7.2+ accessible
$obj->{'b'}, // always been accessible
);
?>
See also PHP RFC: Convert numeric keys in object/array casts.
1.2.585.1. Connex PHP features¶
1.2.585.1.1. Suggestions¶
Add a prefix with letters whenever property’s name adaptation is possible
1.2.585.1.2. Specs¶
Short name |
Classes/IntegerAsProperty |
Rulesets |
All, Changed Behavior, CompatibilityPHP53, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56, CompatibilityPHP70, CompatibilityPHP71 |
Exakat since |
1.0.4 |
PHP Version |
With PHP 7.2 and more recent |
Severity |
Major |
Time To Fix |
Slow (1 hour) |
Precision |
High |
Available in |