Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113539 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 49651 invoked from network); 15 Mar 2021 14:55:36 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 15 Mar 2021 14:55:36 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 607CF1804D1 for ; Mon, 15 Mar 2021 07:49:07 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,BODY_8BITS, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 15 Mar 2021 07:49:06 -0700 (PDT) Received: by mail-ej1-f42.google.com with SMTP id ci14so66543522ejc.7 for ; Mon, 15 Mar 2021 07:49:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=wrQFv1g+swxG9SkT0EOZ+h12YpGzJrsejA35QHEXEVQ=; b=Yu9w/sr/FbI/gZflxYoPeWmxA1fR7l1YP23rWXYhuoW+ORDT8R9feRUXHA2xaVY1gj KV87btNAANUc45yjyxZjg6pLsDXWxzeyjjMhY5EA36tHdWfI5TXAL6xT2aV0wE5LN2rH 91RCLeR27CzTcMHG37V0x17+CQ4izQRJr83Tkkk4IACUfGdBnBr1LOdLLSOcdGsXkMe0 3rXjATnuTrbrBcFvDGg6f97XPuEgiXtJxlgXp7V5HtYFNjKiIvbQyXJr06jxTGuq/MPp 5C2oOEbUkb5L+hrr1U92LGWHv9NQgv2yi+FPjUBj/QB3fLC/8g+Wbqit8DM7bZw64RhZ b3Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=wrQFv1g+swxG9SkT0EOZ+h12YpGzJrsejA35QHEXEVQ=; b=k9+wHgGKBg/b+yVbJ9j1DFVhpXgq5YXb7zFSODStTuq0psWqmlE6iFxevyt0u3+mQV 4NKF7c0S/+YG99Mb1xHZkSgM3+smOH3miZ0/5k80WyaMRRQtU0UoVaY2XCCzO0Cfam55 ioeLKHH1k5K5m9nnHii5HJYdHPWByJ3BGGWU+ouSuYzFQlDXBARCsEdcnzMjlRGUAaoM gFN3Pr+3GU7anJfkFFXNWzDdpky+0jM4YPCkLL+++k5Zi2Ig/nyk2ksHekheMJW1MP0l qkPRaN8IYeiLwcimDXW+DrP8DCjJSl4fTFKNChqU+sybWvpFDBhiivNx6LuXELccl70G 87mg== X-Gm-Message-State: AOAM530jEstuyQuvSin6ACRMLT5L7Ek+VP0LVLlK/5iiEtMUG9CINHkt z5P3JrdgNChUSFNrwPJ4l0CEkK+UHSk= X-Google-Smtp-Source: ABdhPJwIwcA5x4hd6gEK1yySH/2EBs+BLG9bYzZAZY9RYWaqNlmBCbrCu1hOGt8ch95ZYWzVymNx/w== X-Received: by 2002:a17:906:228d:: with SMTP id p13mr24350303eja.412.1615819743485; Mon, 15 Mar 2021 07:49:03 -0700 (PDT) Received: from [192.168.0.22] (cpc104104-brig22-2-0-cust548.3-3.cable.virginm.net. [82.10.58.37]) by smtp.googlemail.com with ESMTPSA id gx2sm2164463ejc.82.2021.03.15.07.49.02 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Mar 2021 07:49:02 -0700 (PDT) To: Internals References: Message-ID: Date: Mon, 15 Mar 2021 14:49:02 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB Subject: Re: [PHP-DEV] [RFC Proposal] Allow methods to 'become' static From: rowan.collins@gmail.com (Rowan Tommins) On 15/03/2021 13:16, Matthew Brown wrote: > On Sun, 14 Mar 2021 at 18:09, Rowan Tommins > wrote: > > Are you saying that having the parent::getSomeInt() call fail > would be > problematic? > > >  Yes, that's where this becomes unsound – you can call the child > method statically, but the parent call assumes a dynamic instance. This isn't really to do with changing the signature of the method though; it will give you exactly the same error as if you gave the static and non-static methods different names: class A {     public int $someInt = 0;     public function getSomeInt() : int {         return $this->someInt;     } } class B extends A {     public static function getSomeIntStatically() : int {         return parent::getSomeInt(); // This call is invalid; this is currently only reported when the method is run     } } Regards, -- Rowan Tommins [IMSoP]