PHP 클래스의 변수 및 멤버, 상속, 액세스 및 재정의 시 주의할 사항
클래스 멤버 속성(속성 이름은 "메소드"에 상대적임)에는 클래스 상수와 클래스 변수가 포함됩니다. 정의 시 클래스 상수는 비어 있을 수 없습니다. 클래스 속성에 정의 시 값이 할당되면 스칼라와 배열만 사용할 수 있습니다. 클래스 속성은 컴파일 타임에 초기화되고 PHP는 컴파일 타임에 표현식을 실행하지 않으므로 표현식이 될 수 없습니다. 1. 회원 액세스 제어 : public: 상속될 수 있으며 $obj->prop와 같은 클래스 메서드 외부에서 액세스할 수 있습니다. protected: 상속될 수 있지만 클래스 메서드 외부에서는 접근할 수 없습니다. private: 상속될 수 없으며 클래스 메서드 외부에서 액세스할 수 없습니다 PHP 4에서는 var를 사용하여 클래스 속성을 선언합니다. PHP5 이후에는 더 이상 사용되지 않습니다. PHP5.3 이전에는 경고가 표시됩니다. PHP5.3 이후에는 public 앞에 사용하거나 public의 별칭으로 단독으로 사용할 수 있습니다. 이 세 가지 액세스 제어 키워드는 생성자를 수정할 수도 있습니다. private 및 protected가 클래스의 생성자를 수정하는 경우 생성자를 호출하여 publice 정적 정적 메서드를 통해서만 객체를 인스턴스화할 수 있습니다. 왜냐하면 함수에서는 충분하기 때문입니다. 싱글톤 클래스 구현과 같이 클래스 외부에서 액세스할 수 없습니다.
2. 상속 금지: 최종 키워드만 사용 수업이나 수업을 수정하는 방법 클래스가 final로 수정되면 이 클래스는 상속될 수 없습니다. 메소드가 final로 수정되면 이 메소드는 하위 클래스로 재정의될 수 없습니다.
3. 추상 클래스 및 추상 메소드 : 추상 클래스는 클래스 및 메소드에만 사용되며 객체를 인스턴스화하는 데 직접 사용할 수 없으며 하위 클래스를 생성하는 데만 사용할 수 있습니다.
4. 해당 액세스 : 클래스 상수는 액세스 제한 수정자를 사용할 수 없습니다. 이는 공개적이고 상속 가능하며 클래스 상수에 액세스하려면 이중 콜론::을 사용해야 합니다. 수업의 예를 들어보세요.
클래스 상수는 값입니다. 상수 이름은 코드 컴파일 중에 해당 값으로 대체되며 런타임 중에는 수정할 수 없습니다. 따라서 클래스 상수는 클래스 자체와 관련되어 있으며 객체가 인스턴스화되기 전에 이미 존재합니다. 클래스의 상수는 클래스 이름을 사용하여 직접 액세스할 수 있습니다.
5. 정적 멤버 및 클래스 액세스 static은 클래스의 속성과 메서드를 수정할 수 있습니다. static으로 수정된 멤버는 클래스의 인스턴스가 아니라 클래스에 속합니다. 정적 멤버는 클래스 이름과 이중 콜론::을 사용하여 액세스해야 합니다. 따라서 정적 메서드 내에서는 인스턴스 자체를 가리키는 의사 변수 $this(또는 일반적으로 $this 포인터라고도 함)를 사용하는 것이 금지됩니다. 클래스 이름 대신 self 키워드를 사용할 수 있습니다. 클래스의 매직 상수 __CLASS__). 정적은 클래스 생성자를 수정하는 데 사용할 수 없으며 인터페이스에 선언된 메서드를 수정하는 데 사용할 수도 없습니다.
정적 멤버는 액세스 제어 키워드로 수정이 가능하며 상속 및 재정의, 하위 클래스가 메서드를 재정의하지 않고 상위 클래스의 정적 메서드를 상속하는 경우 하위 클래스는 실제로 상위 클래스의 정적 메서드를 호출한다는 점에 유의해야 합니다. 정적 멤버 홀더는 개체가 아니라 클래스이므로 클래스의 여러 인스턴스가 동일한 정적 속성을 공유합니다. 한 인스턴스에서 정적 속성을 수정하면 다른 인스턴스의 정적 속성에 영향을 미칩니다.
후기 정적 바인딩: 하위 클래스가 정적 속성을 재정의하고 상속된 메서드를 사용하여 상위 클래스의 정적 속성에 액세스하는 것을 방지하기 위해 PHP5.3에서는 정적 키워드를 사용하는 후기 정적 바인딩이라는 새로운 구문을 추가합니다. static이 get_called_class()에 의해 반환된 동일한 클래스, 즉 현재 정적 메서드를 호출하는 객체가 속한 클래스를 가리키도록 하는 키워드입니다. 이 키워드는 정적 메서드에 액세스하는 데에도 유효합니다.
6. 클래스 또는 인스턴스 키워드 $this->propName $this는 클래스의 인스턴스를 가리킵니다. parent::xxx parent는 상위 클래스를 가리킵니다. 상위 클래스(parent::$xxx)의 정적 상수 및 정적 속성에 액세스할 수 있습니다. 메서드를 호출할 수 있습니다. 상위 클래스(정적 여부에 관계없이 개인 메소드일 수 없음) self::xxx self는 현재 호출된 메서드를 정의하는 클래스를 가리키며 정적 멤버 및 클래스 상수에 액세스하는 데 사용됩니다. static::xxx는 현재 메서드를 호출한 인스턴스를 인스턴스화한 클래스에 액세스하고 정적 멤버 및 피곤한 상수에 액세스하는 데 사용됩니다. 이 클래스와 self의 차이점은 정적 멤버에 액세스할 때 "후기 정적 바인딩"이 사용된다는 것입니다. 7. 클래스 상속 문제 다시 작성: 재정의된 멤버의 액세스 제어 수준은 줄일 수 없습니다. 예를 들어 public 멤버는 protected로 재정의될 수 없습니다. 비정적 멤버는 정적 멤버로 재정의될 수 없으며 정적 멤버는 비정적 멤버로 재정의될 수 없습니다. 8. 인터페이스에 정의된 메소드는 공개되어야 합니다. 클래스가 인터페이스 메서드를 구현할 때 이러한 메서드도 공개적이고 구체적으로 구현되어야 합니다(추상적일 수 없음). 인터페이스는 인터페이스 상수를 정의할 수도 있으며 사용법은 클래스 상수와 정확히 동일하지만 인터페이스는 함수가 아닌 멤버를 정의할 수 없습니다. 인터페이스는 서로 상속될 수 있습니다. 인터페이스의 상속은 쉼표로 구분된 다중 상속일 수 있습니다(하위 클래스와 상위 클래스의 상속은 단일 상속입니다). 클래스는 쉼표로 구분된 여러 인터페이스를 구현할 수 있습니다.
9. 유형 제약 PHP의 함수(또는 클래스 메소드)는 선언 시 매개변수의 유형을 제한할 수 있지만 배열 또는 객체(클래스/인터페이스)로만 제한할 수 있습니다. 문자열 유형으로 제한되면 PHP는 이를 제한되는 것으로 간주합니다. 문자열 클래스에. 유형이 인터페이스로 정규화된 경우 전달된 매개변수는 인터페이스를 구현하는 클래스의 인스턴스여야 합니다. 인터페이스 구현과 하위 클래스가 상위 클래스 메서드를 재정의하는 경우 정규화된 매개변수 유형을 수정할 수 없습니다. 메서드나 함수를 호출할 때 정규화된 매개변수 유형과 다른 데이터가 전달되면 오류가 보고되지만 null 매개변수는 허용될 수 있습니다.
|

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











