2011-10-27 32 views
3

私は新しいプロダクションサーバに自分の(Wordpress)ソリューションを設定することができます。 PHP関数defineが機能していないことを発見しました。PHP定義で定数が登録されていません

私は自分のfunctions.phpでのコード行を持っている:

define('INCLUDE_DIR', $_SERVER['DOCUMENT_ROOT'] . '/wp-content/themes/storelocator/include/'); 

テストの次のコード:

if (!defined('INCLUDE_DIR')) 
    echo ' NOT SET! '; 

出力NOT SETを。

this pageによると、私はincludeステートメントで一定の正しいものを使用しています。 残りのコードはfunctions.phpです。正常に動作しています。私はチェックした。

これはPHPの設定に起因するものですか?

define()functions.phpファイルの最上部にある:私は、PHPのv5.3.8に

UPDATEを使用しています。
ifのステートメントは、some-file.phpの一番上にあります。

私は確かにfunctions.phpsome-file.phpの前に実行されています。

UPDATE
私が私のPHPファイルの下に空の行を持っていたので、私はこのエラーを得たようです。私は、空行を削除し、今では動作するようです: -/

+3

defined()チェックを行う前にfunctions.phpがインクルード/必須であることを確認してください。このような単純に広く使われている関数でPHPバグが見つかったと仮定すると、少し物事が進んでいます。 –

+0

functions.phpのインクルードが定義されている場合、チェックとの関係をどこに表示できますか? – Patrick

+0

@Marc B - 'functions.php'は他のWPテンプレートファイルの前に実行されます。だから 'functions.php'は' some.template.php'ファイルの前に 'define()'を使っていました。 – Steven

答えて

1

あなたは定数がdefined()されているかどうかをチェックし前にdefine()機能呼び出す必要があります。もしあなたがそうしているのであれば(defineコールをdefinedコールのすぐ上に置いてみてください)、これはうまくいきません。

+0

私の更新されたテキストとコメントはMarc B.にあります。 – Steven

+0

あなたは間違って関数内に定義呼び出しを入れていないことを確認できますか? – Benjie

+0

私のサイトのすべての定数はfunctions.phpに入れられます。私はそれを確信しています。ローカルサーバと以前のテストサーバで正常に動作しますが、この新しいサーバでは動作しません。 – Steven

1

私はまったく同じ問題を抱えており、定数の名前からアンダースコアを削除して解決しました。うまくいけば、これは役に立ちます。

関連する問題