php教程技术文章
-
PHP 启用 OPcache 预加载后,类定义会随 PHP-FPM 进程驻留。本文解释为什么普通缓存刷新不够,并给出配置确认、构建标记、FPM 重启和发布复查步骤。345 收藏 -
PHP Fiber::resume() 的参数会回到嵌套调用栈中的 Fiber::suspend(),而 Fiber 终止后的最终结果要通过 getReturn() 读取。本文用原创示例区分三种返回值,并对比 Fiber 与 Generator。344 收藏 -
Laravel 队列扣款任务要安全重试,需把数据库唯一键、事务提交时机、网关幂等键和查询优先策略放在同一条链路上,避免网络超时或 worker 重启造成重复扣款。326 收藏 -
PHP array_filter 不传回调时会按空值语义过滤整数 0 和字符串 0。本文用表单与统计数据场景演示如何通过显式回调保留 0,区分 null、空字符串和 false,并在需要时用 array_values 重建连续索引。300 收藏 -
bindParam 绑定的是变量引用,真正取值发生在 execute 时。循环中反复改写或复用变量时,容易让多个参数都落到最后一次值;本文用批量写入示例说明原因,并给出 bindValue 与固定变量复用两种稳定写法。298 收藏 -
以 PDO_MYSQL 为例,说明如何关闭模拟预处理、设置异常模式、验证参数绑定,并排查驱动、占位符和 SQL 标识符边界。288 收藏 -
讲清 PHP mysqli multi_query 如何用 more_results 和 next_result 遍历全部结果,并在切换前释放结果集、识别后续 SQL 错误。282 收藏 -
PHP 的 SplFixedArray 适合长度可预估、只使用连续整数索引的数据;普通 array 更适合关联键、动态追加、删除和丰富的数组函数。选择时应先看数据结构约束,再考虑内存与迁移成本。281 收藏 -
Composer 的 files 适合每次引入自动加载器时加载的函数文件,classmap 适合无法遵循 PSR-4 的类;普通命名空间类优先 PSR-4。本文用配置示例和边界表说明如何选择。277 收藏 -
用 PHP mb_substr 按 UTF-8 字符截取中文,区分 strlen 的字节长度,处理 mbstring、空值、省略号和边界测试。277 收藏 -
PHP backed enum 处理请求字符串时,应在输入边界先用 tryFrom() 判断合法性,非法值返回 400;可信内部值再使用 from(),JSON 默认输出 backing value。271 收藏 -
文章 · php教程 | 22小时前 | session · php教程 · 会话安全 · php SessionHandlerInterface session.use_strict_mode validateId
解释 PHP session.use_strict_mode 与自定义 session handler 的配合边界,给出 validateId、read、write、create_sid 和 updateTimestamp 的职责划分与数据库 handler 示例。269 收藏 -
Composer 报平台依赖不满足时,先用 check-platform-reqs 检查生产机真实 PHP 与扩展,再对照 composer.json 的 require、config.platform 和 lock 文件定位差异,避免用忽略平台要求掩盖运行时问题。264 收藏 -
文章 · php教程 | 3天前 | 反射 · 元编程 · attribute · php教程 · 参数读取 · ReflectionParameter getAttributes PHP attributes Attribute::IS_REPEATABLE 重复属性
PHP 重复 Attribute 不能靠读取端猜测,必须先在属性类声明中加入 Attribute::IS_REPEATABLE,再用 ReflectionParameter::getAttributes() 取得全部实例,并根据 getArguments 或 newInstance 的需要选择读取方式。261 收藏 -
用 PHP curl_multi_exec 批量发送 HTTP 请求,正确轮询 curl_multi_info_read、等待 curl_multi_select、读取 curl_multi_getcontent,并区分多句柄错误、单请求错误和 HTTP 状态。260 收藏