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


PHP Get result based on the parameter given in the function

我正在学习面向过程的编程

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

如何根据给定的参数得到结果?

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

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不支持命名参数