2012-03-15 139 views
0

我有:(更新爲什麼Apache2(Ubuntu)與Apache(Windows上的easyPHP服務器)運行不同?

class abb{ 
    static $fieldSelect; 
    function init() { 
     self::$field = require_once('inputs/Mapping.php'); 
    } 
    function getField($item) { 
     return self::$fieldSelect[$item]; 
    } 
} 

Mapping.php中含有一種類選秀:

<?php 
return array(
    ItemType::Food   => 0.7, 
    ItemType::Fashion  => 0.5, 
); 

它的EasyPHP運行良好(Windows 7)中,但是當我將其部署到的Apache2(Unbutu ),出現錯誤異常。例如,我輸入$item = "Phone"更新這裏),Apache2拋出異常:Undefined index: Phone在線return self::$fieldSelect[$item];如果$fieldSelect[$item]不存在,那麼在Window上的服務器將返回NULL,但Ubuntu不是。我只是在運行時看到Window和Ubuntu之間的差異。

我不明白爲什麼是這樣?

+0

而你如何定義'ItemType'枚舉?你嘗試過'$ item = ItemType :: Food'嗎? – J0HN 2012-03-15 07:18:58

回答

0

我沒有看到$fieldSelect在你班上的任何地方聲明。也許你應該使用$field而不是?您還在使用$fields$field

或許這將做到:

class abb{ 
    static $fields; 
    function init() { 
     self::$fields = require_once('inputs/Mapping.php'); 
    } 
    function getField($item) { 
     return self::$fields[$item]; 
    } 
} 

最後,您需要妥善處理數組的鍵。我不確定你的ItemType被定義爲。也許使用$item = ItemType::Food來訪問密鑰會有所幫助。

+0

哦,我是sory,複製和編輯時我犯了錯誤。你是對的。我現在就更新了。謝謝! – Davuz 2012-03-15 08:51:28

相關問題