종종 키워드와 추적 매개 변수로 혼란스러워하는 긴 URL은 방문자를 방해 할 수 있습니다. URL 단축 스크립트는 솔루션을 제공하여 소셜 미디어 및 기타 플랫폼에 이상적인 간결한 링크를 만듭니다. 이 스크립트는 개별 웹 사이트 a에 유용합니다

Instagram은 2012 년 Facebook에서 유명한 인수에 이어 타사 사용을 위해 두 개의 API 세트를 채택했습니다. Instagram Graph API 및 Instagram Basic Display API입니다. 개발자는

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

이것은 Laravel 백엔드가있는 React Application을 구축하는 데있어 시리즈의 두 번째이자 마지막 부분입니다. 이 시리즈의 첫 번째 부분에서는 기본 제품 목록 응용 프로그램을 위해 Laravel을 사용하여 편안한 API를 만들었습니다. 이 튜토리얼에서는 Dev가 될 것입니다

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> 'Hello World', 'github.com'=> [ 'foo'=> 'bar'], 'forge.laravel.com'=>

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

2025 PHP Landscape Survey는 현재 PHP 개발 동향을 조사합니다. 개발자와 비즈니스에 대한 통찰력을 제공하는 프레임 워크 사용, 배포 방법 및 과제를 탐색합니다. 이 조사는 현대 PHP Versio의 성장을 예상합니다
