zoukankan      html  css  js  c++  java
  • global,local,static的区别

    1、在函数内部使用global关键字定义的变量可以成为全局变量,如果该变量已经被定义了,那么他的值就是原来的值,否则就是一个新的全局变量(一句话:已存在就不再创建):

     1     <?php
     2     $a=1;
     3     function run(){
     4         global $a;
     5         $a=10;
     6         $a++;
     7     }
     8     run();
     9     echo "Global variable a=$a 
    ";
    10     $b=100;
    11     function run1(){
    12         $b=10;
    13         $b+=10;
    14     }
    15     run1();
    16     echo "variable b=$b
    ";
    17     function run2(){
    18         global $c;
    19         $c=10;
    20         function innerRun0(&$c){
    21             $c=20;
    22         }
    23         innerRun0($c);
    24         var_dump($c);
    25         function innerRun1(){
    26            global $c;
    27             $c=30;
    28         }
    29         innerRun1();
    30         var_dump($c);
    31     }
    32     run2();
    33     ?>

    输出结果:

    Global variable a=11 
    variable b=100
    int(20)
    int(30)
    

     如果在函数内部嵌套定义了另外一个函数,要想使用并改变父类函数中变量中的值,可以使用引用传递的方式(可以理解成C++中的引用);

    2.static和c语言中的static使用方式是一样的,函数中使用它之后,当函数执行完毕之后,该变量的空间不会被立即回收,而且只被初始化一次:

    1  function run(){
    2         static $a=10;
    3         $a++;
    4         var_dump($a);
    5     }
    6     run();
    7     run();
    8     run();

    输出结果:

     int(11)
    int(12)
    int(13)
    

     3、local顾名思义,就是局部变量。在函数内部声明得得变量就是局部量量,意思就是他的访问范围是在该函数内部。对应的是global变量,实在函数外部定义的变量,可以全局访问,如果在一个函数内部想要访问到全局变量的话可以使用global,具体方式上面已经提到;还可以使用GLOBALS['globalValueName']。

  • 相关阅读:
    DGA域名可以是色情网站域名
    使用cloudflare加速你的网站隐藏你的网站IP
    167. Two Sum II
    leetcode 563. Binary Tree Tilt
    python 多线程
    leetcode 404. Sum of Left Leaves
    leetcode 100. Same Tree
    leetcode 383. Ransom Note
    leetcode 122. Best Time to Buy and Sell Stock II
    天津Uber优步司机奖励政策(12月28日到12月29日)
  • 原文地址:https://www.cnblogs.com/guanking19/p/5468276.html
Copyright © 2011-2022 走看看