ID: 43167 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Assigned Bug Type: Scripting Engine problem Operating System: * PHP Version: 5.2.* Assigned To: johannes New Comment:
In my opinion thats not a bug. An interface has no constructor as it cannot be initialized. As helly said, it simple forces the protocol for the constructor. Previous Comments: ------------------------------------------------------------------------ [2007-11-06 13:25:23] [EMAIL PROTECTED] This is discussable as it is not really a constructor here. It simply forces the protocol for the constructor. We do mark abstract constructors as ctors though, so we imho should do so in interfaces as well. [EMAIL PROTECTED] PHP_5_3]$ php -r 'abstract class t{abstract function __construct();} ReflectionClass::export("T");' make: `sapi/cli/php' is up to date. Class [ <user> abstract class t ] { @@ Command line code 1-1 - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Methods [1] { Method [ <user, ctor> abstract public method __construct ] { @@ Command line code 1 - 1 } } } ------------------------------------------------------------------------ [2007-11-01 07:52:22] [EMAIL PROTECTED] Description: ------------ ReflectionMethod::isConstructor() does not work for methods that are named __construct() in interfaces. Reproduce code: --------------- <?php interface Foo { public function __construct(Bar $bar); } $interface = new ReflectionClass('Foo'); $constructor = $interface->getMethod('__construct'); var_dump($constructor->isConstructor()); Expected result: ---------------- bool(true) Actual result: -------------- bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43167&edit=1