Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:24804 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 12046 invoked by uid 1010); 21 Jul 2006 08:55:07 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 12031 invoked from network); 21 Jul 2006 08:55:07 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Jul 2006 08:55:07 -0000 X-Host-Fingerprint: 80.123.98.46 unknown Received: from ([80.123.98.46:14889] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.1.1.3 r(11751M)) with ESMTP id EB/71-29121-B6690C44 for ; Fri, 21 Jul 2006 04:55:07 -0400 Message-ID: To: internals@lists.php.net Date: Fri, 21 Jul 2006 10:55:05 +0200 User-Agent: Thunderbird 1.5.0.4 (X11/20060615) MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 80.123.98.46 Subject: RfC: rethink OO inheritance strictness From: mike@php.net (Michael Wallner) 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. Regards, -- Michael