php教程技术文章
-
PHP Generator 的 yield 用于逐条输出数据,return 用于返回最终汇总;本文说明如何在迭代结束后通过 getReturn() 安全取值,并解释提前读取、空返回和 yield from 的边界。157 收藏 -
PHP 的 array_is_list() 不支持通过配置放宽条件;它只认从 0 开始且按顺序无缺口的整数键。本文用键检查定位 unset 和 array_filter 造成的断档,并说明何时用 array_values() 修复列表形状。157 收藏 -
PHP CLI worker 使用 pcntl_signal 做优雅退出时,重点是先确认 PCNTL 运行前提,再选择异步或手动分发,让 handler 只记录停止意图,最后由 finally 统一完成幂等清理。157 收藏 -
PHP stream filter 的方向与链顺序会影响字符转换。本文用 UTF-16LE 转 UTF-8 的内存流示例,说明先转码再做 ASCII 大写的原因,并区分缓冲和多字节边界。157 收藏 -
PHP Fiber 可以把可暂停的异步任务藏在普通方法后面,让调用方继续接收同步返回值。本文用 Await 等待点和 SyncBridge 包装器说明启动、挂起、恢复、异常传递及阻塞边界。157 收藏 -
PHP ReflectionAttribute 按接口筛选 Attribute 时,要把接口名与 ReflectionAttribute::IS_INSTANCEOF 一起传给 getAttributes;本文用类级和属性级示例说明精确匹配、接口实现匹配及 newInstance 的边界。157 收藏 -
文章 · php教程 | 2个月前 | HTTP · 文件上传 · PHP · PHP 8.4 · multipart/form-data PHP 8.4 request_parse_body PUT文件上传
PHP 8.4 的 request_parse_body() 让 PUT、PATCH 等非 POST 请求也能解析表单和文件。用一个可运行的小接口说明请求体只能读取一次、上传大小覆盖和失败验收。155 收藏 -
本文从参数、输出格式、验签比较和 PHP 版本边界四个方面说明 hash_hmac() 怎样生成带密钥摘要,并给出 hash_equals() 的安全验签写法。155 收藏 -
本文详解为何基于 jQuery 的复选框文本排序脚本在 Smarty foreach 循环渲染后失效,并提供可靠、兼容 Cyrillic 字符的 DOM 排序方案,避免重复元素与乱序问题。 本文详解为何基于 jQuery 的复选框文本排序脚本在 Smarty `foreach` 循环渲染后失效,并提154 收藏 -
PHP Fiber 只负责暂停和恢复协作式任务,不会自动把 PDO 变成异步驱动。本文用任务级资源所有权、closeCursor 和 finally 收口数据库连接、结果集与事务。153 收藏 -
PHP backed enum 默认把 value 编码为 JSON 标量,纯 enum 不能直接编码;本文用示例说明如何用 JsonSerializable 固定 code、label 等接口结构,避免 case 重命名破坏兼容性。151 收藏 -
PHP PropertyAccess 读取缺失数据时,要区分对象属性、数组索引和可空中间对象。本文用 PropertyAccessor 配置、异常类型和 nullsafe 路径给出可落地的处理规则。151 收藏 -
从 PHP 8.6 Closure optimizations RFC 出发,区分无状态闭包缓存、变量捕获和对象绑定,给出安全改写边界。150 收藏 -
用一个可复现的 PHP Fiber 示例排查 start、suspend、resume 和 getReturn 的状态边界,避免重复恢复与未完成读取。149 收藏 -
文章 · php教程 | 3星期前 | 异常处理 · PHP · HTTP客户端 · php Symfony HTTP客户端 连接超时 httpclient 响应超时 max_connect_duration max_duration
PHP Symfony HttpClient 的 timeout、max_connect_duration 和 max_duration 解决的是不同等待问题。本文用最小示例说明如何分别限制建连、响应空闲和完整请求时长,并处理懒加载响应中的传输异常。148 收藏