> 백엔드 개발 > PHP 문제 > PHP 정적 메소드와 일반 메소드의 차이점은 무엇입니까

PHP 정적 메소드와 일반 메소드의 차이점은 무엇입니까

青灯夜游
풀어 주다: 2023-03-08 16:40:01
원래의
3115명이 탐색했습니다.

차이점: 정적 메서드는 "클래스 이름::메서드 이름"을 통해 직접 호출할 수 있지만 일반 메서드는 인스턴스, 즉 새 객체를 만든 후 "객체 이름->메서드 이름"을 통해 호출해야 합니다. 정적 메서드는 클래스의 정적 멤버에만 액세스할 수 있으며 일반 메서드는 클래스의 모든 멤버에 액세스할 수 있습니다.

PHP 정적 메소드와 일반 메소드의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

정적 방법

  • 정적 메모리 공간이 고정되어 있어 상대적으로 리소스를 더 많이 절약할 수 있습니다.

  • 인스턴스를 생성하려면 리소스를 소비하는 새 메모리를 열어야 합니다. 정적 메서드는 클래스에 속하며 클래스가 인스턴스화되기 전에 사용할 수 있습니다.

  • 정적 메서드는 클래스의 정적 멤버에만 액세스할 수 있습니다.

  • 정적 변수와 기타 정적 메서드만 정적 메서드에 나타날 수 있습니다. 그리고 이와 같은 키워드는 전체 클래스에 속하므로 정적 메서드에서 사용할 수 없습니다.
  • 정적 메서드와 정적 변수는 항상 동일한 메모리를 사용합니다. 인스턴스를 사용하면 여러 개의 추억이 생성됩니다.
  • 일반 메소드

    는 클래스의 모든 멤버에 액세스할 수 있습니다. 왜냐하면 정적 메소드는 클래스가 인스턴스화되기 전에 사용될 수 있는 반면, 클래스의 비정적 변수는 메모리가 할당되기 전에 인스턴스화되어야 하기 때문입니다.
  • 정적 메서드는 인스턴스화보다 더 효율적입니다. 정적 메서드는 자동으로 소멸되지 않지만 인스턴스화는 소멸될 수 있다는 점입니다.

  • 주요 차이점

정적 메서드는 객체를 생성하기 전에 사용할 수 있습니다. -정적 메소드는 new에 의해 생성된 객체를 통해 호출되어야 합니다.

  • 정적 메서드는 클래스 이름::메서드 이름을 통해 직접 호출할 수 있습니다. 일반 메서드는 인스턴스, 즉 새 개체를 만든 다음 개체 이름->메서드 이름을 통해 호출해야 합니다. 정적 클래스는 정적 멤버만 포함할 수 있습니다. 그렇지 않으면 컴파일 오류가 발생합니다. 정적 클래스는 모두 비정적 멤버와 정적 멤버를 모두 포함할 수 있습니다. 정적 클래스를 인스턴스화할 수 없는 이유는 정적 클래스로 인해 C# 컴파일러가 클래스를 추상 및 봉인으로 동시에 표시하기 때문입니다. , 컴파일러는 인스턴스에 대한 생성자를 생성하지 않으므로 정적 클래스가 인스턴스화되지 않습니다.

  • 정적 멤버에 대한 액세스는 클래스를 통해서만 액세스할 수 있습니다. , 정적 멤버가 클래스에 속하기 때문입니다.

  • 추천 학습: "

    PHP 비디오 튜토리얼

    "

위 내용은 PHP 정적 메소드와 일반 메소드의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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