Re: How can I do this -- method chaining
| From: | Anup Shukla | Date: | Wed, 30 Jan 2008 12:55:29 +0000 |
| Subject: | Re: How can I do this -- method chaining | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-268318@lists.php.net to get a copy of this message | ||
Nathan Nobbe wrote:
AFAIK, constructor simply constructs the object, and *new* is the one that binds the reference to the variable on the lhs. So, constructors return nothing.Actually, I don't think so. I believe constructors return void, while the 'new' keyword returns a copy of the object.im pretty sure constructors return an object instance: php > class Test { function __construct() {} } php > var_dump(new Test()); object(Test)#1 (0) { }
but anyway, how could you even test that __construct() returned void and the new keyword returned a copy of the object? new essentially invokes __construct() and passes along its return value, near as i can tell. Christoph, if you dont want to write a function in the global namespace, as suggested in the article, Eric posted, just add a simple factory method in your class, eg. <?php class Test {-- Regards, Anup Shuklapublic static function getInstance() { return new Test(); }public function doSomething() { echo __METHOD__ . PHP_EOL; }} Test::getInstance()->doSomething(); ?> -nathan