我的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.');
}
}
有没有人见过这个错误。 谢谢你的帮助。
答案 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.');
}