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

PHP7.2环境调用cal_info()函数报未定义致命错误如何解决?

报错原因

cal_info() 属于PHP的calendar扩展提供的函数,该扩展默认不会随PHP核心编译启用,你当前的PHP7.2环境未安装启用该扩展,因此调用时会抛出未定义函数的致命错误。

解决方案
  • 方案1:安装启用calendar扩展

    源码编译安装PHP的场景:
    编译PHP时添加--enable-calendar配置参数,重新编译安装后生效。
    Linux包管理器安装PHP的场景(适配PHP7.2版本):

    • Debian/Ubuntu系列:执行命令 apt install php7.2-calendar,安装完成后重启PHP-FPM或CLI进程即可
    • CentOS/RHEL系列:执行命令 yum install php72w-calendar,安装完成后重启PHP相关进程即可
      Windows环境场景:
      打开php.ini配置文件,找到;extension=php_calendar.dll行,删除行首的分号注释,保存配置后重启PHP服务即可。
  • 方案2:无扩展的代码替代实现
    如果没有权限修改PHP环境配置,可以直接替换原有业务代码实现相同功能,无需依赖calendar扩展:

private function month($month, $abbrev = true)
{
    $month = intval($month);
    if ($abbrev) {
        $abbrevmonths = [
            1 => 'Jan', 2 => 'Feb', 3 => 'Mar', 4 => 'Apr', 5 => 'May', 6 => 'Jun',
            7 => 'Jul', 8 => 'Aug', 9 => 'Sep', 10 => 'Oct', 11 => 'Nov', 12 => 'Dec'
        ];
        return $abbrevmonths[$month] ?? '';
    } else {
        $months = [
            1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May', 6 => 'June',
            7 => 'July', 8 => 'August', 9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December'
        ];
        return $months[$month] ?? '';
    }
}

如果需要返回中文月份,直接替换数组中的值即可。


内容的提问来源于stack exchange,提问作者Ítalo Torres Lima

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:45:03