Appearance
附录:PHP 速查手册
1. 核心语法速记(按使用频率排序,附示例)
输出语句
php
<?php
echo "Hello, PHP!"; // 输出字符串
echo $var1, $var2; // 输出多个变量
print "Hello, PHP!"; // 输出字符串,返回 1
print_r($array); // 打印数组
var_dump($var); // 输出变量类型和值
?>变量与常量
php
<?php
$var = "value"; // 定义变量
define('CONSTANT', 'value'); // 定义常量
const CONSTANT = 'value'; // 定义常量(PHP 5.3+)
?>数据类型
php
<?php
$string = "Hello"; // 字符串
$int = 123; // 整数
$float = 123.45; // 浮点数
$bool = true; // 布尔值
$array = [1, 2, 3]; // 数组
$null = null; // null
?>条件语句
php
<?php
if ($condition) {
// 代码
} elseif ($condition2) {
// 代码
} else {
// 代码
}
switch ($var) {
case 'value1':
// 代码
break;
case 'value2':
// 代码
break;
default:
// 代码
}
?>循环语句
php
<?php
for ($i = 0; $i < 10; $i++) {
// 代码
}
while ($condition) {
// 代码
}
foreach ($array as $value) {
// 代码
}
foreach ($array as $key => $value) {
// 代码
}
?>数组操作
php
<?php
$arr = [1, 2, 3]; // 创建数组
$arr[] = 4; // 添加元素
$arr['key'] = 'value'; // 添加关联元素
count($arr); // 数组长度
in_array('value', $arr); // 检查元素是否存在
array_push($arr, 'value'); // 添加元素到末尾
array_pop($arr); // 删除末尾元素
array_merge($arr1, $arr2); // 合并数组
sort($arr); // 排序
?>字符串操作
php
<?php
strlen($str); // 字符串长度
strpos($str, 'search'); // 查找位置
substr($str, 0, 5); // 截取字符串
str_replace('old', 'new', $str); // 替换字符串
explode(',', $str); // 分割字符串
implode(',', $arr); // 连接数组为字符串
trim($str); // 去除首尾空格
strtolower($str); // 转小写
strtoupper($str); // 转大写
htmlspecialchars($str); // 转义 HTML
?>2. 常用工具快捷键汇总
VS Code 快捷键
| 功能 | Windows/Linux | Mac |
|---|---|---|
| 保存 | Ctrl + S | Cmd + S |
| 全选 | Ctrl + A | Cmd + A |
| 复制 | Ctrl + C | Cmd + C |
| 粘贴 | Ctrl + V | Cmd + V |
| 撤销 | Ctrl + Z | Cmd + Z |
| 重做 | Ctrl + Y | Cmd + Shift + Z |
| 查找 | Ctrl + F | Cmd + F |
| 替换 | Ctrl + H | Cmd + Option + F |
| 注释 | Ctrl + / | Cmd + / |
| 格式化代码 | Shift + Alt + F | Shift + Option + F |
PhpStorm 快捷键
| 功能 | Windows/Linux | Mac |
|---|---|---|
| 运行 | Shift + F10 | Control + R |
| 调试 | Shift + F9 | Control + D |
| 查找文件 | Ctrl + Shift + N | Cmd + Shift + O |
| 查找类 | Ctrl + N | Cmd + O |
| 查找操作 | Ctrl + Shift + A | Cmd + Shift + A |
| 重命名 | Shift + F6 | Shift + F6 |
3. 数据库增删改查模板
连接数据库
php
<?php
$conn = mysqli_connect('localhost', 'root', 'password', 'database');
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
mysqli_set_charset($conn, 'utf8mb4');
?>查询数据
php
<?php
$sql = "SELECT * FROM table_name WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row['column_name'];
}
$stmt->close();
?>插入数据
php
<?php
$sql = "INSERT INTO table_name (column1, column2) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ss', $value1, $value2);
if ($stmt->execute()) {
echo "插入成功,ID: " . $stmt->insert_id;
} else {
echo "插入失败: " . $stmt->error;
}
$stmt->close();
?>更新数据
php
<?php
$sql = "UPDATE table_name SET column1 = ?, column2 = ? WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('ssi', $value1, $value2, $id);
if ($stmt->execute()) {
echo "更新成功,影响行数: " . $stmt->affected_rows;
} else {
echo "更新失败: " . $stmt->error;
}
$stmt->close();
?>删除数据
php
<?php
$sql = "DELETE FROM table_name WHERE id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $id);
if ($stmt->execute()) {
echo "删除成功,影响行数: " . $stmt->affected_rows;
} else {
echo "删除失败: " . $stmt->error;
}
$stmt->close();
?>4. 表单接收模板
接收 POST 数据
php
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
// 验证数据
if (empty($username)) {
$errors[] = '用户名不能为空';
}
if (empty($password)) {
$errors[] = '密码不能为空';
}
// 处理数据
if (empty($errors)) {
// 处理逻辑...
}
}
?>接收 GET 数据
php
<?php
$id = $_GET['id'] ?? 0;
$page = $_GET['page'] ?? 1;
// 验证数据
$id = (int)$id;
$page = (int)$page;
if ($id <= 0) {
die('参数错误');
}
?>5. 登录模板
登录处理
php
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'] ?? '';
$password = $_POST['password'] ?? '';
// 验证用户(查询数据库)
$conn = mysqli_connect('localhost', 'root', '', 'database');
$sql = "SELECT * FROM users WHERE username = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
// 登录成功
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header('Location: dashboard.php');
exit;
} else {
$error = '密码错误';
}
} else {
$error = '用户名不存在';
}
$stmt->close();
$conn->close();
}
?>检查登录状态
php
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
// 已登录,显示页面内容
echo "欢迎," . $_SESSION['username'];
?>退出登录
php
<?php
session_start();
session_destroy();
header('Location: login.php');
exit;
?>6. 上传文件模板
文件上传处理
php
<?php
if (isset($_POST['upload'])) {
$file = $_FILES['file'];
// 检查错误
if ($file['error'] !== UPLOAD_ERR_OK) {
die('上传失败');
}
// 检查文件大小
$max_size = 5 * 1024 * 1024; // 5MB
if ($file['size'] > $max_size) {
die('文件太大');
}
// 检查文件类型
$allowed_types = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($file['type'], $allowed_types)) {
die('不允许的文件类型');
}
// 检查文件扩展名
$allowed_extensions = ['jpg', 'jpeg', 'png', 'gif'];
$extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
if (!in_array($extension, $allowed_extensions)) {
die('不允许的文件扩展名');
}
// 生成新文件名
$new_filename = uniqid() . '.' . $extension;
$upload_dir = 'uploads/';
$target_file = $upload_dir . $new_filename;
// 确保目录存在
if (!file_exists($upload_dir)) {
mkdir($upload_dir, 0777, true);
}
// 移动文件
if (move_uploaded_file($file['tmp_name'], $target_file)) {
echo '上传成功:' . $new_filename;
} else {
echo '上传失败';
}
}
?>7. 新手易错点清单
1. 语法错误
| 错误 | 正确 |
|---|---|
echo "Hello" | echo "Hello"; |
if ($condition { | if ($condition) { |
echo 'Hello"; | echo 'Hello'; |
2. 变量错误
| 错误 | 正确 |
|---|---|
echo name; | echo $name; |
$123name = 'value'; | $name123 = 'value'; |
$name = 'value' | $name = 'value'; |
3. 数组错误
| 错误 | 正确 |
|---|---|
$arr = [1, 2, 3 | $arr = [1, 2, 3]; |
echo $arr; | print_r($arr); |
$arr[] = 'value' | $arr[] = 'value'; |
4. 数据库错误
| 错误 | 正确 |
|---|---|
mysqli_query($sql); | mysqli_query($conn, $sql); |
SELECT * FORM table | SELECT * FROM table |
INSERT INTO table VALUES (...) | INSERT INTO table (col1, col2) VALUES (...) |
5. 表单错误
| 错误 | 正确 |
|---|---|
<form method="post"> | <form method="post" action="process.php"> |
<input type="text"> | <input type="text" name="username"> |
<form> | <form method="post" enctype="multipart/form-data"> |
6. Session 错误
| 错误 | 正确 |
|---|---|
$_SESSION['user'] = 'value'; | session_start(); $_SESSION['user'] = 'value'; |
session_start(); 在输出后 | session_start(); 在文件开头 |
7. 文件上传错误
| 错误 | 正确 |
|---|---|
$_POST['file'] | $_FILES['file'] |
<form method="post"> | <form method="post" enctype="multipart/form-data"> |
copy($file, $target); | move_uploaded_file($file['tmp_name'], $target); |
8. 安全错误
| 错误 | 正确 |
|---|---|
$sql = "SELECT * FROM users WHERE id = $id"; | 使用预处理语句 |
echo $_POST['content']; | echo htmlspecialchars($_POST['content']); |
$password = md5($password); | $password = password_hash($password, PASSWORD_DEFAULT); |
小结
本附录提供了 PHP 开发的速查手册,包括核心语法、常用工具快捷键、数据库操作模板、表单接收模板、登录模板、文件上传模板和常见错误清单。这些内容可以帮助你快速查找和使用常用的 PHP 代码片段,提高开发效率。在实际开发中,建议将这些模板保存为代码片段,方便随时调用。同时,要注意避免常见的错误,遵循最佳实践,编写安全、高效的 PHP 代码。
