zoukankan      html  css  js  c++  java
  • 变量在函数内外的作用域 3

    <?php
    
    function increment($value,$amount = 1) { 
        $value = $value +$amount;
    }
    
    $value = 10;
    increment ($value);
    echo $value;
    
    ?>

    输出的接入仍为10 ,这是因为作用域的原因,函数内部和函数外部的$value是不同的,且不能相互调用。

          解决该问题的一个办法是将内部的$value定义为全局变量,但这意味者为了使用这个函数,要进行变量运算的变量需要被命名为$value.
         更好的办法是使用引用传递,这里,在参数被传递给函数的时候,函数不会再创建一个新变量,而是函数获得一个原来变量的引用,这个引用有一个变量名称,它以美元符号开始,可以像梁一个变量那样使用他,其区别在于他不是获得变量本身的值,而是指向原来的值,任何对该引用的修改都会影响到原始变量值。
         可以通过在函数定义的参数名前加一个地址符(&)来指定参数的引用传递,在函数调用处不用修改。

    <?php
    
    function increment(&$value,$amount = 1) { 
        $value = $value +$amount;
    }
    
    $value = 10;
    echo $value;echo '<br>';
    increment ($value);
    echo $value;
    ?>
    

     结果输出为:

    10
    11
    
  • 相关阅读:
    hdu2089 不要62 (数位dp)
    LightOJ 1140
    在n到m中 有多少个1 (数位dp)
    Frequent Subsets Problem 状态压缩 判断出现的次数
    LightOj 1215
    LightOJ 1197
    Spring 知识点提炼
    设计模式—访问者模式
    设计模式—模板模式
    设计模式—策略模式
  • 原文地址:https://www.cnblogs.com/jacson/p/4223770.html
Copyright © 2011-2022 走看看