PHP中变量的作用域

来源:互联网 发布:linux 关闭所有防火墙 编辑:程序博客网 时间:2024/06/18 09:50

1、超级变量($_POST,$__GET,$__GLOBAL,$__COOKIE,$__FILES,$__ENV,$REQUEST,$__SESSION)在脚本的任何地方可以直接使用。

2、常量,被声明以后,可以供该声明后的所有位置使用。

   如:

<?php

 function changeName(){
  define ('Gooodd' ,22222);
   echo 'you are a ='.Gooodd.'<br />';
 }
 changeName() ;
 echo 'you are a ='.Gooodd; 



<?php
define ('Gooodd' ,22222);
 function changeName(){
 
  // global  $var;
   $var=10;   
 //  define ('Gooodd' ,22222);
   echo 'you are a ='.Gooodd.'<br />';
   return $var;
 
 }
 $var=12;
 //echo  'var='.$var.'<br />';
 echo 'you are a ='.Gooodd.'<br />';
 changeName() ;
// echo  'var='.$var;
 echo 'you are a ='.Gooodd;


3、在一个脚本中声明的变量(其实就是全局变量)是可以在该脚本该声明之后的语句中被使用,但是不能被函数中所使用(会被覆盖)。



<?php
 function changeName(){
 
  // global  $var;
   $var=10;   
      
   echo  'var='.$var.'<br />';   
   
   return $var;
 
 }


 $var=12;
 echo  'var='.$var.'<br />';
 
 changeName() ;
 
 echo  'var='.$var;


输出的是:

12 

10

12 

4、如果要在函数内部使用函数外部的全局变量,那么要在函数内部中加global 关键字进行声明。

如:



<?php
 function changeName(){
 
   global  $var;
   $var=10;   
      
   echo  'var='.$var.'<br />';   
   
   return $var;
 
 }


 $var=12;
 echo  'var='.$var.'<br />';
 
 changeName() ;
 
 echo  'var='.$var;

输出是:

12

10

10

5、在函数内部创建并被声明为静态的变量无法在函数外部可见, 但是可以在函数的多次执行过程中保持原来的数值。




<?php
 function changeName(){
 
   static  $var=0;
   ++$var;


   echo  'var='.$var.'<br/>';
    
   return $var;
 
 }


 changeName() ;
 changeName() ;
 changeName() ;
 

输出是:

1

2

3

6、函数内部创建的变量是局部的,当函数终止时,该变量被释放。 

7、因为包含文件像原来的脚本的一部分那样工作,所以在incLude()那一行之前定义的变量可供被包含文件使用,此外,包含文件内定义的变量可供include()那一行之后的脚本使用。

原创粉丝点击