Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117444 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 82222 invoked from network); 29 Mar 2022 11:50:07 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 29 Mar 2022 11:50:07 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 530BD1804C3 for ; Tue, 29 Mar 2022 06:18:20 -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,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS62371 185.70.40.0/24 X-Spam-Virus: No X-Envelope-From: Received: from mail-40131.protonmail.ch (mail-40131.protonmail.ch [185.70.40.131]) (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 ; Tue, 29 Mar 2022 06:18:18 -0700 (PDT) Date: Tue, 29 Mar 2022 13:18:13 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1648559896; bh=lbc4iz5LtM2GBwygVdIWuEwVowGbVvVFOKChahezpx8=; h=Date:To:From:Cc:Reply-To:Subject:Message-ID:In-Reply-To: References:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID; b=cnD/WjDsce/DZUzmzFv3WQC74sT/bCNVoQHeUBOx1Ahcc/A7WElw3B2KPsYR/bqsW Rv/+JRVVUyNH2AJ2cNKCnl9fPPArhRDVR2miK/8bXOimuZj/T3yehyVcFps4W3wYVM DWnBSvanLw6O8cE2UiAVPckpaldw5MNvs39jSJn5esqJ1ZD/Ntbzh+qD3ENNoF4vkE debmdXWBCqhIgT7fRXjiklA8H3xjM0xaVSnxY2DZfV+2sm2tzfYssnmfZ6rXu47a7a VyyYsWYuZOYzJ5+e5ap1Mb/+jUASZupMgFxNO7ziGJgdqt6YwJFUWeB4OtntsW9nXI 5AT8LbzaZYZZw== To: Karoly Negyesi Cc: "internals@lists.php.net" Reply-To: Saif Eddin Gmati Message-ID: In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg=pgp-sha256; boundary="------4b2bd333ee8f8f3c80eee6c92df724449d5209ed93b8603c6b27cd3cd413dcc3"; charset=utf-8 Subject: Re: [PHP-DEV] instance version of match ? From: azjezz@protonmail.com (Saif Eddin Gmati) --------4b2bd333ee8f8f3c80eee6c92df724449d5209ed93b8603c6b27cd3cd413dcc3 Content-Type: multipart/mixed;boundary=---------------------edf668d9803fa9de1226c01e059c6b5d -----------------------edf668d9803fa9de1226c01e059c6b5d Content-Transfer-Encoding: quoted-printable Content-Type: text/plain;charset=utf-8 On Tuesday, March 29th, 2022 at 12:55 AM, Karoly Negyesi wrote: > Hi, > = > May I suggest adding a little "instanceof" magic to match? Like this: > = > match ($object) { > = > Someinterface =3D> 'foo', > = > AnotherInterface =3D> 'bar', > = > } > = > this can not clash with any existing code as using identifiers like this > = > are a syntax error currently. > = > Currently you could do the same with > = > match (true) { > = > $object instanceof Someinterface::class =3D> 'foo', > = > $object instanceof AnotherInterface::class =3D> 'bar', > = > } > = > Indeed, the former could be considered syntactic sugar for the latter. A= nd > = > I do not think there's any ambiguity here for the casual reader or is it > = > just me who thinks no other sensible reading is possible? > = > Thanks for your consideration. > = > Karoly Negyesi Hi Karoly, As mentioned by Bruce, this syntax is already valid, therefor, it can't be= used. what you are looking for is pattern-matching, see "`match()` enhancement" = section in the RFC: https://wiki.php.net/rfc/pattern-matching Regards, Saif Eddin Gmati. -----------------------edf668d9803fa9de1226c01e059c6b5d-- --------4b2bd333ee8f8f3c80eee6c92df724449d5209ed93b8603c6b27cd3cd413dcc3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: ProtonMail wsFzBAEBCAAGBQJiQwb3ACEJELAOCkaz8cFXFiEEOazMpP0wDQTIQG6zsA4K RrPxwVcN6xAAnAx0tRh8J7OCSRujdTdUitPWIY4KGC2zcpqCPYldNMstIQjS +K8f0nT4sqRQX3SM//g+1AYD/EffdmVc2cHRKeWcvzr+fGK2NO+eJ0e/dHTu E8aGP4KYjcHUd5RKaLRzv8ZtXT8vQeZabJoyrIQlnj0NJdvTflh8h3fU8hhl dW/PKI9jYITmpyE7lxlnqGqAPnGgxOzi0/W96VbvPDhi6qPb2sHKN6cc0612 vdHJVy0HWN9hbuIe2kBE0IFHc1aoBIs/Dcs+mv5cNZTqhjPmTEZvSKnty3D4 uURsTHC06szZHxvBXjBz3qYxen0qh161OzxCBBKwLSsQzVSNC+3zt6DBnZwF wAeiAOZCt9CuhG+C2sq+XWs3bVDrrsetTR6Eay2OASeRqjAW2UFvKO8BJ2um G1Kj5+aNYdwVgSjotcRK7rPSAHOd7n/570FUqb0MppY/1kgPMZSex/utpWmy 4oVmOCshhqMNSxeVS8WEYJDZwo56CBsl78xuf8AfLV0hlifFf8eyzMVdhrEZ FhmGeCXz3pkjl53/gGZMSeozf7mCbftLVrLympBEc/lhFuKSA17ULCzxgQPW Ztl33CJzVRDFuMrpAVcKtXTWfJMItIkd/0fG59SBIMblw+89weDsYulw3IgO X3/6AfFBHOT7xu1Sw1R6ajkcu/Wkg/KpbUc= =Z/Ln -----END PGP SIGNATURE----- --------4b2bd333ee8f8f3c80eee6c92df724449d5209ed93b8603c6b27cd3cd413dcc3--