Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113524 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 75320 invoked from network); 14 Mar 2021 22:15:47 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 14 Mar 2021 22:15:47 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 9BB7D1804D0 for ; Sun, 14 Mar 2021 15:09:08 -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=-2.1 required=5.0 tests=BAYES_00,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-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (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 ; Sun, 14 Mar 2021 15:09:08 -0700 (PDT) Received: by mail-ej1-f50.google.com with SMTP id ox4so47477460ejb.11 for ; Sun, 14 Mar 2021 15:09:08 -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=k370T5n1mI6d9qtGKLTV+6sVe+hck0BEnryjyQxo8U8=; b=i//4twJGGP9fV5ZPgBjv8fa8ecAu+pb4uJa5QZypKekISKbYnIFqVIV27J5s4UErE/ Kt/fKbe7qqwTbY3XZFSD6oLcPJP76Vh7CIBFNLUMCy+UPIhabk8jfkXvw3Y8/UeENGMY Wl20n4nhTFfZh2bLhvtSQTbOapUa+1GhfqrQCShrLSW/yTG5zu9pRQcBfIGY6XJ9cE08 5vJskNVfSSxgczUUSI5Jv+LkRfO9tpdXkkr5+D15sBb0CbSW0EDPfgWW7FT6nHU7e4od 4zoC46V6HZGsAJ7X23Omwi+QUlLug+lNLzbLpkacqQJfv6SOU+ZOKtrFrZ0FVROFN+QS N5mA== 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=k370T5n1mI6d9qtGKLTV+6sVe+hck0BEnryjyQxo8U8=; b=I58ClkfzvfiB+4sLqjOIaPGhzgP/dH5IgRj/6yqz5Sj+E0Mx47Z4qv89rW2GuZ+k22 6LLPQ3G8YIAHmIj+1GCB6xbEx5mGRisru4EXacTYwGgMGT0B+XOVLyMHOmvpBtq/wTjK klRYJFQXP9NqVvcwrNW4DLd8dIGxOjFYufDVyNsQT3COFvoKmkhaofW99SYKQj/sH166 hCaqdw3xXfLVgowNHibzONc2a7TEXTrlnVQ764Tem5vUiL4cZP653c0/bwO8Ho6e9TZg iRq/F1mTap3kSD5ZvGR+YDaguyOKr5bbs3Wt9hTUQith08GdKrtZQao4Q365Pltsuk5l MNcA== X-Gm-Message-State: AOAM532c5C0jmztABchMBmOyHaDF75vn6wIblxh2cFKCU8tg0kGiheYV ksT82QfCXP8F2CDj89c+/vqDMJ0ZgtI= X-Google-Smtp-Source: ABdhPJzD17DzsNZrenLUTIt4PestrmrK3shBdOJC+VevkEsUwGbRWYTluyWiskD4RwRWlqqaJQO6fA== X-Received: by 2002:a17:907:3e8c:: with SMTP id hs12mr20453695ejc.105.1615759743852; Sun, 14 Mar 2021 15:09: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 t27sm6283543ejc.62.2021.03.14.15.09.03 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 14 Mar 2021 15:09:03 -0700 (PDT) To: internals@lists.php.net References: Message-ID: Date: Sun, 14 Mar 2021 22:09:02 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Subject: Re: [PHP-DEV] [RFC Proposal] Allow methods to 'become' static From: rowan.collins@gmail.com (Rowan Tommins) On 14/03/2021 19:40, Matthew Brown wrote: > It's maybe possible in the special case of implementing interfaces, but > it's unsound for general inheritance: > > > class A { > public int $someInt = 0; > > public function getSomeInt() : int { > return $this->someInt; > } > } > > class B extends A { > public static function getSomeInt() : int { > return parent::getSomeInt(); > } > } Can you explain what this is illustrating? Right now, it doesn't compile, but that's what Gert was suggesting be changed, so the 3v4l link isn't very enlightening. From the point of view of the contract of the class, it's fine: $foo->getSomeInt() is still a legal call if $foo is actually an instance of B. Are you saying that having the parent::getSomeInt() call fail would be problematic? Regards, -- Rowan Tommins [IMSoP]