Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP class instantiation. To use or not to use the parentheses? [closed]

I've always assumed that - in the absence of constructor parameters - the parentheses (curly brackets) follow the class name when creating a class instance, were optional, and that you could include or exclude them at your own personal whim.

That these two statements were equal:

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

Am I right? Or is there some significance to the brackets that I am unaware of?

I know this sounds like a RTM question, but I've been searching for a while (including the entire PHP OOP section) and I can't seem to find a straight answer.

like image 809
Atli Avatar asked Dec 22 '09 12:12

Atli


2 Answers

They are equivalent. If you are not coding by any code convention, use which you like better. Personally, I like to leave it out, as it is really just clutter to me.

like image 147
Gordon Avatar answered Sep 18 '22 18:09

Gordon


$foo = new bar() would be useful over $foo = new bar if you were passing arguments to the constructor. For example:

class bar {      public $user_id;      function __construct( $user_id ) {         $this->user_id = $user_id     } } 

-

$foo = new bar( $user_id ); 

Aside from that, and as already mentioned in the accepted answer, there is no difference.

like image 34
henrywright Avatar answered Sep 17 '22 18:09

henrywright