Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:11009 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 72896 invoked by uid 1010); 9 Jul 2004 00:02:26 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 72872 invoked from network); 9 Jul 2004 00:02:25 -0000 Received: from unknown (HELO theta.altoona-pa.com) (209.161.72.28) by pb1.pair.com with SMTP; 9 Jul 2004 00:02:25 -0000 Received: from ionzoft-jeg.ionzoft.com (dpvc-207-68-114-163.alt.east.verizon.net [207.68.114.163]) by theta.altoona-pa.com (Postfix) with ESMTP id 2C1ED159D2 for ; Thu, 8 Jul 2004 20:02:25 -0400 (EDT) Message-ID: <5.1.0.14.0.20040708195434.0236e378@mail.ionzoft.com> X-Sender: izftjason@mail.ionzoft.com X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Thu, 08 Jul 2004 20:02:29 -0400 To: internals@lists.php.net In-Reply-To: <20040708234919.24862.qmail@pb1.pair.com> References: <5.1.0.14.0.20040708191525.023e7ff0@mail.ionzoft.com> <5.1.0.14.0.20040708191525.023e7ff0@mail.ionzoft.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: Re: [PHP-DEV] what happened to that new isset() like language From: jason@ionzoft.com (Jason Garber) Hi Marc, To be honest, I don't care at this point. As long as we have something implemented in 5.1 for allowing PHP users to simplify working in E_ALL error mode. This thing: a) it has to base it's decision on the same logic isset() uses b) it should not evaluate the second part unless it is needed c) it should not be confusing This reminds me of the instanceof keyword. What about using something like that? $foo = $bar setor $baz; If that could be implemented, it may be a way to consider. It would a) be easy to recognize b) be easy to chain them together c) not be confusing d) have a short, concise, CLEAR name Comments? Sincerely, Jason Garber At 7/8/2004 07:48 PM -0400, you wrote: >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.