Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:125219 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 963421A00D4 for ; Sun, 25 Aug 2024 15:43:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1724600696; bh=0aNF9nFufuR4qz8S16QNbGJ5SZKSGby/zDkW6ZKvfqk=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=JCMgH7Zq/Hqku1xLrkqPf7PZeLMPQ8gg59jJESx6htsQR3sTNp2bdpvFpSFFXhn0I UTZud8q8cW8BdlK5up3uX+it5NuDQrkl9Zdy/oVyFgGi/jlb0LNbXMJhvQ6ZLcBEyF ljtXHSsV1iyAiKN24xGnhUXzBSjgBauzE9gDLXgGhHqHM+U1HbiGgYGXNWYTlTUrgM S0phuxzdgXK4X/zHbcP8F2s9kTpMdomLNDgDmXXqLFc2v8flG4nL2qEOHHHfZ9G7L6 qpqRtlkW2O335uEOVGXpGdsm8KkUyUCa1YXsqHgbgDrkc6u7tECBr93Padq0aIVy8J 2atgMnTpERSUA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 99CE51804BC for ; Sun, 25 Aug 2024 15:44:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DMARC_MISSING,HTML_MESSAGE,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sun, 25 Aug 2024 15:44:51 +0000 (UTC) Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-371a6fcd863so1898469f8f.1 for ; Sun, 25 Aug 2024 08:42:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=scriptfusion-com.20230601.gappssmtp.com; s=20230601; t=1724600578; x=1725205378; darn=lists.php.net; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=OpmfPlVIhidVpFu/Iq16oKb82I1hWT2pDBUqh5S3X8U=; b=vBuf+Ye7F1nJkinugqKjWs230cqGF/PCDw9obf0BxGseeL6mhhkLplbXxTGa8UqM/O KkHMZnQTEEUTIzXgUpLDsuk2Gogc9olb8lmNngXs17qqWKx2qKiNQ5+2xHdQZ8OnC38t yYefV/xjlMfrK2tB5Ig03i+9xz/lOGL4i5E2KmGAqc/6dwUCUjlQoYVRRCy1gOjnPM1+ 4BGRCUyyVELPiq6psSzI1U+PjOayUyECbIRGIklWTzfBqJptDBPsR1rK8Zc8KSX2Bbtl 2Kf4eC7Y5OljnrFo894WcNMoxbx+MkPEaqNuYWPCsXhjp1HFlRYPzbwVQmFe4vehbkEV EvBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724600578; x=1725205378; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=OpmfPlVIhidVpFu/Iq16oKb82I1hWT2pDBUqh5S3X8U=; b=HZxfSBmA3L6nLtMi7NGUUAjxsf7771O4FEZLPdNym2yWab+D11Fi36z4katjyuN6fO kjgFWj0e98hhQx6nzAqZehQVxMsKKZXATuh0bwaf87NHOuHf0JPfvz7jx/3HL5LDMF5X GTWvLBSP1kxv4uIiLLkii+uy1vnpepq5nqWT4NMfh5gK6GAvzbkh3FOUA4LluZVQe6XU 0tOppv+qFfOlOyCej8VuaDrHuEzQjh4pdKbOTdYHo+2TXcWXPLBYrhQMYl5kgvhq80rx m5NaZ/Pocy+fg3aXt7F0ta/8DkUIqTUwXloWqJfqoq6830VycsFWjL6GIxqxW9W0rL0z fGow== X-Gm-Message-State: AOJu0YwiLTeeiOwh8VrAd77b8iuC2+WpvVFOq14fe5X46mgS2AYZBfyZ ACbZIYVpypdkJ5cSFdLHgE7kZcFPw76ucr/IUenTnPa4e2dxsIVOa45Drk4vHgz6ofUhdhut2wL ZzL0= X-Google-Smtp-Source: AGHT+IHk8JEfwavTubaQm+0pv1vUPzlqpa7wjXL8we4i3CT69PQmKptvofGZjwmu8lfEey7QVE/wxg== X-Received: by 2002:adf:e10d:0:b0:371:9388:2cdd with SMTP id ffacd0b85a97d-3731185877fmr4443996f8f.17.1724600578022; Sun, 25 Aug 2024 08:42:58 -0700 (PDT) Received: from ?IPV6:2a01:4b00:bf09:5101:c4b4:d418:3b87:bff1? ([2a01:4b00:bf09:5101:c4b4:d418:3b87:bff1]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-37308265ae6sm8760328f8f.109.2024.08.25.08.42.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 25 Aug 2024 08:42:57 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------9Oj7C4nWlU2KzdAlQY7ra50r" Message-ID: <27d1f7d2-da99-475f-b2f6-d07efba76b68@scriptfusion.com> Date: Sun, 25 Aug 2024 16:42:56 +0100 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] [RFC] Default expression To: John Coggeshall Cc: "internals@lists.php.net" References: <0c8ed5d6-5507-4c41-8d7f-05d14ba8aa4c@scriptfusion.com> Content-Language: en-GB In-Reply-To: From: bilge@scriptfusion.com (Bilge) This is a multi-part message in MIME format. --------------9Oj7C4nWlU2KzdAlQY7ra50r Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 25/08/2024 15:04, John Coggeshall wrote: > Other thoughts here are what happens when |default| resolves to an > object or enumeration or something complex? Your original example had > |CuteTheme| , so can you call a method of |default| ?? I could > entirely see someone doing something like this for example: > > enum Foo:string { >     // cases > >     public function buildSomeValidBasedOnCase(): int { // ... } > } > > F(MyClass::makeBasedOnValue(default->buildSomeValidBasedOnCase())) As you have written it, no, you will get a parser error: Parse error: syntax error, unexpected token "->", expecting ")" However, you can wrap the `default` in parens as in the following example: class C {     function F() {         echo 'lol';     } } function G($V = new C) {} G((default)->F()); // lol --------------9Oj7C4nWlU2KzdAlQY7ra50r Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
On 25/08/2024 15:04, John Coggeshall wrote:
Other thoughts here are what happens when default  resolves to an object or enumeration or something complex? Your original example had CuteTheme , so can you call a method of default ?? I could entirely see someone doing something like this for example:

enum Foo:string {
    // cases

    public function buildSomeValidBasedOnCase(): int { // ... }
}

F(MyClass::makeBasedOnValue(default->buildSomeValidBasedOnCase()))

As you have written it, no, you will get a parser error: Parse error: syntax error, unexpected token "->", expecting ")"

However, you can wrap the `default` in parens as in the following example:

class C {
    function F() {
        echo 'lol';
    }
}

function G($V = new C) {}

G((default)->F()); // lol

--------------9Oj7C4nWlU2KzdAlQY7ra50r--