php教程技术文章
-
PHP8.3的#[\Override]属性是编译期强制校验机制,标记后即严格检查父类或接口中是否存在同名且签名匹配的方法,方法名拼错、参数/返回类型不兼容、访问修饰符更严格、覆盖不可继承方法等均触发Fatalerror。313 收藏 -
pm.max_children是PHP-FPM控制单站最大并发PHP进程数的核心参数,需按站点独立配置并重启对应PHP服务;设过低致502增多,过高易耗尽内存;须配合Nginx限流与程序优化才能有效防攻击和瓶颈。312 收藏 -
绝大多数商用POS终端不能直接运行PHP源码,因其硬件和系统层面缺乏PHP解释器、标准libc及足够内存,连php-v都无法执行。312 收藏 -
PHP事件驱动本质是Observer模式解耦,核心为Subject、Observer接口及注册/通知机制;Laravel事件应传最小必要数据;Swoole异步需注意fd类型、回调作用域及事件清理。312 收藏 -
PHP可通过调用本地Pandoc实现Markdown/HTML转PDF/DOCX,需先验证Pandoc可用性,再选用exec、proc_open、临时文件或封装类等安全方式执行转换。312 收藏 -
Hyperf以Swoole协程为底座,提供协程运行时、DI容器、注解系统、配置中心等核心支撑;涵盖路由、中间件、验证、响应等Web能力;集成数据库连接池、模型层、缓存、Redis;并配备代码生成、日志、Swagger、事件等工程与可观测工具。312 收藏 -
PHP中数组升序排序需据类型选函数:索引数组用sort()重排键名;关联数组按值排序用asort()保键值关系;按键名排序用ksort();自定义规则用usort();含数字字符串用natsort()自然排序。312 收藏 -
直接禁用Indexes是阻止Apache目录列表的核心操作,需在所有Directory块中精准移除或用-Indexes禁用,并检查XAMPP额外配置文件,重启后通过无首页目录访问验证403响应。312 收藏 -
Redis密码必须在服务端redis.conf中配置requirepass并重启生效,PHP客户端需用auth()或session.save_path?auth=方式传密,phpEnv本身不管理密码。312 收藏 -
PHPNotice:Undefinedindex是PHP在尝试访问数组中不存在的键时触发的Notice级错误,不影响脚本执行但暴露数据假设漏洞;应通过isset()、??运算符或filter_input()等安全方式访问,避免直接使用$arr['key']。312 收藏 -
chmod必然更新ctime,但不影响mtime和atime;若mtime变化,说明存在其他写操作。可通过stat()+touch()在PHP中恢复mtime/atime,但ctime不可避免且不可逆。312 收藏 -
PHP8中PDO::FETCH_CLASS报ArgumentCountError是因构造函数有必需参数时未传入$constructorArgs数组,PDO默认尝试无参实例化,而PHP8严格执行参数契约,必须用setFetchMode(PDO::FETCH_CLASS,'Class',[$conn,$id])显式传参。312 收藏 -
APP_DEBUG=true仅控制Whoops页面渲染,真正显示错误还需PHP的display_errors=On和error_reporting=E_ALL配对;否则仍白屏或无堆栈。312 收藏 -
XAMPP默认不防DDoS,因其作为开发环境未预装启用mod_evasive等防护模块,httpd.conf中既无LoadModule指令也无相关配置,且仅基础安全检查不覆盖流量层攻击。312 收藏 -
直接在DAO写日志会导致业务与审计强耦合,修改日志逻辑需遍历多处DAO易漏改;应使用SplSubject/SplObserver实现事务提交后的异步解耦日志,注意脱敏、上下文注入、非阻塞写入及日志与DB一致性补偿。312 收藏