Php 致命错误:调用未定义的函数defined()
我的php脚本有一个奇怪的错误:调用未定义的函数defined() PHP代码如下:Php 致命错误:调用未定义的函数defined(),php,Php,我的php脚本有一个奇怪的错误:调用未定义的函数defined() PHP代码如下: define('ENVIRONMENT', 'development'); if (defined('ENVIRONMENT')) { switch (ENVIRONMENT) { case 'development': error_reporting(E_ERROR); break; case 'testing':
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.');
}
}
有人见过这个错误吗。
感谢您的帮助。您的脚本看起来不错,但您不只是这样做:
if(defined('ENVIRONMENT'))
。。。。只使用开关(…)
或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.');
}
这很奇怪。定义的
是一个内置函数。
看看Zend/Zend_builtin_functions.c,看看这个函数是否“偶尔”被注释过