Вы имеете в виду что-то вроде этого?
<?php
function setData($user, $pass, $host){
return function() use ($user, $pass, $host){
return array($user, $pass, $host);
};
}
//set the data once
$container = setData('test', 'password', 'localhost');
//use the function without passing the data again (and it should be noted, you
//can't set the data again)
var_dump($container());
И вывод:
array(3) {
[0]=>
string(4) "test"
[1]=>
string(8) "password"
[2]=>
string(9) "localhost"
}
Не уверен в вашем случае использования, но для моего примера вывод функции может бытьотформатированный DNS, а также простые массивы.
Как упоминалось в другом месте, func_get_args сделает эту работу с любым количеством аргументов.