찾다
php教程PHP开发php函数的传值与传址

php函数的传值与传址有什么区别呢?对于这样的问题我喜欢通过程序演示来获取答案。让我们来看一个演示记录吧!

<?php    
        
$i=100;    
        
function func($n){    
        
   $n=$n+100;    
           
   return $n;    
           
}    
echo &#39;1)函数传值前变量$i的值:&#39;.$i.&#39;<br>&#39;;    
echo &#39;2)传值后函数的返回值:&#39;.func($i).&#39;<br>&#39;;    
echo &#39;3)函数传值后变量$i的值:&#39;.$i.&#39;<br>&#39;;    
echo &#39;4)函数传址前变量$i的值:&#39;.$i.&#39;<br>&#39;;    
echo &#39;5)传址后函数的返回值:&#39;.func(&$i).&#39;<br>&#39;;    
echo &#39;6)函数传址后变量$i的值:&#39;.$i.&#39;<br>&#39;;    
//echo func($i).&#39;<br>&#39;;    
?>

    程序输出:
    1)函数传值前变量$i的值:100
    2)传值后函数的返回值:200
    3)函数传值后变量$i的值:100
    4)函数传址前变量$i的值:100
    5)传址后函数的返回值:200
    6)函数传址后变量$i的值:200
    
    解释:
    1)直接输出一个赋值$i=100的变量
    2)func函数传值返回一个算术相加的结果$=100+100
    3)func函数传值,其作用区域只限于函数内部,对外面的变量$i不会有影响
    4)同上
    5)func函数参数前多了个"&"符,表示传址,和2)一样,返回值是函数的算术运行结果。

    6)func(&$i),变量指针指向$i的位置,可以理解为是对变量$i的操作,$i=$i+100;这时变量$i已经相当于重新被赋值

    如果去掉上面代码的第18行注释,会得什么结果呢?
    小结:传址为了在执行函数的同时,同时改变函数参数值,而传值不期望改变。

          

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)