Home >Backend Development >PHP Tutorial >关于引用的问题

关于引用的问题

WBOY
WBOYOriginal
2016-06-23 14:04:59823browse

<?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),这二者有什么区别?


回复讨论(解决方案)

这是我做的笔记,你可以看一下。
函数参数传递
解释:将函数实参列表传递到函数定义的实参列表中去,别想的太复杂,就一个简单东西术语话。
    按数值进行传递:将实参中的数据或者变量复制一个副本到形参中去,形参在函数内改变,不影响实参的数据。
    按地址进行传递:将实参中的变量的地址出传递到形参中去,形参在函数内改变,那么实参的数据也会改变。
    格式是在形参前面加&.
    下面是上面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这条数据

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:关于linux连网的问题。Next article:关于自增ID