Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92568 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 98662 invoked from network); 20 Apr 2016 19:56:01 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Apr 2016 19:56:01 -0000 Authentication-Results: pb1.pair.com smtp.mail=php@fleshgrinder.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=php@fleshgrinder.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain fleshgrinder.com from 212.232.28.125 cause and error) X-PHP-List-Original-Sender: php@fleshgrinder.com X-Host-Fingerprint: 212.232.28.125 mx204.easyname.com Received: from [212.232.28.125] ([212.232.28.125:45894] helo=mx204.easyname.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 23/C4-14036-1DED7175 for ; Wed, 20 Apr 2016 15:56:01 -0400 Received: from cable-81-173-133-226.netcologne.de ([81.173.133.226] helo=[192.168.178.20]) by mx.easyname.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1asyE6-0007sD-Nl; Wed, 20 Apr 2016 19:55:54 +0000 Reply-To: internals@lists.php.net References: <570EA5EB.8090501@fleshgrinder.com> <570EAB0D.6080706@gmail.com> <570EB67E.8010908@garfieldtech.com> <5B147E88-CC0A-4CBC-A49D-C7FE3BF557C0@zend.com> <6F.C3.12455.94C5F075@pb1.pair.com> <20160414094440.GF19347@phcomp.co.uk> <570FD94F.90703@fleshgrinder.com> <570FE8A9.4020809@gmail.com> <20.53.29891.17401175@pb1.pair.com> <1461145606.7556.11.camel@kuechenschabe> <8D27A75B-E705-49E1-8ACD-B95E4DEDA383@zend.com> To: Zeev Suraski , Jesse Schalken Cc: PHP internals Message-ID: <5717DEBD.2090207@fleshgrinder.com> Date: Wed, 20 Apr 2016 21:55:41 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Db3Gc3Ek2hOg92FQD5mPCdDDBo1OokiNT" X-ACL-Warn: X-DNSBL-BARRACUDACENTRAL Subject: Re: [PHP-DEV] Re: Improving PHP's type system From: php@fleshgrinder.com (Fleshgrinder) --Db3Gc3Ek2hOg92FQD5mPCdDDBo1OokiNT Content-Type: multipart/mixed; boundary="rxST8wXA8EfI8X4ic7NtfMODU55w7QfeO" From: Fleshgrinder Reply-To: internals@lists.php.net To: Zeev Suraski , Jesse Schalken Cc: PHP internals Message-ID: <5717DEBD.2090207@fleshgrinder.com> Subject: Re: [PHP-DEV] Re: Improving PHP's type system References: <570E99AC.3090804@fleshgrinder.com> <570EA5EB.8090501@fleshgrinder.com> <570EAB0D.6080706@gmail.com> <570EB67E.8010908@garfieldtech.com> <5B147E88-CC0A-4CBC-A49D-C7FE3BF557C0@zend.com> <6F.C3.12455.94C5F075@pb1.pair.com> <20160414094440.GF19347@phcomp.co.uk> <570FD94F.90703@fleshgrinder.com> <570FE8A9.4020809@gmail.com> <20.53.29891.17401175@pb1.pair.com> <1461145606.7556.11.camel@kuechenschabe> <8D27A75B-E705-49E1-8ACD-B95E4DEDA383@zend.com> In-Reply-To: --rxST8wXA8EfI8X4ic7NtfMODU55w7QfeO Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable I am not quoting anything because the formatting of your emails is completely off in Thunderbird. However, I want to add one to the list: declare(strict_types=3D1); interface Stringable { function __toString(): string; } function fn(string|Stringable $arg) { $param =3D (string) $arg; } We could add a new *stringable* primitive to PHP though, but do we guys really want to start doing so? There is pretty much an endless amount of combinations and finding names alone is endlessly hard. declare(strict_types=3D1); function fn(int|string $maybe_bigint) { // mysqlnd automatically creates the proper type based on the value. // Expressing this in userland is impossible ... :( } --=20 Richard "Fleshgrinder" Fussenegger --rxST8wXA8EfI8X4ic7NtfMODU55w7QfeO-- --Db3Gc3Ek2hOg92FQD5mPCdDDBo1OokiNT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXF97BAAoJEOKkKcqFPVVrOCUP/2D4pd47pU2pNQpUPBOS40Hk HhEYYAbmhqirxFoEyT0/+B9wR2FVCDIlcauUWEMCZwJZSmbPEWXX8St2+pLIcEWo t6Pw3wIWMizcmAhhk1gK3XiiTgFBjNQpRDsdfUUKYGkXylMa+zDetMNiq5FmSdiD OYsBk+ZPAa/FIQccoFn8SuAZk8ltNnoX7fYdWv+32HbmdhDo8QciaRYDdPm03ztd akmLdJyDAKqjOdutQSDJDCFEacVEGq0A2SZwmMscrxqlbt5+Z4tEd/Ko5rLU6+rq xKIcrf6Ms4POkOnwRBvgNdrdS4a5dB2OaUzW/EmbZ0ar14V1XN3kETxvXV+eWSf0 ujaVJlIxfTsSW5a9ZzbG89B2ECaEeB9Pr3hMuYF1M6kpLrEO1/NX0nmceRokcJxA aAKtSMO+qr6+ULaBM9j1G3dIlKV9kUtjTVRBYFTjTmS0vsOwLLaOd80kAbPhNRRJ xKitL0V7R7OpeU2HRgMD0CYoNd6eWu/oXBh+FgAouDWcXejb9x2LPk2wFWx3xfd2 WwXbFq5+A5mE0gTPvz6DoDklXYnzYlCjYSX0s8ptj0OSAHC2h76s2YMUncl6MVUQ wOB6agemHarUlQWxtmYV+rVmBKujdLMYK4T8yqRCBEduGxeN1muvgw4/yUz7i4qL kfgixT+Xejsgek378Cpa =E8lO -----END PGP SIGNATURE----- --Db3Gc3Ek2hOg92FQD5mPCdDDBo1OokiNT--