[RFC] Déclaration du type de retour des fonctions
Décidé suite à une réunion à Paris en 2005, ce vieux serpent de mer refait surface avec un nouveau RFC, c'est-à-dire une soumission au vote pour intégration dans PHP.
En clair, il s'agirait de permettre la déclaration (facultative) du type retourné par une fonction, une méthode ou un closure.
Code:
1 2 3 4 5
|
function randomArray() : array
{
return range(1, 20);
} |
Les avantages sont multiples:
- c'est la contrepartie du type hinting que nous avons déjà pour les signatures
Code:
function save(PDO pdo)
Cela évite bien de vérifications pour s'assurer que le type retourné par une méthode ou une fonction est correct. Moins de vérifications égale moins de risque de se tromper.
- cela empêche qu'une fonction retourne un objet inattendu, ce qui entraîne des bugs difficiles à détecter après.
- ça facilite la compréhension du code. Qui ne s'est jamais penché sur une méthode en se demandant qu'est-ce qu'elle pouvait bien retourner? Aujourd'hui, on utilise les docblocks pour pallier à ça, mais on sait bien que lorsqu'on doit livrer rapidement, on n'a pas le temps de modifier tous les dockblocks.
- Bonus: les éditeurs peuvent faire de l'autocomplétion sans docblocks, donc moins de lignes à écrire.
Le problème c'est que ceux qui votent pour cette intégration sont assez conservateurs, donc il n'est pas dit que ça passe. Reste à espérer que la menace de Hack, l'implémentation PHP de Facebook, qui commence sérieusement à intéresser de plus en plus de développeurs, les pousse dans la bonne voie.