객체 지향 프로그래밍(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();
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();
class self_test { const NAME = 'tancy'; publicfunction tank(){ return self::NAME; } } $str = new self_test(); echo$str->tank();
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!