PHP 是互联网领域最主流的后端语言之一,主要用于 Web 开发,优点就是学习门槛低,部署也简单。
因此大量网站都基于 PHP 构建,包括:
- 博客
- 论坛
- CMS
- 商城
- 企业官网
典型代表:
- WordPress
- Discuz!
- Drupal
PHP 的本质
“嵌入 HTML 的服务器端脚本语言”
服务器收到请求后:
浏览器请求
↓
Web 服务器(Apache)
↓
PHP 解释执行
↓
生成 HTML
↓
返回浏览器
浏览器永远看不到 PHP 源码,只能看到 PHP 执行后的结果。
PHP 文件
- PHP 文件通常以
.php结尾。 -
PHP 代码写在 php 标签中,例如:
<?php echo "Hello PHP"; ?>
PHP 最核心的特点
- 解释执行,不需要编译。
-
面向 Web,内置大量 Web 能力:
-
表单处理
- Cookie
- Session
- 文件上传
- HTTP Header
-
数据库访问
-
HTML 混编,例如:
<html> <body> <h1>用户列表</h1> <?php echo "<p>Tom</p>"; echo "<p>Jerry</p>"; ?> </body> </html>
PHP 基础语法
1. 输出
<?php
echo "Hello";
print "World";
?>
2. 变量
PHP 变量以 $ 开头。
<?php
$name = "Tom";
$age = 18;
echo $name;
echo $age;
?>
特点:
- 不需要声明类型
- 自动推断类型
3. 数据类型
常见类型:
$string = "abc";
$int = 123;
$float = 3.14;
$bool = true;
$array = array();
PHP 属于弱类型语言。
数组(非常重要)
PHP 的数组功能极强,可以实现列表、字典(HashMap)。
<?php
# 普通数组
$names = array("Tom", "Jerry");
echo $names[0];
# 关联数组
$user = array(
"name" => "Tom",
"age" => 18
);
echo $user["name"];
?>
流程控制
if 判断
<?php
$age = 20;
if ($age >= 18) {
echo "成人";
} else {
echo "未成年";
}
?>
for 循环
<?php
for ($i = 0; $i < 5; $i++) {
echo $i;
}
?>
foreach(高频)
<?php
$names = array("Tom", "Jerry");
foreach ($names as $name) {
echo $name;
}
?>
PHP 中大量数据遍历都依赖 foreach。
函数
定义函数:
<?php
function add($a, $b) {
return $a + $b;
}
echo add(1, 2);
?>
特点:
- 参数无需声明类型
- 返回值无需声明类型
表单处理
<form method="post">
<input name="username" />
<input type="submit" />
</form>
<?php
$username = $_POST['username'];
echo $username;
?>
PHP 提供超级全局变量:
$_GET$_POST$_COOKIE$_SESSION$_FILES
这是 Web 编程基础。
数据库操作(MySQL)
<?php
mysql_connect("localhost", "root", "123456");
$result = mysql_query("SELECT * FROM users");
?>
mysqli
pdo
Session 与 Cookie
Cookie 在浏览器中保存会话数据。
<?php
setcookie("username", "Tom");
?>
Session 在服务器保存会话数据。
<?php
session_start();
$_SESSION['user_id'] = 1;
?>
登录系统大量依赖 Session。
PHP 的运行环境
Linux 下的 LAMP 组合:Linux + Apache + MySQL + PHP
Windows 下反正我都是选择 XAMPP 套件,也是包含 Apache + MySQL + PHP。