>大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新......
>
> - github:https://github.com/Daotin/Web
> - 微信公众号:[Web前端之巅](https://github.com/Daotin/pic/raw/master/wx.jpg)
> - 博客园:http://www.cnblogs.com/lvonve/
> - CSDN:https://blog.csdn.net/lvonve/
>
> 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!
![](https://github.com/Daotin/pic/raw/master/fgx.png)
# 一、PHP 基础语法
## 1、基本结构
- 所有PHP代码都要写到 `` 里面。
- PHP文件可以和 HTML 文件结合进行使用。
- PHP文件的默认扩展名是 ".php"。
- **PHP代码必须在服务器上执行。**
## 2、打印语句
**echo**: 的作用在页面中输入字符串(只能打印字符串,数字等简单类型)
**print_r** :输出复杂类型
**var_dump** :输出复杂类型
```php
";
echo 123;
echo "
";
print_r([1,2,3,4,5]);
echo "
";
var_dump([1,2,3,4,5]);
?>
```
打印结果:
```
hello Daotin.
123
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
array (size=5)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => int 5
```
## 3、变量的声明和使用
变量的声明和使用都需要加 "$" 符号。
```php
$str = "Hello";
echo $str;
```
## 4、字符串的拼接
字符串的拼接不是使用 "+",而是使用 "."
```php
$str1 = "Hello";
$str2 = "World";
echo $str1 . " " . $str2;
```
## 5、PHP的执行原理
浏览器是不识别 PHP 文件的,用浏览器发开 PHP 文件,只会显示 PHP 的源代码,所以 PHP 文件必须在服务器中执行。其实 apache 服务器也识别不了 PHP 文件,是 apache 将 PHP 文件再交给 PHP 模块处理的,最后 apache 将处理之后的网页内容返回。
## 6、数组
**一维数组的定义:**
```php
$arr = array();
$arr[0] = "10";
$arr[1] = "20";
$arr[2] = "30";
```
或者
```php
$arr = array("10", "20", "30");
```
注意:数组是复杂类型,不能使用 echo 直接打印,只能打印其中的某个元素,复杂类型使用 print_r 或者 var_dump。
示例:
```php
$arr1 = array();
$arr1[0] = "10";
$arr1[1] = "20";
$arr1[2] = "30";
$arr2 = array("40", "50", "60");
// echo $arr1; // 不能直接打印数组
print_r($arr1);
var_dump($arr2);
echo json_encode($arr1); // 将数组转化成 json 格式打印,转化后是 字符串格式,可以使用echo。
```
打印结果:
```
Array ( [0] => 10 [1] => 20 [2] => 30 )
array (size=3)
0 => string '40' (length=2)
1 => string '50' (length=2)
2 => string '60' (length=2)
["10","20","30"]
```
**数组的下标索引自定义**
```php
$arr = array("index1"=>"40", "index2"=>"50", "index3"=>"60");
print_r($arr);
```
或者只自定义其中几个:
```php
$arr = array("40", "index"=>"50", "60");
print_r($arr);
```
此时 "40" 的下标为 0, "60" 的下标为1。
自定义所以的方式不可以使用 for 循环遍历数组,因为其下标已经不是 0,1,2 了。
要使用 foreach 的方式。(key 为索引,value 为索引对应的值)
```php
foreach($arr as $key => $value) {
echo $key . "---" . $value . "
";
}
```
**二维数组的定义:**
```php
$arr = array();
$arr[0] = array("1", "2", "3");
$arr[1] = array("4", "5", "6");
var_dump($arr);
echo json_encode($arr);
```
打印结果:
```
array (size=2)
0 =>
array (size=3)
0 => string '1' (length=1)
1 => string '2' (length=1)
2 => string '3' (length=1)
1 =>
array (size=3)
0 => string '4' (length=1)
1 => string '5' (length=1)
2 => string '6' (length=1)
[["1","2","3"],["4","5","6"]]
```
## 7、函数
系统函数:比如:
json_encode:PHP中将数组转化为 json 格式的字符串。
var_dump:输出复杂的数据类型
print_r:输出复杂的数据类型
count:得到数组的长度
自定义函数:
和 js 类似,以 function 进行声明。
```php
function add($num1, $num2) {
return $num1 + $num2;
}
```
## 8、预定义变量
我们知道,动态网页会根据不同的需求展示不同的界面,那么是怎么做到的呢?
**请求类型**
请求的时候是需要携带参数的,用来表示不同的要求,根据参数的不同,而展示不同的界面。
根据参数携带的位置不同,可以简单把请求分为 Get 请求 和 Post 请求。
get 请求:跟在 URL 后面,用问号 "?" 连接,多个参数之间用 & 连接。
post 请求:参数在请求体中。
**获取请求参数的值**
`$_GET["属性名字"]` :获取 get 请求的属性的值。
`$_POST["属性名字"]` :获取 post 请求的属性的值。
### 8.1、get请求
示例:php 获取用户登录名和密码进行校验
```html