>백엔드 개발 >PHP 문제 >PHP의 정적 메소드 란 무엇입니까?

PHP의 정적 메소드 란 무엇입니까?

青灯夜游
青灯夜游원래의
2021-10-13 18:33:422678검색

PHP에서는 정적 키워드로 수정된 멤버 메서드를 정적 메서드라고 합니다. 정적 메서드의 메모리 공간은 고정되어 있습니다. "클래스 이름::정적 메서드()" 문을 통해 클래스에 있는 정적 멤버만 액세스할 수 있습니다. 행동 양식.

PHP의 정적 메소드 란 무엇입니까?

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

PHP에서는 static 키워드로 수정된 멤버 속성과 멤버 메서드를 정적 속성과 정적 메서드라고 합니다, 여기서는 정적 멤버를 집합적으로 호출할 수 있습니다. 클래스의 정적 멤버는 클래스의 일반 멤버와 다릅니다. 정적 멤버는 개체로 인스턴스화되지 않습니다. 즉, 클래스를 통해 액세스하기 위해 클래스를 인스턴스화할 필요가 없습니다. 회원.

클래스에서 정적 변수를 선언하는 것은 쉽습니다. 클래스의 일반 멤버 앞에 정적 키워드를 추가하여 이 일반 멤버를 정적 멤버로 바꿀 수 있습니다. 이런 방식으로 클래스를 인스턴스화하지 않고도 클래스의 정적 멤버에 직접 액세스할 수 있습니다. 정적 멤버에 액세스하기 위한 구문 형식은 다음과 같습니다.

类名::$静态属性
类名::静态方法()

:: 기호는 범위 확인 연산자라고 하며 정적 멤버, 정적 메서드 및 상수에 액세스하는 데 사용되며 사용할 수도 있습니다. 클래스 및 메서드의 멤버를 재정의합니다. ::符号被称为范围解析操作符,用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。

如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符self::

클래스 내부 멤버 메서드의 정적 속성에 액세스하려면 정적 속성 이름 앞에 self:: 연산자를 추가하면 됩니다.

정적 메서드

  • 정적 메서드의 메모리 공간은 고정되어 있어 상대적으로 리소스를 더 절약합니다.
  • 인스턴스를 생성하려면 리소스를 소비하는 새 메모리를 열어야 합니다. 정적 메서드는 클래스에 속하며 클래스가 인스턴스화되기 전에 사용할 수 있습니다.
  • 정적 메서드는 클래스의 정적 멤버에만 액세스할 수 있습니다.
  • 정적 변수와 기타 정적 메서드만 정적 메서드에 나타날 수 있습니다. 그리고 이와 같은 키워드는 전체 클래스에 속하므로 정적 메서드에서 사용할 수 없습니다.

  • 정적 메서드와 정적 변수는 항상 동일한 메모리를 사용합니다. 인스턴스를 사용하면 여러 개의 추억이 생성됩니다.

정적 메서드의 장점:

(1) 코드의 어느 곳에서나 사용할 수 있습니다(클래스에 액세스할 수 있다고 가정).

(2) 클래스의 모든 인스턴스는 다음에 정의된 정적 메서드에 액세스할 수 있습니다. 클래스 속성은 정적 속성을 사용하여 클래스의 모든 개체에서 사용할 수 있는 값을 설정할 수 있습니다.

(3) 정적 속성 또는 메서드는 인스턴스 개체 없이 액세스할 수 있습니다.

정적 메소드와 일반 메소드의 차이점

  • 정적 메소드는 객체를 생성하기 전에 사용할 수 있고, 비정적 메소드는 new로 생성된 객체를 통해 호출해야 합니다.

  • 정적 메서드는 클래스 이름::메서드 이름을 통해 직접 호출할 수 있습니다. 일반 메서드는 인스턴스, 즉 새 개체를 만든 다음 개체 이름 -> 메서드 이름을 통해 정적 클래스를 호출해야 합니다. 정적 멤버만 포함할 수 있습니다. 그렇지 않으면 컴파일 오류가 발생합니다.

  • 비정적 클래스는 비정적 멤버를 포함하는 정적 클래스일 수도 있습니다. 정적 클래스를 인스턴스화할 수 없는 이유는 정적 클래스로 인해 C# 컴파일러가 클래스를 추상 및 봉인으로 표시하기 때문입니다. 동시에 컴파일러는 인스턴스 생성자를 생성하지 않으므로 정적 클래스가 인스턴스화되지 않습니다.

  • 정적 클래스가 아닌 경우에만 액세스할 수 있습니다. 정적 멤버가 클래스에 속하기 때문에 클래스를 통해.

추천 학습: "

PHP 비디오 튜토리얼"

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

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