로그인/사용자 정보가 들어있는 Information
이라는 기존 객체가 있습니다. 나는 다른 수업에서 이것을보고 싶다. 나는 인터넷 검색을 시도하고 나이를 찾고 ... 운이 없다. Information
개체가 범위를 벗어나는 이유는 무엇입니까?PHP : 클래스 내의 기존 객체에 액세스하기
class foo() {
function display() {
print_r($Information);
}
}
로그인/사용자 정보가 들어있는 Information
이라는 기존 객체가 있습니다. 나는 다른 수업에서 이것을보고 싶다. 나는 인터넷 검색을 시도하고 나이를 찾고 ... 운이 없다. Information
개체가 범위를 벗어나는 이유는 무엇입니까?PHP : 클래스 내의 기존 객체에 액세스하기
class foo() {
function display() {
print_r($Information);
}
}
$ 정보가 여러 가지 이유로 범위를 벗어날 수 있습니다.
첫째, 어쩌면 $ 정보는 글로벌이며, 당신은 단지 글로벌 키워드로 PHP를 알려줄 필요가 :
class foo() {
function display() {
global $Information
print_r($Information);
}
}
둘째, 어쩌면 $ 정보가 foo는 인스턴스의 일부인가? 이 경우 PHP에서 "$ this"키워드가 필요합니다.
class foo() {
function display() {
print_r($this->Information);
}
}
셋째, 아마도 $ 정보가 발신자에게 생성되어 display/foo는 단순히 그것에 대해 아무것도 모르는 것입니다.
function bar()
{
$Information = new $information;
$a = new Foo();
$a->display();
{
당신이 명시 적으로 표시 $ 정보를 전달하거나 각 푸 인스턴스의 멤버 변수하게하지 않는 한
, 디스플레이에 액세스 할 수 없습니다. 디스플레이는 (1) 전역 변수 (2) 인스턴스 변수, (3) 표시 할 매개 변수 및 (4) 표시 할 로컬 변수를 볼 수 있습니다. display()의 범위 내에있는 것은 없습니다.귀하의 질문에 대한 답변을 편집하십시오. 예 전적으로 글로벌이라고 정의되었습니다. 특정 기능 즉, 내되지 같이 :
전역을 피하기 위해 많은 이유가있다. 이 주제에 많은 내용이 적혀 있습니다. 주제에 대한 설명은 stackoverflow question입니다.
고맙습니다! 내가 해결 한 첫 번째 방법은 클래스 외부에있는 정보 속성 중 하나를 가져온 다음 global 키워드를 사용하여 해당 변수에 액세스하는 것입니다. 당신이 괜찮다면, * 정보가 글로벌 *이라고 말할 때 당신은 무엇을 의미합니까? 또한 향후 글로벌 사용을 피해야하는 주된 이유가 있습니까? 추신 : 전 * 글로벌 $ 정보 *를했는데 효과가있었습니다. – Mike