Intereting Posts
Загрузка изображения с URL-адресом в Codeigniter Как точно знать, будет ли FastCGI использоваться для запуска скриптов php Javascript / jQuery: загрузка файла для загрузки Продолжающаяся серия символов в строке, как разбить ее на определенную точку, например, 30 символов в php PHP Преобразование в int как исправить Неопределенная переменная: коллабораторы в domPDF в Laravel Как загрузить php-скрипт в div с jquery ajax? PHP – Вызывающие функции с несколькими переменными Измерение максимального использования памяти PHP Не получать eMail Laravel 4 Auth перенаправляет всегда на страницу входа? /авторизоваться Drupal 7 FAPI – добавление элементов формы для проверки или отправки обработчиков PHP 5.4: почему классы могут переопределять методы признаков с другой подписью? Найти символ до или после строки, используя preg_grep () в PHP Laravel 4: Лучшая практика для подбора входных данных перед валидацией

PHP-функция Аргумент массива

Можете ли вы сделать что-то сумасшедшее, как это

function cool_function($pizza, $ice_cream) { make the arguments in the array into an array return $array_of_paramaters // my new array } // end function print_r(cool_function); // outputs array(0 => pizza, 1=> ice cream) 

На самом деле это довольно просто (и прочитайте руководство: func_get_args – возвращает массив, содержащий список аргументов функции, также смотрите: списки аргументов переменной длины ):

 function cool_function($pizza, $ice_cream) { return func_get_args(); } 

но как спросили в комментариях, зачем вам это нужно?

Или вам нужны имена переменных? Reflection Docs – ваш друг:

 function cool_named($neutron, $electron) { $f = new ReflectionFunction(__FUNCTION__); $p = array(); foreach($f->getParameters() as $p1) $p[] = '$'.$p1->name; return $p; } var_dump(cool_named()); 

Или просто оба? ( Изменить: учитывайте параметры длины, длины, длины и длины):

 function overall($neutron, $electron, $quark = 'xiaro') { $f = new ReflectionFunction(__FUNCTION__); $defined = $f->getParameters(); $passed = func_get_args() + array_fill(0, count($defined), NULL); foreach($defined as &$param) $param = '$'.$param->name; return array_combine($defined + array_keys($passed), $passed); } var_dump(overall('clara', 'peter', 'moon', 'jupiter')); 

Я не уверен, что вы ищете func_get_args которые возвращают все аргументы, переданные функции, или класс ReflectionFunction .

Основной пример func_get_args:

 function cool_function($pizza, $ice_cream) { return func_get_args(); } 

Но вам не нужны аргументы, чтобы сделать эту работу:

 function cool_function() { return func_get_args(); } // cool_function(1,2,3) will return array(1,2,3) 

Опция отражения:

 /** * Returns an array of the names of this function */ function getMyArgNames($a,$b,$c) { $args = array(); $refFunc = new ReflectionFunction(__FUNCTION__); foreach( $refFunc->getParameters() as $param ){ $args[] = $param->name; } return $args; } 

Или, для действительно сумасшедшего:

 /** * Returns an associative array of the names of this function mapped * to their values */ function getMyArgNames($a,$b,$c) { $received = func_get_args(); $i = 0; $args = array(); $refFunc = new ReflectionFunction(__FUNCTION__); foreach( $refFunc->getParameters() as $param ){ $args[$param->name] = $received[$i++]; } // include all of those random, optional arguments. while($i < count($received)) $args[] = $received[$i++]; return $args; } 

ты имеешь ввиду

 function valuesToArray($value1,$value2){return array($value1,$value2);} 

Если бы я добрался до вас, вам это понравилось:

 function cool_function($pizza, $ice_cream) { return array($pizza, $ice_cream); } 

но вы могли бы просто сделать это:

 $new_var = array($pizza, $ice_cream);