我正在学习面向过程的编程
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不支持命名参数