2009-12-22 14 views
59

Siempre he supuesto que, en ausencia de parámetros de constructor, los paréntesis (corchetes) siguen el nombre de la clase al crear una instancia de clase, eran opcionales, y que podría incluirlos o excluirlos a su antojo personal.Creación de instancias de clase PHP. Para usar o no usar los paréntesis?

que estas dos afirmaciones eran iguales:

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

Estoy en lo cierto? ¿O hay algún significado para los corchetes que desconozco?

Sé que esto suena como una pregunta RTM, pero he estado buscando por un tiempo (incluyendo toda la sección PHP OOP) y parece que no puedo encontrar una respuesta directa.

Respuesta

47

Son equivalentes. Si no está codificando ningún code convention, use el que más le guste. Personalmente, me gusta dejarlo fuera, ya que en realidad solo es un montón para mí.

+2

De acuerdo. Si el constructor no toma ningún parámetro, los dejo también – AntonioCS

+1

Gracias. Esperaba que este fuera el caso. - Personalmente me gusta incluirlos siempre. Mal hábito de mi Java/C# días :) – Atli

+20

.. también, la parte final se ve como un mono cantante con una sonrisa(); laaaa-la – 0scar

4

$foo = new bar() Sería útil más de $foo = new bar si estuviera pasando argumentos al constructor. Por ejemplo:

class bar { 

    public $user_id; 

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

-

$foo = new bar($user_id); 

Aparte de eso, y como ya se ha mencionado en la respuesta aceptada, no hay diferencia.

Cuestiones relacionadas