2012-03-15 1 views
0

私はドラフトクラスを持っている:(更新Apache2(Ubuntu)がApache(Windows上のeasyPHPサーバー)でdefferentを実行するのはなぜですか?

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, 
); 

それは(Windows 7の)easyPHP上でうまく動作しますが、私はApache2の(Unbutuにそれを展開するとき)、エラー例外が表示されます。例えば、私は、入力$item = "Phone"(ここでは更新)、Apache2のは例外をスロー:行return self::$fieldSelect[$item];Undefined index: Phone$fieldSelect[$item]が存在しない場合は、ウィンドウの上に切断が戻りNULLになりますが、Ubuntuのではありません。私はちょうどwanaはそれを実行するときにウインドウとUbuntuの違いを見ています。

なぜそうなのですか?

+0

'ItemType'列挙はどのように定義しますか? '$ item = ItemType :: Food'を試しましたか? – J0HN

答えて

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

ああ私はソーリーです。コピーして編集すると間違いがあります。あなたが正しい。そして、今更新しました。ありがとうございました! – Davuz

関連する問題