2014-08-29 268 views
1

我很困惑 - 如果我重新啓動Web服務器,但會再次失敗。我與Apache 2.4.6試圖在2個不同的服務器require_once致命錯誤:未找到類

PHP 5.5.3

PHP 5.5.9與1.4.6 nginx的

require_once('myclass.php'); 
class mynewclass extends myclass { 
    // Fatal error: Class 'myclass' not found in ... 
} 

但如果我試試這個,我得到Fatal error: Cannot redeclare class myclass在...

require_once('myclass.php'); 
if (!class_exists('myclass')) { 
    require('myclass.php'); 
    // Fatal error: Cannot redeclare class myclass` in ... 
} 
class mynewclass extends myclass { 

} 
+0

'myclass.php'文件的內容是什麼? – pomeh 2014-08-29 15:22:32

回答

0

我敢打賭你在一個命名空間中定義MyClass的:

namespace foo; 
class myclass {} 

然後嘗試在該名稱空間外引用它;

class mynewclass extends myclass {} 
// PHP Fatal error: Class 'myclass' not found in... 

你需要要麼把第二類在同一個名字:

namespace foo; 
class mynewclass extends myclass {} 

或者use命名空間:

​​

或者在您的參考指定完整的命名空間名稱:

class mynewclass extends \foo\myclass {} 
0

我認爲你應該使用

//require_once('myclass.php');//remove this line 

    if (!class_exists('myclass')) { 
     require('myclass.php'); 
     // then if class not exists it will be included. 
    }