저는 PHP에 대해 배우고 있으며 전역 변수/범위 문제에 대한 도움이 필요합니다. 나는 외부 기능에 $myvars
의 값에 액세스해야합니다도움이 필요하십니까 PHP 변수 액세스 : 가변 범위 및 전역
function outer() {
function inner($atts) {
$myvars = $atts['mydata'];
}
// I need to access the value of $myvars in here:
$jsonized = json_encode($myvars);
}
function set_atts_func($atts) {
inner($atts);
}
add_shortcode("my_short_code", "set_atts_func");
내가만큼 내가 할 수있는 문제를 단순화했습니다. 이 플러그인은 WordPress 플러그인의 일부입니다. 다음과 같이 나는 $myvars
글로벌 만드는 시도했다 :
function inner($atts) {
global $myvars;
$myvars = $atts['mydata'];
}
을하지만, 나는 그것을 파악하지 않았습니다. 어떤 제안?
추가 정보 :
누군가가 중첩 된 기능을 사용하는 것보다 내 문제를 해결하는 더 좋은 방법이 있다면, 나는 그것을 듣고 싶네요.
내 사이트의 WordPress 플러그인 용입니다. 즉, $atts
을 자바 스크립트에 전달해야합니다.
롱 스토리 : add_shortcode()
라인은 set_att_func()
으로 전화를 걸어 $atts
에 액세스 할 수 있습니다. $atts
을 js로 전달하려면 WordPress의 wp_localize_script()
함수를 사용합니다.
그러나이 함수는 wp_localize_script()
호출에서 참조 된 스크립트 매개 변수가 wp_enqueue_script()
에 대기열에 포함 된 경우에만 호출 할 수 있습니다. 적어도 내가 알 수있는 한이 함수는 wp_enqueue_script()
에 대기열에 포함됩니다. set_atts_func()
(으)로 wp_localize_script()
및 wp_enqueue_script()
전화를 걸어 보았습니다. 그래서 $atts
을 outer()
에 넣으려고합니다. 여기에서 wp_localize_script()
과 wp_enqueue_script()
호출이 있습니다.
$atts
에 outer()
에 액세스하는 더 쉽고 간단한 방법이 있으면 알려 주시기 바랍니다.
또 하나의 함수 인 코드를 정의 할 필요가 없습니다 –
또한 [PHP 중첩 함수는 무엇입니까?] (http://stackoverflow.com/questions/415969/what-are-php-nested)에 대한 대답을 참조하십시오. -functions-for) - TL : DR : 사용하지 않으므로 사용하지 마십시오. – Tomalak
@Col. Shrapnel, 메시지를 보내 주셔서 감사합니다. 추가 정보를 추가했습니다. 당신이 제안이나 해결책을 가지고 있다면, 나는 그것을 듣고 싶습니다. 감사. – Laxmidi