2014-01-25 89 views
0

首先:我知道這已經被問過,但我已經瀏覽了很多問題/答案,並且我無法弄清楚如何讓它們中的任何一個工作。所以,對此感到抱歉。在該函數之外的函數中定義的訪問變量

所以基本上我正在寫一些功能/ WordPress的簡碼是不是意味着我可以使用簡碼發佈藤視頻到WordPress的博客:

function embedVine($atts) { 

    extract(shortcode_atts(array(
     "id" => '' 
    ), $atts)); 

    $vine_id = $id; 

    // I'm then doing a whole load of stuff involving $vine_id, including using it as a parameter to pass to different functions I've written that are separate to this function. 
    // I should also mention that $vine_id is the id on the end of a Vine URL. 
} add_shortcode("vine", "embedVine"); 

,用戶就可以使用在該[vine id="..."]簡碼WordPress的編輯器。

然後我有我寫了一個函數,但我不希望執行它上面的函數內,否則會每次運行它不會是很好的功能/簡碼的運行。我反而需要在函數之外執行它,但仍然使用​​作爲參數。但是,由於​​是在上面的函數中定義的,所以我無法在函數之外訪問它。

這裏是第二個功能:

function vineThumb($id) { 
    $vine = file_get_contents("http://vine.co/v/{$id}"); 
    return $vine; 
    // of course, it's a lot more complicated than this but for the sake of this, it works. 
} vineThumb($vine_id); 

執行的函數將返回http://vine.co/v/ {$ vine_id}。我如何讓$ vine_id函數在shortcode函數(第一個函數)之外訪問?

希望我已經解釋清楚,我不是一個PHP程序員,因爲你可以告訴我,但我知道足夠了解。這種讓我難住的。感謝您的任何幫助:)

回答

0

我不知道這兩個函數是否位於同一個文件,但試試這個。 http://www.php.net/manual/en/language.variables.scope.php

$vine_id = null; //Define it outside the function 

function embedVine($atts) { 

    global $vine_id; //Refers to $vine_id outside the function 

    extract(shortcode_atts(array(
     "id" => '' 
    ), $atts)); 

    $vine_id = $id; //$vine_id now has the value of $id when embedVine exits 
} add_shortcode("vine", "embedVine"); 
+0

可惜,這似乎並沒有工作,雖然:(感謝您的幫助:)我想我需要做的是能夠以某種方式返回$ vine_id作爲函數的結果,這是我的訪問次要功能。不知道如何做到這一點,但:/ –

相關問題