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 #由所有已定义全局变量组成的数组。变量名就是该数组的索引。它可以称得上是所有超级变脸的超级集合。