Вызов функции PHP

У меня есть function php по нескольким параметрам. Я хочу вызвать эту function установив только последний аргумент. Простым способом является установка другого аргумента пустым . Но это не хорошо.

Можно ли вызвать эту function с установкой последнего аргумента и без установки другого аргумента?

См. Этот пример:

 function MyFunction($A, $B, $C, $D, $E, $F) { //// Do something } //// Simple way MyFunction("", "", "", "", "", "Value"); //// My example MyFunction(argument6: "Value") 

Solutions Collecting From Web of "Вызов функции PHP"

Мое предложение – это использование массива вместо использования числа аргументов. Например, ваш вызов функции должен быть таким.

 $params[6] = 'value'; MyFunction($params); 

Для определения того, что шестой параметр установлен

 function MyFunction($params){ If ( isset($params[6]) ) // parameter six has value } 

Я надеюсь, что это будет альтернативный путь

В контексте вопроса это работает. Вы можете использовать каждый ключ массива как переменную типа $ A, $ B, … Но вы должны быть осторожны, чтобы не публиковать $ args со старыми значениями, которые вы ранее задали.

 <?php $args = array('A'=>'', 'B'=>'', 'C'=>'', 'D'=>'', 'E'=>'', 'F'=>''); function MyFunction($args) { foreach($args as $key => $value) $$key = $value; echo $F; //// Do something } $args['F'] = 'Value'; Myfunction($args); 

Используйте параметр массива как параметр, а тип использования – намек и пустой массив как значение по умолчанию в определении функции. Предоставьте значения по умолчанию внутри функции и переопределите их по пользовательским значениям.

 function MyFunction(array $args = []) { // Provide default values $defaults = [ 'A' => 0, 'B' => 0, 'C' => 0, 'D' => 0, 'E' => 0, 'F' => 0 ]; foreach ($defaults as $key => $val) { if (!array_key_exists($key, $args)) { $args[$key] = $val; } } echo '<pre>'; print_r($args); echo '</pre>'; } MyFunction(); MyFunction(['F' => 77]);