调用PHP函数

调用PHP函数,php,function,parameters,arguments,call,Php,Function,Parameters,Arguments,Call,我用多参数实现了php函数。我想调用这个函数,只设置最后一个参数。简单的方法是将其他参数设置为空。但这并不好 有没有办法通过设置最后一个参数而不设置其他参数来调用此函数 请参见此示例: function MyFunction($A, $B, $C, $D, $E, $F) { //// Do something } //// Simple way MyFunction("", "", "", "", "", "Value"); //// My example MyFunction(a

我用多参数实现了php
函数
。我想调用这个
函数
,只设置最后一个参数。简单的方法是将其他参数设置为空。但这并不好

有没有办法通过设置最后一个参数而不设置其他参数来调用此
函数

请参见此示例:

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、。。。 但您必须小心,不要使用以前设置的旧值发布$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]);
function MyFunction(数组$args=[]){
//提供默认值
$defaults=[
“A”=>0,
“B”=>0,
'C'=>0,
'D'=>0,
“E”=>0,
“F”=>0
];
foreach($默认值为$key=>$val){
如果(!array_key_存在($key,$args)){
$args[$key]=$val;
}
}
回声';
打印费用($args);
回声';
}
MyFunction();
MyFunction(['F'=>77]);

设置默认值
MyFunction($A=null,$B=null,…)
因此以这种方式设置局部变量是不安全的。想象一下,如果像任何其他局部变量一样,传递了一些键,如
args
key
value
等,会发生什么情况。外部代码不应假定调用的function@MaxZuber你完全正确。我试着说这不是一种安全的方法,但有时人们不得不看到一些有用的东西用于学习目的。这是我的主要意图:)