为什么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之间的差异。
我不明白为什么是这样?
答
我没有看到$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
而你如何定义'ItemType'枚举?你尝试过'$ item = ItemType :: Food'吗? – J0HN 2012-03-15 07:18:58