变量
变量由美元符号加变量名构成,变量名由字母或下划线开头,后面跟上任意数量的字母、数字或下划线构成
只有有名字的变量才能进行引用赋值
<?php
$foo = 123;
$newFoo = &$foo;
$newFoo = 456;
echo "\$foo is $foo,\$newFoo is $newFoo"; //输出$foo is 456,$newFoo is 456
$temp = &(24*5); //error
?>
预定义变量
当PHP指令register_globals的值为off时,采用$_SERVER['DOCUMENT_ROOT'] 获取DOCUMENT_ROOT,建议将register_globals的值设置为on,这样可以直接使用$DOCUMENT_ROOT 获取DOCUMENT_ROOT
http://jp2.php.net/manual/zh/reserved.variables.php
全局变量
<?php
global $a,$b;
$b = $a + $b;
//等同于
$GLOBAL['b'] = $GLOBAL['a'] + $GOLBAL['b'];
//$GLOBAL是一个关联数组,该数组的每一个变量是一个元素,键名对应变量名,值对应变量的内容
?>
静态变量:只能使用常量对静态变量进行赋值
<?php
//变量$a仅会在第一次调用test()函数时被初始化,之后每次调用该函数$a的值将会被加1
func test(){
static $a = 0;
echo $a; //输出0
$a++;
}
?>
可变变量
一个可变变量获取一个普通变量的值作为这个可变变量的变量名
<?php
$a = 'hello';
$$a = 'world'; //等同于 ${$a} = 'world',或$hello = 'world'
//php解析时,会先解析$符号后面的部分
class foo{
var $arr = 'I am A';
}
$baz = array('arr','bar');
$foo = new foo();
echo $foo->$baz[0]
?>