Seeking 'coalesce' php internal function

From: Date: Wed, 03 May 2006 05:56:41 +0000
Subject: Seeking 'coalesce' php internal function
Groups: php.internals 
Request: Send a blank email to internals+get-23101@lists.php.net to get a copy of this message
All, I'm sure this has been asked somewhere, but since I see requests for features for 5.2 or 6.0, I'd like to add a "simple" item to the list which would be quite useful to me and would simplify and clean up a lot of code out there: function coalesce(...) This works much like in the SQL version of the same. In SQL, the function returns the first non-null argument from an arbitrary list. In our use, it should return the first non-empty value from the list: Example: $x = "dante"; $y = ""; $z = ""; $value = coalesce($z, $y, $x); // $value = "dante" This function would ideally be built into the language and bypass warnings about undefined variables like 'empty' does. It might be nice to have several varieties of this function: * return first parameter where empty() is FALSE * return first parameter where isset() is TRUE I don't think something like this can NOT be written in userspace because the 'isset' and 'empty' checks need to be run before arguments can be passed to a user function or warnings will start flying. A function like this simplifies code which used to look like this: if (!empty($_POST["postkey"])) {
       $value = $_POST["postkey"];
} elseif (!empty($_GET["getkey"])) {
       $value = $_POST["getkey"];
} elseif (!empty($default_value)) {
       $value = $default_value;
} else {
       $value = "hard coded value";
} Into this: $value = coalesce($_POST["postkey"], $_GET["getkey"], $default_value, "hard coded value"); Can this be built and included? Dante

« previous php.internals (#23101) next »