2012-03-16 5 views
3

global $user 변수를 설정하는 방법을 알려 주시면 감사하겠습니다. 그래야 각 함수에서 해당 변수를 다시 선언 할 필요가 없습니다. 모듈의 모든 함수가 그것을 사용할 수 있도록 어떻게 선언 할 수 있습니까?

답변

4

당신이 모든에, 항상 (사용 가능한 찾고있는 세계의 유형 범위)는 PHP에서 superglobal이라고합니다. 새로운 수퍼 글로블을 선언 할 수는 없지만 모든 글로벌이 $GLOBAL 수퍼 글로벌의 일부이기 때문에 직접 액세스 할 수 있습니다. 즉, $GLOBALS['user']을 사용하여 $ user 글로벌에 직접 액세스 할 수 있습니다.

자세한 정보 및 다른 방법은 create superglobal variables in php?도 참조하십시오.

+0

+1'$ GLOBALS'에 대해 잊어 버렸습니다. – Clive

+0

고마워요. 이제 현재 사용자의 userid를 가져올 필요가있을 때마다 $ GLOBALS [ 'user'] -> uid를 할 수 있습니다. –

3

당신은 PHP에서 전역 변수를 사용할 수 없습니다. 전역 변수를 로컬 함수로 가져 오려면 global 키워드를 사용해야하므로 반올림 할 방법이 없습니다. 이것은 PHP 언어의 '기능'이며, Drupal과 아무 관련이 없습니다.

function get_current_user() { 
    global $user; 
    return $user; 
} 

그리고 다음과 같이 호출 :

다른 방법은 도우미 기능을 구현하기 위해 수 있습니다

$user = &get_current_user(); 
1

함수에서 $ user 변수를 사용하려면 $ user보다 먼저 'global'키워드를 사용/인스턴스화해야합니다. 따라서 귀하는 현재 웹 사이트 사용자의 모든 데이터에 액세스 할 수 있습니다. 당신이 그것을 재 선언 할 수

function myGenericFunc(){ 
     global $user; 
     $user_id = $user->uid; 
    } 

참고 예를 들어

.

도움이되기를 바랍니다.