찾다
백엔드 개발PHP 문제self는 현재 클래스를 나타내나요, 아니면 상속의 액세스 클래스를 나타내나요?

self 키워드는 클래스 내부의 클래스를 대체하는 데 사용되며, 가 있는 경우 현재 메소드가 있는 클래스 자체를 <code>상속 구현으로 대체합니다. child 클래스가 부모 클래스 메서드에 액세스할 때 self가 현재 클래스를 대체합니까, 아니면 액세스된 클래스를 대체합니까?
self关键字是用于在类内部代替类的,代替的是当前方法所在的类本身那个,随着继承的实现,如果子类在访问父类方法的时候,self到底代替的是当前类还是访问类?

<?php
   class Fu{
       public static $type="Fu";
       public static function getType(){
           echo self::$type." self<br>";
           
       }
   }

   class Zi extends Fu{
    public static $type="Zi";
    
   }
   Fu::gettype();//Fu self
   Zi::gettype();//Fu self
?>

由上例所示,self代表的是当前类,即其所在的父类,而并非继承的子类。

如果在方法被访问时动态的选择来访者所属的类,则需要使用static关键字代替self

<?php
   class Fu{
       public static $type="Fu";
       public static function getType(){
           echo self::$type." self<br>";//类的静态绑定
           echo static::$type." static<br>";//类的静态延迟绑定
       }
   }

   class Zi extends Fu{
    public static $type="Zi";
    
   }

   Fu::gettype();//Fu self Fu self
   Zi::gettype();//Fu self Zi static
?>

위의 예에서 볼 수 있듯이 self는 상속된 하위 클래스가 아닌 현재 클래스, 즉 상위 클래스를 나타냅니다.

메서드 접근 시 방문자가 속한 클래스를 동적으로 선택하는 경우 클래스 멤버에 접근하려면 self 대신 static key 키워드를 사용해야 합니다. rrreee추천: php 튜토리얼,

🎜php 비디오 튜토리얼🎜🎜

위 내용은 self는 현재 클래스를 나타내나요, 아니면 상속의 액세스 클래스를 나타내나요?의 상세 내용입니다. 자세한 내용은 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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구