That would satisfy some of the requested feature, but try calling ifsetor($my_array['bad key'], functionWithSideEffects()). Marcus has repeatedly mentioned that the requested feature is hard (bordering on impossible) to implement, but in the requested feature (if I understand it (and it is what I would ask for too :) )), there would be no error for using a key that isn't in the array, there would be no side effect of creating a key in the array, and if the $my_array['bad key'] actually did happen to be non-NULL, the function with the side effects wouldn't get called.
That would be really handy, especially if it could take a variable number of arguments. Using a standard name like coalesce would be nice. BTW, I have no weight around here; just thought I could help clarify, having following this thread with interest... - Todd On Fri, 2004-07-09 at 12:07, Cris H wrote: > Isn't this problem solvable with just a "User Space" function? > > <?php > > error_reporting(E_ALL); > > function ifsetor(&$variable, $alternate = NULL){ > if(isset($variable)){ > $tmp = $variable; > echo('<p>$variable exists.</p>'); > } > else{ > $tmp = $alternate; > echo('<p>no $variable here.</p>'); > } > return $tmp; > } > > // no errors thrown ... > > $nonexistent = ifsetor($nonexistent); > ifsetor($randomNonexistent); > > if($nonexistent !== NULL) > echo('<p>$nonexistent is NOT NULL</p>'); > else > echo('<p>$nonexistent is NULL</p>'); > > ?> > > Because, as Derick Rethans mentioned, arguments passed by > reference will not trigger the Undefined (variable | index) > Notice at the point of the function call, and also PHP's C++ > style default arguments providing the alternate value, surely > the above code would suffice? > > Apologies if I've completely misunderstood (with certainty a > non-zero probability)... > > Regards, > > Cris > > > > > > ___________________________________________________________ALL-NEW Yahoo! Messenger > - sooooo many all-new ways to express yourself http://uk.messenger.yahoo.com -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php