2012-01-30 6 views
0

を実行し、エラーメッセージがは致命的なエラーを示しています。クラスを再宣言することはできませんが、Linuxの下ですべてがうまく

Fatal error: Cannot redeclare class Zbcommon in /Users/apple/Sites/maemvl.com/application/libraries/Zbcommon.php on line 3 

である。しかし、他の重複クラスが存在しません。 メッセージはmacでのみ表示されます。 Linuxサーバーの下では、すべて正常に動作します。 コードはmacとlinuxの両方で同じですが、どこに問題があるのか​​把握していません。

+2

あなたはいくつかの関連するコードを表示することができました –

+0

私はWinで同じことをしました - 再宣言はありませんでしたが、Linuxでは - は激変していました。 Mac OSでは、同じ名前のファイルは大文字と小文字を区別してチェックしてください。 – devdRew

+0

これはファイル名/クラス名の大文字と小文字を区別することしかできません。 Windowsファイルシステムは常に大文字と小文字を区別しません.Mac OSはデフォルトで大文字と小文字を区別しませんが、Linuxでは大文字と小文字が区別されます。 – GordonM

答えて

0

上記の推奨記事は意味があります。ほとんどの場合、大文字と小文字を区別します。

最初に:まだ完了していない場合、error_reportingをE_ALLに設定してください。

次に、include_path()とすべてのオートローダーを確認します。それがあなたの問題を解決するかもしれないので。 inludeパスは、ファイルをインクルードするときに大きな影響を与えます。ほとんどの場合、絶対パスを使用しないと、これはあなたのような問題を引き起こす可能性があります。

+0

私はこの手順に従った。しかし、まだ動作しません。私はこのクラスの名前を変更するとき。他のファイルから必要なクラスが見つからないことを示します。相対ファイルでは、コードは 'require_once(APPROOT。'/'。APPPATH。 "/ libraries/zbcommon.php")です。 \t \t $ this-> zbcommon = new Zbcommon(); 'は、新しいZbcommon()クラスの複製ですか? – Juni

+0

APPROOTとAPPPATHの値を追加してください。開始ポストのパスと同じですか?もしそれが本当であれば、このファイルはすでにインクルードされていますが、何とかrequire_onceがインクルードするのを止めません。それについて考えてみましょう:クラスがすでに利用可能であるため、require_onceから離れるだけですか?完全なソースコードで "autoload"を確認してください。そのファイルがすでに利用可能な理由かもしれません。 –

関連する問題