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']。

  • 相关阅读:
    spring3.0注解定时任务配置及说明
    程序员,吃什么个对身体好
    log4j 实例 , 浅析
    使用dom4j创建和解析xml
    Java XML解析工具 dom4j介绍及使用实例
    网络原理分析
    Python教程-使用Python解释器
    Jenkins中使用jmeter的脚本
    jmeter: line 129: [: : integer expression expected jmeter: line 200: /usr/bin/java/bin/java: Not a directory解决办法
    阿里云centos安装Jenkins
  • 原文地址:https://www.cnblogs.com/guanking19/p/5468276.html
Copyright © 2011-2022 走看看