中文乱码
header("Content-type:text/html;charset=utf-8");
一、php 程序
- PHP 文件的默认扩展名是 “.php”
- PHP 文件中可以包含 html、CSS、JavaScript 代码 | 序号 | 组成 | 描述 | | —- | —- | —- | | 1 | <?php … ?> | PHP 标记 | | 2 | PHP代码 | 函数、数组、流程控制、类、方法… | | 3 | ;、{} | 语句结束符 | | 4 | 空白符 | 合理使用空白符可增强代码可读性 | | 5 | 注释 | // 单行注释, / 多行注释 / |
1、PHP 标记
- 开始标记 <?php 和 结束标记 ?> 中间写 PHP 代码
当解析一个文件时,PHP 会寻找起始和结束标记,也就是告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略。
<?php ?>
2、PHP 代码
| 序号 | 指令 | 描述 |
|---|---|---|
| 1 | echo | 可以输出一个或多个字符串,用逗号(,)隔开 |
| 2 | 只允许输出一个字符串 |
<?php echo 111,222 print 111 ?>
3、语句结束符 ;
<?php echo 111,222; print 111; ?>
4、注释
<?php
// 这是单行注释
/*
这是多行注释
注释后,在浏览器和网页源码中,是看不到的。
*/
?>
php 变量
1、声明变量
<?php
$a = 'php中文网原创视频:《天龙八部》公益php培训系列课程汇总!';
echo $a;
?>
2、局部和全局作用域
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
<?php
$x=5; // 全局变量
function myTest()
{
$y=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 x 为: $x"; //$x为全局变量,函数访问,需要使用global
echo "<br>";
echo "变量 y 为: $y"; //10
}
myTest();
echo "<p>测试函数外变量:<p>";
echo "变量 x 为: $x"; //5
echo "<br>";
echo "变量 y 为: $y"; //$y为局部变量,无法访问
?>
3、global 关键字
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
<?php
header("Content-type:text/html;charset=utf-8");
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
上面的实例可以写成这样:
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
4、Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest();
myTest();
myTest();
?>
// 0 1 2
5、参数作用域
<?php
function myTest($x)
{
echo $x;
}
myTest(5);
?>
echo 和 print 语句
echo 输出的速度比 print 快, echo 没有返回值,print有返回值1
<?php
header("Content-type:text/html;charset=utf-8");
$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");
print $txt1;
print "<br>";
print "在 $txt2 学习 PHP ";
print "<br>";
print "我车的品牌是 {$cars[0]}";
echo "<br>";
echo "我车的品牌是 {$cars[0]}";
?>
EOF(heredoc) 使用说明
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。
使用概述:
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
- 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
<?php
header("Content-type:text/html;charset=utf-8");
$name="runoob";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
PHP 数据类型
数据类型
字符串
一个字符串是一串字符的序列,就像 “Hello world!”。
<?php
header("Content-type:text/html;charset=utf-8");
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>
整型
整数是一个没有小数的数字。
整数规则:
- 整数必须至少有一个数字 (0-9)
- 整数不能包含逗号或空格
- 整数是没有小数点的
- 整数可以是正数或负数
- 整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
PHP var_dump()函数返回变量的数据类型和值:
<?php
$x = 5985;
var_dump($x);// 正数
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
echo "<br>";
echo decbin(32) // 二进制数
?>
浮点型
浮点数是带小数部分的数字,或是指数形式。
在以下实例中我们将测试不同的数字。 PHP var_dump() 函数返回变量的数据类型和值:
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
布尔型
布尔型可以是 TRUE 或 FALSE。
<?php
$x=true;
$y=false;
echo $x; // 1
print $y; // "空"
var_dump($x); //bool(true)
var_dump($y); //bool(false)
?>
数组
数组可以在一个变量中存储多个值。
在以下实例中创建了一个数组, 然后使用 PHP var_dump() 函数返回数组的数据类型和值
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars); //array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(6) "Toyota" }
echo "<br>";
print_r($cars); //Array ( [0] => Volvo [1] => BMW [2] => Toyota )
?>
对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
<?php
class Car
{
var $color;
function __construct($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
NULL 值
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据:
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
资源类型
PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。
常见资源数据类型有打开文件、数据库连接、图形画布区域等。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
使用 get_resource_type() 函数可以返回资源(resource)类型:
get_resource_type(resource $handle): string
此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。
<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印:mysql link
$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印:domxml document
?>
类型转换
在很多条件下,需要指定的数据类型,需要外部数据(当前 PHP 取得的数据),转换成目标数据类型
在 PHP 中有两种数据类型转换方式:
- 自动转换:系统根据需求自动判定,自己转换(用的比较多,效率偏低)
- 强制(手动)转换:认为根据需要的目标类型转换
强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer其中NULL 类型用到 unset()
在转换过程中,用的比较多的就是转布尔类型(判断)和转数值类型(算数运算)
其他类型转布尔类型:true 或者 false,在 PHP 中比较少 类型转换编程false
类型比较
虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
- 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
- 严格比较:用三个等号 === 比较,除了比较值,也比较类型。 ``` <?php if(42 == “42”) { echo ‘1、值相等’; }
echo PHP_EOL; // 换行符
if(42 === “42”) { echo ‘2、类型相等’; } else { echo ‘3、类型不相等’; } ?>
<a name="lanbh"></a>
### PHP中 比较 0、false、null
<?php echo ‘0 == false: ‘; var_dump(0 == false); echo ‘0 === false: ‘; var_dump(0 === false); echo PHP_EOL; echo ‘0 == null: ‘; var_dump(0 == null); echo ‘0 === null: ‘; var_dump(0 === null); echo PHP_EOL; echo ‘false == null: ‘; var_dump(false == null); echo ‘false === null: ‘; var_dump(false === null); echo PHP_EOL; echo ‘“0” == false: ‘; var_dump(“0” == false); echo ‘“0” === false: ‘; var_dump(“0” === false); echo PHP_EOL; echo ‘“0” == null: ‘; var_dump(“0” == null); echo ‘“0” === null: ‘; var_dump(“0” === null); echo PHP_EOL; echo ‘“” == false: ‘; var_dump(“” == false); echo ‘“” === false: ‘; var_dump(“” === false); echo PHP_EOL; echo ‘“” == null: ‘; var_dump(“” == null); echo ‘“” === null: ‘; var_dump(“” === null);
<a name="cJBI5"></a>
# PHP 常量
常量是一个简单值的标识符。该值在脚本中不能改变。<br />一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
<a name="zMmYr"></a>
### 设置 PHP 常量
设置常量,使用 define() 函数,函数语法如下:
> bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
- name:必选参数,常量名称,即标志符。
- value:必选参数,常量的值。
- case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
<?php
// 区分大小写的常量名
define(“GREETING”, “欢迎访问 Runoob.com”); //define(“GREETING”, “欢迎访问 Runoob.com”,true);
echo GREETING; // 输出 “欢迎访问 Runoob.com”
echo ‘
‘;
echo greeting; // 输出 “greeting”,但是有警告信息,表示该常量未定义
?>
<a name="wK5hj"></a>
### 常量是全局的
常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
<?php define(“GREETING”, “欢迎访问 Runoob.com”);
function myTest() { echo GREETING; }
myTest(); // 输出 “欢迎访问 Runoob.com” ?>
<a name="aQRVP"></a>
# PHP 字符串
<a name="htpRq"></a>
### 字符串变量
字符串变量用于包含有字符的值。<br />在创建字符串之后,我们就可以对它进行操作了。您可以直接在函数中使用字符串,或者把它存储在变量中。
<?php $txt=”Hello world!”; echo $txt; ?>
<a name="mhK4P"></a>
### 并置运算符
在 PHP 中,只有一个字符串运算符。<br />并置运算符 (.) 用于把两个字符串值连接起来。
<?php $txt1=”Hello world!”; $txt2=”What a nice day!”; echo $txt1 . “ “ . $txt2; ?>
<a name="T0bep"></a>
### strlen() 函数
有时知道字符串值的长度是很有用的。<br />strlen() 函数返回字符串的长度(字节数)。
<?php echo strpos(“Hello world!”,”world”); ?>
<a name="Hd5Kb"></a>
# PHP 运算符
在 PHP 中,赋值运算符 = 用于给变量赋值。<br />在 PHP 中,算术运算符 + 用于把值加在一起。
<a name="eDG7l"></a>
## 算术运算符
| 运算符 | 名称 | 描述 | 实例 | 结果 |
| --- | --- | --- | --- | --- |
| 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 % 2<br />10 % 8<br />10 % 2 | 1<br />2<br />0 |
| - x | 取反 | x 取反 | <?php<br /> $x =2; <br />echo -$x; <br />?> | -2 |
| a . b | 并置 | 连接两个字符串 | "Hi" . "Ha" | HiHa |
<?php
$x=10;
$y=6;
echo ($x + $y); // 输出16
echo ‘
‘; // 换行
echo ($x - $y); // 输出4
echo ‘
‘; // 换行
echo ($x * $y); // 输出60
echo ‘
‘; // 换行
echo ($x / $y); // 输出1.6666666666667
echo ‘
‘; // 换行
echo ($x % $y); // 输出4
echo ‘
‘; // 换行
echo -$x; ?>
·PHP7+ 版本新增整除运算符** intdiv()**,该函数返回值为第一个参数除于第二个参数的值并取整(向下取整)
<?php var_dump(intdiv(10, 3)); ?>
<a name="keNQK"></a>
## 赋值运算符
| 运算符 | 等同于 | 描述 |
| --- | --- | --- |
| 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 | 连接两个字符串 |
<?php $x=10; echo $x; // 输出10
$y=20; $y += 100; echo $y; // 输出120
$z=50; $z -= 25; echo $z; // 输出25
$i=5; $i *= 6; echo $i; // 输出30
$j=10; $j /= 5; echo $j; // 输出2
$k=15; $k %= 4; echo $k; // 输出3 ?>
`
递增/递减运算符
| 运算符 | 名称 | 描述 |
|---|---|---|
| ++ x | 预递增 | x 加 1,然后返回 x |
| x ++ | 后递增 | 返回 x,然后 x 加 1 |
| — x | 预递减 | x 减 1,然后返回 x |
| x — | 后递减 | 返回 x,然后 x 减 1 |
比较运算符
比较操作符可以让您比较两个值:
| 运算符 | 名称 | 描述 | 实例 |
|---|---|---|---|
| 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 and y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 and y > 1) 返回 true |
| x or y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x==6 or y==5) 返回 true |
| x xor y | 异或 | 如果 x 和 y 有且仅有一个为 true,则返回 true | x=6 y=3 (x==6 xor y==3) 返回 false |
| x && y | 与 | 如果 x 和 y 都为 true,则返回 true | x=6 y=3 (x < 10 && y > 1) 返回 true |
| x || y | 或 | 如果 x 和 y 至少有一个为 true,则返回 true | x=6 y=3 (x==5 || y==5) 返回 false |
| ! x | 非 | 如果 x 不为 true,则返回 true | x=6 y=3 !(x==y) 返回 true |
数组运算符
| 运算符 | 名称 | 描述 |
|---|---|---|
| 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 |
三元运算符
(expr1) ? (expr2) : (expr3)
<?php
$test = '菜鸟教程';
// 普通写法
$username = isset($test) ? $test : 'nobody';
echo $username, PHP_EOL;
// PHP 5.3+ 版本写法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;
?>
注意:PHP_EOL 是一个换行符,兼容更大平台。
组合比较符(PHP7+)
PHP7+ 支持组合比较符(combined comparison operator)也称之为太空船操作符,符号为 <=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。
语法格式如下:
$c = $a <=> $b;
解析如下:
- 如果 $a > $b, 则 $c 的值为 1。
- 如果 $a == $b, 则 $c 的值为 0。
- 如果 $a < $b, 则 $c 的值为 -1。 ``` <?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 ?>
<a name="Htu09"></a>
## 运算符优先级
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。<br />说明:左 = 从左到右,右 = 从右到左。
| 结合方向 | 运算符 | 附加信息 |
| --- | --- | --- |
| 无 | clone new | clone 和 new |
| 左 | [ | array() |
| 右 | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | 类型和递增/递减 |
| 无 | instanceof | 类型 |
| 右 | ! | 逻辑运算符 |
| 左 | * / % | 算术运算符 |
| 左 | + – . | 算术运算符和字符串运算符 |
| 左 | << >> | 位运算符 |
| 无 | == != === !== <> | 比较运算符 |
| 左 | & | 位运算符和引用 |
| 左 | ^ | 位运算符 |
| 左 | | | 位运算符 |
| 左 | && | 逻辑运算符 |
| 左 | || | 逻辑运算符 |
| 左 | ? : | 三元运算符 |
| 右 | = += -= *= /= .= %= &= |= ^= <<= >>= => | 赋值运算符 |
| 左 | and | 逻辑运算符 |
| 左 | xor | 逻辑运算符 |
| 左 | or | 逻辑运算符 |
| 左 | , | 多处用到 |
<a name="qo0hf"></a>
# PHP 条件语句
当您编写代码时,您常常需要为不同的判断执行不同的动作。您可以在代码中使用条件语句来完成此任务。<br />在 PHP 中,提供了下列条件语句:
- if 语句 - 在条件成立时执行代码
- if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
- if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
- switch 语句 - 在若干条件之一成立时执行一个代码块
<a name="NAl0m"></a>
## if 语句
if (条件) { 条件成立时要执行的代码; }
```
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
?>
if…else 语句
if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
if…elseif….else 语句
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}
<?php
$t=date("H");
if ($t<"10")
{
echo "Have a good morning!";
}
elseif ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
Switch 语句
switch 语句用于根据多个不同条件执行不同动作。
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
工作原理:首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。
<?php
header("Content-type:text/html;charset=utf-8");
$favcolor="red";
switch ($favcolor)
{
case "red":
echo "你喜欢的颜色是红色!";
break;
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
PHP 数组
数组是一个能在单个变量中存储多个值的特殊变量。
print_r() 输出数组
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
print_r($cars)
?>
获取数组的长度 - count() 函数
count() 函数用于返回数组的长度(元素的数量):
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>
遍历数值数组
遍历并打印数值数组中的所有值,您可以使用 for 循环
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
PHP 关联数组
跟python的字典类似
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
$age=array(“Peter”=>”35”,”Ben”=>”37”,”Joe”=>”43”);
or:
$age[‘Peter’]=”35”; $age[‘Ben’]=”37”; $age[‘Joe’]=”43”;
随后可以在脚本中使用指定的键:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
遍历关联数组
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
PHP - 数组排序函数
sort() - 对数组进行升序排列
字母:A~Z
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
?>
数字:
<?php
$numbers=array(4,6,2,22,11);
sort($numbers);
?>
rsort() - 对数组进行降序排列
字母:Z~A
<?php
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
?>
数字:
<?php
$numbers=array(4,6,2,22,11);
rsort($numbers);
?>
asort() - 根据关联数组的值,对数组进行升序排列
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
?>
ksort() - 根据关联数组的键,对数组进行升序排列
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
?>
arsort() - 根据关联数组的值,对数组进行降序排列
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);
?>
krsort() - 根据关联数组的键,对数组进行降序排列
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
krsort($age);
?>
PHP 超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
PHP $GLOBALS
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。 ``` <?php $x = 75; $y = 25;
function addition() { $GLOBALS[‘z’] = $GLOBALS[‘x’] + $GLOBALS[‘y’]; }
addition(); echo $z; ?>
以上实例中 z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。
<a name="yiL6U"></a>
## PHP $_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
<?php
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['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 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com) |
| $_SERVER['SERVER_PORT'] | Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。 |
| $_SERVER['SERVER_SIGNATURE'] | 包含了服务器版本和虚拟主机名的字符串。 |
| $_SERVER['PATH_TRANSLATED'] | 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。 |
| $_SERVER['SCRIPT_NAME'] | 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。 |
| $_SERVER['SCRIPT_URI'] | URI 用来指定要访问的页面。例如 "/index.html"。 |
<a name="OBv7l"></a>
## PHP $_REQUEST
PHP $_REQUEST 用于收集HTML表单提交的数据。
<?php $name = $_REQUEST[‘fname’]; echo $name; ?>
PHP $_POST
PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:”method=”post”。
