2014-01-25 1 views
0

첫 번째 : 이전에 물어 보았지만 많은 질문/답변을 살펴본 결과 어떻게 작동하는지 계산할 수 없습니다 . 죄송합니다.함수 밖에서 함수에 정의 된 변수에 액세스하십시오.

그래서 기본적으로 내가 일부 기능을 쓰고 있어요/I는 워드 프레스 블로그에 포도 나무에 비디오를 게시하는 단축 코드를 사용할 수 있다는 것을 의미 워드 프레스의 단축 코드는 :

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 편집기.

필자가 작성한 함수가 있지만 위의 함수 안에서 실행하고 싶지 않습니다. 그렇지 않으면 함수/shortcode가 실행될 때마다 실행됩니다. 대신 함수 밖에서 실행해야하지만 여전히 매개 변수로 $vine_id을 사용하십시오. 그러나 위의 함수 내에서 $vine_id이 정의되었으므로 함수 외부에서 액세스 할 수 없습니다.

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}를 반환하는 기능을 실행 :

여기에 두 번째 기능입니다. shortcode 함수 (첫 번째 함수) 외부에서 $ vine_id 함수를 액세스 가능하게 만드는 방법은 무엇입니까?

희망을 충분히 설명해 주었으면 좋겠다. 나는 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를 반환 할 수 있어야하는 것입니다 필요 생각하는 내 2 차 기능. 그 방법을 모르는 경우 : / –