首頁 > 後端開發 > php教程 > 关于引用的问题

关于引用的问题

WBOY
發布: 2016-06-23 14:04:59
原創
813 人瀏覽過

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板