Something I've been doing for a long time is similar, but in my opinion a much
better practice.
function coalesce(&$val, $ifnull = false)
{
return empty($val) ? $ifnull : $val;
}
Add whatever restrictive logic you wish here, if empty() isn't good enough for
your purposes.
$_GET['mightnotexist'] = coalesce($_GET['mightnotexist'], 'default');
Personally, I think if you're writing your code where a variable's existence is
ambiguous, you *should* be seeing notices.
On Apr 11, 2011, at 2:08 PM, Todd Ruth wrote:
> I'm not arguing whether the following code fragment is good
> or bad (it's certainly less than ideal), but given the recent
> threads, I thought I'd show how I feel I've been encourage by
> php to code:
>
> <?php
> $x = array();
> $y = 'something';
> $temp =& $x[$y];
> $temp++;
> unset($temp);
> ?>
>
> I'm not sure where (if anywhere) that technique is documented
> or even if it should be documented, but if you want to avoid
> "Undefined index" notices, that's one of the more terse
> approaches. The relative brevity is more obvious when the
> variable names are long and $temp is re-linked several times
> before unsetting. It's probably less clear than alternatives
> unless you see it often.
>
> Here is an application to the defaults for configurations thread:
>
> <?php
> $config = array();
> $param = 'param1';
> $temp =& $config[$param];
> $temp = $temp ?: 'default';
> unset($temp);
> var_dump($config);
> ?>
>
> It isn't beautiful, but it avoids writing "$config[$param]"
> more than once and it avoids the notices.
>
> - Todd
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php