70 votes

Instanciation des classes en PHP. Utiliser ou ne pas utiliser les parenthèses ?

J'ai toujours supposé que - en l'absence de paramètres de constructeur - les parenthèses (crochets) qui suivent le nom de la classe lors de la création d'une instance de classe étaient facultatives, et que vous pouviez les inclure ou les exclure à votre guise.

Que ces deux déclarations étaient égales :

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

Ai-je raison ? Ou bien les parenthèses ont-elles une signification que je ne connais pas ?

Je sais que cela ressemble à une question de type RTFM, mais j'ai cherché pendant un certain temps (y compris dans toute la section PHP OOP) et je n'arrive pas à trouver une réponse claire.

55voto

Gordon Points 156415

Ils sont équivalents. Si vous n'êtes pas en train de coder convention de code Utilisez celui que vous préférez. Personnellement, j'aime bien ne pas en tenir compte, car ce n'est que du désordre pour moi.

6voto

henrywright Points 5823

$foo = new bar() serait utile pour les $foo = new bar si vous passiez des arguments au constructeur. Par exemple :

class bar {

    public $user_id;

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

-

$foo = new bar( $user_id );

A part cela, et comme déjà mentionné dans la réponse acceptée, il n'y a pas de différence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X