Support for nullsafe function call syntax
Nessuno ha ancora preso questa issue.
- Lingua principale
- C
- Stelle
- 40.4k
- Fork
- 8.1k
- Merge medio
- 2g 13h
- PR unite (30g)
- 96
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci il comportamento segnalato usando gli snippet PHP presenti nell’issue, quindi leggi l’RFC collegato sull’operatore nullsafe e l’implementazione e i test esistenti per le chiamate nullsafe. Il lavoro è completato quando è stata determinata e implementata la gestione prevista di $g?(), preservando gli errori documentati per le chiamate ordinarie e rispettando il comportamento atteso.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- php
- Ambito
- compilers
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 35/100