PHP中變量是指用一個美元符號($)作爲前綴的標識符。
變量的聲明位置決定了一個變量的作用域,也決定了程序中哪些部分可以訪問它。
PHP變量有四種類型的作用域:
#局部作用域
#全局作用域
#靜態作用域
#函數參數
/*
* 局部變量:函數內部定義的變量,作用域爲所在函數。
* 全局變量:定義在所有函數以外的變量,起作用域是整個PHP文件,但在用戶自定義函數內部是不可用的。
* 如果希望在用戶自定義函數內部使用全局變量,則要用global關鍵字聲明全局變量。
* 靜態變量:函數調用結束後仍保留變量值,當再次回到其作用域時(當再次回到其作用域時!!!)又可以繼續使用原來的值。
*/
// 變量名不能以字母和下劃線以外的其他字符開頭。
$thisCup="oink";
$_Class="roof";
// 變量間的賦值是指複製後兩個變量使用各自的內存,互不干擾
$str1 = "aaaaa";
$str2 = $str1;
$str1 = "bbbbb";
echo "$str1-$str2 \n";
//通過 & 取得引用
$i = "spcn";
$j = & $i;
$i = "hello";
echo "$j-$i \n";
#
# 賦值是將原變量內容賦值,開闢新的內存空間來保持
# 引用是給變量的內容再起一個名字
#
$example = "out";
function example() {
$example = "inside";
echo "In function: $example \n";
}
example();
echo "out function: $example \n";
// 靜態變量的聲明
function zdy() {
static $message = 0;
$message ++;
echo "$message _ ";
}
function zdy1() {
$message = 0;
$message ++;
echo "$message _ ";
}
for($i = 0; $i < 10; $i++) zdy(); echo "\n";
for($i = 0; $i < 10; $i++) zdy1(); echo "\n";
// 全局變量測試
$theWorld = "world";
function theWorld() {
echo "1. $theWorld \n";
global $theWorld;
echo "2. $theWorld \n";
}
theWorld();
// 可變變量
$change_name = "trans";
$trans = "I am trans.";
$anotherTrans = "I am anotherTrans";
echo $$change_name ."\n";
$change_name = "anotherTrans";
echo $$change_name ."\n";
// PHP預定義變量
echo "<br />當前運行腳本所在的文檔根目錄:$_SERVER[DOCUMENT_ROOT] \n";
echo "<br />請求方法:$_SERVER[REQUEST_METHOD] \n";
echo "<br />請求用戶的IP地址:$_SERVER[REMOTE_ADDR] \n";
echo "<br />請求用戶的主機名:$_SERVER[REMOTE_HOST] \n";
echo "<br />用戶連接到服務器時所用的接口:$_SERVER[REMOTE_PORT] \n";
echo "<br />服務器IP地址:$_SERVER[SERVER_ADDR] \n";
echo "<br />服務器主機名:$_SERVER[SERVER_NAME] \n";
echo "<br />服務器所使用的端口:$_SERVER[SERVER_PORT] \n";
echo "<br />包含服務器版本和虛擬主機名的字符串:$_SERVER[SERVER_SIGNATURE] \n";
echo "<br />當前腳本的絕對路徑名:$_SERVER[SCRIPT_FILENAME] \n";
// $_COOKIE
// $_SESSION
// $_POST
// $_GET
// $GLOBALS #由所有已定義全局變量組成的數組。變量名就是該數組的索引。它可以稱得上是所有超級變臉的超級集合。