PHP核心笔记
一、语言基础
1. 语法结构
-
脚本标记:
<?php ... ?>(标准)、<% ... %>(ASP兼容模式) -
指令分隔符:分号
;(语句结束符) -
注释方式:
-
//单行注释 -
#单行注释(脚本模式) -
/* ... */多行注释
2. 变量系统
-
声明方式:
$variable = value;(无需类型声明) -
命名规则:以字母/下划线开头,区分大小写
-
七大类型:
-
布尔值(Boolean)
-
整数(Integer)
-
字符串(String)
-
浮点数(Float)
-
数组(Array)
-
对象(Object)
-
资源(Resource)
3. 数据类型检测
is_bool($var); // 布尔值检测
is_string($var); // 字符串检测
is_array($var); // 数组检测
is_object($var); // 对象检测
is_numeric($var); // 数值检测
二、核心特性
1. 面向对象编程
-
类定义:
class ClassName { ... } -
对象创建:
$obj = new ClassName; -
继承机制:
extends ParentClass -
接口实现:
implements InterfaceName
2. 异常处理
try { // 可能抛出异常的代码} catch (Exception $e) { echo "Error: " . $e->getMessage();}3. 命名空间
namespace My\App\Namespace;use Another\Namespace\Classname;
三、数据库交互
1. PDO扩展
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pwd');$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");$stmt->execute(['id' => 1]);$user = $stmt->fetch(PDO::FETCH_ASSOC);2. 预处理语句
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");$stmt->execute(['John', 'john@example.com']);四、性能优化
1. 内存管理
-
引用传递:
&$var(避免大数据复制) -
垃圾回收:自动管理未引用资源
2. 缓存机制
-
OPcache:PHP内置字节码缓存
-
数据缓存:Redis/Memcached集成
3. 代码优化
-
避免在循环内创建新对象
-
使用
isset()替代empty()进行存在性检查 -
批量操作代替循环插入
五、安全实践
1. 输入验证
// 使用filter_var进行验证$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);if (!$email) { die("Invalid email address");}2. SQL注入防护
-
永远使用预处理语句
-
避免动态拼接SQL
3. XSS防护
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');
六、扩展开发
1. 扩展结构
extension/├── config.m4├── php_extension.h├── ext_module.c└── ...
2. Zend API
-
内存管理:
ZEND_MM_*系列宏 -
类型系统:
ZEND_PARSE_PARAMETERS_* -
返回值处理:
RETURN_*宏
七、调试技巧
1. 错误报告
error_reporting(E_ALL & ~E_NOTICE);ini_set('display_errors', 1);2. 调试工具
-
Xdebug:调试、性能分析
-
Blackfire:实时性能分析
-
PHPStan:静态分析
八、最佳实践
-
遵循PSR标准(PSR-1/PSR-2/PSR-4等)
-
使用Composer管理依赖
-
编写单元测试(PHPUnit)
-
实现自动化部署
-
监控系统性能(APM工具)
