调用 PHP 函数

Call PHP function

我有 php function 多参数​​。我想通过仅设置最后一个参数来调用此 function 。简单的方法是设置其他参数 empty。但这并不好。

有什么方法可以通过设置最后一个参数而不设置其他参数来调用此 function

看这个例子:

function MyFunction($A, $B, $C, $D, $E, $F)
{
    //// Do something
}

//// Simple way
MyFunction("", "", "", "", "", "Value");

//// My example
MyFunction(argument6: "Value")

我的建议是使用数组而不是使用参数个数,例如你的函数调用应该是这样的。

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

用于识别第六个参数已设置

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

 }

希望换一种方式

在问题的上下文中,这是可行的。 您可以将每个数组键用作变量,如 $A、$B、... 但是你必须小心,不要 post $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]);