At 23:36 25/02/2004 +0100, Timm Friebe wrote:
[EMAIL PROTECTED]:~/devel/php/tests > cat inheritance.php
<?php
  class Foo {
    function __construct($foo) {
    }
  }

  class Bar extends Foo {
    function __construct($foo, $bar) {
      // Add = NULL after $bar to make it work
    }
  }
?>
[EMAIL PROTECTED]:~/devel/php/tests > php-dev inheritance.php

Fatal error: Declaration of Bar::__construct() must be compatible with
that of Foo::__construct() in
/usr/home/thekid/devel/php/tests/inheritance.php on line 10

Is this really necessary?

Guys,


You are breaking the isA relationship. We fixed this so that from now on, people will not make such mistakes anymore (I think it's the right way to go, so that we don't leave broken functionality around).
You can enable compatibility mode to make this work or specify a default value (as you saw) for $bar so that you are keeping the interface of the base class.


Andi

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to