> Hi (Marcus),
> 
> unfortunately I'm not very happy with the direction OO 
> strictness takes
> in PHP.  I'm sure I'm not alone and many people second this feeling.
> 
> 
> Precisely, let's have a look at the following:
> 
> [EMAIL PROTECTED]:~/build/php-5.2-debug$ cli 
> -d"error_reporting=8191" -r 'class c{function f(){}} class d 
> extends c{function f($a){}}'
> Strict Standards: Declaration of d::f() should be compatible 
> with that of c::f() in Command line code on line 1
> 
> [EMAIL PROTECTED]:~/build/php-unicode-debug$ cli 
> -d"error_reporting=8191" -r 'class c{function f(){}} class d 
> extends c{function f($a){}}'
> Fatal error: Declaration of d::f() must be compatible with 
> that of c::f() in Command line code on line 1
> 
> 
> I *really* think that this enforcements are no good idea and
> I _beg_ you that we leave this "area" to interfaces.
> 

Not sure why this is necessary, why doesn't

Class C 
{
     function f() { } 
}

Class D 
{
     private $c;
     function __construct(C $c) { $this->c = $c; }
     function f($a) { }
}

work, with PHP's duck typing?

Jared

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

Reply via email to