Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:11007 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 24887 invoked by uid 1010); 8 Jul 2004 23:49:19 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 24863 invoked by uid 1007); 8 Jul 2004 23:49:19 -0000 Message-ID: <20040708234919.24862.qmail@pb1.pair.com> To: internals@lists.php.net Date: Thu, 08 Jul 2004 19:48:55 -0400 User-Agent: Mozilla Thunderbird 0.7.1 (Windows/20040626) X-Accept-Language: en-us, en MIME-Version: 1.0 References: <5.1.0.14.0.20040708191525.023e7ff0@mail.ionzoft.com> In-Reply-To: <5.1.0.14.0.20040708191525.023e7ff0@mail.ionzoft.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Posted-By: 130.58.81.153 Subject: Re: [PHP-DEV] what happened to that new isset() like language From: contact_marcos@yahoo.es (Marc Richards) Jason Garber wrote: > The original reason that I asked for this functionality was to make it > significantly easier to work with E_ALL error reporting. When I say > easier, I mean by reducing duplicate code. > > //This > $foo = (integer) ifsetor($_POST['foo'], 0); > > //Instead of > $foo = (integer) (isset($_POST['foo']) ? $_POST['foo'] : 0); > > It was also to be useful for accessing array elements that may or may > not be there. > > I strongly agree with Ramsus that ?: is far to close to the ternary > operator and would prove to be *highly* confusing to beginners. I don't think it would be *highly* confusing to someone who has already used a ternary statement. If they haven't then even a ternary statement would be confusing. In either case I think good documentation would be important. I am still on the fence about the asymmetry in that one tests isset() while the other doesn't > Marcus made an excellent point about the 2 versions of the function: > 1) $a = ifsetor($b) > 2) $a = ifsetor($b, NULL) > See my response to Marcus' post > By the way, I'm not stuck on ifsetor() as a name, but > a) the name should be short and clear > b) the construct must be called with function like syntax > > > Marc, > I must ask, why are you so opposed to the function() syntax? There has > been quite a few reasons stated against the operator syntax, but I > haven't heard any reason why we should not go with the function() syntax? > I am interested in the new construct for the exact same reason, E_ALL development. I am intersted in the ?: operator because it looks alot simpler, especially if you want to chain them together: $user = $_SESSION['user] ?: $_POST['user'] ?: $local_user ?: NULL; I am not even sure if marcus' patch allowed you to nest multiple ifsetor() calls...either way, my main goal is simplicity. I am not just trying to be contentious, I am actually interested in a good solution. Marc