<?php
$a = $_GET['a'];
check($a);function check(&$val) {
if(!preg_match('/^[a-z0-9]/', $val)) {
die("request error");
}
}
?>
如果把function check(&$val) 写成 function check($val),这二者有什么区别?
$a = $_GET['a'];
check($a);function check(&$val) {
if(!preg_match('/^[a-z0-9]/', $val)) {
die("request error");
}
}
?>
如果把function check(&$val) 写成 function check($val),这二者有什么区别?
函数参数传递
解释:将函数实参列表传递到函数定义的实参列表中去,别想的太复杂,就一个简单东西术语话。
按数值进行传递:将实参中的数据或者变量复制一个副本到形参中去,形参在函数内改变,不影响实参的数据。
按地址进行传递:将实参中的变量的地址出传递到形参中去,形参在函数内改变,那么实参的数据也会改变。
格式是在形参前面加&.
下面是上面2个的比较
<?php
$a=10;
$b=20;
function addone($s,$t)
//若是按数值传递,传递的是数值,实参和形参参数列表列表大的个数要相同,并且赋值时要一一对应。
//若是按地址赋值,则可以这样写 function addone(&$s,&$t)
{
$s=$s+1;
$t=$t+1;
echo "s=".$s."<br/-->";
echo "t=".$t."<br>";
}
addone($a,$b);
echo "a="."$a"."<br>";
echo "b="."$b"."<br>";
?>