Re: Re: OOP Newbie - why does this not work?
| From: | Jochem Maas | Date: | Sat, 22 Oct 2005 14:04:17 +0000 |
| Subject: | Re: Re: OOP Newbie - why does this not work? | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-224449@lists.php.net to get a copy of this message | ||
Andy Pieters wrote:
While the use of () or not doesn't impede the function of his code, I consider it good programming habit to always add () to the class creator. Since it iscreator? you mean constructor (same difference).
considered a function, you wouldn't call a function like x=function but'method' would be more 'correct'. and I don't agree that it is considered a function as you are not directly calling the constructor (if it even exists), but rather instantiating an instance of a class. but that is all rather purist, and not really in the spirit of php. regardless you cant write ... :-) class Test {} $x = new (Test); although you can do the following (for the benefit of the OP): class Test {} $a = "b"; $b = "Test"; $c = "a"; $d = ( ${${$c}} ); /* (the brackets are optional) */
$x = new $d; /* or: $x = $d(); */$y = new ${("b")}; /* or: $y = new ${("b")}(); */ $z = new ${${$c}}; /* or: $z = new ${${$c}}(); */ ${""} = new Test; var_dump($x, $y, $z, ${""});
rather x=function(). It is more consistent that way.Consistency shares a house with Standards, and you know what they say about Stan ;-)
On Friday 21 October 2005 16:31, Jochem Maas wrote:Nathan Tobik wrote:You have to show us the definition for your class, also your syntax for new is wrong. It should be: $liveclass = new Test();it can also be (if you have nothing to pass to the constructor function): $liveclass = new Test;Nate Tobik (412)661-5700 x206 VigilantMinds -----Original Message----- From: John Taylor-Johnston [mailto:John.Taylor-Johnston@cegepsherbrooke.qc.ca] Sent: Friday, October 21, 2005 7:57 AM To: php-general@lists.php.net Subject: [PHP] Re: OOP Newbie - why does this not work? Here,s my guess:var $liveclass; $liveclass = new(Test); echo $liveclass->get() ; echo "<BR>" ;echo "This is in the php code block" ;