php教程技术文章
-
PHP 的 array_is_list() 不支持通过配置放宽条件;它只认从 0 开始且按顺序无缺口的整数键。本文用键检查定位 unset 和 array_filter 造成的断档,并说明何时用 array_values() 修复列表形状。157 收藏 -
PHP CLI worker 使用 pcntl_signal 做优雅退出时,重点是先确认 PCNTL 运行前提,再选择异步或手动分发,让 handler 只记录停止意图,最后由 finally 统一完成幂等清理。157 收藏 -
PHP Fiber 只负责暂停和恢复协作式任务,不会自动把 PDO 变成异步驱动。本文用任务级资源所有权、closeCursor 和 finally 收口数据库连接、结果集与事务。153 收藏 -
PHP PDO 批量写入时,预处理语句负责参数绑定,事务负责把一批 execute 组织成可提交或可回滚的整体。本文给出统一 rollback、批次拆分和提交后重试的实现边界。143 收藏 -
PHP Attributes适合保存字段校验规则,但不会自动执行校验。本文用ReflectionProperty读取属性元数据,实例化规则并统一收集错误,同时说明继承筛选、重复声明和缓存边界。141 收藏 -
PHP password_needs_rehash 不负责验证密码,而是比较存储哈希与当前算法、cost 等策略;本文用登录复盘说明何时判断过时、如何安全重算并写回。139 收藏 -
session.lazy_write 会比较会话打开时与关闭时的序列化数据;内容未变时,默认 files 保存器只更新时间戳而不重写整段会话数据。本文解释数据生命周期、失效场景与自定义保存器要求。139 收藏 -
用 PHP readonly 属性或 readonly class 封装经过校验的配置对象,说明构造阶段赋值、数组与对象边界,以及 PHP 8.1 和 8.2+ 的兼容写法。138 收藏 -
PHP 8.4 属性钩子中,set 内用精确的同名属性语法写入的是背后存储,不会再次触发自身;本文还区分虚拟属性、动态访问和跨属性钩子带来的递归风险。136 收藏 -
PHP 枚举与数据库状态字段如果同时演进,最容易在重命名、删值和分批发布时产生漂移。本文给出稳定 backed value、集中映射、旧值兼容和分阶段迁移的完整做法。135 收藏 -
PHP array_is_list 只看数组键是否从 0 开始连续递增。本文用多组输入说明空数组、稀疏键、字符串键和旧版本兼容处理。133 收藏 -
文章 · php教程 | 4星期前 | PHP · HTTP客户端 · php Curl curl_share_init_persistent CURL_LOCK_DATA_DNS CURL_LOCK_DATA_CONNECT
PHP 8.5 的 curl_share_init_persistent 可以跨请求复用 DNS、连接和 TLS session,但不能共享 Cookie。把网络缓存与用户身份分开,才能降低连接复用带来的跨请求状态泄漏风险。132 收藏 -
PHP DateTimeImmutable 出现时差、解析失败或 modify 不生效时,按时区、解析错误和不可变返回值三层排查,并用 RFC3339 输出确认对象状态。132 收藏 -
PHP curl_multi_select 返回 0 只表示等待窗口没有描述符活动,不代表请求失败。本文用轮询骨架拆开 curl_multi_exec、still_running、curl_multi_info_read 与 0、-1 的处理边界。132 收藏 -
文章 · php教程 | 1星期前 | JSON · api设计 · php教程 · php json_encode JsonSerializable JSON_THROW_ON_ERROR jsonSerialize
PHP 对象实现 JsonSerializable 后,可用 jsonSerialize 显式选择、改名和组合 JSON 字段,并排除敏感属性。本文给出嵌套对象、错误处理与兼容策略的完整写法。129 收藏