2014-02-26 29 views
0

我在localhost上創建了一個網站模塊,並試圖讓它在活動服務器上工作,這令人沮喪,因爲我確信每個要加載的類都有正確的語法。即使路徑相同,它們也不會被加載。在其他服務器上PHP自動加載失敗

function __autoload($class_name) { 
    require("adk3/classes/".$class_name.".php"); 
} 

以上是它從根目錄(htdocs中/的index.php)

function autoloader(){ 
     require("adk3/classes/".$class_name.".php"); 
} 
spl_autoload_register('autoloader',true); 

本地主機執行工作原來這是我當時也想,也沒有工作。我也查了絕對路徑:

require(dirname(__FILE__)."/adk3/classes/".$class_name.".php"); 

腳本在$userList = new UserList();停止執行,甚至沒有與E_ALL打開任何錯誤消息。使用dirname語法file_exists()說是 - 它們存在。

編輯(附加信息):

  • error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE | E_STRICT | E_ALL); 沒有什麼幫助的。
  • PHP版本是5.3.1。
  • <?php require("adk3/interfaces.php"); // okay require("adk3/classes/UserList.php"); //STOPS without error shown
+0

嘗試使用'E_ALL | E_STRICT' – Halcyon

+0

嘗試使用參數運行:function autoloader($ class_name){ require(「adk3/classes /".$ class_name。」。php「); } spl_autoload_register('autoloader',true); –

+0

也將你的dirname()包裝在realpath()中,如果它不能解析路徑,它將返回false。 回顯包含您正在嘗試的路徑的文件名稱。如果你什麼都沒有收到,自動加載器沒有運行。 如果它正在返回文件的路徑OK,自動加載器正在運行。將它包裝在realpath()中,看看PHP是否可以看到該文件:) –

回答

1

我花了年齡看着辦吧:

該文件已被成功地要求,這就是爲什麼我從來沒有得到任何錯誤消息。根據PHP5.4 +,所需文件中寫入的類是可以的。由於我在新服務器上運行了PHP 5.3,因此無法解釋我在某些方法中使用的新速記數組語法[]

相關問題