php教程技术文章
-
PHP 8.5 升级排查不要只盯动态属性。本文把 PHP 8.5 新弃用与 PHP 8.2 动态属性历史问题分开,用 E_ALL 日志、源码扫描和测试矩阵定位受影响代码。251 收藏 -
PHP Fiber 的异常不是由 resume 返回,而是从 Fiber::suspend() 的暂停点重新抛出;本文用一个最小任务调度器说明 start、resume、throw 的关系和终止边界。246 收藏 -
PHP PDO 处理订单、库存等多条写操作时,应使用异常模式和显式事务边界:成功统一 commit,异常确认事务活动后 rollBack,并检查表引擎、驱动和 DDL 隐式提交风险。476 收藏 -
PHP 的 SameSite=None 必须配合 Secure,本地 HTTP、localhost 例外和跨站请求条件又不完全相同。本文用配置示例和排查清单说明为什么 Cookie 看似设置成功却没有随下一次请求发送。234 收藏 -
文章 · php教程 | 4天前 | session · php教程 · 会话安全 · php SessionHandlerInterface session.use_strict_mode validateId
解释 PHP session.use_strict_mode 与自定义 session handler 的配合边界,给出 validateId、read、write、create_sid 和 updateTimestamp 的职责划分与数据库 handler 示例。269 收藏 -
PHP 8.5 的 NoDiscard 属性用于提醒调用方不要悄悄丢弃重要返回值。本文说明如何选择适用函数、添加提示、处理有意忽略的结果,并厘清接口、继承和 trait 的边界。486 收藏 -
PHP 8.5 中 array_first 和 array_last 遇到空数组都会返回 null。本文对比有效 null、旧版本兼容写法和 ?? 默认值的使用边界。367 收藏 -
PHP 8.5 用 clone($object, [...]) 在复制对象时更新指定属性,适合 readonly 值对象的 with 方法;本文同时说明作用域、类型校验和 PHP 8.4 兼容写法。362 收藏 -
PHP 8.5 的 |> 适合把单输入、单输出的纯函数按数据流从左到右串起来。本文用字符串转换示例说明 callable、箭头函数括号、多参数收口和不适用边界。490 收藏 -
PHP 8.5 引入的 Uri\Rfc3986\Uri 能把带端口的地址拆成可读取字段,并通过不可变对象安全生成新端口版本。本文用一个内网 API 地址说明 getPort、withPort、toString 的配合方式,以及缺少端口和非法 URI 的处理边界。232 收藏 -
线上执行 composer install --no-dev 后找不到类,通常不是命名空间突然失效,而是类被声明在 autoload-dev 或依赖只放在 require-dev。本文按依赖边界定位并修正。460 收藏 -
PHP 的 SplFixedArray 适合长度可预估、只使用连续整数索引的数据;普通 array 更适合关联键、动态追加、删除和丰富的数组函数。选择时应先看数据结构约束,再考虑内存与迁移成本。281 收藏 -
PHP 调用 session_regenerate_id() 返回 false 时,不要立即销毁旧会话。本文给出前置检查、旧数据保留、失败原因记录和成功/失败分支处理方法。258 收藏 -
PHP curl_multi_exec 负责推进多个 cURL 句柄的网络状态。本文用完整示例说明如何加入请求、等待 I/O、读取完成消息、区分传输错误与 HTTP 状态,并安全回收句柄。371 收藏 -
PHP Generator 的 yield 用于逐条输出数据,return 用于返回最终汇总;本文说明如何在迭代结束后通过 getReturn() 安全取值,并解释提前读取、空返回和 yield from 的边界。157 收藏