2017-05-12 25 views
-1

私は関数の外で定義されたいくつかの変数を持つ最初のphpファイルを持っています。私は関数内の2番目のPHPファイルでこれらの変数を使用する方法を見つけることを試みています。グローバルキーワードを使用することはお勧めしませんが、ここで答えの1つに基づいてテストを行うと、変数の1つをパラメータとして渡そうとしましたが、成功しませんでした。ここに私のコードの簡易版は、現時点でです:関数内のグローバル変数へのアクセス

Vars.phpがで:

$test = 'test'; 

のfunctions.phpで:

include 'Vars.php'; 

function add_content($test){ 
    echo 'This is a '. $test; 
} 
add_action('woocommerce_single_product_summary', 'add_content', 15); 

私はこれが重要かどうかわからないけどとしてあなたはこれがワードプレスのウェブサイトのためであることがわかります。誰かがこれを行う方法を知っているなら、それは高く評価されるでしょう。関数自体にすべての変数を再度定義する必要があることは冗長であると感じます。

+0

あなたの問題は何ですか? –

+0

'global $ test;関数add_content()... 'なぜグローバルを使わないのですか? –

+0

@Adrien関数の外部変数にアクセスしたいのであれば、なぜその変数を渡すのですか? 'function add_content($ test){' $ testは15でオーバーライドされます –

答えて

1

@Adrien $GLOBALSは、現在のスクリプトファイル($GLOBALS)に存在するすべての変数の参照を含む超大域変数ですので、関数の外にある関数内の変数にアクセスしたいとします。$GLOBALSキーの値としてキーと変数の値として変数名)

ので、以下のようにそれを試してみてください。

Vars.php

$test = 'test'; 

Function.php

<?php 
    include 'test.php'; 
    function add_content(){ 
     echo 'This is a '. $GLOBALS["test"]; //$test variable store in this with the variable name test as key and value of the variable as value of key 
    } 
    add_content('woocommerce_single_product_summary', 'add_content'); 
+0

あなたの答えをありがとう。私の質問に書かれているように、私はそれが$グローバルを使用することは推奨されていないことを読んだので、私はそれを気にしませんでしたが、私はその周りに他の方法は見当たりません。私はあなたのスクリプトをテストし、それは動作します。再度、感謝します :) – Adrien

関連する問題