Un entier en guise de nom de propriété d'une instance

Marqué :

Dans l'usage courant de PHP, il est impossible de créer une propriété dont le nom est un entier.

Par exemple :

<?php
$instance = new stdClass();
$instance->12 = 'ma clé est un entier';
print $instance->12;

Doit lever une exception du type :

Parse error: syntax error, unexpected T_LNUMBER, \
    expecting T_STRING or T_VARIABLE or '{' or '$' [...]

Cependant, il est possible de contourner cette limitation en déclarant le nom de la variable avec d'autres manières.

La première, en encapsulant l'entier entre chevrons:

<?php
$instance = new stdClass();
$instance->{12} = 'ma clé est un entier';
print $instance->{12};

die("\n");

La deuxième en passant l'entier par une variable:

<?php
$property_name = 12;

$instance = new stdClass();
$instance->$property_name = 'ma clé est un entier';
print $instance->$property_name;

J'ai testé sur PHP 5.2.6 (cli) (built: Sep 19 2008 11:28:54)

Voir aussi