Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:94284 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 83369 invoked from network); 27 Jun 2016 15:46:55 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 27 Jun 2016 15:46:55 -0000 Authentication-Results: pb1.pair.com smtp.mail=andreas@heigl.org; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=andreas@heigl.org; sender-id=unknown Received-SPF: error (pb1.pair.com: domain heigl.org from 195.191.240.18 cause and error) X-PHP-List-Original-Sender: andreas@heigl.org X-Host-Fingerprint: 195.191.240.18 hos109.unaxus.net Received: from [195.191.240.18] ([195.191.240.18:50147] helo=hos109.unaxus.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 49/37-40393-D6A41775 for ; Mon, 27 Jun 2016 11:46:54 -0400 Received: from [212.185.30.151] (port=55916 helo=wdv-hg-0C07-zX4090-HeiglAndreas.local) by hos109.unaxus.net with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.87) (envelope-from ) id 1bHYkL-000dcW-NP; Mon, 27 Jun 2016 17:46:49 +0200 To: bishop@php.net References: <5d2a68ac-ccd8-59a9-31a8-91e40ecae12f@heigl.org> <500b1edb-ab52-da1e-5874-0fafa5dd8a7f@heigl.org> Cc: =?UTF-8?Q?Karl_Pfl=c3=a4sterer?= , PHP internals Message-ID: Date: Mon, 27 Jun 2016 17:46:49 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms090102020004050301090603" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hos109.unaxus.net X-AntiAbuse: Original Domain - lists.php.net X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - heigl.org X-Get-Message-Sender-Via: hos109.unaxus.net: authenticated_id: a.heigl+heigl.org/only user confirmed/virtual account not confirmed X-Authenticated-Sender: hos109.unaxus.net: a.heigl@heigl.org Subject: Re: [PHP-DEV] Possible Bug with Interface, Constants and Inheritance From: andreas@heigl.org (Andreas Heigl) --------------ms090102020004050301090603 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Am 27.06.16 um 17:41 schrieb Bishop Bettini: > On Mon, Jun 27, 2016 at 11:31 AM, Andreas Heigl wro= te: >=20 >> Am 27.06.16 um 15:28 schrieb Karl Pfl=C3=A4sterer: >>> Andreas Heigl writes: >>> >>>> Am 27.06.16 um 15:01 schrieb Karl Pfl=C3=A4sterer: >>>>> interface I1 { const C1 =3D '';} >>>>> class C3 implements I1 { const C1 =3D 'c2';} >>>>> $c3 =3D new C3; >>>>> var_dump($c3::C1); >>>> >>>> According to https://3v4l.org/jIcs6 it looks like that's intended >>>> behaviour ;) >>> >>> But why does it work in the CLI if I write the code (instead of using= a >>> script)? That's my question. >> >> It doesn't. At least not on my machine. This is the output I get: >> >> $ php -v >> PHP 7.1.0alpha2 (cli) (built: Jun 24 2016 13:50:28) ( NTS ) >> Copyright (c) 1997-2016 The PHP Group >> Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies >> >=20 > Technically, this is a different version than reported. Nonetheless, on= the > same version my REPL complains as well, I suspect because the original > report misspelled the INI setting ("-ddispplay_errors=3DOn", notice the= > double "p"): >=20 > $ php -v > PHP 7.0.7 (cli) (built: May 28 2016 08:26:36) ( NTS ) > Copyright (c) 1997-2016 The PHP Group > Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies > with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend > Technologies > with Xdebug v2.4.0, Copyright (c) 2002-2016, by Derick Rethans >=20 > $ php -a > Interactive shell >=20 > php > interface I1 { const C1 =3D ''; } > php > class C3 implements I1 { const C1 =3D 'c2'; } > PHP Fatal error: Cannot inherit previously-inherited or override const= ant > C1 from interface I1 in php shell code on line 1 > PHP Stack trace: > PHP 1. {main}() php shell code:0 >=20 >=20 >=20 >> So it crashes with a fatal error when Implementing the interface. It'S= >> interesting though that the script allows me to instantiate the class >> nonetheless. That's right. >> >=20 > Under normal interpretive operation, the Fatal terminates the script. B= ut > in the case of the REPL command line, those are swallowed up and you ca= n > keep going. Same as like: >=20 > php > foo(); > PHP Warning: Uncaught Error: Call to undefined function foo() in php s= hell > code:1 > Stack trace: > #0 {main} > thrown in php shell code on line 1 > PHP Stack trace: > PHP 1. {main}() php shell code:0 > php > echo 'hi'; > hi >=20 > I'm not seeing any bugs here. Thanks for the info. What I find strange is that I can instantiate the class "C3" even though the declaration of the class is broken. I wouldn't say it's a bug, but interesting. Cheers Andreas --=20 ,,, (o o) +---------------------------------------------------------ooO-(_)-Ooo-+ | Andreas Heigl | | mailto:andreas@heigl.org N 50=C2=B022'59.5" E 08=C2=B0= 23'58" | | http://andreas.heigl.org http://hei.gl/wiFKy7 | +---------------------------------------------------------------------+ | http://hei.gl/root-ca | +---------------------------------------------------------------------+ --------------ms090102020004050301090603 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC BawwggWoMIIDkKADAgECAgMPT+kwDQYJKoZIhvcNAQENBQAweTEQMA4GA1UEChMHUm9vdCBD QTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNp Z25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcwHhcN MTQwNzIzMDkzMjQ5WhcNMTYwNzIyMDkzMjQ5WjBcMRYwFAYDVQQDEw1BbmRyZWFzIEhlaWds MSAwHgYJKoZIhvcNAQkBFhFhLmhlaWdsQGhlaWdsLm9yZzEgMB4GCSqGSIb3DQEJARYRYW5k cmVhc0BoZWlnbC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCn6XLcWFLD vAXgllUikBAU2Rv63m7ZKP+ZU/2HTWDW0BJ2muK7GD3cGZxbKKosO6l6PSqqmLqUJ8G6b/85 iPQmNL5z+LG/+wt/p31SOMAWc5UA7CJAQ9pivUCcV+Yt0LzoxWO5ME2rEZ/ioB2tXMilkJLM U4f5A9m3YZVSKj3xbM7rIpQEZiK0TrZ4MchTwPMdAwBLBxCoAztcg4Yj4qKd+IQLff0Ldhc5 3tc9b+XT7YzWLY5rQKHE+hKqIAdvYfqqKQZFHBBXptSXUXBeYK5a4UT0fpnMP7toqr/9mLlK +FvDNeVwSo5I/abiqdek1lH0/xwYy9im8k4SRtLTAp7hAgMBAAGjggFUMIIBUDAMBgNVHRMB Af8EAjAAMFYGCWCGSAGG+EIBDQRJFkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUgZm9y IEZSRUUgaGVhZCBvdmVyIHRvIGh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZzAOBgNVHQ8BAf8EBAMC A6gwQAYDVR0lBDkwNwYIKwYBBQUHAwQGCCsGAQUFBwMCBgorBgEEAYI3CgMEBgorBgEEAYI3 CgMDBglghkgBhvhCBAEwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vb2Nz cC5jYWNlcnQub3JnMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwuY2FjZXJ0Lm9yZy9y ZXZva2UuY3JsMC8GA1UdEQQoMCaBEWEuaGVpZ2xAaGVpZ2wub3JngRFhbmRyZWFzQGhlaWds Lm9yZzANBgkqhkiG9w0BAQ0FAAOCAgEAlG1bUuar9u5ONtedFR7UHp7MNa5Lnu+VzQ6IQAg+ ghXlHdLqU2V2R8BaWCFlaCCkGqX8Od5Z0XpAKfHlfbVMV7vRZBqhnzwe28+QqcI47pzawaBo DFNjS138orZEOPW88S8JcTsoUfy57U7z/4tSjYwCFKmLFQLLPWt/TzhrPWCgdg5PANSTELnH YGy5cA66pbGRp9B/ofHOpAxW4mQPGPEcXHZpkkna4034PkPKGyGg24YTqS+0zVPrXiEemKY8 f7vuSnvnHTQc61Ubk091UGI0dUUJeEncEDR1G5uTzTLdk+5/J6O2CA3gpCMjmAdly7p2WzrX 9LEWJ5f+VvkE/NzerPZyOdC1HTRvQAHkpxewyg4u8MHjBhakVXBLzOVSoEOd6ttSvquSyUU/ 1hhDuKZaz3kBnGpyhlnY3ZqN7mhF15XcD//C8kKAe6rDF7+asKIQV59GAkyeTSBGFt0eceqQ bD/gcGWWfPZK6jTLVFvr1eXERLF9MPoA0+JdfpzjfC9shfVfAjLBI97MGKzpXBR8B9GT+ieY yUM101/vsb6mne6nTtj9cIf74S4T6yEFL5+Oi2JsVDgh0mSKNiFLfZvLFJOfyF2KctGIS1Jv mjJU8CznFdd7Z9psgoaXk2HwvgJXkfKBCW1RdrzdyXrGVymqEyGVqiG5gZ0iC1ZfFRcxggOx MIIDrQIBATCBgDB5MRAwDgYDVQQKEwdSb290IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNh Y2VydC5vcmcxIjAgBgNVBAMTGUNBIENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG 9w0BCQEWEnN1cHBvcnRAY2FjZXJ0Lm9yZwIDD0/pMA0GCWCGSAFlAwQCAQUAoIICATAYBgkq hkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNjA2MjcxNTQ2NDlaMC8G CSqGSIb3DQEJBDEiBCDbiI4m2IEtSuxkFYmVvO/vmhs0X3K+W9T3suMZ8o3p9zBsBgkqhkiG 9w0BCQ8xXzBdMAsGCWCGSAFlAwQBKjALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDgYIKoZI hvcNAwICAgCAMA0GCCqGSIb3DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGRBgkr BgEEAYI3EAQxgYMwgYAweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3 dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJ KoZIhvcNAQkBFhJzdXBwb3J0QGNhY2VydC5vcmcCAw9P6TCBkwYLKoZIhvcNAQkQAgsxgYOg gYAweTEQMA4GA1UEChMHUm9vdCBDQTEeMBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3Jn MSIwIAYDVQQDExlDQSBDZXJ0IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJz dXBwb3J0QGNhY2VydC5vcmcCAw9P6TANBgkqhkiG9w0BAQEFAASCAQAv8Odq4UA1yX4M+iB6 78m1DAjr0SxBeOkeAjKEXJ0sqA2LnFwLtlMB6GOGkbfC3KAFN/+oqHro1sFXIASoQsyfr2Xl me+hmhgqIz3cC3t86eR7lz4eMIhXzzXvnqBV50Cut7+d+7uNYE9isBPTpzuIjZ7jbao11FY8 OKrFNrjpCVmmdFCstfEpW2NTVy+Aa2AdVQAxI78bSWmHOdw/iMOXoazJlc6UvS+KNNJjhtQi UIlP7RHuFWEcUVuL9IqeEdHFOd3+efqBYYsHSc0pEPLicIqgJevU4j5siR/uYxF0xeXYDazV WDJFYEhAW1/mIrWsOm8KGb9/Aru18sMuUOYDAAAAAAAA --------------ms090102020004050301090603--