2016-09-10 3 views
1

나중에 쉽게 얻을 수 있도록 모든 세션 정보를 보유하는 간단한 클래스를 만들려고합니다. 나는 모든 PHP 페이지를 통해 $ _SESSION [ 'foo']을 계속 사용하지 않아도되고 싶다. 왜냐하면 내가 더 잘 조직되고 모든 세션 데이터를 한 영역에 저장하여 페이지를 끌어 올 수 있기를 원하기 때문이다. 내가 저장 한 모든 변수를 보려면 빠른 참조가 필요합니다. 또한 사이드 노트에 더 나은 방법이 있다면 세션 데이터를 저장하여 다른 프로그래머가 쉽게 읽고 쓸 수 있도록 매우 유용한 정보가 될 수 있도록 저장하는 것이 좋습니다.다른 PHP 페이지에서 내 정적 변수에 액세스 할 수없는 이유

지금까지 내가 응답을 에코 때이가 내 PHP 페이지 ... 그러나

include("./includes/core/coreGlobals.php"); 

staticVars::createFromArray($_SESSION); 

echo ("owner id " . staticVars::$ownerID); 

에 다음과 같은 클래스 ..

class staticVars { 

    public static $ownerID; 
    public static $ownerFullName; 
    public static $ownerEmail; 

    public static function createFromArray($array) { 
     $ownerID = $array['ownerID']; 
     $ownerFullName = $array['ownerFullName']; 
     $ownerEmail = $array['ownerEmail']; 
    } 
} 

을 생성하는 $ ownerID 단지 다시 비어 있습니다.

+0

클래스 변수에 할당하려는대로 '$ this-> ownerID = $ array ['ownerID '];'를 사용하고 해당 함수의 로컬 변수는 지정하지 않아도됩니다. – Qirel

+0

비 - 객체에 $ this를 할 수 없습니다. 자기가가는 길이었다. – eqiz

답변

2

클래스 변수가 아닌 함수에 로컬 변수를 설정하고 있습니다. 사용 self 아니면 static : 당신이 static을 사용하는 경우에 대한 Late Static Bindings :

public static function createFromArray($array) { 
    self::$ownerID = $array['ownerID']; 
    self::$ownerFullName = $array['ownerFullName']; 
    self::$ownerEmail = $array['ownerEmail']; 
} 

참조하십시오.

관련 문제