воссоздание возвращаемых переменных под тем же именем - PullRequest
0 голосов
/ 11 марта 2011

У меня есть функция, которая возвращает массив переменных. Переменные, которые он возвращает, зависят от того, что нужно вернуть. Например, один раз он мог return array($pet,$color);, а другой раз return array($height,$width,$table);

На принимающей стороне я хочу сделать эти переменные доступными. Если бы я знал, что ожидал $pet and $color, я мог бы сделать что-то вроде

list($pet, $color) = myfunction();

но я не знаю, что функция будет возвращать каждый раз. Так есть ли способ, которым я все еще мог бы воссоздать эти переменные под теми же именами, когда я получаю выходные данные функции?

Редактировать: Я надеялся, что мне не придется делать это, определив ассоциативный массив, в котором имя переменной сохраняется в виде строки в дополнение к самой переменной.

Ответы [ 2 ]

3 голосов
/ 11 марта 2011

Возвращает ли функция ассоциативный массив, например

return array(
    'height' => $height,
    'width'  => $width,
    'table'  => $table
);

Если это так, вы можете использовать функцию extract, чтобы перенести каждую запись в таблицу символов текущей области действия

1 голос
/ 11 марта 2011

Я думаю, что вместо этого вам нужно использовать ассоциативные массивы, поэтому записи будут иметь фиксированные имена, связанные с ними:

array ('height' => $ height, 'width' => $ width, 'table'=> $ таблица)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...