ID:               21669
 Comment by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 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] [EMAIL PROTECTED]

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

Reply via email to