php教程技术文章
-
PHP DateTimeImmutable 直接加一个月时,月末日期可能溢出到下个月。本文用代码说明默认规则,并给出 last day of、DateInterval、不可变对象和边界测试的处理方法。280 收藏 -
PHP IntlGregorianCalendar 可以用 setGregorianChange 设置公历切换时间,用 getGregorianChange 读取当前时间戳。本文比较三种创建方式,并说明时区、locale、Unix 时间戳和返回值的使用边界。273 收藏 -
文章 · php教程 | 5天前 | PHP · 迁移 · php password_hash password_needs_rehash PASSWORD_DEFAULT PASSWORD_ARGON2ID PASSWORD_BCRYPT
PHP password_hash 的可迁移选择重点不是永远固定某个算法,而是为 PASSWORD_DEFAULT 预留足够字段长度,并根据环境能力评估 Argon2id 或 bcrypt。本文给出参数边界、72 字节限制、PHP 8.4 cost 变化和登录成功后的渐进重哈希写法。273 收藏 -
IntlBreakIterator 返回的是 UTF-8 字节偏移,不是中文字符序号。本文对比 substr、mb_substr 与边界迭代,说明如何避免多字节文本切片错位。269 收藏 -
用 getopt 的 rest_index 找到选项解析停止位置,再通过 array_slice 读取 $argv 中的剩余位置参数,并区分第一个非选项与 -- 结束符。250 收藏 -
PHP array_is_list() 判断的是数组键是否从 0 连续递增,而 json_encode() 再根据数组结构输出 JSON 数组或对象。本文用最小示例拆开空数组、跳号键、关联键和 JSON_FORCE_OBJECT 的边界。244 收藏 -
PHP array_find 按数组顺序调用回调,返回第一个满足条件的元素值;找不到时可使用默认值。本文用订单、关联数组和哨兵对象说明回调参数、短路行为、null 边界,以及 array_find_key、array_find_last 的选择。240 收藏 -
PHP get_mangled_object_vars 会返回对象的各层级属性,但私有属性键会带声明类名,保护属性带星号,前后还有 NUL 字节。本文用一个对象检查场景说明键名解析、未初始化类型属性排除与兼容边界。239 收藏 -
PHP IntlCalendar::add 允许字段溢出时调整更高字段,IntlCalendar::roll 则只在当前字段范围内循环。本文用月底加一天的 PHP 示例拆开两者的行为边界,并给出选择与回归清单。234 收藏 -
PHP mb_detect_encoding 只能在限定候选中做启发式判断。本文用导入链路说明候选集合、strict 参数、歧义输入与转换分流,帮助你避免把近似结果直接写回系统。220 收藏 -
文章 · php教程 | 3天前 | php教程 · 日期时间 · php 日期格式 国际化 locale IntlDateFormatter IntlDatePatternGenerator skeleton
PHP IntlDatePatternGenerator 可以根据 locale 和日期 skeleton 生成适合本地化显示的 pattern,再交给 IntlDateFormatter 输出。本文说明 create、getBestPattern、时区设置和失败处理边界。213 收藏 -
用 CachingIterator::hasNext() 判断当前项之后是否仍有有效下一项,配合 foreach 处理分隔符、尾项和空迭代器边界。209 收藏 -
PHP PDO 的 ATTR_EMULATE_PREPARES 控制预处理实现,不能代替类型校验。本文以 PDO_MYSQL 为例说明连接配置、分页整数绑定、execute 数组与结果字符串化的区别,避免金额、编码及大整数被错误转换。203 收藏 -
PHP grapheme_stripos 会按字素单位查找第一个大小写不敏感的匹配位置。本文说明 UTF-8 输入、offset、负偏移、locale 和 false 判断,并讨论高频搜索时如何控制扫描成本。201 收藏 -
用 PHP readonly class 固定配置对象的声明属性和对象形状,解释一次初始化、嵌套对象内部可变性、动态属性和 PHP 8.3 克隆边界。200 收藏