
书: https://pan.baidu.com/s/1hMg-9fMkkzntAfHoLymQMA?pwd=2tx9
笔记如下:
- PHP基础语法:PHP脚本以
<?php
开头,?>
结尾,支持变量、常量、运算符和流程控制结构(if/else/for/while)。 - 变量与数据类型:PHP是弱类型语言,支持整型(
int
)、浮点型(float
)、字符串(string
)、布尔型(bool
)、数组(array
)等。 - 字符串操作:
- 单引号(
'
)不解析变量,双引号("
)解析变量和转义字符。 - 常用函数:
strlen()
、substr()
、str_replace()
、explode()
/implode()
。
- 数组类型与操作:
- 索引数组(
$arr = [1, 2, 3]
)和关联数组($arr = ['name' => 'Alice']
)。 - 函数:
array_push()
、array_merge()
、array_key_exists()
、foreach
遍历。
- 函数与作用域:
- 自定义函数:
function sayHello($name) { ... }
。 - 全局变量需用
global
关键字或$GLOBALS
超全局数组访问。
- 面向对象编程(OOP):
- 类与对象:
class User { ... }
,$user = new User()
。 - 特性:封装、继承(
extends
)、多态、抽象类(abstract
)和接口(interface
)。
- 错误处理:
- 错误类型:Notice、Warning、Fatal Error。
- 异常处理:
try/catch
块和throw new Exception()
。
- 文件操作:
- 文件读写:
file_get_contents()
、file_put_contents()
、fopen()
/fclose()
。 - 目录操作:
scandir()
、mkdir()
、unlink()
。
- 表单处理:
- 获取表单数据:
$_GET
、$_POST
、$_REQUEST
。 - 安全过滤:
htmlspecialchars()
防止XSS,filter_var()
验证输入。
- 会话与Cookie:
session_start()
启用会话,$_SESSION
存储会话数据。setcookie()
设置Cookie,$_COOKIE
读取Cookie。
- 数据库操作(PDO):
- 连接数据库:
new PDO("mysql:host=localhost;dbname=test", "user", "pass")
。 - 执行SQL:
$stmt = $pdo->prepare("SELECT * FROM users")
,$stmt->execute()
。
- 连接数据库:
- MySQLi扩展:
- 面向过程:
mysqli_connect()
、mysqli_query()
。 - 面向对象:
$mysqli = new mysqli()
,$result = $mysqli->query()
。
- 面向过程:
- JSON处理:
json_encode()
将数组/对象转为JSON字符串。json_decode()
将JSON字符串转为PHP对象或数组。
- 日期与时间:
date("Y-m-d H:i:s")
格式化日期。DateTime
类:$date = new DateTime()
,$date->format()
。
- 命名空间(Namespace):
- 避免命名冲突:
namespace MyProject;
,使用use MyProject\User
。
- 避免命名冲突:
- Composer与依赖管理:
composer.json
定义项目依赖,composer install
安装包。- 自动加载:
require 'vendor/autoload.php'
。
- RESTful API开发:
- 使用
$_SERVER['REQUEST_METHOD']
获取HTTP方法(GET/POST/PUT/DELETE)。 - 返回JSON响应:
header('Content-Type: application/json')
。
- 使用
- 安全实践:
- 密码哈希:
password_hash()
和password_verify()
。 - CSRF防护:生成并验证Token。
- 密码哈希:
- 性能优化:
- 使用OPcache加速脚本执行。
- 避免重复查询数据库,使用缓存(Redis/Memcached)。
- 现代PHP特性:
- 类型声明:
function sum(int $a, int $b): int { ... }
。 - 匿名类与闭包:
$func = function($x) { return $x * 2; };
。
- 类型声明: