Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:58351 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 88902 invoked from network); 29 Feb 2012 21:10:35 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 29 Feb 2012 21:10:35 -0000 Authentication-Results: pb1.pair.com header.from=zeev@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=zeev@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 212.199.177.89 as permitted sender) X-PHP-List-Original-Sender: zeev@zend.com X-Host-Fingerprint: 212.199.177.89 il-mr1.zend.com Received: from [212.199.177.89] ([212.199.177.89:54091] helo=il-mr1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 30/E8-46815-8449E4F4 for ; Wed, 29 Feb 2012 16:10:34 -0500 Received: from il-gw1.zend.com (unknown [10.1.1.22]) by il-mr1.zend.com (Postfix) with ESMTP id BBF016078E; Wed, 29 Feb 2012 23:08:51 +0200 (IST) Received: from IL-EX2.zend.net ([fe80::6d27:be2c:57f3:272a]) by il-ex2.zend.net ([fe80::6d27:be2c:57f3:272a%14]) with mapi id 14.01.0255.000; Wed, 29 Feb 2012 23:09:55 +0200 To: Kris Craig , John Crenshaw CC: Richard Lynch , "internals@lists.php.net" Thread-Topic: [PHP-DEV] Scalar type hinting Thread-Index: AQHM9Pd1Qp/0dOE4ZEqZmcttXqmL3pZP+wSAgACx+ICAABNzAIAACoQAgAAKyoCAAAvyAIAAFSYAgAAGCQCAAAcOgIAAL6sAgAAAxACAAYR9gIAAAJIAgAABqwCAAAGjgIABTBtA Date: Wed, 29 Feb 2012 21:09:55 +0000 Message-ID: <887FE7CFF6F8DE4BB3A9535F53AFD06AC3152C6C@il-ex2.zend.net> References: <1330357150.2159.30.camel@guybrush> <693e15008681dfe7372eaea66214f8a8.squirrel@www.l-i-e.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [212.199.177.84] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: RE: [PHP-DEV] Scalar type hinting From: zeev@zend.com (Zeev Suraski) Guys, I've followed this thread silently so far, and I'm wondering what changed o= ver the last ~1.5years that warrants a new discussion into that matter. I think the previous discussion ended with a pretty clear directive that st= rict typing has no place in PHP. Rasmus said about the proposal back then = "They aren't hints. It is strict typing and in its current form I would as= k you guys not to call the 5.4 release PHP." - which put in one sentence wh= at several others (myself included) put in many more words. So the 'strong= '/'firm'/'strict'/whatnot version of what is being discussed here, should p= robably not be discussed at all. We've been through it, and rejected it. Back when we rejected strict typing, we also 'killed' the other RFC[*] that= was born out of that old discussion - the 'weak' auto-conversion RFC. If = I recall correctly, it was for two reasons - one was that the proponents of= the strict typing said they'll firmly object weak typing, and the other is= that this RFC still had some issues that didn't seem obvious to hammer out= (main one I recall is that sticking to PHP's standard type juggling rules = meant that feature wasn't very useful, and we didn't feel very comfortable = introducing brand new type juggling rules just for that feature). If you w= ant to revive that discussion, I suggest you take a look at that RFC - conf= ine yourselves to only work on stuff that stands a chance to get accepted (= no strict typing) - and try to come up with good answers to the open questi= ons. No point in redoing the whole discussion from scratch. Zeev=20 [*]https://wiki.php.net/rfc/typecheckingstrictandweak > -----Original Message----- > From: Kris Craig [mailto:kris.craig@gmail.com] > Sent: Tuesday, February 28, 2012 11:58 PM > To: John Crenshaw > Cc: Richard Lynch; internals@lists.php.net > Subject: Re: [PHP-DEV] Scalar type hinting >=20 > Err sorry yes John is correct. I wasn't paying close enough attention. >=20 > Here's *my* vision of how that progression would look: >=20 > $a =3D "1"; // Current kosher unchanged. > weak int $a =3D "1"; // Converts to 1. No error thrown. > strong int $a =3D "1"; // Converts to 1. May or may not throw an error (= I'm still on > the fence). >=20 > $a =3D "blah"; // Current kosher unchanged. > weak int $a =3D "blah"; // Throws E_x error level. > strong int $a =3D "blah"; // Throws E_y error level. >=20 >=20 > Where E_y > E_x. >=20 > --Kris >=20 >=20 > On Tue, Feb 28, 2012 at 1:52 PM, John Crenshaw > wrote: >=20 > > No, In the example given there's an error on int $a =3D "1". There > > should be no error because this juggles fine. > > > > John Crenshaw > > Priacta, inc. > > > > -----Original Message----- > > From: Kris Craig [mailto:kris.craig@gmail.com] > > Sent: Tuesday, February 28, 2012 4:47 PM > > To: Richard Lynch > > Cc: internals@lists.php.net > > Subject: Re: [PHP-DEV] Scalar type hinting > > > > @Richard That's fairly close to what I'm thinking, yes. But there > > seems to be a diverse range of ideas bouncing around right now, so at > > present it's all in flux. > > > > --Kris > > > > > > On Tue, Feb 28, 2012 at 1:44 PM, Richard Lynch wrote: > > > > > On Mon, February 27, 2012 4:34 pm, Kris Craig wrote: > > > > I think this is the main reason for differentiating between "strong= " > > > > (or > > > > whatever word is appropriate) and "weak." The developer may very > > > > well want their script to blow-up in such a case. > > > > > > I believe I actually "get it" now... > > > > > > You want 3 layers: > > > > > > $a =3D "1"; //current kosher unchanged weak int $a =3D "1"; // some E= _x > > > error level strong int $a =3D "1"; // some E_y error level where E_y = > > > > E_x > > > > > > Is that a correct summation? > > > > > > -- > > > brain cancer update: > > > http://richardlynch.blogspot.com/search/label/brain%20tumor > > > Donate: > > > > > > https://www.paypal.com/cgi-bin/webscr?cmd=3D_s-xclick&hosted_button_i= d > > > =3DF > > > S9NLTNEEKWBE > > > > > > > > > > > > -- > > > PHP Internals - PHP Runtime Development Mailing List To unsubscribe, > > > visit: http://www.php.net/unsub.php > > > > > > > >