You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHPStan中scanFiles/scanDirectories未解决函数未找到错误的排查

解决PHPStan提示set_magic_quotes_runtime未找到的问题

核心原因

set_magic_quotes_runtime是PHP 4/5的内置函数,PHP 7.0及以上版本已彻底移除。PHPStan默认会根据你配置的targetPhpVersion校验函数合法性,而scanFiles/scanDirectories仅用于扫描用户代码中定义的类、函数,无法让PHPStan识别已被废弃的PHP内置函数。

具体解决方案

根据你的项目环境选择对应方案:

  • 方案1:匹配项目实际PHP版本
    如果项目仍运行在PHP 5.x环境,在phpstan.neon(或phpstan.neon.dist)中明确设置目标PHP版本:

    parameters:
      targetPhpVersion: 5.6
    

    这样PHPStan会基于PHP 5.6的函数列表校验,不会再报错。

  • 方案2:修改FPDF代码(推荐,若项目已升级到PHP 7+)
    由于PHP 7+已移除magic quotes相关功能,set_magic_quotes_runtime调用完全无意义,直接修改fpdf.php第1055行:

    // 注释或删除该行
    // set_magic_quotes_runtime(0);
    
  • 方案3:添加函数存根(无需修改代码或调整PHP版本)
    在项目中创建存根文件(比如stubs/deprecated_functions.php),声明该函数存在:

    <?php
    /**
     * @deprecated PHP 7.0+ 已移除
     */
    function set_magic_quotes_runtime($new_setting): bool
    {
        return true;
    }
    

    然后在PHPStan配置中引入该存根:

    parameters:
      bootstrapFiles:
        - stubs/deprecated_functions.php
    

内容的提问来源于stack exchange,提问作者Sbraaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:22:14