Accesso membro della classe su istanziazione senza variabile

0

Con una nuova funzionalità in PHP 5.4, possiamo accedere a un membro della classe sullo stesso linea come istanziare la classe.

es.

// Instead of
$obj = new myClass();
$obj->myMethod();

// PHP 5.4 allows
$obj = (new myclass())->myMethod();

Ho una classe che non ha bisogno dell'oggetto (variabile) dalla classe istanziata, perché la classe istanziata è un controller di uscita e solo "fa alcune cose" quindi ferma l'intero sistema.

Vorrei sapere se l'accesso a un membro della classe al momento dell'istanza della classe è ok senza utilizzare la variabile .

// With variable (standard practice)
$obj = (new myclass())->myMethod();

// Without using the variable
(new myclass())->myMethod();

Entrambe le opzioni di codice funzionano perfettamente bene, ma non ho visto questo fatto senza usare la variabile per memorizzare l'oggetto. E a volte qualcosa può essere fatto in modo non corretto da un punto di vista tecnico o di "buona pratica", ma funziona ancora a causa di qualche motivo non correlato (o fortuna, ecc.).

Quindi vorrei sapere se questo è un utilizzo accettabile?
O ci sono ragioni "tecniche" che non dovrebbero essere fatte in questo modo?

    
posta James 17.07.2015 - 21:32
fonte

1 risposta

1

Dovrebbe essere assolutamente soddisfacente. Semplicemente non stai assegnando l'oggetto a nessuna variabile e viene eliminato automaticamente.

BUT, vorrei esaminare i problemi di ambito più ampio qui:

Se non hai bisogno di un oggetto, la classe (o il metodo che indovino in PHP) dovrebbe essere statico invece.

// Static invocation
myClass::myMethod();
    
risposta data 17.07.2015 - 22:12
fonte

Leggi altre domande sui tag