2012-05-08 5 views
1

私は本当にreturn'ingとecho'ing変数と混同していると思います。重力フォームのフックにPHP変数を渡す

私はこの作品を返す。このgravity forms hook from their support ...

add_filter('gform_field_value_facebook_name', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
    return 'boom!'; 
} 

を持っている 'ブーム!'私のフォームフィールドのデフォルト変数として。

これは一般的なテキスト文字列に対してかなり単純ですが、代わりにPHP変数を返そうとしています。

私はfunctions.phpにfacebook PHP SDKを重力フォームフックよりも高い範囲で読み込んでいます。 FacebookのSDKは間違いなく...私は現在、私のWordPressのテーマファイルでこれをエコー午前例えば、働く

echo $userData['name'] 


しかし、それは私がしようとした場合に動作し、上記を返さない理由を、私の質問は、フックの重力の中の変数?

エコーしようとしたとき、私はまた、私のワードプレスのfunctions.phpでも似たような試みた

add_filter('gform_field_value_facebook_name', 'my_custom_population_function'); 
function my_custom_population_function($value){ 
    return $userData['name']; 
} 


...私は以下しようとしているかを見るが、それは何も返しませんしてくださいフィルタの変数...

$fb_app_id  = '12345678910'; 

// APP ID FILTER 
add_action('fb_app_id', 'echo_fb_app_id'); 
function echo_fb_app_id() { 
    echo $fb_app_id; 
} 

しかし、これは何も返されず、有効範囲は同じです。

誰も私にこれらの変数を渡すことができない理由を教えてください。私はそれが技術用語だと思う。どうもありがとうございました。

答えて

2

これは、PHPではglobalキーワードがないと関数がグローバル変数を読み込まないためです。

$fb_app_id  = '12345678910'; 

// APP ID FILTER 
add_action('fb_app_id', 'echo_fb_app_id'); 
function echo_fb_app_id() { 
    global $fb_app_id; // tells PHP to use the global variable 
    echo $fb_app_id; 
} 

は、あなたのmy_custom_population_functionglobal $userData;を追加してください。

+0

などこの$ GLOBALS ['fb_app_id'] – Keil

+0

@Keil:はい、それもうまくいくはずです。 –

+0

Massiveは@Rocketに感謝します - あなたのソリューションの両方がうまくいきました - 私はjavascriptスコープがphpがより高い変数を使用する方法と混ざっていると思います。 – Joshc

関連する問題