Re: ifsetor(), goto, 5.x, my two cents

From: Date: Thu, 09 Jun 2005 13:33:07 +0000
Subject: Re: ifsetor(), goto, 5.x, my two cents
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-16580@lists.php.net to get a copy of this message
It will be difficult to define the check for such a coalesce function that everybody agrees on. Personnally I like the !empty test, but would want it to check on != 0 too. Most probably my favourite check would be something like: !empty($foo) || (string)$foo !== '' Someone else might want this function to check only with is_null or isset or any combination of is_null, isset, empty and (string)$foo !== ''. I do hope this kind of functionallity is added to PHP at some time but I'm pretty sceptical about the way such a function would behave. Ron Korving wrote:
I must say, I like the coalesce() idea a lot. It gives more flexibility over ifsetor() which sounds to me like it only handles 1 variable that is or isn't set. coalesce() would handle any number of variables. Here's something else to consider though: Would anybody be interested in a parameter for ifsetor() or coalesce() that would use !empty() instead of isset() ? If coalesce() would become the function name of choice, you can't drop in a parameter to achieve what I just said, so an alternative function would be better in that case (or maybe it would be better in any case). I know I'd love to see some variant like this. I use empty() a lot more than isset(). Ron "Noah Botimer" <noah@botimer.net> wrote in message news:ECDCEE8D-2160-46B7-BF84-AB163E477707@botimer.net...
Hello all, Now that my PHP-DEV imap folder has cooled off a bit, I'd like to chime in briefly on ifsetor() and goto. As far as ifsetor() goes, I like the concept. I would, however, suggest a specific behavior and a name change. I do a lot of database code and use things like ISNULL() and COALESCE() to translate NULL values to 0's, placeholder strings, etc. ISNULL() typically provides a check of one value, and acts just as a ternary operation: value = check ? check : alternative; while COALESCE() usually returns the first non-null parameter, or NULL if all are parameters are NULL. Since PHP already supports arbitrary/optional parameters natively, I think a single coalesce() function would be a very reasonable extension that would behave in an understandable and desirable manner (with a name that matches at least some common usage). As for goto, we may be fighting over nothing. There is a lot of abuse that may be done with goto, as has been illustrated but, with a couple of sensible limitations, the horrific problems should be averted. It also seems to me that GOTO is far less often mentioned to beginners as a means of flow control since line-numbered BASIC has faded. People who get into trouble with it will likely have a good reason to be playing with fire. I say: put it in, label it dangerous, and let the developers decide if it's right for them. Thanks, -Noah Botimer


« previous php.internals (#16580) next »