什么是 PHP?
- PHP 是 “PHP Hypertext Preprocessor” 的首字母缩略词
- PHP 是一种被广泛使用的开源脚本语言
- PHP 脚本在服务器上执行
PHP 没有成本,可供免费下载和使用
其他的概念就不闲扯淡了…
安装配置
http://php.net/manual/zh/install.php 官网的安装说明
语法
<!DOCTYPE html>
<html>
<body>
<h1>我的第一张 PHP 页面</h1>
// 这是单行注释
# 这也是单行注释
/* 多行注释 */
<?php
// 此处是 PHP 代码
// 以分号结尾(;)
echo "Hello World!";
// 关键字大小写不敏感,但是变量还是敏感的
ECHO "Hello World!<br>";
$txt="Hello world!";
$x=5;
$y=10.5;
$z=$x+$y;
echo $z;
?>
</body>
</html>
PHP 变量规则:
- 变量以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
PHP 根据它的值,自动把变量转换为正确的数据类型。
在诸如 C 和 C++ 以及 Java 之类的语言中,程序员必须在使用变量之前声明它的名称和类型。
PHP 变量作用域
- local(局部)
- global(全局)
- static(静态) 这个关键字的用途很多语言都通用
Local 和 Global 作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
<?php
$x=5; // 全局作用域
function myTest() {
$y=10; // 局部作用域
echo "<p>测试函数内部的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
}
myTest();
echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>
PHP global 关键词
global 关键词用于访问函数内的全局变量。
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
上面的例子可以这样重写:为什么呢?PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 输出 15
?>
PHP echo 和 print 语句
echo 和 print 之间的差异:
- echo - 能够输出一个以上的字符串
- print - 只能输出一个字符串,并始终返回 1
PHP 数据类型
字符串(“String”)、整数、浮点数、逻辑(true/false)、数组(array(***))、对象(class 关键词)、NULL(变量无值)。
PHP 字符串函数
- trlen() 函数返回字符串的长度
- strpos() 函数用于检索字符串内指定的字符或文本
- …
- PHP String 参考手册
PHP 常量
设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
<?php
define("GREETING", "Welcome to http://blog.youkuaiyun.com/w627947015!");
echo GREETING;
?>
PHP 运算符
- PHP 算数运算符
<?php
$x=10;
$y=6;
echo ($x + $y); // 输出 16
echo ($x - $y); // 输出 4
echo ($x * $y); // 输出 60
echo ($x / $y); // 输出 1.6666666666667
echo ($x % $y); // 输出 4
?>
- PHP 赋值运算符
<?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
?>
- PHP 字符串运算符
.串接
.=串接赋值
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world!
?>
- PHP 递增/递减运算符
运算符 | 名称 | 描述 |
---|---|---|
++$x | 前递增 | $x 加一递增,然后返回 $x |
$x++ | 后递增 | 返回 $x,然后 $x 加一递增 |
- -$x | 前递减 | $x 减一递减,然后返回 $x |
$x- - | 后递减 | 返回 $x,然后 $x 减一递减 |
<?php
$x=10;
echo ++$x; // 输出 11
$y=10;
echo $y++; // 输出 10
$z=5;
echo --$z; // 输出 4
$i=5;
echo $i--; // 输出 5
?>
- PHP 比较运算符
<?php
$x=100;
$y="100";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x !== $y);
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
?>
- PHP 逻辑运算符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
and | 与 | $x and $y | 如果 $x 和 $y 都为 true,则返回 true。 |
or | 或 | $x or $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor | 异或 | $x xor $y | 如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& | 与 | $x && $y | 如果 $x 和 $y 都为 true,则返回 true。 |
|| | 或 | $x || $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! | 非 | !$x | 如果 $x 不为 true,则返回 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。 |
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $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);
?>
PHP if…else…elseif 语句 / Switch 语句
if (条件) {
当条件为 true 时执行的代码;
}
switch (expression)
{
case label1:
...;
break;
default:
...
}
PHP while 循环 / for 循环
while (条件为真) {
要执行的代码;
}
do {
要执行的代码;
} while (条件为真);
for (init counter; test counter; increment counter) {
code to be executed;
}
foreach ($array as $value) {
code to be executed;
}
PHP 函数
function functionName() {
被执行的代码;
}
- 函数参数
<?php
function familyName($fname) {
echo "$fname Zhang.<br>";
}
familyName("YIYE");
?>
- PHP 默认参数值
<?php
function setHeight($minheight=50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // 将使用默认值 50
?>
- PHP 函数 - 返回值
<?php
function sum($x,$y) {
$z=$x+$y;
return $z;
}
echo "5 + 10 = " . sum(5,10) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>
PHP 数组
<?php
$cars=array("Volvo","BMW","SAAB");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
在 PHP 中,有三种数组类型:
索引数组 - 带有数字索引的数组
- 索引是自动分配的(索引从 0 开始)
- 获得数组的长度 - count() 函数
- 遍历索引数组
<?php $cars=array("Volvo","BMW","SAAB"); $arrlength=count($cars); for($x=0;$x<$arrlength;$x++) { echo $cars[$x]; echo "<br>"; } ?>
关联数组 - 带有指定键的数组
有两种创建关联数组的方法:
$age=array(“Peter”=>”35”,”Ben”=>”37”,”Joe”=>”43”);
或者:
$age[‘Peter’]=”35”;
$age[‘Ben’]=”37”;
$age[‘Joe’]=”43”;使用:
<?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); echo "Peter is " . $age['Peter'] . " years old."; ?>
遍历关联数组
<?php $age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43"); foreach($age as $x=>$x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "<br>"; } ?>
多维数组 - 包含一个或多个数组的数组
稍微复杂了点,相对也用的较少
PHP 数组参考手册
PHP 数组排序
PHP - 数组的排序函数
在本节中,我们将学习如下 PHP 数组排序函数:
sort() - 以升序对数组排序
<?php
$cars=array("Volvo","BMW","SAAB");
sort($cars);
?>
rsort() - 以降序对数组排序
<?php
$cars=array("Volvo","BMW","SAAB");
rsort($cars);
?>
asort() - 根据值,以升序对关联数组进行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
asort($age);
?>
ksort() - 根据键,以升序对关联数组进行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
ksort($age);
?>
arsort() - 根据值,以降序对关联数组进行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
arsort($age);
?>
krsort() - 根据键,以降序对关联数组进行排序
<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");
krsort($age);
?>
PHP 全局变量 - 超全局变量
超全局变量 在 PHP 4.1.0 中引入,是在全部作用域中始终可用的内置变量。
PHP 全局变量 - 超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。
这些超全局变量是:
\$GLOBALS
\$_SERVER
\$_REQUEST
\$_POST
\$_GET
\$_FILES
\$_ENV
\$_COOKIE
\$_SESSION