php教程技术文章
-
PHP backed enum 会把 case 的显式 value 作为 JSON 标量输出。本文用字符串枚举说明定义、序列化、反序列化和自定义 JsonSerializable 的边界。258 收藏 -
PHP 8.4 属性钩子可以把读取格式化与写入校验拆开。本文用一个可复用的值对象示例说明 get、set、virtual property、backing value 和反射验证之间的关系。226 收藏 -
php://temp 会先把数据放在内存中,超过默认或自定义 maxmemory 阈值后转用系统临时文件。本文解释临时目录、memory_limit、流式写入和资源释放的边界。271 收藏 -
PHP header_remove 只能移除尚未完成发送的 PHP 响应头。本文用请求生命周期解释已有输出、输出缓冲和代理层头部的边界,并给出 headers_sent() 排查与 ob_start() 调整时序的写法。180 收藏 -
文章 · php教程 | 3天前 | php教程 · session.save_path PHP session_start PHP会话保存路径 session_save_path排查 PHP会话目录权限
PHP session_start 找不到保存路径时,先查看当前请求实际生效的 session.save_path,再区分配置层级、代码覆盖、目录权限和容器挂载问题,最后用绝对路径完成复查。489 收藏 -
PHP password_needs_rehash 不负责验证密码,而是比较存储哈希与当前算法、cost 等策略;本文用登录复盘说明何时判断过时、如何安全重算并写回。139 收藏 -
PHP finfo_file 会依据文件内容推断 MIME 类型,但它不能替代上传状态检查、业务白名单和后续图片处理。本文拆解扩展名、浏览器声明与真实内容的边界,并给出可落地的 PHP 上传判断代码。323 收藏 -
解释 PHP parse_url() 在 host/path、//host/path 和完整 URL 之间的解析差异,给出输入契约、scheme 归一化与严格 URI 解析的选择方法。369 收藏 -
PHP 8 起 ReflectionMethod::invokeArgs 会把字符串键解释为命名参数。本文用反射调用适配器说明位置键、命名键、默认值、引用参数和参数名变更的限制。315 收藏 -
PHP WeakReference::get() 在对象仍存活时返回对象,对象被销毁后返回 null。本文用缓存观察场景说明如何创建弱引用、立即判断结果,并避免读取后再次把对象长期持有。201 收藏 -
PHP SplFixedArray 适合容量已知、整数索引连续且希望降低容器开销的场景;普通 array 更适合动态追加、字符串键和大量数组函数。本文用固定采样窗口示例说明两者的契约、越界处理和选择边界。337 收藏 -
IntlDateFormatter 格式化 DateTime 时使用的是 formatter 自己的时区,而不是 DateTime 对象的时区。本文用共享 DateTimeZone、规范输入和核对 timezone id 的方式,排查 PHP 国际化日期显示相差数小时的问题。444 收藏 -
文章 · php教程 | 3天前 | php教程 · PHP DatePeriod DatePeriod INCLUDE_END_DATE PHP 日期区间结束日期 PHP 日期周期边界 DatePeriod recurrences
PHP DatePeriod 按结束日期构造时默认排除结束日期,需通过 DatePeriod::INCLUDE_END_DATE 显式包含;本文用实际迭代结果解释 options、开始日期和 recurrences 的边界关系。355 收藏 -
mb_str_split 没有分隔符和 offset 参数。本文用 mb_substr、mb_strpos 与 preg_split 组合处理中文字符串的字符偏移、分隔符保留和边界情况。164 收藏 -
PHP 8.3 的 json_validate() 返回 false 时,不要只看布尔值。本文用 JSON_ERROR_UTF8 与 JSON_ERROR_SYNTAX 区分非法编码和结构错误,并说明 JSON_INVALID_UTF8_IGNORE 的取舍。439 收藏