A 'missing' PHP primitive?
| From: | Josh Stern | Date: | Wed, 09 Nov 2016 15:02:59 +0000 |
| Subject: | A 'missing' PHP primitive? | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-325828@lists.php.net to get a copy of this message | ||
Hi, I'm wondering if there is any built-in PHP primitives to perform the same task as this simple, almost trivial function:
function get(&$var) {
return $var;} ? It is useful for accessing arrays where some fields may be unset. For example: ************************************************ <?php function get(&$var) {
return $var;} $arr = array(); $arr[5] = 'sam'; $arr[2] = 'chris'; $arr[3] = null; $fromGet5 = get($arr[5]); $fromGet1 = get($arr[1]); echo "Value of fromGet5 is $fromGet5\n"; echo "Value of fromGet1 is $fromGet1\n"; $fromGet5 = 'fred'; echo "Value of fromGet5 is now $fromGet5\n"; echo "Value of arr[5] is still $arr[5]\n"; ************************************************** Assigning the value directly, without the function, as in <$fromGet1 = &$arr[1]> transfers the value & the reference, which is undesirable & likely to lead to hard to detect bugs. Assignment without a reference generates errors for undefined array keys. The inline code (isset($arr[1]) ? $arr[1] : NULL) is cumbersome to keep typing over & over again & logically might be less efficient since it appears to fetch arr[1] twice, though there may be some hidden optimization. It seems like there should be a built in primitive called 'get' or 'ifset' that does this task. Wondering how others handle this issue & what I might be missing...