php教程技术文章
-
PHP 8.5 CLI 新增 --ini=diff,可以只显示偏离内置默认值的 INI 配置。本文用开发、测试和生产环境核对场景,说明它与 --ini、php -i 的区别、读取层次、对比方法和采用边界。446 收藏 -
Laravel 13 的 JSON:API Resource 不只是把数组换成 data。本文用一组订单接口示例拆开资源类、资源集合、type/id、relationships、links/meta 与旧客户端兼容边界,给出可回滚的迁移写法。236 收藏 -
用 PHP DateInterval 和 DateTimeImmutable 计算订阅到期日,拆开月末溢出、invert 负间隔与时间点比较的边界,避免续费日期悄悄偏移。391 收藏 -
PHP FFI::new 可以按 C 声明创建结构体或数组,但 owned、persistent 和 FFI::free 的组合决定了内存由谁负责。本文用一个消息结构体拆开指针类型、释放时机和生产环境的禁用边界。472 收藏 -
SplFixedArray 用整数范围和手动扩容约束数组结构,适合容量边界明确的连续数据;普通 array 更适合需要追加、字符串键和灵活变更的业务代码。304 收藏 -
parse_ini_file 的默认扫描模式会把 on、off、数字和常量按 INI 规则转换,配置读取如果直接依赖字符串就容易出现类型漂移。本文用同一份 PHP 配置比较 NORMAL、RAW 与 TYPED 三种结果,并给出生产读取边界。276 收藏 -
PHP 8.3 的 readonly 类能固定对象属性绑定,但集合对象仍可能被内部修改。本文用购物车快照示例说明浅拷贝、深拷贝、clone 重初始化和运行时不变量的边界。245 收藏 -
PHP DOMDocument 处理中文 HTML 时,loadHTML 的编码识别和 saveHTML 的序列化会共同影响实体表现。本文用最小示例拆开输入、解析、保存三段路径,并给出 PHP 8.4 Dom\HTMLDocument 的边界。329 收藏 -
用 PHP DateTimeImmutable 演示 modify 加月的月末溢出,解释为什么 1 月 31 日会跳到 3 月,并给出稳定的月末计算写法。207 收藏 -
用 PHP Throwable 的 getTraceAsString 记录异常调用链,同时结合 getTrace、参数过滤和 error_log,避免把令牌、密码等敏感值直接写进线上日志。178 收藏 -
parse_url() 不会替 URL 自动补上 80 或 443。本文用 PHP_URL_PORT、HTTP_HOST 和 SERVER_PORT 拆开缺失端口、显式默认端口与代理转发场景,给出可复现的判断代码和安全边界。387 收藏 -
文章 · php教程 | 1个月前 | 反射 · 单元测试 · php教程 · php ReflectionClass newInstanceWithoutConstructor ReflectionProperty isInitialized 遗留代码测试
PHP 反射可以创建一个不执行构造函数的对象,适合给遗留类做边界测试,但未初始化属性仍可能在读取时抛出 Error。本文用 ReflectionClass、ReflectionProperty 和 isInitialized() 演示安全的测试夹具写法。157 收藏 -
PHP 的 parse_str() 不会把同名普通参数自动收集成数组;需要用方括号命名,并通过第二个参数接收结果。本文用可运行示例核对覆盖规则、键名转换和 max_input_vars 边界。282 收藏 -
PHP SplObjectStorage 可以按对象身份保存集合成员或附加数据。本文用 attach、contains、detach 还原对象生命周期,并补上 PHP 8.5 推荐的 offsetSet、offsetExists、offsetUnset 写法。323 收藏 -
文章 · php教程 | 1个月前 | WEB开发 · 安全 · PHP · session · php session session.use_strict_mode session_regenerate_id 会话固定
PHP 会话固定防护不能只依赖一个配置项。本文从 session.use_strict_mode 的接收规则讲起,演示登录前后如何轮换 session_id,并说明旧 Cookie、并发请求和自定义 SessionHandler 的边界。483 收藏