-
PHP处理JSON数据核心是json_encode()和json_decode();中文乱码需加JSON_UNESCAPED_UNICODE,解析后统一用数组避免对象访问错误,必须配合json_last_error()检查错误,BOM头和编码不一致需预处理,嵌套访问前须做存在性判断。
-
PHP错误日志不进Apacheerror_log,需启用log_errors=On、正确配置error_log路径并确保权限,且error_reporting须覆盖错误级别;PHP-FPM环境下须在php.ini或pool配置中设置,而非Apache指令。
-
phpenv未真正卸载的标志是whichphpenv或phpenv--version仍有输出;需删除~/.phpenv、~/.php-build及残留版本目录,清除shell配置中exportPATH和eval"$(phpenvinit-)"等初始化代码,并刷新配置、清空hash、检查alias与环境变量。
-
改了hosts仍打不开myproject.test,主因是未以管理员权限保存、DNS缓存未清、Apache未重启或域名后缀不规范;必须用127.0.0.1+.test后缀,确保hosts路径正确、格式无空格,并执行ipconfig/flushdns及重启Apache。
-
不能——ArgoCD只部署Kubernetes资源,需将PHP应用打包为镜像并提供Deployment、Service等YAML清单,配合健康探针、ConfigMap/Secret配置及正确Git仓库结构。
-
Hyperf连接Redis集群必须使用RedisCluster而非Redis,因hyperf/redis仅支持单机模式;多键操作需用{}哈希标签确保共槽,如{user:1001}:profile;前缀配置无效,须业务层显式控制标签。
-
json_encode和json_decode的难点在于静默失败,根源是编码不一致、非法类型输入、JSON格式错误及错误处理缺失;需用mb_convert_encoding、json_last_error_msg()、JSON_THROW_ON_ERROR等精准定位问题。
-
PHP时区设置错误最直接的表现是date()、strtotime()、DateTime等函数返回的时间和你预期不一致,或者抛出Warning:date():Itisnotsafetorelyonthesystem'stimezonesettings警告——这说明PHP根本没拿到有效时区,正fallback到系统默认(通常不准)。为什么date_default_timezone_set()必须在所有时间操作前调用这个函数不是“设一次就全局生效”的配置项
-
phpEnv非Wallabag官方支持方案,因其PHP版本旧、扩展缺失、无CLI工具及数据库管理,易致空白页、500错误、路由未加载、抓取失败等问题;需手动启用扩展、修改php.ini、正确配置DocumentRoot并执行安装命令。
-
PHP二维数组提取元素有五种技巧:一、双重循环按条件筛选键值;二、array_column快速提取指定列;三、array_map配合匿名函数格式化提取;四、下标引用直接获取行列元素;五、array_filter结合array_column条件筛选后提取。
-
Laravel5.5+中,event()用于同步触发事件,dispatch()仅用于队列任务,不可触发事件;监听器注册仅支持EventServiceProvider::$listen数组,不支持官方注解;事件类与监听器路径需严格匹配命名空间及大小写。
-
Webman接入微信支付的核心难点是证书加载、签名验证和回调验签;需正确配置证书路径与权限、手动透传带连字符请求头、使用原始请求体验签,并通过webman-admin动态管理敏感配置。
-
PHP魔术方法以双下划线开头,在特定条件下自动调用,用于增强对象行为控制。①__construct()在对象创建时初始化属性或资源;②__destruct()在对象销毁前释放资源如关闭数据库连接;③__get()和__set()处理不可见或不存在属性的读写,支持动态属性与懒加载,并配合__isset()和__unset()管理属性存在性;④__call()和__callStatic()分别捕获未定义实例与静态方法调用,适用于API网关或插件系统;⑤__toString()规定对象转字符串时的输出内容,必须
-
strlen()永远不会返回null;对null输入在PHP8.0+抛出TypeError,此前触发警告并返回0,所谓“返回null”实为代码其他环节误赋值或误判。
-
应选用endroid/qr-codev3.5.2版本,因其稳定、兼容PHP7.2+、API简单;v4+移除save()和get()方法,需手动配置渲染器、处理二进制输出及中文编码问题。