#21669 [Com]: "$obj = new $this->var;" doesn't work

From: Date: Wed, 29 Jan 2003 01:56:00 +0000
Subject: #21669 [Com]: "$obj = new $this->var;" doesn't work
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-31517@lists.php.net to get a copy of this message
ID: 21669 Comment by: yoglets@hotmail.com Reported By: slowbyte@hot.ee Status: Open Bug Type: Zend Engine 2 problem Operating System: Debian Linux 3.0r0 PHP Version: 5CVS-2003-01-15 (dev) New Comment: Don't know if this is the same issue or not, but it's certainly related. You can't use $obj = new $name for nested classes either. For example: <?php class Foo { class Bar { } } $obj1 = new Foo; // works $obj2 = new Foo::Bar; // works $name = 'Foo'; $obj3 = new $name; // works $name = 'Foo::Bar'; $obj4 = new $name; // Fatal error: Class 'foo::bar' not found ?> Previous Comments: ------------------------------------------------------------------------ [2003-01-15 11:56:13] slowbyte@hot.ee The following snippet is a parse error in PHP5-ZE2 (used to work on earlier versions). This feature is also used in Smarty templates. <?php class Test { function say_hello() { echo "Hello world"; } } class Factory { var $name = "Test"; function create() { $obj = new $this->name; /* Parse error */ return $obj; } } $factory = new Factory; $test = $factory->create(); $test->say_hello(); ?> ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=21669&edit=1

« previous php.bugs (#31517) next »