php教程技术文章
-
PHP readonly class为所有声明属性施加只读约束,但不会冻结成员对象。通过构造初始化、数组修改、共享DateTime和继承示例,说明PHP 8.2起的能力及版本边界。395 收藏 -
以工单属于客户的 belongsTo 关系说明 Eloquent 字段裁剪:主查询保留外键、关联查询保留匹配键,再通过显式响应控制输出,区分空关系、序列化和授权的职责。394 收藏 -
PHP IntlChar::charAge 返回单个 code point 首次被指定或分配的 Unicode 版本。本文区分字符 age 与当前 ICU 版本,演示整数和 UTF-8 参数、四位数组、null 失败边界,以及如何把版本筛选封装成可维护的 PHP 函数。394 收藏 -
PHP 8.4 的 mb_trim 可以按多字节字符安全地裁剪字符串两端。本文从全角空格未被 trim 删除的现象出发,讲清 characters 是逐字符集合而不是正则或范围表达式,并给出 UTF-8、自定义标记和兼容性处理示例。388 收藏 -
PHP similar_text交换参数可能改变最长公共子串的选择和递归划分,进而影响匹配量及百分比。本文通过原创封装说明固定调用方向、字节语义、输入上限、日志与阈值的处理方式。387 收藏 -
PHP preg_match_all 默认按捕获组分列返回,业务代码往往更需要按每次匹配整理成一条记录。本文用命名子模式和 PREG_SET_ORDER 组织结果,再处理未匹配组、字节偏移和可审计的错误分支。386 收藏 -
PHP strpbrk 找不到字符时返回布尔 false,找到时返回从命中字符开始的字符串。本文说明为什么应使用 === false,并补充空字符集、大小写与 strcspn 的边界。386 收藏 -
用 PHP SplFileObject::fgetcsv 读取 CSV 时,空行可能表现为单个 null 字段,文件结束则应按 false 或迭代状态处理。本文给出显式参数、flags 选择和排查边界。385 收藏 -
PHP enum 新增项可能让旧 match 遗漏分支。本文区分合法枚举项与外部非法值,用集中展示映射、明确业务拒绝和完整代码说明 default 的边界与取舍。383 收藏 -
PHP 异常链的关键是包装新异常时把底层 Throwable 传给构造器第三个参数,再用 getPrevious() 逐层读取。本文用分层服务示例说明保留原因、遍历链路和避免丢失上下文的边界。383 收藏 -
文章 · php教程 | 3星期前 | PHP · php-fpm · PHP OPcache opcache_reset validate_timestamps revalidate_freq opcache_invalidate
PHP 发布新代码后仍执行旧脚本,应先从实际承载请求的 PHP-FPM 读取有效配置,再检查 validate_timestamps、revalidate_freq、发布绝对路径、file_cache 与 preload。本文给出受保护诊断代码、刷新方式选择和多实例排查清单。382 收藏 -
PHP session.use_strict_mode 默认关闭,开启后会拒绝存储端不存在的未知会话 ID,并向浏览器发送新的 ID。本文说明配置时机、Cookie 配置和自定义 session handler 的 validateId/validate_sid 边界。382 收藏 -
PHP IntlChar::digit() 用指定 radix 读取字符在 2 到 36 进制中的数值,charDigitValue() 只读取 Unicode 十进制数字。本文用边界表和 PHP 示例讲清二者的选择、返回值与异常输入处理。382 收藏 -
Symfony DomCrawler 读取 HTML 属性时,attr() 的第二个参数可以为缺失节点或缺失属性提供默认值;批量处理则应逐节点读取,并区分 null、空字符串和未匹配节点。381 收藏 -
文章 · php教程 | 2星期前 | pdo · php教程 · 异常排查 · php pdo 参数类型 预处理语句 bindParam bindValue PDOStatement PDO::PARAM_INT
PHP PDO 查询异常常与参数类型和绑定时机有关。本文解释 bindValue 默认类型、PDO::PARAM_* 的选择,以及 bindValue 与 bindParam 的取值差异,帮助你稳定处理 ID、分页、布尔值和 NULL。381 收藏