Heim  >  Artikel  >  Backend-Entwicklung  >  关于引用的问题

关于引用的问题

WBOY
WBOYOriginal
2016-06-23 14:04:59774Durchsuche

<?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这条数据

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:关于linux连网的问题。Nächster Artikel:关于自增ID