Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:109182 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 82207 invoked from network); 21 Mar 2020 20:32:26 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 21 Mar 2020 20:32:26 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id EF1481804F3 for ; Sat, 21 Mar 2020 11:56: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.8 required=5.0 tests=BAYES_00,BODY_8BITS, DKIM_SIGNED,DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8560 212.227.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 21 Mar 2020 11:56:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584816962; bh=UHio6Q0kkA49YRa0edecbaie/kVL56Zz967QoQ0hOKw=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=Hqu1WWUPVCH6EGPLKcl6Ce5Ym0dAgyUqIhtq5wG88lO9c86LQtJpaz3V+RSFiuGwP PlOWTl8oq0gmUsMufzDc3Y5iQ0asjMUbCnY4/m6xMI6Pfncr1usf8OuYCIArUi4kKN e0zGNulbbGUDio8W86jEEi5+qSnrHFqn8hoOrPY8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.130] ([84.179.237.201]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M5wLZ-1jDHFh2klH-007TlN; Sat, 21 Mar 2020 19:56:02 +0100 To: Andrea Faulds , internals@lists.php.net References: Message-ID: <3fec91f8-02a9-35c0-b2d6-dab62a34469f@gmx.de> Date: Sat, 21 Mar 2020 19:56:02 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:KrDCLDHrzdF2sQiPl5Bkq+/JGZzQlUMifM/mazKeFazTwEdQa9K HhOOkF0HDL7ID5ky1Y366lSwefN9Sb2S938IuB56TWuaECGgrv4KBMY9CeTo6afHgMr7XB8 CADRuNxkUAaylFRa9V1X0ic50Z7ye0ITvXMA3GhxujC/T5g1/fNfMi+r207m6stax/l4Hl6 As9DulBGZzmz6lRo/BUFg== X-UI-Out-Filterresults: notjunk:1;V03:K0:+zrU1ij+MyM=:J9GOou6irORbQgUH+qdRr4 kXj70RCCHiW91LzyCZ7oxVqZ5EYs6sIh5QHsOwc/TzkNjAeRMQYGl5KX1Rqa/e48NMjmma5MV V5DruBqTFRtyqv2cn/yehmI831NcgSFERh+TYJfx+zWvi3kgBBPXpNjSi4Fpp8gN6M6rELCfW f1V1VLdZOB5eeS54N5q9jk7vO/ncs+8g6ZaU3ADQ1IuzFiprJuRFsa4LK7grCSQTrrWYYgM47 8JpxLvMxq/SVvQbg7BHO7T2ZtuTEh2CseOkkYDjuyONqWjn1YOh/YKwqR46glqVu8EocRHcun C8DJAmpcPUtG+hnsqLZnGsT5Z2Atq20LZoV/iYa38+Nlt575f1sNMw7zJeqamaUWttCGK/1al /F7Bt/WhoiUnPCfJtga1pBBhlofRSsNvEW8BXP2DZI6pjHtyVbAmCjOMSgP53QGaSjnmd2P0R eYVTbbR+ejFaVhp8pOpTKN/lwmB7Ge9W9sXzTGKTAPf68uOP8/3FntxfgNOXQOQtW3NmHZGF8 3cwuPzL0ik0KILku/Gb31NxOcFIffU3V3HGez5yCuTabfyERUeUhaykGTJkNIofxoWYr+hSO4 W/ryoMZQ4dZCIGYW8qOZQmKbrv58N5ShpBzBzwmVAPdSC9AQaUlRNdXiQUBOS6hlU2CPmXLjN I9KOyYra1QbrTamm4o+TxcE2oCVPo583QKW8PTMhZ2E/xOb0RpYlrzdudChPzpkVttZ8ruusN HEdSPmG3xySjj+NWLvb9G0n/gJFrtGda3G1GSz3rat+s/YGaow6tmPB1313aRuQiD0/gKzC4h Ld/nqhtchgjF1AeHrHNPFScAuZw/h93cxNMlUT19v+tsUhX+PsJR6jNq+MPCuMM0fGtgUxu6t CQzH4cygSqiwpwNKSvzNt9PVC6oJzF9YnGwS9/4hnYr13MWBSACMNLAHc1Am1u+Fncaqae9nx A1oxirM2c7yuqt2hpWvuDJgQRw8kpga2JMWt33bu8NTgG3IKoduoKEFyZZI8veepzdio4ZLnb nz1jfUHmfgzFCGY7c/FL66Rb1SlESdCHbRTZEw+dEiku8bcqtdgOAtjIj1HUyK8NKTMAdPqsR q4GQ5UB/7cMi/TpOK6GS0PY11pFiCqyG3A76chUoz+zcHDiErrjxZ/sdtNb1VUGajFvQ/Yu3z IxZwXyjW2dpY6dmehhw/tQcEw0pgnzOcFgjo/DXkE5IWLXgOWYFDTt46A0J5o327Hv7fBcUuo FJ22iKal8j4Eyf3E2 Subject: Re: [PHP-DEV] [RFC] [DISCUSSION] Compact Object Property Assignment From: cmbecker69@gmx.de ("Christoph M. Becker") On 21.03.2020 at 19:31, Andrea Faulds wrote: > However, we don't have to be so imaginitive and adapt a similar feature, > because C# already has the exact feature you are proposing, and calls it > =E2=80=9Cobject initialisers=E2=80=9D: > > =C2=A0=C2=A0=C2=A0 Foo foo =3D new Foo { > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bar =3D 1, > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 baz =3D 2, > =C2=A0=C2=A0=C2=A0 }; > > (I am again assuming the call to the constructor has no arguments. If > there are arguments, they go before the opening `{` in C#.) > > I am neutral on whether it's a better or worse syntax than using `->`. > > Side-note, C# even supports a special kind of anonymous classes with > =E2=80=9Cobject initialisers=E2=80=9D: > > =C2=A0=C2=A0=C2=A0 var foo =3D new { > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bar =3D 1, > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 baz =3D 2, > =C2=A0=C2=A0=C2=A0 }; > > I think PHP won't need this given `new stdClass {` would work perfectly > well, although it would be nice to have a shorter and prettier > alternative to the current `(object)[`. > > Anyway, thanks for proposing something I have wanted for ages but never > gotten round to implementing. :) This is exactly what the recently declined Object Initializer RFC[1] proposed. :) [1] =2D- Christoph M. Becker