Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2384271
  • 博文数量: 473
  • 博客积分: 12252
  • 博客等级: 上将
  • 技术积分: 4307
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-12 10:02
文章分类

全部博文(473)

文章存档

2012年(8)

2011年(63)

2010年(73)

2009年(231)

2008年(98)

分类:

2010-01-26 16:39:28

 PHP的变量总是以美元符号$开头,然后是变量名。变量名遵循标识符的命名规则,即变量明可以以字母或下划线开头,由字母、下划线、数字活从127-255的其他ASCII字符组成。需要注意的是变量是要区分大小写的。
        PHP中不需要显示声明变量,变量声明可以与赋值同时进行。好的编程习惯是:所有变量应当在使用前进行声明,最好带有注释。
 
一、变量的赋值
 
        变量声明后就可以给其赋值,有两种方式:值赋值和引用赋值。
1、值赋值
        $color = "red" ;
        $sum = 12+"15" ;  /* $sum = 27 */
  
2、 若希望两个变量指向一个值的同一个副本,则需要通过引用赋值。
       引用赋值
       所创建的变量与另一个变量引用的内容相同,如果多个变量引用了同一个内容,修改其中任意一个变量,在其余的变量上都将有所反映。
       例子:
       
                     $value1 = "hello"  ;
                     $value2 = &value1 ;        /*$value1 and $value2 both equal "hello" .*/
                     $value2 = "goodbye" ;    /*$value1 and $value2 both equeal "goodbye". */
        ?>
 
二、变量的作用域
        PHP脚本的任何位置都可以声明变量,但声明变量的位置会大大影响访问变量的范围。这个可访问的范围称为作用域(scope)。
        PHP变量的4中作用域:
          局部变量
          函数参数
          全局变量
          静态变量
1、局部变量
        在函数中声明的变量认为是局部变量,只能在函数中引用,退出声明变量的函数时,该变量及相应的值就会撤销。消除了导致全局访问的变量被有意或无意修改的可能性。
 
        $x = 4 ;
        function assignx ( ) {
                      $x = 0 ;
                      print "\$x inside function is $x .
" ;
        }
        assignx ( ) ;
        print "\$x outside of function is $x .
" ;
        代码的执行结果为:
        $x inside function is 0 .
        $x outside function is 4 .
 
 2、函数参数
        PHP和其他编程语言一样,任何接受参数的函数都必须在函数首部中声明这些参数。虽然这些参数接受函数外部的值,但退出函数后就无法再访问这些参数。(按引用传递的参数除外)
          例如:
                      function x10 ( $value ) {
                                $value = $value * 10 ;
                                return $value ;
                      }
          函数执行完毕,参数即将撤销。
 
3、全局变量
         与局部变量相反,全局变量可以在程序的任何位置访问。当在函数中改变全局变量时,需要在该函数中将变量显示地生命为全局变量,只要在函数中的该变量前加上GLOBAL即可。
          例如:
                  $somevar =  15 ;
                  function  addit ( ) {
                             GLOBAL $somevar ;
                             $somevar ++ ;
                             print "somevar is $somevar" ;
                  }
                  addit ( ) ;
                  $somevar 显示的值应为16 ,但是,若去掉 GLOBAL $somevar ;  这行,变量$somevar 将被隐含的设置为0,再加1 ,最后显示的值就是1 。
        声明全局变量的另一方法是使用PHP的$GLOBAL数组,如下:
                 $somevar = 15 ;
                 function addit ( ) {
                         $GLOBALS[ 'somevar' ]++ ;
                 }
                 addit ( ) ;
                 print "somevar is ". $GLOBALS[ 'somevar' ] ;
                 返回值如下: somevar is 16 .
 
4、静态变量
        静态(static)作用域。普通变量的函数参数在函数结束时会撤销,但静态变量在函数退出时不会丢失值,并且再次调用此函数时还能保留这个值。在汴梁明前加上关键字 STATIC 就可以声明一个静态变量。
         STATIC $somevar ;
        考虑一个例子:
        function keep_track ( ) {
                   STATIC $count = 0 ;
                   $count ++ ;
                   print $count ;
                   print "
" ;
        }
         keep_track ( ) ;
         keep_track ( ) ;
         keep_track ( ) ;
         keep_track ( ) ;
         若$count 没有被指明为静态(相应的,$count就是一个局部变量),输出将会是
         1
         1
         1
         1
         因为$count是静态的,它会在每次执行函数时保留前面的值。输出如下:
         1
         2
         3
         4
        静态作用域对于递归函数很有用。递归函数(recursive function)是一个功能强大的编程概念,它是一个可以重复调用自身的函数,直到满足某个条件为止。
 
5、 PHP的超级全局变量
        PHP提供了很多有用的预定义变量,可以在执行脚本的人和位置访问,用于提供大量与环境有关的信息。可以通过这些变量获得关于当前用户会话、用户操作系统环境和本地操作环境等详细信息。PHP会创建部分变量,而其他许多变量的可用性和值则取决于操作系统和WEB服务。
 
        输出所有预定义变量:
        foreach ( $_SERVER as $var => $value ) {
                     echo  "$var => $value
" ;
        }
        显示用户的IP地址:
        print "HI!Your IP address is ".$_SERVER[ ' REMOTE_ADDR' ] ;
 
        PHP中要使用预定义变量数组,必须在PHP.INI文件中启用配置参数 track_vars 。
阅读(1579) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~