条件语句

在编写代码的时候常常需要为不同判断执行不同的动作

1
2
3
4
5
6
7
if语句 -条件成立时执行代码

if...else语句 -条件成立时执行一块代码,条件不成立时执行另一块代码

if...elseif...else语句 -在若干条件之一成立时执行一个代码块

switch语句 -在若干条件之一成立时执行一个代码块

if语句

语法和C语言类似

1
2
3
if(条件){
代码;
}

例如
1
2
3
4
5
6
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}

如果当前时间小于20,那就输出Have a good day!

if…else语句

语法

1
2
3
4
5
6
7
8
if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}

例如
1
2
3
4
5
6
7
8
9
10
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}

如果当前时间小于20,就输出Have a good day!,否则就输出Have a good night!

if…elseif…else

在若干条件之一成立时执行一个代码块

语法

1
2
3
4
5
6
7
8
9
10
11
12
if (条件)
{
if 条件成立时执行的代码;
}
elseif (条件)
{
elseif 条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}

例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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!";
}

如果当前时间小于 10,下面的实例将输出 Have a good morning!,如果当前时间不小于 10 且小于 20,则输出 Have a good day!,否则输出 Have a good night!

switch语句

switch语句可以说是if…elseif…else的改进,目的是为了更方便的在多条件下执行正确的代码块

语法

1
2
3
4
5
6
7
8
9
10
11
12
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}

例如
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$favcolor="red";
switch ($favcolor)
{
case "red":
echo "你喜欢的颜色是红色!";
break;
case "blue":
echo "你喜欢的颜色是蓝色!";
break;
case "green":
echo "你喜欢的颜色是绿色!";
break;
default:
echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}

首先对一个简单的表达式 n(通常是变量)进行一次计算。将表达式的值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行

数组

数组能够在单个变量中存储多个值

1
2
3
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";

运行结果
1
I like Volvo, BMW and Toyota.

数组就是为了方便遍历数据的产物
1
2
3
$cars1="Volvo";
$cars2="BMW";
$cars3="Toyota";

例如这样存储数据,那么在定义和调用的时候就会比较麻烦

创建数组

在PHP中使用array()函数创建数组

数组有三种类型

1
2
3
4
5
数值数组 -带有数字ID键的数组

关联数组 -带有指定的键的数组,每个键关联一个值

多维数组 -包含一个或多个数组的数组

count函数

count函数用于返回数组的长度

1
2
3
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);

运行结果为3

数值数组

自动分配ID键,总是从0开始

1
$cars=array("Volvo","BMW","Toyota");

还可以人工分配,也就是指定下标内容
1
2
3
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";

遍历数值数组

遍历数组一般用循环语句

1
2
3
4
5
6
7
8
9
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "\n";
}

运行结果
1
2
3
Volvo
BMW
Toyota

关联数组

这里有两种关联数组的方式

1
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

OR
1
2
3
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

例如

1
2
3
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";

运行结果
1
Peter is 35 years old.

遍历关联数组

打印关联数组中的所有值可以用foreach循环

1
2
3
4
5
6
7
8
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "\n";
}

运行结果
1
2
3
Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43

数组排序

按字母或者数字顺序降序或升序排列

排列函数

1
2
3
4
5
6
7
8
9
10
11
sort() - 对数组进行升序排列

rsort() - 对数组进行降序排列

asort() - 根据关联数组的值,对数组进行升序排列

ksort() - 根据关联数组的键,对数组进行升序排列

arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列

sort -对数组升序排列

按照字母顺序升序排列

1
2
3
4
<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);
print_r($cars);

运行结果
1
2
3
4
5
6
Array
(
[0] => BMW
[1] => Toyota
[2] => Volvo
)

按照数字排列
1
2
3
4
<?php
$numbers=array(4,6,2,22,11);
sort($numbers);
print_r($numbers);

运行结果
1
2
3
4
5
6
7
8
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 11
[4] => 22
)

rsort() -对数组降序排列

按字母排列

1
2
3
4
<?php
$cars=array("Volvo","BMW","Toyota");
rsort($cars);
print_r($cars);

运行结果
1
2
3
4
5
6
Array
(
[0] => Volvo
[1] => Toyota
[2] => BMW
)

按字母排列类似

asort -根据数组的值升序排列

1
2
3
4
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
asort($age);
print_r($age);

运行结果

1
2
3
4
5
6
Array
(
[Peter] => 35
[Ben] => 37
[Joe] => 43
)

降序排列为arsort()

ksort() -根据数组的键升序排列

1
2
3
4
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);
print_r($age);

运行结果

1
2
3
4
5
6
Array
(
[Ben] => 37
[Joe] => 43
[Peter] => 35
)

降序排列为krsort()

总结

1.PHP的判断语句与C语言很类似,在只有一句代码而不是代码块时,可以省略{}

2.PHP的数组创建使用的是array()函数,而不是使用[]

3.PHP中的数值数组其实ID键就是所说的下标,而关联数组类似于python中的键值对

4.数组的排列函数升序是sort,逆序就在sort前加一个r

5.遍历关联数组需要使用foreach语句,foreach 仅能够应用于数组和对象,在后面的循环中会讲到