>백엔드 개발 >PHP 튜토리얼 >PHP의 오버로딩 소개

PHP의 오버로딩 소개

小云云
小云云원래의
2018-03-20 13:46:101813검색

PHP에서 제공하는 "오버로딩"은 클래스 속성과 메서드를 동적으로 "생성"하는 것을 의미합니다. 우리는 마법의 방법을 통해 이를 수행합니다. 오버로드된 메서드는 현재 환경에서 정의되지 않았거나 액세스할 수 없는 클래스 속성이나 메서드가 호출될 때 호출됩니다. 오버로드된 모든 메서드는 공개로 선언되어야 합니다.

**참고:** PHP의 "오버로딩"은 대부분의 다른 객체 지향 언어와 다릅니다. 전통적인 "오버로딩"은 동일한 이름을 가진 여러 클래스 메서드를 제공하는 데 사용되지만 각 메서드의 매개 변수 유형과 개수는 다릅니다.

1. 속성 오버로딩

public void __set ( string $name , mixed $value )
public mixed __get ( string $name )
public bool __isset ( string $name )
public void __unset ( string $name )

액세스할 수 없는 속성에 값을 할당하면 __set()이 호출됩니다.
액세스할 수 없는 속성의 값을 읽으면 __get()이 호출됩니다.
__isset()은 액세스할 수 없는 속성에 대해 isset() 또는 empty()가 호출될 때 호출됩니다.
액세스할 수 없는 속성에 대해 unset()이 호출되면 __unset()이 호출됩니다.
매개변수 $name은 연산할 변수의 이름을 의미합니다. __set() 메서드의

name 변수 값입니다.
속성 오버로드는 객체에서만 수행할 수 있습니다. 정적 메서드에서는 이러한 매직 메서드가 호출되지 않습니다. 따라서 이러한 메서드 중 어느 것도 정적으로 선언할 수 없습니다. PHP 5.3.0부터 이러한 매직 메서드를 정적으로 정의하면 경고가 생성됩니다.

2. 메소드 오버로딩

public mixed __call ( string $name , array $arguments )
public static mixed __callStatic ( string $name , array $arguments )

객체에서 접근할 수 없는 메소드가 호출되면 __call()이 호출됩니다.
정적 컨텍스트에서 액세스할 수 없는 메서드를 호출하면 __callStatic()이 호출됩니다.

arguments 매개변수는 $name 메소드에 전달될 매개변수가 포함된 열거형 배열입니다.

PHP에서 제공하는 "오버로딩"은 클래스 속성과 메서드를 동적으로 "생성"하는 것을 의미합니다. 우리는 마법의 방법을 통해 이를 수행합니다.
현재 환경에서 정의되지 않았거나 접근할 수 없는 클래스 속성이나 메서드를 호출하면 오버로드된 메서드가 호출됩니다.
오버로드된 모든 메서드는 공개로 선언되어야 합니다.
**참고:** PHP의 "오버로딩"은 대부분의 다른 객체 지향 언어와 다릅니다. 전통적인 "오버로딩"은 동일한 이름을 가진 여러 클래스 메서드를 제공하는 데 사용되지만 각 메서드의 매개 변수 유형과 개수는 다릅니다.

관련 추천:

php 오버로드 배열 연산자_PHP 튜토리얼

php 오버로드 배열 연산자

php 상속에서 메소드 오버로딩(덮어쓰기) 적용 사례, php 오버로딩

위 내용은 PHP의 오버로딩 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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