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" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]

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

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to