2016-08-27
<?php
//代理调用
//语法:call_user_func_array('函数','参数数组')
function fun ()
{
$a=func_get_args();//将函数参数列表赋值给$a
//判断是否输入了变量
$b=count($a);
if ($b==0)
{
echo '您没有输入参数<hr>';
return;
}
//echo $b.'<br><hr>';//输出函数参数的数量
for ($c=0;$c<$b;$c++)
{
echo $a[$c].'<br><hr>';
}
}
call_user_func_array('fun',array('a','b','c','d','e'));
//上面的语句的作用相当于fun(a,b,c,d,e);
?>
【例题】函数代理调用的实例
//在文本框中输入,然后输出输入的数据。
<!doctype html>
<html>
<head>
<title>函数代理调用的使用实例</title>
<meta type="text/html" charset="UTF-8">
<script type="text/javascript">
//刷新本页面
function fun1()
{
location=location;
}
</script>
</head>
<body>
<?php
$a=$_POST['sub'];
if($a=='')
{
echo "请点击提交按钮";
}
if( $_POST['variable']=='')
{
echo '请输入数字、字母或者汉字';
}
//echo $_POST['variable'] ;
function fun()
{
$a=func_get_args();
if(empty($a))
{
echo '啊,没数据啊!少年';
}else
{
for($i=0;$i<count($a);$i++)
{
echo $a[$i].'<br>';
}
}
}
$b=explode(',',$_POST['variable']);//将字符串切割成数组
call_user_func_array('fun',$b);
?>
<form method="post" action="">
请输入:<input type="text" name="variable" >
<input type="submit" name="sub" value="提交">
<input type="button" value="刷新" onClick="fun1()">
</form>
</body>
</html>