> 백엔드 개발 > PHP 튜토리얼 > PHP 5 객체 지향 프로그래밍에서 `self`와 `$this`의 차이점은 무엇입니까?

PHP 5 객체 지향 프로그래밍에서 `self`와 `$this`의 차이점은 무엇입니까?

DDD
풀어 주다: 2024-12-17 16:26:17
원래의
358명이 탐색했습니다.

What's the Difference Between `self` and `$this` in PHP 5 Object-Oriented Programming?

PHP 5에서 'self'와 '$this'의 차이점 이해

PHP 5에서 객체 지향 프로그래밍을 사용할 때, 'self'와 '$this'를 효과적으로 사용하는 것의 차이점을 파악하는 것이 중요합니다. 둘 다 참조이지만 개체 상호 작용에서 서로 다른 목적을 제공합니다.

'$this' - 현재 개체 참조

비정적 멤버에 액세스하려면 '$this'를 사용하세요. 개체의 현재 인스턴스 내의 변수 및 메서드. 인스턴스화되는 특정 개체에 대한 직접적인 포인터를 제공합니다. '$this->member' 구문을 사용하면 비정적 변수에 액세스할 수 있는 반면 '$this->method()'는 인스턴스 메서드를 호출합니다.

예:

class Person {
    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }
}
로그인 후 복사

이 예에서 '$this'는 'Person' 내의 'name' 속성과 'getName()' 메서드에 액세스하는 데 사용됩니다. object.

'self' - 현재 클래스 참조

반대로 'self'는 현재 클래스 내의 정적 멤버 및 메서드에 액세스하는 데 사용됩니다. 이는 클래스의 특정 인스턴스가 아닌 클래스 자체를 나타냅니다. 'self::$static_member' 구문을 사용하면 정적 변수에 액세스할 수 있으며 'self::static_method()'는 클래스 메서드를 호출합니다.

예:

class StaticCounter {
    private static $count = 0;

    public static function incrementCount() {
        self::$count++;
    }

    public static function getCount() {
        return self::$count;
    }
}
로그인 후 복사

여기서 'self'는 'StaticCounter' 내의 정적 'count' 변수와 'incrementCount()' 클래스 메서드에 액세스하는 데 활용됩니다. class.

결론

'self'와 '$this'의 적절한 사용법을 이해하는 것은 PHP 5의 효과적인 객체 지향 프로그래밍에 필수적입니다. '$this' 현재 객체의 비정적 멤버를 대상으로 하는 반면 'self'는 현재 클래스의 정적 멤버에 초점을 맞춥니다. 이러한 차이점을 숙지하면 클래스 및 개체로 작업할 때 코드 명확성과 기능을 향상시킬 수 있습니다.

위 내용은 PHP 5 객체 지향 프로그래밍에서 `self`와 `$this`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