Название получилось корявое, но лучше не придумалось)
Вот смотрите. Есть функция
function foo($a, $b, $c)
{
echo $a . $b . $c;
}
И есть массив, в котором содержатся аргументы для этой функции
$vars = array('cat', 'dog', 'sheep');
Можно как-нибудь запустить эту функцию с этими значениями так, чтобы напрямую их не вставлять?
Т. е. можно ли написать какой-то универсальный код, который сможет зная название функции запустить её с аргументами, которые прилагаются в массиве? Т. е. этот код должен уметь запускать разные функции с разным количеством аргументов.
Когда яваскрипт передает серверу данные для сохранения, то очень долго каждой переменной присваивать имя, потом писать это имя при защите переменной, потом писать это имя при передачи аргументов в функцию. Легче яваскриптом все запихать в простой массив, передать его серверу, потом его кинуть функции, которая все эти переменные разом защитит, и, зная название конечной функции, вызовет её, подставив все аргументы. Можно сделать, конечно, чтобы ф-ция foo сразу принимала массив, но это будет как-то не очень красиво.
Вообщем что-то типа того
$args = '';
foreach ($vars as $value)
{
...
}
В итоге
$args = "'cat','dog','sheep'";
foo($args);
win!
Только
foo("'cat','dog','sheep'");
не пашет, функция думает, что ей передают только один аргумент из трех.