2

開発マシンにまれな問題があります。

彼女は本番サーバーで使用するものと同じですが、何らかの理由で、VM で実行すると次のようになります。

namespace NotWorking;

$foo = new DateTime();

ローカル マシンでは動作しますが、運用サーバーではエラーが発生しません。

しかし、次のようなものを使用すると:

namespace Working;

$foo = new \DateTime();

できます。私が知っているすべての設定をすでに比較しましたが、php からのビルドに違いは見られず、apache でさえ同じビルドです。

この「機能」を強制するオプションはありますか?

4

1 に答える 1

2

DateTime はグローバル名前空間にあり、「クラス名は常に現在の名前空間名に解決される」ため、\DateTime を使用する必要があります

詳細については、こちらをご覧ください。

グローバル名前空間のクラスと同じ名前のクラスがローカル名前空間にある場合は、接頭辞を付ける\必要があります。そうしないと、ローカル クラスをインポートすることになります。

于 2013-04-24T15:32:06.887 に答える