특정 파일만 include 하는 함수 입니다. NULL이 나오는데 좀 봐주실 수 있을까요? 채택완료
레드불355
3년 전
조회 1,945
루트의 특정파일만 include 하는 함수를 만들었습니다.
</p>
<p><?php
function getDefaultMenu(){
$menu_file = array();
$tmp = dir(G5_PATH);
while ($entry = $tmp->read()) {
// default.menu로 시작하는 php 파일만 include 함
if (preg_match("/(^default.menu(.*).*\.php)$/i", $entry))
$menu_file[] = $entry;
}</p>
<p> if(!empty($menu_file) && is_array($menu_file)) {
natsort($menu_file);</p>
<p> foreach($menu_file as $file) {
include_once(G5_PATH.'/'.$file);
}
unset($file);
}
unset($menu_file);
}</p>
<p>?></p>
<p>
default.menu로 시작하는 파일을 include 하는 파일인데
include된 default.menu100.php 내용은 다름과 같구요.
</p>
<p><?php
$default_menu['default_menu100'] = array(
array('100000', '회사소개', G5_URL . '/intro.php'),
array('100100', '회사소개', G5_URL . '/intro.php'),
array('100200', '회사연역', G5_URL . '/histroy.php'),
array('100300', '오시는길', G5_URL . '/map.php')
);
?></p>
<p>
그래서 다른 별도의 페이지에서
함수를 호출하여 출력을 했습니다.
</p>
<p>getDefaultMenu();
var_dump($default_menu);
//var_dump(get_included_files());</p>
<p>
맨 아래에 get_include_files()로 확인해 include 된것은 확인했습니다.
그런데 var_dump()로 $default_menu를 출력하니 NULL아네요
그리고 위의 함수를 실행안 하고 그냥 코드를 실행하면
변수의 값은 잘 나옵니다.
함수로 변경하는데 있어서 오류사항이 있는 걸까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
답변에 대한 댓글 1개
�
레드불355
3년 전
함수안에 있어도 include만 하는거라, include만 하면 include된 파일의 변수를 쓸 수 있을 줄 알았는데 생각해보니 안되는게 맞군요. 해당 문제는 함수 안에서 include로 선언된 배열값을 리턴하는 걸로 해결했습니다. 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
3년 전
애초에 지금 코드가 무의미합니다.
$default_menu는 단순 메뉴를 할당하는 배열에 불과하고
결국 getDefaultMenu() 함수에서
root경로의 default.menu.XXX.php 파일을 불러오는데
해당 함수에서는
실제로 $default_menu 변수는 사용되지않습니다.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인