unijun 发表于 2015-8-25 11:52:32

变量

基础
  PHP中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的,并且出现中文可能也是合法的。
  变量默认总是传值赋值。PHP也提供了另外一种方式给变量赋值:引用赋值。这意味着新的变量简单的引用(换言之,"成为其别名" 或者 "指向")了原始变量。改动新的变量将影响到原始变量,反之亦然。使用引用赋值,简单地将一个&符号加到将要赋值的变量前(源变量)。注意,只有有名字的变量才可以引用赋值。

预定义变量
  PHP拥有大量预定义变量,许多变量依赖与服务器,某些预定义变量以命令行形式运行时并不生效。
  PHP提供了一套附加的预定数组,这些数组变量包含了来自web服务器(如果可用),运行环境,和用户输入的数据,通常被称为自动全局变量(autoglobals)或者超全局变量(superglobals)。

变量范围
  这里的变量范围指的是,它定义的上下文背景,也就是它的生效范围。变量的范围包含了include和require引入的文件。
  PHP的全局变量和C语言有一点点不同,在C语言中,全局变量在函数中自动生效,除非被局部变量覆盖。PHP中全局变量在函数中使用时必须声明为global。
  

  

  该程序能够正常输出hello,但是被注释掉的test()不能正常解析,因为变量$a是未定义的。

使用全局变量
  若在某个函数中想使用全局变量,可以通过下面两种方式。


[*]global关键字
  

global $a, $b;  

  在函数中声明全局变量后,对任一变量的所有引用都会指向其全局版本。


[*]$GLOBALS超全局变量数组
  

$GLOBALS['b'] = $GLOBALS['a'] + $BLOBALS['b'];  

  用法同global关键字相似。

静态变量
  静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。并且,只在声明时初始化一次,每次调用函数并不会覆盖静态函数的值。
  静态变量在声明中用表达式的结果对其赋值会导致解析错误,静态声明是在编译时解析的。
  
页: [1]
查看完整版本: 变量