ID: 41819
Updated by: [EMAIL PROTECTED]
Reported By: oancea at gmail dot com
Status: Bogus
Bug Type: Scripting Engine problem
Operating System: *
PHP Version: 5.2.3
New Comment:
Nobody said it cannot be used, but __construct() and XMLConfigurator()
are two different functions, so the result you get is pretty much
expected.
Previous Comments:
------------------------------------------------------------------------
[2007-06-27 08:48:25] oancea at gmail dot com
How about this one:
abstract class IConfigurator {
public abstract function __construct();
}
class XmlConfigurator extends IConfigurator {
public function XmlConfigurator() {
printf("%s\n", __METHOD__);
}
}
$config = new XmlConfigurator();
Can you point me to the exact documentation where it states that the
old style constructor should not be used, at least not in interfaces or
in abstract classes?
Thank-you.
------------------------------------------------------------------------
[2007-06-27 08:28:54] [EMAIL PROTECTED]
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php
------------------------------------------------------------------------
[2007-06-27 07:46:51] oancea at gmail dot com
Description:
------------
There is an inconsistency between the old style class constructor
(class name) and the new one (__construct) when defining interfaces (see
reproduce code bellow).
Reproduce code:
---------------
interface IConfigurator {
public function __construct();
}
class XmlConfigurator implements IConfigurator {
public function XmlConfigurator() {
printf("%s\n", __METHOD__);
}
}
$config = new XmlConfigurator();
Expected result:
----------------
One of:
* XmlConfigurator::XmlConfigurator
* Fatal error: old style constructor is deprecated
Actual result:
--------------
Fatal error: Class XmlConfigurator contains 1 abstract method and must
therefore be declared abstract or implement the remaining methods
(IConfigurator::__construct) in
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=41819&edit=1