Req #67446 [NEW]: Add built-in function for combining isset() with value retrieval
| From: | nate at frickenate dot com | Date: | Sun, 15 Jun 2014 03:57:50 +0000 |
| Subject: | Req #67446 [NEW]: Add built-in function for combining isset() with value retrieval | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-186196@lists.php.net to get a copy of this message | ||
From: nate at frickenate dot com
Operating system:
PHP version: Irrelevant
Package: Arrays related
Bug Type: Feature/Change Request
Bug description:Add built-in function for combining isset() with value retrieval
Description:
------------
The frequency at which an isset() call against an index of an array is
immediately followed by retrieving the value at that index is extremely
common. It would allow for much cleaner code if there were a built-in
mechanism for combining these 2 operations into one, eliminating the
need to type of the full array notation twice.
Test script:
---------------
<?php
// code like this is commonly written; duplication of the
// item $array['foo']['bar']['baz'] is extremely annoying:
$value = isset($array['foo']['bar']['baz']) ?
$array['foo']['bar']['baz'] : 'default';
// some people avoid this by (ugh!) using @ to skip the undefined index
notice:
if (($value = @$array['foo']['bar']['baz']) === null) {
$value = 'default';
}
// what we should really have (though with a better name, not sure
what):
$value = iisset($array['foo']['bar']['baz'], 'default');
// this can already be implemented without risk of a notice in
userland:
function iisset(&$var, $default = null) {
return isset($var) ? $var : $default;
}
// but a php core replacement would make it universal and take less
overhead
--
Edit bug report at https://bugs.php.net/bug.php?id=67446&edit=1
--