Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113965 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 1106 invoked from network); 5 Apr 2021 20:11:20 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 5 Apr 2021 20:11:20 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 01E961804B3 for ; Mon, 5 Apr 2021 13:10:10 -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_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (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, 5 Apr 2021 13:10:09 -0700 (PDT) Received: by mail-ed1-f41.google.com with SMTP id dd20so6603508edb.12 for ; Mon, 05 Apr 2021 13:10:09 -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=/3ZOY6KrI6+yg0JhplKI5U1IDCgifS9OFTfwznPxX6Y=; b=JsVqsQkkh3BHuG1LHUqVcrH+8TGZt6m6WW4YdwVRwoCHV6jx9Or6LOqFp324DpkeB8 MyZUboPoedpjlkQl6JoURw2znYUlOAxwdf0KO0cST3A4vQ1uJToHCYRvr1J1JEK5puwv 1ICwnWBSLtbER0+omPEUuTQ5LcFNEeBgYgq0lKuIfvDmGVV85iXIpKxL7TS/LSA4lEzn D1tW4B8P1CJdnzn5rf3z+SQiQcEAxK0HaK9It8ycAtZNZEROW5U6XNHx4JjeiqOpFVow 534l7tXvyaLu47eNKwuEgzL/UaCCEO37nEWLT8Njf6M+S2BtWUGjX65I3Xe9+dZ+yBCE 1K2Q== 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=/3ZOY6KrI6+yg0JhplKI5U1IDCgifS9OFTfwznPxX6Y=; b=JYEX61Glrg026pwCvmUpVusLdtf2ufisGLhT+1fz4/n6TCVQ1FYKJs0Cssu+8bwaGQ JUhgiOEBNVd80XaeoeMRtbB9rXUglYGMqsawYJt+AxhMKlwDajjDuzlLISkH/wp1XTtT fItXvZuqkbB5WYNOADjG2BQyjy7HozPzpub7kcf64o3EHXuZ9X8GZiUDejgjg836gYjN qgMdllGhB+jPgmInalczoFSySGwrmZZYN/BsNOwc+MgGb6P9nPnvdUAsDTnlFVbNODl5 YqKOpzfpJlrxiclt5kng9iladsBS0vOosI/VBh0HeS68t4+1PtKy5+KwhflxLWXewxLD G3ag== X-Gm-Message-State: AOAM532UN9fwiRtteYOiWb7JPvKQqmz4T/BZJMTyDW/dZqmTlorz2N8k HfnmrHOtn7J3RXh5DJUheNDnztMcyMA= X-Google-Smtp-Source: ABdhPJyeJL8JG4rhIVovNFYpDJcXty0gm3sgChpRFxuQhmcARB88f2wasxVlBQpX5RYJkjk4SkcgDQ== X-Received: by 2002:aa7:d3ca:: with SMTP id o10mr33506518edr.374.1617653408199; Mon, 05 Apr 2021 13:10:08 -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 ka11sm1370429ejb.43.2021.04.05.13.10.07 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 05 Apr 2021 13:10:07 -0700 (PDT) To: internals@lists.php.net References: <0b8301d72a3a$71045ca0$530d15e0$@webkr.de> <55DEACD7-E0E8-45AD-84F2-A98D8AEEDC4D@newclarity.net> <0ba001d72a55$187ab280$49701780$@webkr.de> Message-ID: <06b9663f-1495-1eb7-973f-bb24b062b393@gmail.com> Date: Mon, 5 Apr 2021 21:10:09 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: <0ba001d72a55$187ab280$49701780$@webkr.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB Subject: Re: [PHP-DEV] Raising the precedence of the new operator From: rowan.collins@gmail.com (Rowan Tommins) On 05/04/2021 20:51, André Hänsel wrote: > Note that in that bug entry the solution was based on the premise that `$obj = new $foo->bar();` was valid code, which > it isn't. (https://3v4l.org/lpN1T) Looking at the error message, that code parsed as valid, but failed at run-time, because it was looking for a property $bar, not a method bar(). Working version: https://3v4l.org/S9gLf It's equivalent to: $className = $foo->bar; $obj = new $className(); I think this means that just changing the operator precedence would be a compatibility break, and we would need to allow a more restricted version, as discussed on that feature request. Regards, -- Rowan Tommins [IMSoP]