정적 함수 내에서 $this를 사용하면 실패함

$this를 사용하고 싶은 방법이 있지만 얻을 수 있는 것은 치명적인 오류뿐입니다.오브젝트 컨텍스트가 아닌 경우 $this를 사용합니다.

어떻게 하면 작동시킬 수 있을까요?

public static function userNameAvailibility() {
$result = $this->getsomthin(); } 


질문에 대한 답변



이 길이 맞다

public static function userNameAvailibility() {
$result = self::getsomthin(); } 

사용하다self::대신$this->를 참조해 주세요.

자세한 내용은 PHP Static Methods 튜토리얼을 참조하십시오.




사용할 수 없습니다.$this스태틱 함수는 인스턴스화된 객체와는 독립적이기 때문에 스태틱함수 내에 있습니다.기능을 정적이지 않게 해 주세요.

편집: 정의상 스태틱메서드는 인스턴스화된 오브젝트 없이 호출할 수 있기 때문에 의미 있는 사용은 없습니다.$this정적 메서드 내.




self:를 사용하여 정적 함수 내에서 정적 함수만 호출할 수 있습니다. 클래스에 사용할 정적 함수가 아닌 경우 동일한 클래스의 인스턴스를 선언하고 사용할 수 있습니다.

<?php class some_class{ function nonStatic() {
//.....
Some code ....
}
Static function isStatic(){
$someClassObject = new some_class;
$someClassObject->nonStatic();
}
} ?> 



악세사리this는 클래스의 현재 인스턴스를 나타냅니다.정적 메서드는 인스턴스에서 실행되지 않으므로this금지되어 있습니다.여기서 직접 메서드를 호출해야 합니다.스태틱 메서드는 인스턴스 범위 내의 어떤 것도 액세스할 수 없지만 인스턴스 범위 밖의 클래스 범위 내의 모든 항목에 액세스할 수 있습니다.




PHP가 충분히 설명적인 오류를 보이지 않는 것은 유감입니다.스태틱 함수에서는 $this->를 사용할 수 없습니다.같은 클래스 내에서 함수를 호출해야 할 경우 self::를 사용합니다.