-
Hyperf在Windows上需通过WSL2运行,macOS推荐本地部署并禁用Spotlight索引,Linux应显式指定FswatchDriver并调优inotify;跨平台统一靠环境变量驱动配置与路径规范。
-
gd_imagecopyresampled裁剪缩放必须先创建目标资源,不能原地操作;需用imagecreatetruecolor创建目标画布,再调用该函数复制指定区域,否则图像损坏或变黑。
-
开启GeneralQueryLog需先确认配置文件路径(如C:\phpEnv\mysql\my.ini),在[mysqld]段添加general_log=ON、general_log_file=C:/phpEnv/mysql/logs/general.log、log_output=FILE,手动创建目录并赋予SYSTEM和Administrators写权限,重启MySQL服务后执行SHOWVARIABLESLIKE'general_log%'验证生效。
-
RoadRunner更稳更省资源,尤其适合容器化与长周期运行;Swoole是WebSocket和协程异步任务的唯一选择。因RoadRunner由Go管理Worker、强制max_jobs重启防泄漏、Go层处理TLS/HTTP/2,而Swoole易受扩展兼容性与协程调度异常影响,连接池配置更复杂且预热不彻底。
-
imagejpeg()的参数控制质量(65–80推荐),imagepng()的参数才是压缩级别(0–9,设9可减体积15%–40%);必须先缩放再压缩,GD处理WebP需PHP8.0+且函数存在,大图须防内存溢出并及时imagedestroy()。
-
PHP中json_encode()慢的主因是默认执行冗余检查(编码检测、循环引用、浮点精度等),而非函数本身低效;应预处理数据(转UTF-8、移除资源/闭包)、启用JSON_UNESCAPED_UNICODE等标志、流式输出大数据、开启OPcache并禁用Xdebug。
-
PHP不支持真正多线程,推荐Web场景用Swoole协程实现高并发I/O,CLI批量任务用pcntl_fork()多进程,简单HTTP并发可用curl_multi_init()或amphp。
-
PHP数组过滤推荐使用array_filter()函数,它根据回调函数返回值筛选元素,保留使回调返回true的项,默认保留原键名,可结合array_values()重新索引;若省略回调,则移除被视为false的元素。
-
判断PHP数组元素存在性及定位需依需求选函数:一、in_array()判存在,返回布尔值;二、array_search()返首个键名;三、array_keys()返所有匹配键;四、foreach手动遍历支持自定义逻辑;五、array_filter()提取匹配子数组。
-
PHP密码存储必须用password_hash(),禁用md5/sha1;真加密用openssl_encrypt()(如AES-256-CBC),禁用ECB模式;base64_encode()仅为编码,无保密性。
-
phpenv是纯命令行工具,无GUI、不打包Web服务器,安装仅三步:gitclone、配置shell文件、source重载;其核心机制依赖shim拦截,失效时应检查whichphp路径和phpenvinit是否生效。
-
PHPEnv下延长session有效期需同步配置PHP-FPM的php_admin_value、确认存储后端(文件需可写且磁盘充足,Redis需设expire参数)、并重启对应FPM服务,仅改php.ini无效。
-
str_shuffle()仅适用于ASCII字符串,UTF-8多字节字符需用preg_match_all('/./u')拆分后shuffle()再implode();需可重现结果时须手动设随机种子,且注意保留原始空白与不可见字符。
-
启用strict_types=1可禁止函数参数和返回值的隐式类型转换,仅对当前文件直接定义调用的函数生效,需置于文件首行(前仅允许空白和注释)。
-
PHP7.4并未弃用三元运算符的左结合性,而是弃用不加括号嵌套三元的警告抑制;PHP8.0+直接报错,因其按左结合解析为($a?$b:$c)?$d:$e,而非直觉的$a?$b:($c?$d:$e)。