php教程技术文章
-
PDO::quote 会按照底层驱动给字符串加引号并转义特殊字符,但驱动支持、连接字符集和返回 false 都是实际边界。本文对比字符串插值与 prepare 参数绑定,说明什么时候不该继续手写 SQL。482 收藏 -
系统迁移 PHP 8.4 隐式可空参数:区分可空与可选,覆盖普通参数、必填参数之前的默认 null、联合与交集类型、继承签名,并给出自动修复和回归清单。481 收藏 -
PHP Fiber 抛出异常后是否能再次 resume,取决于异常有没有被 Fiber 内部捕获:捕获后可以再次 suspend 并恢复,未捕获则 Fiber 已终止,不能继续 resume。481 收藏 -
PHP 日期解析不能只看 DateTimeImmutable 对象是否创建成功。结合 createFromFormat 和 getLastErrors,可以分别读取 warnings、errors,并兼容 PHP 8.2 之后无错误时返回 false 的情况,拦截 2026-02-30 这类自动进位输入。477 收藏 -
PHP enum_exists() 用于判断名称是否对应已定义的枚举类型。本文拆解全限定类名、autoload 参数、普通类区分,以及配置输入场景中的白名单和审计边界。476 收藏 -
PHP PDO 批量写入时,可以复用一条预处理语句,再为每一行绑定不同参数。本文比较 bindValue、bindParam 和 execute 参数数组,说明参数类型、空值以及事务提交回滚的边界。476 收藏 -
PDO 事务异常应由独占事务所有者捕获 Throwable,检查活动状态后尝试回滚,并保留原异常传播。示例区分开始、提交和清理失败,说明隐式提交与连接中断时的限制。474 收藏 -
PHP Fibers 保存可挂起的调用栈,需要明确调用方或调度器恢复,不等于线程并行。本文用嵌套计算示例区分挂起值、恢复值与最终返回,说明阻塞I/O和清理边界。472 收藏 -
PHP match 没有任何分支命中时会抛出 UnhandledMatchError。本文比较显式分支、default 兜底和 try/catch 三种处理路径,帮助你根据输入是否封闭、未知值是否可接受来选择实现。472 收藏 -
文章 · php教程 | 3星期前 | JSON · 异常处理 · PHP · 接口调试 · php json_decode JSON_THROW_ON_ERROR JsonException JSON错误处理
PHP json_decode 默认失败时返回 null,排查接口数据很容易丢失来源和错误类型。本文用 JSON_THROW_ON_ERROR 捕获 JsonException,并设计安全的错误上下文、错误分类与处理边界。471 收藏 -
PHP 的 HTTP 流请求可以在 stream_context_create() 的 http 选项中设置 timeout,单位是秒,也支持小数。本文用 file_get_contents() 和 fopen() 说明最小写法、失败处理、POST 内容,以及 timeout 与整体业务耗时的区别。468 收藏 -
文章 · php教程 | 2星期前 | 队列 · PHP · 并发控制 · laravel · php教程 · php Laravel Laravel Queue ShouldBeUnique WithoutOverlapping 队列锁 任务幂等
Laravel 队列避免任务重复执行,不能只依赖一个模糊的全局锁。本文区分重复入队与执行重叠,分别用 ShouldBeUnique 和 WithoutOverlapping 保护业务键与共享资源,并说明 releaseAfter、tries、expireAfter 和共享缓存的配置关系。465 收藏 -
PHP ArrayObject::exchangeArray 可以把对象当前持有的数组替换成新的数组或对象,并返回被替换的旧数组。本文用最小示例说明对象引用、旧数据接收、迭代器边界和性能指标如何判断。464 收藏 -
PHP Attribute 可以把参数字段名、必填性等稳定描述放在声明旁边,再由 ReflectionParameter 读取。本文用参数目标限制、getAttributes 筛选、getArguments 与 newInstance 的边界,说明它适合解决什么问题,以及为什么不应把它当成自动校验器。463 收藏 -
用 SplObjectStorage::removeAll() 从当前对象集合中批量移除另一存储里的同一批实例,说明参数方向、对象身份和剩余数量返回值。462 收藏