>  기사  >  백엔드 개발  >  PHP에서 self와 $this의 차이점에 대한 자세한 설명

PHP에서 self와 $this의 차이점에 대한 자세한 설명

小云云
小云云원래의
2018-03-14 10:56:141652검색

객체 지향 프로그래밍(OOP, Object Oriented 프로그래밍)은 이제 프로그래머의 기본 기술이 되었습니다. PHP의 고급 프로그래밍에 OOP 아이디어를 사용하는 것은 PHP 프로그래밍 기능을 향상하고 웹 개발 아키텍처를 계획하는 데 매우 의미가 있습니다.

여기서는 주로 this 키워드와 self 키워드의 차이점에 대해 이야기하고 있습니다. 문자 그대로 이해하면 이 단어는 자신과 자신을 의미합니다. 먼저 예비적인 설명을 하겠다. 이것은 현재 객체에 대한 포인터(C에서는 포인터로 간주될 수 있다)이고, self는 현재 클래스에 대한 포인터이다. 여기서 설명하기 위해 포인터를 자주 사용합니다.

저는 프레임워크를 자주 사용하기 때문에 PHP의 기본 작동 메커니즘과 방법을 잘 모릅니다. 그래서 최근에는 이러한 기본 사항을 연구하는 것을 좋아합니다. 비록 제가 작성한 내용은 별로 좋지 않지만 단계적으로 구현할 수 있습니다. 예, 이해하기가 더 쉽습니다. 현재 인터넷에 있는 대부분의 정보는 매뉴얼에서 복사한 것이며 매우 공식적인 내용이거나 동일한 기사이므로 실제로는 약간 이해하기 어렵습니다. 1.self는 이 클래스의 정적 속성과 정적 메서드에 액세스할 수 있고, 상위 클래스의 정적 속성과 정적 메서드에 액세스할 수 있습니다. self를 사용하는 경우 인스턴스화할 필요가 없습니다.

class self_test {  
    static$instance;  
    publicfunction __construct(){  
        self::$instance = 'instance';//静态属性只能通过self来访问
    }  
    publicfunction tank(){  
        return self::$instance;//访问静态属性
    }  
}  
$str = new self_test();  
echo$str->tank();

    페이지 출력: instance
class self_test {  
    static$instance;  
    publicfunction __construct(){  
        self::$instance = 'dell';  
    }  
    staticpublicfunction pentium(){  
        return self::$instance;//静态方法也可以继续访问静态变量,访问时需要加$
    }  
    publicfunction tank(){  
        return self::pentium();//访问静态方法pentium()
    }  
}  
$str = new self_test();  
echo$str->tank();

    페이지 출력: dell
  1. 2. Self는 const

class self_test {  
    const  NAME = 'tancy';  
    publicfunction tank(){  
        return self::NAME;  
    }  
}  
$str = new self_test();  
echo$str->tank();

    에 정의된 상수에 액세스할 수 있습니다. 페이지 출력 :tancy
  1. II.this

1.this는 이 클래스의 메서드와 속성을 호출할 수 있거나 상위 클래스의 조정 가능한 메서드와 속성을 호출할 수 있습니다. static 및 const 상수를 제외하고 기본적으로 다른 모든 것입니다. 이것을 사용하여

class self_test {  
    public$public;  
    private$private;  
    protected$protected;  
    publicfunction __construct(){  
        $this->public = 'public';  
        $this->private = 'private';  
        $this->protected = 'protected';  
    }  
    publicfunction tank(){  
        return$this->public;  
    }  
    publicfunction dell(){  
        return$this->private;  
    }  
    publicfunction datesrt(){  
        return$this->protected;  
    }  
}  
$str = new self_test();  
echo$str->tank();  
echo"</br>";  
echo$str->dell();  
echo"</br>";  
echo$str->datesrt();

    에 연락할 수 있습니다.

위 내용은 PHP에서 self와 $this의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.