0

ドラフトクラスがあります:(更新

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行に存在しない場合、Windowのサーバーは返されますが、Ubuntuは返されreturn self::$fieldSelect[$item];ません。WindowとUbuntuを実行すると、違いがわかります。$fieldSelect[$item]NULL

なぜそうなのかわかりませんか?

4

2 に答える 2

1

エラー報告レベルは、システムごとに異なる方法で構成されていると思います。

于 2012-03-15T07:25:15.223 に答える
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、キーにアクセスするために使用すると役立つでしょう。

于 2012-03-15T07:23:36.807 に答える