Maison >développement back-end >tutoriel php >关于引用的问题
<?php$a = $_GET['a'];check($a);function check(&$val) {if(!preg_match('/^[a-z0-9]/', $val)) {die("request error");}}?>
这是我做的笔记,你可以看一下。
函数参数传递
解释:将函数实参列表传递到函数定义的实参列表中去,别想的太复杂,就一个简单东西术语话。
按数值进行传递:将实参中的数据或者变量复制一个副本到形参中去,形参在函数内改变,不影响实参的数据。
按地址进行传递:将实参中的变量的地址出传递到形参中去,形参在函数内改变,那么实参的数据也会改变。
格式是在形参前面加&.
下面是上面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>"; ?>
改成
,使用的插件问题。
在你的代码中没有区别
PHP code?12345678910
如果把function check(&$val) 写成 function ch……
你的这段代码 没有区别 因为 你没有去操作$val这条数据