0

このようにbootstrap.phpにファイルを含めています

include('files/settings.php');

settings.php ファイルには次のものが含まれます。

    $var= "value";
    function myFunction(){
        echo "myFunction echo";
    }

今、私のテンプレートの 1 つで、関数と変数を使用しようとしています。問題は、関数が期待どおりに機能しているときに、変数を出力しようとすると、「定義されていません」という通知が表示されることです。

私はCakePHP 2.1.3を使用しています

ありがとうございました!

4

1 に答える 1

1

このように定義すると、変数はグローバルです。

次のように、使用する関数にインポートする必要があります。

function globalVariableUsingFunction() {
    global $var;
    echo $var;
}

phpドキュメントの詳細

編集: コメントに基づいて、これは CakePHP 固有の動作です: from this thread

ファイルのブートストラップはメソッド Configure::__loadBootstrap() に含まれているため、キーワード「global」でグローバル変数をグローバルとしてマークする必要があります。そうしないと、上記のメソッド内のスコープでのみ有効になります。

したがって、bootstrap.php を次のように変更します。

global $var= "value";
function myFunction(){
    echo "myFunction echo";
}

トリックを行う必要があります。

于 2012-07-23T12:58:21.027 に答える