PHP根据函数中给定的参数获取结果

PHP根据函数中给定的参数获取结果,php,functional-programming,Php,Functional Programming,我遵循面向过程的编程 function getTest($p1='', $p2='', $p3='') { return ('$p1='.$p1.' : $p2='.$p2.' : $p3='.$p3); } 而不是下面的函数调用 echo getTest($p1='para 1', '', ''); echo getTest('', $p2='para 2', ''); echo getTest('', $p2='para 2', $p3='para 3'); 我想用下面的方法 echo

我遵循面向过程的编程

function getTest($p1='', $p2='', $p3='')
{
return ('$p1='.$p1.' : $p2='.$p2.' :  $p3='.$p3);
}
而不是下面的函数调用

echo getTest($p1='para 1', '', '');
echo getTest('', $p2='para 2', '');
echo getTest('', $p2='para 2', $p3='para 3');
我想用下面的方法

echo getTest($p1='para 1');
echo getTest($p2='para 2');
echo getTest($p3='para 3');
当前结果

$p1=para 1 : $p2= : $p3=
$p1=para 2 : $p2= : $p3=
$p1=para 3 : $p2= : $p3=
$p1=para 1 : $p2= : $p3=
$p1= : $p2=para 2 : $p3=
$p1= : $p2= : $p3=para 3
预期结果

$p1=para 1 : $p2= : $p3=
$p1=para 2 : $p2= : $p3=
$p1=para 3 : $p2= : $p3=
$p1=para 1 : $p2= : $p3=
$p1= : $p2=para 2 : $p3=
$p1= : $p2= : $p3=para 3
如何根据给定的参数得到结果


我的目标是函数应该识别变量名并继续,而不是使用参数顺序继续。

您可以通过将数组作为参数传递来实现这一点,如下面的示例所示

function getTest($args = array())
{
    $arg1 = isset($args['arg1']) ? $args['arg1'] : "";
    $arg2 = isset($args['arg2']) ? $args['arg2'] : "";
    $arg3 = isset($args['arg3']) ? $args['arg3'] : "";

    return ('$p1='.$arg1.' : $p2='.$arg2.' :  $p3='.$arg3);
}

// now simply call function..
$para= array("arg1"=>"para 1",
             "arg2"=>"para 2",
             "arg3"=>"para 3");

$para2= array("arg2"=>"para 2",
              "arg3"=>"para 3");

$para3= array("arg3"=>"para 3");
echo getTest($para);
echo getTest($para2);
echo getTest($para3);
function foo($args)
{
    print "named_arg1 : " . $args["named_arg1"] . "\n";
    print "named_arg2 : " . $args["named_arg2"] . "\n";

 }

foo(array("named_arg1" => "arg1_value", "named_arg2" => "arg2_value")); 

Php不支持命名参数

而不是单个值发送可用的值数组和相应的操作我希望函数应该识别变量名并继续。