Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:98650 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 77293 invoked from network); 28 Mar 2017 11:43:14 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Mar 2017 11:43:14 -0000 Authentication-Results: pb1.pair.com header.from=ocramius@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=ocramius@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.220.179 as permitted sender) X-PHP-List-Original-Sender: ocramius@gmail.com X-Host-Fingerprint: 209.85.220.179 mail-qk0-f179.google.com Received: from [209.85.220.179] ([209.85.220.179:34645] helo=mail-qk0-f179.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 28/71-61593-25C4AD85 for ; Tue, 28 Mar 2017 06:43:14 -0500 Received: by mail-qk0-f179.google.com with SMTP id d10so56616295qke.1 for ; Tue, 28 Mar 2017 04:43:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ZqLrbxdrEorqJWE6V19gq9bhfqWb3xp6HEhuie07L1o=; b=DKaiN8laoDfkS4ayyEivj+6hYj/L9ODvJRJ4OBZIC3BxSveMDR/HhgjZOQzA9MRAxr YRbyJxjX0XFJR4NlSIPZBDWGbjg7+Z1uNBhGvGd3fLHVOYR3yezj8AR5lGy04Rz1ulWh VA6gj6ZJpUJP/+YlYYlMD6Q4GUdbIGG7T0BrEWv7acbOxRrtb655C8VCvNRGUKfu4H2/ NXbKnJHCm9kCTSdRkkqYPVHtW/4Qn58AqWQ1E6wgJ95YPjA71qZZtExuOAt8pt2t5e2Y /XZC9xd5BeaqBQTrn81ozOiBrdoK8MnPQtaHUXIQ0gaa0I6F++M5ZyhqXS3g+zzKkY2u 9dOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ZqLrbxdrEorqJWE6V19gq9bhfqWb3xp6HEhuie07L1o=; b=KFDEY/FHrvyOL7dGp6ht2XIl9VBKYFHedQvabVpzKpfxVQDvfYIPuCo3DhmhEsgyMk JTOE9D2Y5kMd4TzD4KP7DQ2LcHTD7+7LwLYv2w49LzoNPUWjqeTJ9TmG8j5PYW3uVW1g X2zsyLpyMQc8QQmAbwTOTK/PB+OC55Q0BE6QrWLTtt5yt4GXIKRwOb3sLaskWqEb6fCs UhXnxv15MrXEFtz37M0GnFma9Lmh8G94PAeIMPej0d/THkNmAKKXbtxRjH8HDsjKDwLd kJISDxX1UMCSfqpYlFSyib+kSEaWoidJAbdzM89qYfz1QvxBkVCAqaeZouRs2H8thP6e 8Tgg== X-Gm-Message-State: AFeK/H3kxXgNOdMvZyZIKT9F3+lr18JjCQ1cFGOuxzi/bSQbgNTi2jYfkGt96UKGn06f98CHTqSYJrEsG04qYg== X-Received: by 10.233.222.69 with SMTP id s66mr27253000qkf.126.1490701391287; Tue, 28 Mar 2017 04:43:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.237.44.70 with HTTP; Tue, 28 Mar 2017 04:43:09 -0700 (PDT) Received: by 10.237.44.70 with HTTP; Tue, 28 Mar 2017 04:43:09 -0700 (PDT) In-Reply-To: References: Date: Tue, 28 Mar 2017 08:43:09 -0300 Message-ID: To: Wes Cc: PHP Internals List Content-Type: multipart/alternative; boundary=94eb2c0438e8e4dda3054bc8f681 Subject: Re: [PHP-DEV][RFC][VOTE] Allow abstract function override From: ocramius@gmail.com (Marco Pivetta) --94eb2c0438e8e4dda3054bc8f681 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hey Wes, On 28 Mar 2017 02:14, "Wes" wrote: Yes, yes you are :D Quick reminder:=E2=80=8B ```php interface iA { function bar(stdClass $x); } interface iB extends iA { function bar($x): stdClass; } // OK class cA { function bar(stdClass $x) {} } class cB extends cA { function bar($x): stdClass {} } // OK in 7.2 abstract class cC { abstract function bar(stdClass $x); } abstract class cD extends cC { abstract function bar($x): stdClass; } // Fatal error: why? class cE extends cD { function bar($x): stdClass{} } ``` What is this useful for, precisely? Also, I really never saw the need for re-defining the signature in multiple abstract inheritance levels (a single abstract class=E2=80=8B already smells in most scenarios). --94eb2c0438e8e4dda3054bc8f681--