为什么Apache2(Ubuntu)与Apache(Windows上的easyPHP服务器)运行不同?

问题描述:

我有:(更新为什么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

我没有看到$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

我假设error reporting level在不同的系统上配置不同。