>  기사  >  백엔드 개발  >  PHP에서 정적 메소드와 비정적 메소드의 차이점은 무엇입니까?

PHP에서 정적 메소드와 비정적 메소드의 차이점은 무엇입니까?

青灯夜游
青灯夜游원래의
2020-11-05 15:56:054752검색

차이점: 1. 비정적 메서드는 클래스의 모든 멤버에 액세스할 수 있는 반면, 정적 메서드는 클래스의 정적 멤버에만 액세스할 수 있습니다. 2. 정적 메서드는 클래스가 정의될 ​​때 이미 로드되어 할당되어 있으며, 비정적 메서드는 클래스가 정의될 ​​때 로드되고 할당됩니다. 메모리가 점유되지 않고 객체로 인스턴스화될 때만 메모리가 할당됩니다.

PHP에서 정적 메소드와 비정적 메소드의 차이점은 무엇입니까?

추천: "PHP 비디오 튜토리얼"

PHP

1에서 정적 메서드와 비정적 메서드의 차이점은 정적 메서드가 클래스에 속하며 클래스 전에 사용할 수 있다는 것입니다. 인스턴스화됩니다. 즉, 객체를 새로 만들지 않고도 객체의 메서드를 사용할 수 있습니다. 예를 들어 object::fun1();

2. 비정적 메서드는 클래스의 모든 멤버에 액세스할 수 있습니다. 정적 메서드는 클래스의 정적 멤버에만 액세스할 수 있습니다. -정적 메서드를 호출할 수 있습니다. (시스템이 자동으로 비정적 메서드를 정적 메서드로 변환하기 때문입니다.)

3. 정적 메서드는 클래스 정의 시 이미 로드되어 할당됩니다. 비정적 메서드는 정의할 때 메모리를 차지하지 않습니다. 메모리 할당

4. 정적 변수 및 기타 정적 메서드만 정적 내에 나타날 수 있습니다. 즉, 정적 메서드는 비정적 속성을 호출할 수 없습니다. Self::는 비정적 속성을 호출하는 데 사용할 수 없습니다. )! 그리고 이와 같은 키워드는 전체 클래스에 속하므로 정적 메서드에서 사용할 수 없습니다. 정적 메서드 내에서 다른 정적 메서드를 호출하려면 self:: 메서드 이름 형식을 사용할 수 있습니다.

5. 정적 메서드는 인스턴스화보다 효율적이지만 인스턴스화는 가능합니다.

6. 정적 메서드와 정적 변수는 생성 후 항상 동일한 메모리를 사용하는 반면, 인스턴스를 사용하면 여러 메모리가 생성됩니다.

주요 차이점:

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

정적 메서드와 인스턴스 메서드 사이에는 성능과 메모리 사용량에 뚜렷한 차이가 없습니다. 정적 메서드 선언 여부는 유형, 이벤트, 객체 지향 확장 및 다형성의 비정적 필드의 세 가지 측면에서 고려해야 합니다. .

요약: 정적 인스턴스는 인스턴스화 횟수에 관계없이 하나의 결과만 갖는 반면, 동적 인스턴스는 매번 다른 결과를 나타냅니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 교육을 방문하세요! !

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

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