Re: Re: Function proposal: varset

From: Date: Wed, 20 Apr 2011 23:39:36 +0000
Subject: Re: Re: Function proposal: varset
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-51967@lists.php.net to get a copy of this message
On Wed, Apr 20, 2011 at 11:50 PM, Mark <markg85@gmail.com> wrote: > On Wednesday, April 20, 2011, D. Dante Lorenso <dante@lorenso.com> wrote: >> On 4/20/11 9:55 AM, Mark wrote: >> >> Hi, >> This proposal is for the often called line like this: >> $var = isset($_GET['var']) ? $_GET['var'] : ''; >> Only a shorter and imho a cleaner solution to get the same: >> $var = varset($_GET['var']); >> >> The implementation for this in PHP code is this: >> >> # Arg 1 = the variable to check for existence >> # Arg 2 = the default return value which is an empty string by default >> >> function varset($var, $default = '') >> { >> return (isset($var) ? $var : $default); >> } >> >> >> I proposed something similar over 5 years ago.  It ain't gonna happen because PHP >> language can't support it.  The Zend engine needs to be rewritten to remove the warnings and >> that's not something they are volunteering to do no matter how much people want it. >> >>   http://markmail.org/message/yl26ebzcix35wtke >> >> My proposal was called "filled" since it was the opposite of "empty" >> which already existed.  I extended the function to return the first non-empty value or null if all >> values evaluated as empty. >> >> You could use the function like this: >> >>   $x = filled($_GET['x'], $obj->something, $default, 'default'); >> >> It would return the first argument where !empty($arg) evaluates as TRUE. >> >> There would need to be a companion function to check 'isset' opposite as you have >> proposed. >> >> Like I said, though, I don't think this can be done in the language because I think >> they ran out of OPCODES and would have to tear apart the whole PHP engine to support such a feature. >> >> -- Dante >> >> -- >> PHP Internals - PHP Runtime Development Mailing List >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> > Hi, > > well, i did propose 2 possible ways although the second one is a > little longer but still clean and readable. > And the second one is certainly possible to implement! > > Btw. i did look at the suggested core php code parts and even though i > can do nearly everything in php.. i have a hard time understanding how > the inner php parsing things actually work. There is no way i'm able > to make a patch for php. > > Regards, > Mark > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > Hi, As Hannes said, the other thread discussing this feature (although the subject line may suggest otherwise) is still active, so please move this discussion there: "[PHP-DEV] Implicit isset/isempty check on short-ternary operator" Cheers, Arpad

« previous php.internals (#51967) next »