Support for nullsafe function call syntax
Personne n'a encore pris cette issue.
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
The following code:
<?php
class Foo {
public function __invoke(): string {
return 'foo invoked';
}
}
$f = new Foo();
var_Dump($f());
results in this expected output:
string(11) "foo invoked"
$g = null;
$g();
results in this expected output
Fatal error: Uncaught Error: Value of type null is not callable
$g = null;
$g?->__invoke();
results in this expected output:
string(11) "foo invoked"
As the call to ->__invoke() can be shortened to () I would have expected to be able to use the nullsafe operator here as well and write
$g = null;
$g?();
But this results in in this output:
Parse error: syntax error, unexpected token ")"
I would have expected
string(11) "foo invoked"
Is this on purpose? I could not find any mention of invoke in the RFC. So was this overseen?
See also https://3v4l.org/n09i2
PHP Version
All currently supported PHP-Versions
Operating System
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le comportement signalé à l’aide des extraits PHP de l’issue, puis lisez le RFC lié sur l’opérateur nullsafe ainsi que l’implémentation et les tests existants pour les appels nullsafe. Le travail est terminé lorsque le traitement prévu de $g?() a été déterminé et implémenté, tout en préservant les erreurs documentées pour les appels ordinaires et en correspondant au comportement attendu.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100