Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:75551 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 94142 invoked from network); 15 Jul 2014 16:14:55 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 15 Jul 2014 16:14:55 -0000 Authentication-Results: pb1.pair.com smtp.mail=smalyshev@sugarcrm.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=smalyshev@sugarcrm.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain sugarcrm.com designates 108.166.43.107 as permitted sender) X-PHP-List-Original-Sender: smalyshev@sugarcrm.com X-Host-Fingerprint: 108.166.43.107 smtp107.ord1c.emailsrvr.com Linux 2.6 Received: from [108.166.43.107] ([108.166.43.107:59687] helo=smtp107.ord1c.emailsrvr.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id B5/C2-15121-F7355C35 for ; Tue, 15 Jul 2014 12:14:55 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp6.relay.ord1c.emailsrvr.com (SMTP Server) with ESMTP id BE9718074D; Tue, 15 Jul 2014 12:14:52 -0400 (EDT) X-Virus-Scanned: OK Received: by smtp6.relay.ord1c.emailsrvr.com (Authenticated sender: smalyshev-AT-sugarcrm.com) with ESMTPSA id 644348070D; Tue, 15 Jul 2014 12:14:52 -0400 (EDT) X-Sender-Id: smalyshev@sugarcrm.com Received: from Stass-MacBook-Pro.local (108-66-6-48.lightspeed.sntcca.sbcglobal.net [108.66.6.48]) (using TLSv1 with cipher DHE-RSA-AES128-SHA) by 0.0.0.0:465 (trex/5.2.4); Tue, 15 Jul 2014 16:14:52 GMT Message-ID: <53C55342.1010207@sugarcrm.com> Date: Tue, 15 Jul 2014 09:13:54 -0700 Organization: SugarCRM User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Rowan Collins , "internals@lists.php.net" References: <08503591-EFC8-48E6-984E-FFC292C5EA5F@ajf.me> <16D48604-0C0A-4613-91A4-21392E3A2636@ajf.me> <05CE2216-C5D9-4937-9F2E-AA1407284D9F@ajf.me> <53C460DF.5040304@sugarcrm.com> <53C53A96.2040303@gmail.com> In-Reply-To: <53C53A96.2040303@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Scalar Type Hinting With Casts (re-opening) From: smalyshev@sugarcrm.com (Stas Malyshev) Hi! > The answer - which is definitely a matter of opinion - is that allowing > any string reduces the usefulness of the type hint. IMO, having consistent rules is much more, orders of magnitude more important than serving any particular use case. We will always have use cases in which any particular check would not be enough. We should not sacrifice the simplicity of the language to try and capture every one of them. > In fact, I'd find the behaviour more obvious if it were written > some_func((bool)$foo & BIT_FLAG) - it makes clear that some_func is not > itself aware of the flag, that's just the caller's way of making the > decision. That the type hint encouraged that would therefore seem like a > Good Thing. What you want is strict typing then. And if() working the same way - after all, if function can be unaware of the flag, if() is definitely unaware of it. So you'll always have to write if(($foo & BIT_FLAG) != 0). Some would say it's an improvement. I am not among them. If you want to enforce code style, we already have tools for that, but I don't think this particular one should be in the language. -- Stanislav Malyshev, Software Architect SugarCRM: http://www.sugarcrm.com/