- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
function &_extract(&$array, $path) {
$element = &$array;
while(count($path)) {
$key = array_shift($path);
$element = &$element[$key];
}
return $element;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+158
function &_extract(&$array, $path) {
$element = &$array;
while(count($path)) {
$key = array_shift($path);
$element = &$element[$key];
}
return $element;
}
Но достается только значение. Может знает кто, как это реализовать?
http://www.php.net/manual/en/language.references.return.php
но никак не &somefunc($myarg)
возврат по ссылке работает только если:
1) сама функция помечена как возвращаемая ссылку
2) её возвращаемое значение является не выражением, а переменной
3) сам приём возвращаемого значения функции тоже написан как передача ссылки.
если какой-то пункт не выполняется, то функция работает как без амперсанда (при невыполнении только 2 notice выкидывается).