> 백엔드 개발 > PHP 튜토리얼 > 关于引用的问题

关于引用的问题

WBOY
풀어 주다: 2016-06-23 14:04:59
원래의
814명이 탐색했습니다.

<?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으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