목차
Introduced
Text
this
self
static은 self와 동일하며 둘 다 클래스를 가리키며 일반적으로 클래스의 정적 변수 및 정적 메서드에 액세스하는 데 사용되지만 구체적으로 어떤 클래스에서 self가 작성되는지, 어떤 클래스인지에 차이가 있습니다. 이것은 실제로 호출되는 클래스입니다. 정적은 상위 클래스에 작성되고 이 정적은 하위 클래스를 통해 사용됩니다. 이 정적은 공식적으로
이것은 현재 개체의 비정적 변수 및 비정적 메서드에 액세스하는 데 사용되는 현재 개체를 가리킵니다.
백엔드 개발 PHP 튜토리얼 PHP에서 이 자체 정적의 차이점

PHP에서 이 자체 정적의 차이점

Apr 14, 2018 pm 05:14 PM
self static this

이 글은 주로 PHP에서 self static의 차이점을 소개합니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.

재인쇄: https://blog.csdn.net/ mrzhouxiaofei /article/details/78648079

Introduced

최근에 소프트웨어공학과 디자인을 하다가 문제에 부딪혔는데 라라벨 소스코드를 구해서 다시 찾아보니 그렇더군요. 셀프 정적에 대한 깊은 이해가 없었기 때문에 문제가 있었으니 다시는 같은 실수를 하지 않도록 녹음해 보세요.

Text

this

이것은 현재 개체를 가리키며 현재 개체의 비정적 변수 및 비정적 메서드에 액세스하는 데 사용됩니다.

<?phpclass Person {
    public $name;    public function getName() {
        echo $this->name;
    }
}$p = new Person();$p2 = new Person();$p->name = "小红";$p2->name = "小明";$p->getName();  // 小红$p2->getName();  // 小明
로그인 후 복사

위의 예에서 두 객체는 ​​new. 이며 각각 객체의 name 속성을 설정합니다. 이는 getName()에서 현재 객체의 name 속성에 액세스하는 데 사용되므로 name 값이 각각 출력됩니다. 따라서 이는 현재 개체를 가리키며 다른 개체나 클래스를 가리키지 않습니다.

self

self는 클래스 자체를 가리키며 인스턴스화된 개체를 가리키지 않습니다. 일반적으로 클래스의 정적 변수 및 정적 메서드에 액세스하는 데 사용됩니다. 두 객체가 추가되고 수정됩니다. 한 객체의 name 속성과 다른 객체의 name 속성 값도 변경되었습니다. 따라서 self는 현재 클래스를 가리키며 모든 객체는 동일한 값을 공유합니다.

static

static은 self와 동일하며 둘 다 클래스를 가리키며 일반적으로 클래스의 정적 변수 및 정적 메서드에 액세스하는 데 사용되지만 구체적으로 어떤 클래스에서 self가 작성되는지, 어떤 클래스인지에 차이가 있습니다. 이것은 실제로 호출되는 클래스입니다. 정적은 상위 클래스에 작성되고 이 정적은 하위 클래스를 통해 사용됩니다. 이 정적은 공식적으로

후기 정적 바인딩

이라고 합니다.

<?phpclass Person {
    public static $name = "小红";    public static function getName() {
        echo self::$name;
    }
}$p = new Person();$p2 = new Person();$p::getName();  // 小红$p2::getName();  // 小红$p::$name = "小明";$p::getName();  // 小明$p2::getName();  // 小明
로그인 후 복사
위의 예에서 볼 수 있듯이 self는 클래스 A에 작성되고 호출되면 클래스 A를 가리킵니다. static도 클래스 A에 작성되지만 클래스 B의 객체로 호출되면 클래스 A는 클래스 A를 가리킵니다. 클래스 B를 사용할 때 static은 자신이 가리키는 클래스를 결정합니다. 이것이 후기 정적 바인딩

입니다. 나중에 정적 바인딩

요약

이것은 현재 개체의 비정적 변수 및 비정적 메서드에 액세스하는 데 사용되는 현재 개체를 가리킵니다.

self는 일반적으로 정적 변수 및 정적 메서드에 액세스하는 데 사용되는 클래스를 가리킵니다.

static은 현재 클래스의 정적 변수 및 정적 메서드에 액세스하는 데 일반적으로 사용되는 클래스를 가리키지만
정적 호출에만 국한되지는 않습니다. 런타임 시 어떤 클래스를 가리키는지 결정합니다.
관련 권장 사항:

PHP에서 self, static 및 $this의 차이점과 후기 정적 바인딩에 대한 자세한 설명

위 내용은 PHP에서 이 자체 정적의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

e의 NameResolutionError(self.host, self, e) 이유와 해결 방법 e의 NameResolutionError(self.host, self, e) 이유와 해결 방법 Mar 01, 2024 pm 01:20 PM

오류의 원인은 urllib3 라이브러리의 예외 유형인 NameResolutionError(self.host,self,e)frome입니다. 이 오류의 원인은 DNS 확인에 실패했기 때문입니다. 해결을 찾을 수 없습니다. 이는 입력한 URL 주소가 정확하지 않거나 DNS 서버를 일시적으로 사용할 수 없기 때문에 발생할 수 있습니다. 이 오류를 해결하는 방법 이 오류를 해결하는 방법은 여러 가지가 있습니다. 입력한 URL 주소가 올바른지 확인하고 액세스할 수 있는지 확인하십시오. DNS 서버를 사용할 수 있는지 확인하십시오. 명령줄에서 "ping" 명령을 사용해 볼 수 있습니다. DNS 서버를 사용할 수 있는지 테스트하려면 프록시 뒤에 있는 경우 호스트 이름 대신 IP 주소를 사용하여 웹사이트에 액세스해 보세요.

