-
零基础入门应优先选择PHP而非RSC,因PHP开箱即用、无需前置知识、错误提示明确、文档示例可直接运行;RSC则依赖Node.js、React、Next.js等多重前置技能,学习路径长且调试复杂。
-
PHP获取数组元素数量最常用的是count()函数,支持所有数组类型及递归计数;sizeof()是其别名但不推荐新代码使用;array_keys()配合count()适用于键名统计;foreach手动计数用于条件控制;空数组需用empty()或is_array()前置校验。
-
最快定位单条发送结果应先查短信服务商控制台日志,阿里云、腾讯云等平台保留7–30天原始记录,含手机号、模板ID、状态及失败码;注意“成功”仅表示进入运营商通道,终端触达需依赖已开通的DLR回执日志。
-
parse_ini_file()默认将所有值转为字符串且覆盖重复键;启用INI_SCANNER_TYPED(PHP7.0+)可自动类型转换,否则需手动强制转换;重复键须用分段或自定义解析;文件不存在或权限/open_basedir限制会导致静默失败。
-
pg_connect()默认不启用SSL,必须显式配置sslmode;最简加密方式是连接字符串中加sslmode=require;需通过pg_stat_ssl验证是否真走SSL,且服务端须配置ssl=on及hostssl规则。
-
Mailer组件不发邮件需依次排查:DSN格式(如Gmail须带auth_mode=login)、异步队列是否消费、模板路径是否为templates/开头且用context()传参、禁用已废弃的spool配置、确保fail_silently=false。
-
GD扩展未启用、中文显示异常、图片缓存、session未启动是验证码失败四大主因。需检查gd扩展、用imagettftext配UTF-8字体、禁用缓存头、首行调用session_start()并前置存储验证码。
-
PHP无内置函数获取嵌套数组下标链,需用递归遍历+路径栈实现:每层将键加入路径数组,命中目标值时返回路径副本;注意引用传递、类型判断及首次匹配即返回。
-
strlen和mb_strlen在ASCII下性能差异可忽略,但处理UTF-8中文时必须用mb_strlen并显式指定编码,否则strlen返回字节数而非字符数,易致乱码或校验错误。
-
本文介绍如何利用PHP的__get魔术方法,在父类中统一处理未显式声明的子类属性,避免IDE警告和重复声明,实现类似“自动挂载子模块”的优雅设计。
-
PHP数据库安全核心是防SQL注入、防信息泄露、凭据安全及用PDO/MySQLi替代废弃函数;必须用预处理语句分离SQL与数据,禁用mysql_*,遵循最小权限、环境变量存密、错误不暴露等原则。
-
PDO::prepare()不能拼接变量以防SQL注入,必须用?或:name占位符;bindValue()传值、bindParam()传引用,多数情况选前者;命名占位符存在兼容性问题,位置占位符更可靠。
-
应启用宝塔WAF并配置SQL注入防护:一、安装/启动WAF模块;二、在规则管理中启用全部SQL注入规则;三、为高风险站点开启高级SQL防护并添加引号拦截规则;四、导入自定义正则规则;五、通过sleep测试及日志验证拦截效果。
-
华为健康服务PHP调用必须通过OAuth2授权,不可直连API;后端仅作授权中转与token管理,数据需持access_token按类型调用对应REST接口,并妥善持久化refresh_token以防失效。
-
Hyperf不原生支持Laravel风格的多态关联(morphTo/morphMany),需手动建模实现:数据库设commentable_id/type字段,模型中通过自定义访问器和where条件模拟,支持预加载需手动批量查询映射,或改用显式中间表更符合Hyperf明确优于隐含的设计哲学。