Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:120057 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 86419 invoked from network); 17 Apr 2023 20:13:33 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 17 Apr 2023 20:13:33 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id C2F0E18054A for ; Mon, 17 Apr 2023 13:13:32 -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,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 17 Apr 2023 13:13:32 -0700 (PDT) Received: by mail-wm1-f47.google.com with SMTP id gw13so14409039wmb.3 for ; Mon, 17 Apr 2023 13:13:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1681762411; x=1684354411; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=uzXPjCqU7j/CjbyeH6iyAae/JI7R3cI4r1c+NgfZFZI=; b=FS7p36EL7gYJEev8KPpTkVyqg2ruX0YGeNw/O0h7HW8ZRSEXgwSCSS6NpgjNfLIgBt uAnxwaReyryJWifI7i9T5P35VIoYASxjWJAC60H8IdU7UAiVS3tRwM+xInC+sf5oCPOW +yjuAXe+13yWlet5rCwOLq9450QbCAO3/BOJKO9bPsKZVpRP9RYTt00W8GTXHmvogEO6 +zoZO4FniBrSg6ZhsVI4Zerd2J8lXmkIIEqfhWqLQVNFDBKWwxEg2Q1Br2cfmqtPebBg CUxmnTXH0+zFI5Fh73kag1z+vi+IQyYWEkmrOoNIH2/XdGZAXw1WUrACyzepdmbsEPWB /PqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681762411; x=1684354411; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=uzXPjCqU7j/CjbyeH6iyAae/JI7R3cI4r1c+NgfZFZI=; b=HZ9HLtuXeNrhNCSTIpl0C3GAeL1YAo861JXpgstmFJTwBesZl7UjUv4e7lZJNp+4NA GnZ95E77erUrzwfHRE9vdSFNO+MGHwTXaKK21PTDAHB0hGE71V6uIadOwZgSJ8qFBXfl 2r2V4bXhHAn2q4/GJtgeoYxJKXkh3LO62XDtInmKT8FMxgPbZ++hRd9m51uj6FRnohgE BwbL5oBOXJkqR9v0WAkHoAiC/g2e1611xvyP440VJzTkmzhFCI/bKr73fzNqXULOSxAw 0BP1Gs66iFtp2K5EhtLnpUYdy/Ru7p0r8qHwP686nmarjT+erl3K52XAajFDyG+D93Nu Y3Tg== X-Gm-Message-State: AAQBX9f4bAeGLvRJHHoA96h1SiTZVK0bIiijQV2H0pFcEkd4KshCyK8o pKs0BT7QDwtUi1bG1/rP0blKtNOMHFMZ0PdBiJA= X-Google-Smtp-Source: AKy350bUsuEt27cLx8GXtys9B5ARgFRQmOIDX2Q6eSqIo/FoMvXe+LU4fArJIrwc4huIWTetxSCVRiqrQSllQkd6fS0= X-Received: by 2002:a7b:c012:0:b0:3ed:2e02:1c02 with SMTP id c18-20020a7bc012000000b003ed2e021c02mr11068322wmb.23.1681762410784; Mon, 17 Apr 2023 13:13:30 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Mon, 17 Apr 2023 22:13:19 +0200 Message-ID: To: =?UTF-8?Q?Micha=C5=82_Marcin_Brzuchalski?= Cc: =?UTF-8?B?TcOhdMOpIEtvY3Npcw==?= , PHP Internals List Content-Type: multipart/alternative; boundary="000000000000176c3f05f98dd399" Subject: Re: [PHP-DEV] [RFC] [Discussion] Clone with From: fekzol.13ker@gmail.com (=?UTF-8?Q?Zolt=C3=A1n_Fekete?=) --000000000000176c3f05f98dd399 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hey, > public function withStatus($code, $reasonPhrase =3D ''): Response > { > return clone $this { > $this->statusCode =3D $code; > > $this->reasonPhrase =3D $reasonPhrase; > } > }; How to refer to any of the properties of the current instance? Let's say this: ``` class Foo { protected int $code; protected string $message; public function withStatus($code, $message): Foo { return clone $this { $this->code =3D $code; // so far so good // Which $this->message is what? $this->message =3D "cloned: (" . $this->message . ")" . $messag= e; } } } ``` > Thanks for your efforts and for bringing that up. > I am curious if possible to implement the feature without using `with` > keyword > it visually could look pretty close to something like an object initializer > in the future: > > return clone $this {c: 1}; > return new Bar {c: 1}; Similarity is not necessarily always good. Regards, Zolt=C3=A1n Fekete --000000000000176c3f05f98dd399--