Intereting Posts
В чем разница между IMPLODE & JOIN Настройка «Не найденного» поведения маршрутизации Laravel «Явное связывание» Извлечение всех значений между фигурными фигурными скобками regex php Добавить изображение в Facebook с помощью Graph API (позволяет ограниченные фотографии) и добавить еще некоторые функции Доктрина миграции 2 + zend framework 2 = возможно ли это? Каков рекомендуемый способ хранения текущего времени с помощью PHP и MySQL? Ajax-вызов с contentType: «application / json» не работает PHP включает в себя пробел в верхней части страницы Symfony2 + Twig, переменная в переводе возвращает «Сообщение должно быть простым текстом» Установить max_execution_time в PHP CLI Когда следует использовать stdClass и когда я должен использовать массив в коде php oo? Является ли PHP интерпретировать код так же, как JavaScript? PHP Сравнение двух многомерных массивов по ключу и значению Google_Service_Directory – (403) Не авторизовано для доступа к этому ресурсу / api PHP: iPad не воспроизводит видеоролики MP4, поставляемые PHP, но при непосредственном доступе он делает

PHP получает все аргументы как массив?

Эй, я работал с PHP-функцией, которая принимает несколько аргументов и форматирует их. В настоящее время я работаю с чем-то вроде этого:

function foo($a1 = null, $a2 = null, $a3 = null, $a4 = null){ if ($a1 !== null) doSomethingWith($a1, 1); if ($a2 !== null) doSomethingWith($a2, 2); if ($a3 !== null) doSomethingWith($a3, 3); if ($a4 !== null) doSomethingWith($a4, 4); } 

Но мне было интересно, могу ли я использовать такое решение:

 function foo(params $args){ for ($i = 0; $i < count($args); $i++) doSomethingWith($args[$i], $i + 1); } 

Но все равно вызовите функцию таким же образом, как и ключевое слово params в C # или массив аргументов в JavaScript.

    func_get_args возвращает массив со всеми аргументами текущей функции.

    Или с PHP 7.1 вы теперь можете использовать подсказку типа, называемую iterable

     function f(iterable $args) { foreach ($args as $arg) { // awesome stuff } } 

    Кроме того, он может использоваться вместо Traversable когда вы итерации используете интерфейс. Он также может использоваться как генератор, который дает параметры.

    Документация

    Если вы используете PHP 5.6+, вы можете сделать следующее:

     <?php function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); ?> 

    источник: http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list