在PHP中,變數是$+變數名,變數名遵循標識符的命名規則,可以以字母、下劃線開頭,可以由數字、下劃線、字母組成合法的變數名。 變數聲明 ======== 所有變數在使用之前應該進行聲明,而且最好帶上註釋,雖然在PHP中可以不顯示聲明變數。聲明變數之後,可以為變數進行賦值;變數的賦值有兩種類型值賦值和 ...
在PHP中,變數是$+變數名,變數名遵循標識符的命名規則,可以以字母、下劃線開頭,可以由數字、下劃線、字母組成合法的變數名。
變數聲明
所有變數在使用之前應該進行聲明,而且最好帶上註釋,雖然在PHP中可以不顯示聲明變數。聲明變數之後,可以為變數進行賦值;變數的賦值有兩種類型值賦值和引用賦值。
<?php
#合法的聲明變數
$_name;
$account;
$show_title;
#賦值
$color="red";
#引用賦值
$user_color=&$color;
?>
變數的作用域
在PHP腳本中的任何位置都可以聲明變數,但是根據位置的不同,作用域的範圍也不同。
- 局部變數
一般局部變數都是在函數中聲明,即它只能在函數中被引用,函數退出時改變數及其值被銷毀。如果在函數外使用該變數,PHP會把它當作另外一個變數進行處理,與函數中的變數無任何關係。
<?php
$x=5;
function show_x() {
$x=3;
echo $x;
}
show_x();
echo $x;
?>
- 函數參數
函數參數更具其傳遞的方式分為兩種,按值傳遞和按引用傳遞;如果是按值傳遞,參數的作用域只限於函數內,函數退出後參數被銷毀。但按引用傳遞,參數的作用域範圍不僅在函數內部。
<?php
$cost_fish=20.10;
$cost_apple=2.45;
#引用參數前面需要加上&符號
function rise($cost_fish,&$cost_apple) {
$cost_fish++;
$cost_apple++;
}
rise($cost_fish,$cost_apple);
echo $cost_fish."值傳遞參數<--->引用傳遞參數".$cost_apple;
?>
- 全局變數
可以在腳本中的任何一個地方訪問全局變數,但在函數中要修改全局變數的時候需要使用關鍵字global顯式的聲明。
<?php
$x=5;
function show_x() {
global $x;
$x++;
}
show_x();
?>
通過$GLOBAL數組也可以聲明全局變數
<?php
$number=15;
function calc() {
$GLOBALS["number"]++;
}
calc();
echo $number;
?>
使用全局變數一定要謹慎,用多了之後很容易造成代碼混亂。
- 靜態變數
靜態變數與函數參數不同在於,靜態變數聲明的時候多了static關鍵字,使得靜態變數在函數退出之後不會被銷毀,並且保留這個值在函數再次調用的時候使用該值。
<?php
function spend() {
static $date=0;
$date++;
echo $date;
}
spend();
spend();
?>
PHP預定義變數
PHP中預定義了很多變數,可以在執行腳本的任何位置訪問他們,這些變數主要是提供了大量關於環境的信息。
//列印出$_SERVER 預定義的變數信息
foreach($_SERVER as $var =>$value){
echo "$var=>$value<br/>";
}
更多關於PHP變數的內容:http://php.net/manual/en/language.variables.php