2012-09-10 5 views
0

내 문제를 신속하게 요약하기 위해 (http://php.net/manual/en/language.variables.scope.php)의 예를 내 의견에 복사하고 화면에 아무 것도 울려지지 않는 이유를 궁금해했습니다. 여기kohana의 뷰 변수 범위가 잘못 되었습니까?

php.net의 예 :

<?php 
$a = 1; 
$b = 2; 

function Sum() 
{ 
    global $a, $b; 

    $b = $a + $b; 
} 

Sum(); 
echo $b; 
?> 

가 내 화면에 '3'예상하지만, $ B는 여전히 '2'를 반환 .. 그럼 난 시험이 동작 다른 예 약 3 시간 코 하나가 까다로운 일을하는 것 같습니다. Kohana는 View :: _ 데이터를 로컬 범위로 추출하고 모든 것이 정상이 될 것이라고 생각했지만 이제는 그것에 대한 단서가 없습니다.

누군가 그 행동을 설명 할 수 있습니까? 나에게 도움이되지 수

How can I wrap PHP legacy code in Kohana? .. Btw는

, 내 언어 실수 죄송합니다!

UPDATE :

내가 전역을 사용하여 알고는 나쁜하지만 내 깨끗한 접근 방식은 어제 .. 작동하지 않았다하지만 지금은 모든 것을 다시 작동하는 이유는, 어쩌면 캐싱 문제가 발생했습니다 모른다.

그러나 나는 그 주어진 예에서의 실수를 이해했다. 고마워. 출력 버퍼링과 아무 관련이없는 것 같습니다.

+1

무엇이 필요합니까? 나는 못생긴 세계가 없으면 그것을 빠르고 우아하게 할 수 있다고 믿습니다. – biakaveron

답변

3

아마도 글로벌 범위에 속해 있지 않은 것 같습니다. 그래서 모든 변수는

<?php 
global $a = 1; 
global $b = 2; 

function Sum() 
{ 
    global $a, $b; 

    $b = $a + $b; 
} 

Sum(); 
echo $b; 
?> 

PS처럼 global 앞에 추가해야합니다 전역 변수는 모든 악의 뿌리입니다. 모든 것이 그것 없이는 구현 될 수 있고 있어야한다.

관련 문제