變量
變量由美元符號加變量名構成,變量名由字母或下劃線開頭,後面跟上任意數量的字母、數字或下劃線構成
只有有名字的變量才能進行引用賦值
<?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]
?>