Abstract: PHP语言中whilefor的用法,以及PHP数组的用法。

1. PHP三种工作模式(文件后缀解析时有何区别)

1.1 module模式

LAMP — Linux Apache Php Mysql

php作为apache模块运行,apache遇到一个php文件,,就相当于执行系统命令 php a.php,文件后缀解析以apache配置文件为主,如果apache认为.xxx文件时php脚本,就当作php执行。

1.2 CGI模式

LNMP — Linux Nginx Php Mysql

php会监听一个端口,nginx/phpstorm/iis等中间件遇到一个php文件时,会把请求转发给php监听的端口。

有两个配置文件,一个是中间件,一个是php服务的,nginx/iis认为.xxx后缀文件是php脚本,交给php处理,但在php配置文件中,会有一个限制php5/php3/phtml/php能够被识别。

第三周总结 最底部有三种模式的对比。

2. PHP数组

2.1 数值数组

​ 自动分配ID键(ID键总是从0开始)

1
2
3
4
5
6
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo $cars[0]; //输出"Volvo"
echo $cars[1]; //输出"BMW"
echo $cars[2]; //输出"Toyota"
?>

​ count()函数—获取数组的长度

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

​ 遍历数值数组

1
2
3
4
5
6
7
8
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++){
echo $cars[$x];
echo "<br>";
}
?>

为一个数组增加一位,不适合用上述这种方法遍历。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$arr = array('name'=>'zs', 2, 'age'=>18, 1);
echo $arr['name']; //zs
echo PHP_EOL;
echo $arr[0]; //2
echo PHP_EOL;
echo $arr['age']; //18
echo PHP_EOL;
echo $arr[1]; //1
$arr1 = array(1,2,3,4,5);
$arr1[0] = 6;
echo PHP_EOL;
$arr1[100] = 100;
echo PHP_EOL;
echo $arr1[0], $arr1[100];
for($i=0; $i<=100; $i++){ //610062345 报错,直到i=100时把100输出
echo $arr1[$i];
}
?>

使用foreach就不会报错,数值数组和关联数组混合时,关联数组并不影响数值数组的下标。

2.2 关联数组

关联数组可以指定键的数组

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

遍历关联数组

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

foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$arr = array(1, 2, 3, 4, 5);
foreach($arr as $key => $value){
echo $key."=>".$value;
echo PHP_EOL;
}
$arr[5]=709;
foreach($arr as $key => $value){
echo $key."=>".$value;
echo PHP_EOL;
}
$arr[100] = 100;
foreach($arr as $key => $value){
echo $key."=>".$value;
echo PHP_EOL;
}
?>