Edit report at https://bugs.php.net/bug.php?id=55864&edit=1

 ID:                 55864
 User updated by:    dagguh at gmail dot com
 Reported by:        dagguh at gmail dot com
 Summary:            Explicit call to default constructor
 Status:             Open
 Type:               Feature/Change Request
 Package:            Class/Object related
 Operating System:   Ubuntu 10.04.3 LTS
 PHP Version:        5.3.5
 Block user comment: N
 Private report:     N

 New Comment:

Well you can call:

$base = new Base();

which works, because php uses default, empty constructor.
If new operator can call it, why derived classes can't?


Previous Comments:
------------------------------------------------------------------------
[2011-10-07 09:41:18] larue...@php.net

Actually, there is no `default constructor` in PHP, you should decalare one be 
fore you call to it. 
I think this should be mark as a feature request.

------------------------------------------------------------------------
[2011-10-07 09:25:40] dagguh at gmail dot com

Fixed version and OS

------------------------------------------------------------------------
[2011-10-07 09:24:50] dagguh at gmail dot com

PS. Actually my PHP version is 5.3.5

------------------------------------------------------------------------
[2011-10-07 09:20:34] dagguh at gmail dot com

Description:
------------
You cannot call default constructor from derived class.

Test script:
---------------
<?
class Base {

}

class Derived extends Base {

    function __construct($foo) {
        parent::__construct();
        echo $foo;
    }

}

$derived = new Derived("baz");

Expected result:
----------------
baz

Actual result:
--------------
Fatal error: Cannot call constructor


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=55864&edit=1

Reply via email to