2010-08-14 3 views
2

어떤 도움을 미리 감사드립니다. :)
좋아, 여기 내 문제가있다. 코드의
간체 버전 :와
글로벌 공간은 파일을 포함함수에 의해 반환 된 중첩 된 포함 PHP 변수 범위

는이 $ var에 더입니다
기능과 장소에 의해 반환 된 파일을 포함 문을 포함하지 반환 $ var에 정의되고 함수가 호출되는 파일을 포함 더 이상 액세스 할 수 없습니다.

왜 $ var에 더 이상 액세스 할 수 없습니까?

나는 그것이 기능과 관련이 있다고 의심한다. 그렇지 않으면 나는 다른 것을 놓치고있다. 기능은 다음과 같습니다.

function blah() { 
return include_once 'filename.php'; 
} 

답변

3

설계대로 작동합니다. 코드가 포함되어 있지 않은 것처럼 코드를 생각해보십시오. 함수 자체의 범위가 있습니다. 전역 변수는 여기에서 액세스 할 수 없습니다.

귀하의 옵션 :

  • blah(&$variable)

  • 가져 오기 당신이 PHP 5.3에있어 경우를 사용 global $varname

  • 를 사용하여 글로벌 공간에서 변수에 대한 참조로 변수 전달 새로운 closure 기능

  • 환상적인 O 정적 클래스, 싱글 톤 또는 종속성 주입 (아마도 과잉)과 같은 OP 구문

+1

또는 "내보내는"모든 값이 포함 된 배열을 반환하십시오. – VolkerK

+0

@VolkerK 그래, 또는 그. –

+0

감사합니다 얘들 아, 그냥 전체 포함 문, 쉬운 솔루션 대신 파일을 반환하는 기능을 변경했습니다 - 그냥 내가 맘에 들어 : – Karl

관련 문제