2017-09-30 117 views
1

我的PHP腳本有一個奇怪的錯誤:調用undefined函數defined()。致命錯誤:調用未定義的函數定義()

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

你的腳本看起來好嗎: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.'); 
     } 
1

這很奇怪defined是一個內置的功能 看一看的Zend/zend_builtin_functions.c,看看這個功能是「偶爾」評論

相關問題