2012-05-08 42 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'] 


但我的問題是,爲什麼,如果我嘗試它不工作,並返回上述鉤子重力內部變量?

請看看我在下面試過,但它沒有返回...

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


我也試過類似的東西在我的wordpress的functions.php,試圖回顯時變量在一個過濾器...

$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; 
} 

嘗試添加global $userData;my_custom_population_function

+0

或者像這樣$ GLOBALS ['fb_app_id'] – Keil

+0

@Keil:是的,這也應該起作用。 –

+0

大量感謝@火箭 - 你的兩個解決方案都工作 - 我想我得到的JavaScript範圍與php如何使用更高的變量混淆。 – Joshc

相關問題