2010-10-06 24 views
49

Eventuali duplicati:
PHP class instantiation. To use or not to use the parentheses?Istanziare una classe con o senza parentesi?

non ho trovato alcuna documentazione ufficiale su questo. Ma non importa se una classe viene istanziata con la nostra senza le parentesi - finché non ci sono parametri coinvolti, giusto?

$car = new Car; 

o

$car = new Car(); 

Ma qualcuno può dirmi se c'è una differenza di prestazioni? In che modo è il modo "più corretto"? C'è qualche documentazione ufficiale per questo?

risposta

83

Qualsiasi differenza di prestazioni sarà assolutamente trascurabile.

Mentre entrambi i modi vanno bene, io personalmente preferisco usare new Car(); perché di solito, un metodo è essere chiamato qui, e la funzione/le chiamate di metodo in PHP richiedono (). Inoltre, è più coerente con le istanze che hanno parametri.

Ma alla fine, è tutto da provare. Non importa in quale direzione scegliate, ma quando ne scegliete uno, seguitelo costantemente!

+2

Esattamente quello che stavo per scrivere, +1. – tplaner

+2

+1 e eliminato il mio - Sono d'accordo al 100%. – lonesomeday

+7

+1 Onestamente non considero 'new ClassUsingDefaultConstructor;' e 'new ClassWithConstructorWithParameters ($ pippo, $ bar);' usato nello stesso script per essere coerente * indipendentemente da cosa *. Ma sono solo io, credo. – BoltClock

3

Sono entrambi modi corretti, e sono sicuro che non ci sono differenze nelle prestazioni.

6

la prima istanza non ha alcun riferimento "ufficiale". Nel documento php ufficiale trovi sempre il secondo. Quindi, preferisco questo per coerenza. Ma è tutto a tua scelta

+6

In un rapido look-through ho trovato un gran numero di istanze in cui gli esempi di documentazione usano la forma non tra parentesi, compresi molti in "Classi e Oggetti" sezione. – GZipp

Problemi correlati