2017-05-16 1 views
0

내 프로젝트는 템플릿 시스템을 사용하여 페이지를 구성하고 많은 변수가 관련되어 있습니다. 일반적으로 템플릿은 함수 내에서가 아니라 인덱스 파일에서 직접로드됩니다. 템플릿이 기능의 범위를 벗어난 많은 변수를 사용하기 때문에, 그냥 많이 온다, 그러나모든 전역 변수를 함수에서 사용할 수있게 만들기

function show_error($error){ 
    global $root; 
    global $template; 
    $content=$root."/includes/pages/error_page.html.php"; 
    include $root . $template; 
    exit(); 
} 

:

그러나 그 순간에 나는 단순히이 기능을 만들고있어하면 오류 페이지를 표시합니다 변수를 찾을 수 없습니다 오류가 발생했습니다.

단순히 함수 내에서 모든 전역 변수를 사용할 수있게 만드는 방법이 있습니까? 나는 오히려 개별적으로 모든 가능한 변수를 선언하지는 않을 것입니다. 왜냐하면 아주 지루하고 템플릿에 더 많은 변수를 추가하기 때문입니다. $ 내용과 $ 루트가 국제적인 맥락에서 인 경우에 당신이 그들을 사용하기 전에

+0

템플릿이 접근하지 말아야 변수의 범위 –

+1

외부 PHP에서 기본 템플릿을 실제로 수행하는 방법을 익히면 도움이 될 것입니다. http://chadminick.com/articles/simple-php-template-engine.html –

답변

1

당신은 함수에 모든 전역을 가져 extract()을 사용할 수 있습니다 범위

$foo = 'bar'; // global scope 
function test(){ 
    extract($GLOBALS, EXTR_OVERWRITE, 'g'); // import with prefix to avoid mess 
    echo $g_foo; // outputs: bar 
} 

더 읽기 : http://php.net/manual/ru/function.extract.php

0

, 당신은 기능이 추가하여 함수 내에서 액세스 할 수 있습니다 :

global $content, $root; 
+0

죄송합니다. 이미 포함되어있는 질문을 편집했습니다. 템플릿을 사용하여 문제를 일으키는 다른 많은 변수는 모두 선언해야하기 때문입니다. – dlofrodloh

+0

톤과 톤의 전역 변수를 사용하는 경우 $ GLOBALS를 사용해야합니다. – kainaw

관련 문제