RFC: Using objects as keys

Voici une RFC qui avait été évoquée pendant les discussions à propos de UString : Using objects as keys.

L’idée de cette RFC était de permettre (de façon détournée) à des objets d’être utilisés comme clefs de tableaux — les tableaux PHP ne supportant en interne, comme clefs, que des entiers ou des chaînes.

Pour cela, une nouvelle méthode magique (qui pourrait être nommée __hash() — le nom proposé n’étant pas nécessairement définitif) serait mise en place : elle serait appelée lorsque l’on essayerait d’utiliser un objet comme clef d’un tableau, pour retourner la chaîne de caractères ou l’entier à réellement employer.

Par exemple, il deviendrait possible d’écrire quelque chose de ce type :

$obj = new MaClasse(); // implémentant une méthode __hash()
$arr = [];
$arr[$obj] = /* ici, quelque chose stocké dans le tableau, à l'index $obj->hash() */
Exemple

Les votes se sont tenus entre le 16 décembre 2014 et le 6 janvier 2015 et requéraient une majorité de 2/3. Nous avons exprimé notre opinion, défavorable du fait que cette proposition n’aille pas assez loin, sur internals@.
Cette proposition a été rejetée à 24 voix contre 6.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *