2009-12-22 22 views
59

Ho sempre dato per scontato che - in assenza dei parametri del costruttore - le parentesi (parentesi graffe) seguano il nome della classe durante la creazione di un'istanza di classe, fossero facoltative e che poteste includerle o escluderle secondo il vostro capriccio personale.Istanza di classe PHP. Usare o non usare le parentesi?

Che queste due affermazioni erano uguali:

$foo = new bar; 
$foo = new bar(); 

ho ragione? O c'è qualche significato per le parentesi di cui non sono a conoscenza?

So che questa sembra una domanda RTM, ma ho cercato per un po '(compresa l'intera sezione OOP di PHP) e non riesco a trovare una risposta diretta.

risposta

47

Sono equivalenti. Se non stai codificando con qualsiasi code convention, usa quello che ti piace di più. Personalmente, mi piace lasciarlo fuori, perché è davvero solo disordine per me.

+2

concordato. Se il costruttore non accetta alcun parametro, li lascio anch'io. – AntonioCS

+1

Grazie. Speravo che fosse così. - Personalmente mi piace includerli sempre. Cattiva abitudine dai miei giorni Java/C :) – Atli

+20

..anche, la parte finale sembra una scimmia cantante sogghignante(); laaaa-la – 0scar

4

$foo = new bar() sarebbe utile su $foo = new bar se si passavano gli argomenti al costruttore. Per esempio:

class bar { 

    public $user_id; 

    function __construct($user_id) { 
     $this->user_id = $user_id 
    } 
} 

-

$foo = new bar($user_id); 

A parte questo, e come già accennato nella risposta accettata, non v'è alcuna differenza.

Problemi correlati