Python에서 self를 사용하는 방법 Python에서 self를 사용하는 방법 May 17, 2023 pm 10:40 PM

Python에서 self의 사용법을 소개하기 전에 먼저 Python의 클래스와 인스턴스를 소개하겠습니다. 객체 지향의 가장 중요한 개념은 클래스와 인스턴스입니다. Student 클래스로 표현됩니다. 인스턴스는 클래스를 기반으로 생성된 특정 "객체"입니다. 각 객체는 클래스에서 동일한 메서드를 상속하지만 해당 데이터는 다를 수 있습니다. 1. Student 클래스를 예로 들어 보겠습니다. Python에서 클래스는 다음과 같이 정의됩니다. classStudent(object):pass(Object)는 클래스가 상속받는 클래스를 나타냅니다.

C 언어에서 static의 기능과 사용법은 무엇입니까? C 언어에서 static의 기능과 사용법은 무엇입니까? Jan 31, 2024 pm 01:59 PM

C 언어에서 정적의 역할 및 사용법: 1. 변수 범위, 3. 내부 함수, 5. 함수 수정, 1. 변수 범위, 변수 앞에 static 키워드가 있는 경우 변수의 범위는 변수가 선언된 파일로 제한됩니다. 즉, 변수는 "파일 수준 범위"이므로 " 중복 정의" 변수 문제 2. 수명주기, 정적 변수는 프로그램 실행을 시작할 때 한 번 초기화되고 프로그램이 끝나면 소멸됩니다.

Java에서 static, this, super 및 final을 사용하는 방법 Java에서 static, this, super 및 final을 사용하는 방법 Apr 18, 2023 pm 03:40 PM

1. static 먼저 다음 프로그램을 살펴보십시오. publicclassHello{publicstaticvoidmain(String[]args){//(1)System.out.println("Hello, world!");//(2)}} 이것을 보았습니다. 세그먼트 프로그램은 Java를 공부한 대부분의 사람들에게 친숙합니다. Java를 배우지 않았지만 C 등 다른 고급 언어를 배웠더라도 이 코드의 의미를 이해할 수 있어야 합니다. 단순히 "Hello, world"를 출력하고 다른 용도는 없습니다. 그러나 정적 키워드의 주요 목적을 보여줍니다.

C 언어의 static 키워드의 실제 적용 시나리오 및 사용 기술 C 언어의 static 키워드의 실제 적용 시나리오 및 사용 기술 Feb 21, 2024 pm 07:21 PM

C 언어 static 키워드의 실제 응용 시나리오 및 활용 기술 1. 개요 static은 C 언어에서 변수와 함수를 수정하는 데 사용되는 키워드입니다. 그 기능은 프로그램 실행 중에 수명 주기와 가시성을 변경하여 변수와 함수를 정적으로 만드는 것입니다. 이 기사에서는 static 키워드의 실제 응용 시나리오와 사용 기술을 소개하고 구체적인 코드 예제를 통해 설명합니다. 2. 정적 변수는 변수의 수명 주기를 연장합니다. static 키워드를 사용하여 지역 변수를 수정하면 수명 주기가 연장됩니다.

정적의 역할 정적의 역할 Jan 24, 2024 pm 04:08 PM

정적 기능: 1. 변수 3. 클래스 4. 기타 용도 6. 싱글톤 모드 9. 로컬 변수 메모리 레이아웃 최적화; 11. 반복적인 초기화를 피하십시오. 12. 함수에 사용하십시오. 자세한 소개: 1. 변수, 정적 변수. 변수가 정적으로 선언되면 인스턴스 수준이 아닌 클래스 수준에 속합니다. 즉, 개체 수에 관계없이 정적 변수는 하나만 존재하며 모든 개체가 존재합니다. 이 정적 변수 등을 공유하십시오.

이 점을 이해하고 프론트엔드 70%를 따라잡는 글 이 점을 이해하고 프론트엔드 70%를 따라잡는 글 Sep 06, 2022 pm 05:03 PM

Vue2의 이 포인팅 문제로 인해 동료가 버그로 인해 화살표 기능이 사용되어 해당 소품을 얻을 수 없게 되었습니다. 제가 그에게 소개했을 때 그는 그것을 몰랐고, 그래서 저는 일부러 프론트엔드 커뮤니케이션 그룹을 살펴보았습니다. 지금까지 적어도 70%의 프론트엔드 프로그래머들은 오늘 그것을 이해하지 못하고 있습니다. 모든 것이 불분명하다면 이 링크를 아직 배우지 않았다면 큰 소리로 말해주세요.

Java 수정자 abstract, static 및 final을 사용하는 방법 Java 수정자 abstract, static 및 final을 사용하는 방법 Apr 26, 2023 am 09:46 AM

Modifier abstract (추상) 1. Abstract는 클래스를 수정할 수 있습니다. (1) abstract로 수정한 클래스를 추상 클래스라고 합니다. (2) 문법: abstractclass 클래스 이름 {} (3) 특징: 추상 클래스는 객체를 별도로 생성할 수는 없지만 객체를 생성할 수는 있습니다. 선언됨 추상 클래스 클래스 이름 참조 이름; (4) 추상 클래스는 멤버 변수 및 멤버 메소드를 정의할 수 있습니다. (5) 추상 클래스에는 생성자가 있습니다. 하위 클래스 객체를 생성하는 데 사용되면 jvm은 기본적으로 상위 클래스 객체를 생성합니다. 적용 jvm이 상위 클래스 객체를 생성할 때 적용됩니다. 2. Abstract는 메서드를 수정할 수 있습니다. (1) asbtract로 수정된 메서드를 추상 메서드라고 합니다. (2) 구문: 액세스 한정자 추상 반환 값

See all articles