- 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;
}
vectoroc 05.03.2011 15:32 # 0
Но достается только значение. Может знает кто, как это реализовать?
mindfreakthemon 05.03.2011 15:50 # +1
Lure Of Chaos 05.03.2011 19:40 # 0
mindfreakthemon 05.03.2011 19:42 # 0
Lure Of Chaos 05.03.2011 19:45 # 0
mindfreakthemon 05.03.2011 19:48 # 0
http://www.php.net/manual/en/language.references.return.php
Lure Of Chaos 05.03.2011 19:51 # 0
mindfreakthemon 05.03.2011 19:52 # 0
но никак не &somefunc($myarg)
Lure Of Chaos 05.03.2011 19:54 # 0
mindfreakthemon 05.03.2011 20:02 # +1
возврат по ссылке работает только если:
1) сама функция помечена как возвращаемая ссылку
2) её возвращаемое значение является не выражением, а переменной
3) сам приём возвращаемого значения функции тоже написан как передача ссылки.
если какой-то пункт не выполняется, то функция работает как без амперсанда (при невыполнении только 2 notice выкидывается).
bugmenot 06.03.2011 04:01 # 0
Lure Of Chaos 06.03.2011 19:50 # +1