基本的 PHP 语法
PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。
通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。
-
-
-
-
-
My first PHP page
-
-
- echo "Hello World!";
- ?>
-
-
-
PHP 变量
变量是用于存储数据的容器。
-
- $x=5;
- $y=6;
- $z=$x+$y;
- echo $z;
- ?>
创建(声明)PHP 变量
PHP 没有声明变量的命令。
变量在您第一次赋值给它的时候被创建:
-
- $txt="Hello world!";
- $x=5;
- $y=10.5;
- echo $txt;
- ?>
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分。
PHP 有四种不同的变量作用域:
- local
- global
- static
- parameter
局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
-
- $x=5;
-
- function myTest()
- {
- $y=10;
- echo "
测试函数内变量:
"
;
- echo "变量 x 为: $x";
- echo "
";
- echo "变量 y 为: $y";
- }
-
- myTest();
-
- echo "
测试函数外变量:
"
;
- echo "变量 x 为: $x";
- echo "
";
- echo "变量 y 为: $y";
- ?>
在以上实例中 myTest() 函数定义了 $x 和 $y 变量。$x 变量在函数外声明,所以它是全局变量, $y 变量在函数内声明所以它是局部变量。
当我们调用myTest()函数并输出两个变量的值,函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局部变量 $x 的值,但是不能输出 $y 的值,因为 $y 变量在函数中定义,属于局部变量。
你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。
PHP global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字:
-
- $x=5;
- $y=10;
-
- function myTest()
- {
- global $x,$y;
- $y=$x+$y;
- }
-
- myTest();
- echo $y;
- ?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
上面的实例可以写成这样:
-
- $x=5;
- $y=10;
-
- function myTest()
- {
- $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
- }
-
- myTest();
- echo $y;
- ?>
-
- $x=5;
- $y=10;
-
- function myTest()
- {
- global $x,$y;
- echo $y+$x;
- }
- myTest();
- ?>
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static 关键字:
-
-
- function myTest()
- {
- static $x=0;
- echo $x;
- $x++;
- }
-
- myTest();
- myTest();
- myTest();
-
- ?>
然后,每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
注释:该变量仍然是函数的局部变量。
参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分:
-
-
- function myTest($x)
- {
- echo $x;
- }
-
- myTest(5);
-
- ?>
PHP 5 echo 和 print 语句
在 PHP 中有两个基本的输出方式: echo 和 print。
本章节中我们会详细讨论两个语句的用法,并在实例中演示如何使用 echo 和 print。
PHP echo 和 print 语句
echo 和 print 区别:
- echo - 可以输出一个或多个字符串
- print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
PHP echo 语句
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号:echo 或 echo()。
-
- echo "
PHP is fun!
";
- echo "Hello world!
";
- echo "I'm about to learn PHP!
";
- echo "This", " string", " was", " made", " with multiple parameters.";
- ?>
显示变量
-
- $txt1="Learn PHP";
- $txt2="w3cschool.cc";
- $cars=array("Volvo","BMW","Toyota");
-
- echo $txt1;
- echo "
";
- echo "Study PHP at $txt2";
- echo "My car is a {$cars[0]}";
- ?>
PHP print 语句
print 同样是一个语言结构,可以使用括号,也可以不使用括号:print 或 print()。
显示字符串
-
- print "
PHP is fun!
";
- print "Hello world!
";
- print "I'm about to learn PHP!";
- ?>
显示变量
-
- $txt1="Learn PHP";
- $txt2="w3cschool.cc";
- $cars=array("Volvo","BMW","Toyota");
-
- print $txt1;
- print "
";
- print "Study PHP at $txt2";
- print "My car is a {$cars[0]}";
- ?>
PHP 5 数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
PHP 字符串
一个字符串是一串字符的序列,就像 "Hello world!"。
你可以将任何文本放在单引号和双引号中:
-
- $x = "Hello world!";
- echo $x;
- echo "
";
- $x = 'Hello world!';
- echo $x;
- ?>
PHP 整型
整数是一个没有小数的数字。
整数规则:
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:
-
- $x = 5985;
- var_dump($x);
- echo "
";
- $x = -345;
- var_dump($x);
- echo "
";
- $x = 0x8C;
- var_dump($x);
- echo "
";
- $x = 047;
- var_dump($x);
- ?>
- 结果
- int(5985)
- int(-345)
- int(140)
- int(39)
PHP 浮点型
浮点数是带小数部分的数字,或是指数形式。
在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:
-
- $x = 10.365;
- var_dump($x);
- echo "
";
- $x = 2.4e3;
- var_dump($x);
- echo "
";
- $x = 8E-5;
- var_dump($x);
- ?>
- 结果
- float(10.365)
- float(2400)
- float(8.0E-5)
PHP 布尔型
布尔型可以是 TRUE 或 FALSE。
布尔型通常用于条件判断。在接下来的章节中你会学到更多关于条件控制的教程。
PHP 数组
数组可以在一个变量中存储多个值。
在以下实例中创建了一个数组,然后使用 PHP var_dump() 函数返回数组的数据类型和值:
-
- $cars=array("Volvo","BMW","Toyota");
- var_dump($cars);
- ?>
- 结果
- array(3) {[0]=>string(5) "Volvo"[1]=>string(3) "BMW"[2]=>string(6) "Toyota"}
PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
-
- class Car
- {
- var $color;
- function Car($color="green") {
- $this->color = $color;
- }
- function what_color() {
- return $this->color;
- }
- }
-
- function print_vars($obj) {
- foreach (get_object_vars($obj) as $prop => $val) {
- echo "\t$prop = $val\n";
- }
- }
-
-
- $herbie = new Car("white");
-
-
- echo "\herbie: Properties\n";
- print_vars($herbie);
-
- ?>
PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。
PHP NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据:
-
- $x="Hello world!";
- $x=null;
- var_dump($x);
- ?>
PHP 5 常量
常量值被定义后,在脚本的其他任何地方都不能被改变。
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
- bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
- name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
-
class="prettyprint prettyprinted" style="">class="pun">class="pln">php
- class="com">
- defineclass="pun">(class="str">"GREETING"class="pun">,class="pln"> class="str">"欢迎访问 11.com"class="pun">);class="pln">
- echo GREETINGclass="pun">;class="pln"> class="com">
- echo class="str">'
'class="pun">;class="pln">
- echo greetingclass="pun">;class="pln"> class="com">
- class="pun">?>
不区分大小写的常量
-
-
- define("GREETING", "欢迎访问 11.com",true);
- echo GREETING;
- echo '
';
- echo greeting;
- ?>
常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
以下实例演示了在函数内使用常量,即便常量定义在函数外也可以正常使用常量。
-
- define("GREETING", "欢迎访问 11.com");
-
- function myTest() {
- echo GREETING;
- }
-
- myTest();
- ?>
PHP 字符串变量
PHP 中的字符串变量
字符串变量用于包含有字符的值。
在创建字符串之后,我们就可以对它进行操作了。
-
- $txt="Hello world!";
- echo $txt;
- ?>
PHP 并置运算符
在 PHP 中,只有一个字符串运算符。
并置运算符 (.) 用于把两个字符串值连接起来。
-
- $txt1="Hello world!";
- $txt2="What a nice day!";
- echo $txt1 . " " . $txt2;
- ?>
- 输出Hello world! What a nice day!
PHP strlen() 函数
有时知道字符串值的长度是很有用的。
strlen() 函数返回字符串的长度(字符数)。
-
- echo strlen("Hello world!");
- ?>
PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
-
- echo strpos("Hello world!","world");
- ?>
PHP 运算符
在 PHP 中,赋值运算符 = 用于给变量赋值。
在 PHP 中,算术运算符 + 用于把值加在一起。
PHP 算术运算符
运算符
|
名称 |
描述 |
实例 |
结果 |
x + y |
加 |
x 和 y 的和 |
2 + 2 |
4 |
x - y |
减 |
x 和 y 的差 |
5 - 2 |
3 |
x * y |
乘 |
x 和 y 的积 |
5 * 2 |
10 |
x / y |
除 |
x 和 y 的商 |
15 / 5 |
3 |
x % y |
模(除法的余数) |
x 除以 y 的余数 |
5 % 210 % 810 % 2 |
120 |
- x |
取反 |
x 取反 |
- 2 |
|
a . b |
并置 |
连接两个字符串 |
"Hi" . "Ha" |
HiHa |
-
- $x=10;
- $y=6;
- echo ($x + $y);
- echo ($x - $y);
- echo ($x * $y);
- echo ($x / $y);
- echo ($x % $y);
- ?>
PHP7+ 版本新增整除运算符
intdiv()
-
- var_dump(intdiv(10, 3));
- ?>
PHP 赋值运算符
在 PHP 中,基本的赋值运算符是 "="。它意味着左操作数被设置为右侧表达式的值。也就是说,"$x = 5" 的值是 5。
运算符
|
等同于 |
描述 |
x = y |
x = y |
左操作数被设置为右侧表达式的值 |
x += y |
x = x + y |
加 |
x -= y |
x = x - y |
减 |
x *= y |
x = x * y |
乘 |
x /= y |
x = x / y |
除 |
x %= y |
x = x % y |
模(除法的余数) |
a .= b |
a = a . b |
连接两个字符串 |
-
- $x=10;
- echo $x;
-
- $y=20;
- $y += 100;
- echo $y;
-
- $z=50;
- $z -= 25;
- echo $z;
-
- $i=5;
- $i *= 6;
- echo $i;
-
- $j=10;
- $j /= 5;
- echo $j;
-
- $k=15;
- $k %= 4;
- echo $k;
- ?>
-
- $a = "Hello";
- $b = $a . " world!";
- echo $b;
-
- $x="Hello";
- $x .= " world!";
- echo $x;
- ?>
PHP 递增/递减运算符
运算符 |
名称 |
描述 |
++ x |
预递增 |
x 加 1,然后返回 x |
x ++ |
后递增 |
返回 x,然后 x 加 1 |
-- x |
预递减 |
x 减 1,然后返回 x |
x -- |
后递减 |
返回 x,然后 x 减 1 |
-
- $x=10;
- echo ++$x;
-
- $y=10;
- echo $y++;
-
- $z=5;
- echo --$z;
-
- $i=5;
- echo $i--;
- ?>
PHP 比较运算符
比较操作符可以让您比较两个值:
运算符 |
名称 |
描述 |
实例 |
x == y |
等于 |
如果 x 等于 y,则返回 true |
5==8 返回 false |
x === y |
恒等于 |
如果 x 等于 y,且它们类型相同,则返回 true |
5==="5" 返回 false |
x != y |
不等于 |
如果 x 不等于 y,则返回 true |
5!=8 返回 true |
x <> y |
不等于 |
如果 x 不等于 y,则返回 true |
5<>8 返回 true |
x !== y |
不恒等于 |
如果 x 不等于 y,或它们类型不相同,则返回 true |
5!=="5" 返回 true |
x > y |
大于 |
如果 x 大于 y,则返回 true |
5>8 返回 false |
x < y |
小于 |
如果 x 小于 y,则返回 true |
5<8 返回 true |
x >= y |
大于等于 |
如果 x 大于或者等于 y,则返回 true |
5>=8 返回 false |
x <= y |
小于等于 |
如果 x 小于或者等于 y,则返回 true |
5<=8 返回 true |
-
- $x=100;
- $y="100";
-
- var_dump($x == $y);
- echo "
";
- var_dump($x === $y);
- echo "
";
- var_dump($x != $y);
- echo "
";
- var_dump($x !== $y);
- echo "
";
-
- $a=50;
- $b=90;
-
- var_dump($a > $b);
- echo "
";
- var_dump($a < $b);
- ?>
- 输出
- bool(true)
- bool(false)
- bool(false)
- bool(true)
- bool(false)
- bool(true)
PHP 逻辑运算符
运算符 |
名称 |
描述 |
实例 |
x and y |
与 |
如果 x 和 y 都为 true,则返回 true |
x=6y=3(x < 10 and y > 1) 返回 true |
x or y |
或 |
如果 x 和 y 至少有一个为 true,则返回 true |
x=6y=3(x==6 or y==5) 返回 true |
x xor y |
异或 |
如果 x 和 y 有且仅有一个为 true,则返回 true |
x=6y=3(x==6 xor y==3) 返回 false |
x && y |
与 |
如果 x 和 y 都为 true,则返回 true |
x=6y=3(x < 10 && y > 1) 返回 true |
x || y |
或 |
如果 x 和 y 至少有一个为 true,则返回 true |
x=6y=3(x==5 || y==5) 返回 false |
! x |
非 |
如果 x 不为 true,则返回 true |
x=6y=3!(x==y) 返回 true |
PHP 数组运算符
运算符 |
名称 |
描述 |
x + y |
集合 |
x 和 y 的集合 |
x == y |
相等 |
如果 x 和 y 具有相同的键/值对,则返回 true |
x === y |
恒等 |
如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true |
x != y |
不相等 |
如果 x 不等于 y,则返回 true |
x <> y |
不相等 |
如果 x 不等于 y,则返回 true |
x !== y |
不恒等 |
如果 x 不等于 y,则返回 true |
-
- $x = array("a" => "red", "b" => "green");
- $y = array("c" => "blue", "d" => "yellow");
- $z = $x + $y;
- var_dump($z);
- var_dump($x == $y);
- var_dump($x === $y);
- var_dump($x != $y);
- var_dump($x <> $y);
- var_dump($x !== $y);
- ?>
三元运算符
另一个条件运算符是"?:"(或三元)运算符 。
语法
- (expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
判断 $_GET 请求中含有 user 值,如果有返回 $_GET['user'],否则返回 nobody:
-
- $test = '菜鸟教程';
-
- $username = isset($test) ? $test : 'nobody';
- echo $username, PHP_EOL;
-
-
- $username = $test ?: 'nobody';
- echo $username, PHP_EOL;
- ?>
-
-
- $username = $_GET['user'] ?? 'nobody';
-
- $username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
- ?>
组合比较符(PHP7+)
PHP7+ 支持组合比较符
php
// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
PHP If...Else 语句
-
- $t=date("H");
- if ($t<"20")
- {
- echo "Have a good day!";
- }
- else
- {
- echo "Have a good night!";
- }
- ?>
-
- $t=date("H");
- if ($t<"10")
- {
- echo "Have a good morning!";
- }
- else if ($t<"20")
- {
- echo "Have a good day!";
- }
- else
- {
- echo "Have a good night!";
- }
- ?>
PHP Switch 语句
-
- $favcolor="red";
- switch ($favcolor)
- {
- case "red":
- echo "你喜欢的颜色是红色!";
- break;
- case "blue":
- echo "你喜欢的颜色是蓝色!";
- break;
- case "green":
- echo "你喜欢的颜色是绿色!";
- break;
- default:
- echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
- }
- ?>
PHP 数组
-
- $cars=array("Volvo","BMW","Toyota");
- echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
- ?>
在 PHP 中,有三种类型的数组:
- 数值数组 - 带有数字 ID 键的数组
- 关联数组 - 带有指定的键的数组,每个键关联一个值
- 多维数组 - 包含一个或多个数组的数组
PHP 数值数组
- $cars=array("Volvo","BMW","Toyota");
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):
-
- $cars=array("Volvo","BMW","Toyota");
- echo count($cars);
- ?>
遍历数值数组
遍历并打印数值数组中的所有值
-
- $cars=array("Volvo","BMW","Toyota");
- $arrlength=count($cars);
-
- for($x=0;$x<$arrlength;$x++)
- {
- echo $cars[$x];
- echo "
";
- }
- ?>
PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
or:
- $age['Peter']="35";
- $age['Ben']="37";
- $age['Joe']="43";
-
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- echo "Peter is " . $age['Peter'] . " years old.";
- ?>
遍历关联数组
遍历并打印关联数组中的所有值,您可以使用 foreach 循环
-
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
-
- foreach($age as $x=>$x_value)
- {
- echo "Key=" . $x . ", Value=" . $x_value;
- echo "
";
- }
- ?>
PHP 数组排序
PHP - 数组排序函数
在本章中,我们将一一介绍下列 PHP 数组排序函数:
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
sort() - 对数组进行升序排列
-
- $cars=array("Volvo","BMW","Toyota");
- sort($cars);
- print_r($cars);
- ?>
-
- $numbers=array(4,6,2,22,11);
- sort($numbers);
- print_r($numbers);
- ?>
rsort() - 对数组进行降序排列
-
- $cars=array("Volvo","BMW","Toyota");
- rsort($cars);
- print_r($cars);
- ?>
-
- $numbers=array(4,6,2,22,11);
- rsort($numbers);
- print_r($numbers);
- ?>
asort() - 根据数组的值,对数组进行升序排列
-
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- asort($age);
- print_r($age);
- ?>
ksort() - 根据数组的键,对数组进行升序排
-
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- ksort($age);
- print_r($age);
- ?>
arsort() - 根据数组的值,对数组进行降序排列
-
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- arsort($age);
- print_r($age);
- ?>
krsort() - 根据数组的键,对数组进行降序排
-
- $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
- krsort($age);
- print_r($age);
- ?>
PHP 超级全局变量
PHP 超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
PHP $GLOBALS
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
-
- $x = 75;
- $y = 25;
-
- function addition()
- {
- $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
- }
-
- addition();
- echo $z;
- ?>
PHP $_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
-
- echo $_SERVER['PHP_SELF'];
- echo "
";
- echo $_SERVER['SERVER_NAME'];
- echo "
";
- echo $_SERVER['HTTP_HOST'];
- echo "
";
- echo $_SERVER['HTTP_REFERER'];
- echo "
";
- echo $_SERVER['HTTP_USER_AGENT'];
- echo "
";
- echo $_SERVER['SCRIPT_NAME'];
- ?>
下表列出了所有 $_SERVER 变量中的重要元素:
元素/代码 |
描述 |
$_SERVER['PHP_SELF'] |
当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。 |
$_SERVER['GATEWAY_INTERFACE'] |
服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。 |
$_SERVER['SERVER_ADDR'] |
当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER['SERVER_NAME'] |
当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com) |
$_SERVER['SERVER_SOFTWARE'] |
服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] |
请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。 |
$_SERVER['REQUEST_METHOD'] |
访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。 |
$_SERVER['REQUEST_TIME'] |
请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496) |
$_SERVER['QUERY_STRING'] |
query string(查询字符串),如果有的话,通过它进行页面访问。 |
$_SERVER['HTTP_ACCEPT'] |
当前请求头中 Accept: 项的内容,如果存在的话。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] |
当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8"。 |
$_SERVER['HTTP_HOST'] |
当前请求头中 Host: 项的内容,如果存在的话。 |
$_SERVER['HTTP_REFERER'] |
引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。) |
$_SERVER['HTTPS'] |
如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。 |
$_SERVER['REMOTE_ADDR'] |
浏览当前页面的用户的 IP 地址。 |
$_SERVER['REMOTE_HOST'] |
浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。 |
$_SERVER['REMOTE_PORT'] |
用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER['SCRIPT_FILENAME'] |
当前执行脚本的绝对路径。 |
$_SERVER['SERVER_ADMIN'] |
该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:[email protected]) |
$_SERVER['SERVER_PORT'] |
Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。 |
$_SERVER['SERVER_SIGNATURE'] |
包含了服务器版本和虚拟主机名的字符串。 |
$_SERVER['PATH_TRANSLATED'] |
当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。 |
$_SERVER['SCRIPT_NAME'] |
包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。 |
$_SERVER['SCRIPT_URI'] |
URI 用来指定要访问的页面。例如 "/index.html"。 |
PHP $_REQUEST
PHP $_REQUEST 用于收集HTML表单提交的数据。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至