致命错误:调用未定义的函数定义()

时间:2017-09-30 04:49:01

标签: php

我的php脚本有一个奇怪的错误:调用未定义的函数定义()。

下面的PHP代码:

define('ENVIRONMENT', 'development');
if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
    {
        case 'development':
            error_reporting(E_ERROR);
        break;
        case 'testing':
            error_reporting(E_ALL);
            break;
        case 'production':
            error_reporting(0);
            break;
        default:
            exit('The application environment is not correct.');
    }
}

有没有人见过这个错误。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

这很奇怪。 defined是一个内置函数。 看一下Zend / zend_builtin_functions.c,看看这个函数是否是“一般性的”评论。

答案 1 :(得分:0)

你的脚本看起来没问题,除非你不做:if (defined('ENVIRONMENT')) ....而只是使用switch(...)if...elseif ....下面的这个片段模仿你的代码但是以不同的方式使用defined()(仅在常量声明期间,如此:

    <?php
        // IMPLIES: 

        // IF THE CONSTANT 'ENVIRONMENT' IS NOT YET DEFINED ELSEWHERE,
        // DEFINE IT NOW AND GIVE IT A VALUE OF 'development'
        defined("ENVIRONMENT") or define("ENVIRONMENT", 'development');

        // NOW YOU CAN ENGAGE YOUR SWITCH CONSTRUCT LIKE SO:        
        switch(ENVIRONMENT){    //<== NOTICE: WE AIN'T USING ANY `IF`
                                //<== THIS COULD BE REPLACED WITH IF, IF YOU PREFER:
            case 'development':
                error_reporting(E_ERROR);
                break;
            case 'testing':
                error_reporting(E_ALL);
                break;
            case 'production':
                error_reporting(0);
                break;
            default:
                exit('The application environment is not correct.');
        }