Avoiding "Undefined index" notices

From: Date: Mon, 11 Apr 2011 19:08:15 +0000
Subject: Avoiding "Undefined index" notices
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-51868@lists.php.net to get a copy of this message
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

« previous php.internals (#51868) next »