Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:24805 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 16857 invoked by uid 1010); 21 Jul 2006 09:04:50 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 16842 invoked from network); 21 Jul 2006 09:04:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Jul 2006 09:04:50 -0000 X-PHP-List-Original-Sender: lsmith@php.net X-Host-Fingerprint: 212.112.227.169 ipx11223.ipxserver.de Linux 2.5 (sometimes 2.4) (4) Received: from ([212.112.227.169:46180] helo=ipx11223.ipxserver.de) by pb1.pair.com (ecelerity 2.1.1.3 r(11751M)) with ESMTP id 00/F1-29121-1B890C44 for ; Fri, 21 Jul 2006 05:04:50 -0400 Received: from localhost (localhost [127.0.0.1]) by ipx11223.ipxserver.de (Postfix) with ESMTP id 93B49DF0181; Fri, 21 Jul 2006 11:47:38 +0200 (CEST) Received: from ipx11223.ipxserver.de ([127.0.0.1]) by localhost (flottensignalgeber [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27161-04; Fri, 21 Jul 2006 11:47:38 +0200 (CEST) Received: from [127.0.0.1] (i577B481F.versanet.de [87.123.72.31]) by ipx11223.ipxserver.de (Postfix) with ESMTP id F2CDCDF000E; Fri, 21 Jul 2006 11:47:37 +0200 (CEST) Message-ID: <44C098AB.8020509@php.net> Date: Fri, 21 Jul 2006 11:04:43 +0200 User-Agent: Thunderbird 1.5.0.4 (Windows/20060516) MIME-Version: 1.0 To: Michael Wallner Cc: internals@lists.php.net References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by somedaemon at backendmedia.com Subject: Re: RfC: rethink OO inheritance strictness From: lsmith@php.net (Lukas Smith) Michael Wallner wrote: > 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: > > mike@honeybadger:~/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 > > mike@honeybadger:~/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. Aternatively there has been the idea of a flag to mark classes that are to follow stricter rules. regards, Lukas