# OOP、魔法方法与错误语义

## 魔法方法

- `__get` / `__set` / `__isset` / `__unset`：是否造成无限递归、意外懒加载副作用或绕过类型约束。
- `__call` / `__callStatic`：是否将不可信方法名转发到危险操作。
- `__toString`：是否抛异常（PHP 7.4+ 前行为差异）、是否触发重逻辑或 I/O。
- `__destruct`：是否抛异常、是否依赖已销毁资源、是否在请求结束时做非幂等写操作。

## 序列化

- `__sleep` / `__wakeup` / `__serialize` / `__unserialize`：与 `Serializable` 遗留接口混用风险；反序列化入口是否暴露给不可信数据。

## 异常与错误

- `try/catch/finally` 是否吞掉应向上传播的异常；`Throwable` vs `Exception` 捕获范围是否过宽。
- 用户错误（TypeError、ArgumentCountError）与业务异常是否区分；错误消息是否泄露内部路径或查询。
