Skip to content

PHP

magic methods-어떤 상황이 되면 call 하지 않아도 자동으로 실행되는 메소드

Author
siwon
Date
2023-09-18 18:51
Views
705

PHP에서 사용되는 매직 메서드 (Magic Methods)는 특별한 이름을 가진 메서드로, 객체의 특정 상황에서 자동으로 호출되는 메서드입니다. 이러한 매직 메서드를 사용하여 객체의 동작을 커스터마이즈할 수 있습니다. 매직 메서드는 이중 밑줄 (`__`)로 시작합니다. 다음은 PHP에서 주로 사용되는 매직 메서드입니다:


1. `__construct()`: 객체가 생성될 때 자동으로 호출되는 생성자 메서드입니다. 주로 초기화 작업에 사용됩니다.


2. `__destruct()`: 객체가 더 이상 참조되지 않을 때 자동으로 호출되는 소멸자 메서드입니다. 주로 리소스 반환이나 정리 작업에 사용됩니다.


3. `__toString()`: 객체를 문자열로 변환할 때 자동으로 호출되는 메서드로, `echo`나 `print` 등 문자열로 사용될 때 작동합니다.


4. `__get($property)`: 객체의 비공개 속성에 접근하려고 할 때 호출되며, 속성에 대한 사용자 정의 동작을 구현할 수 있습니다.


5. `__set($property, $value)`: 객체의 비공개 속성에 값을 설정하려고 할 때 호출되며, 속성 설정에 대한 사용자 정의 동작을 구현할 수 있습니다.


6. `__isset($property)`: `isset()` 함수를 사용하여 객체의 속성이 설정되었는지 확인할 때 호출됩니다.


7. `__unset($property)`: `unset()` 함수를 사용하여 객체의 속성을 제거하려고 할 때 호출됩니다.


8. `__call($method, $arguments)`: 객체에 정의되지 않은 메서드를 호출하려고 할 때 호출되며, 메서드 호출에 대한 사용자 정의 동작을 구현할 수 있습니다.


9. `__callStatic($method, $arguments)`: 정적 메서드에 정의되지 않은 정적 메서드를 호출하려고 할 때 호출됩니다.


10. `__clone()`: 객체를 복제할 때 호출되며, 복제된 객체의 동작을 사용자 정의할 수 있습니다.


11. `__sleep()`: 객체를 직렬화할 때 호출되며, 직렬화할 속성 목록을 반환할 수 있습니다.


12. `__wakeup()`: 객체를 역직렬화할 때 호출되며, 역직렬화 후에 필요한 초기화 작업을 수행할 수 있습니다.


13. `__invoke()`: 객체를 함수처럼 호출하려고 할 때 호출되며, 객체를 호출 가능한(Callable) 객체로 만들 수 있습니다.


14. `__set_state($properties)`: `var_export()` 함수를 사용하여 객체를 내보낼 때 호출되며, 내보내진 데이터를 기반으로 객체를 복원할 수 있습니다.

15. `__debugInfo()`: `var_dump()` 함수를 사용하여 객체를 디버그할 때 호출되며, 객체의 디버그 정보를 사용자 정의할 수 있습니다.

이러한 매직 메서드를 활용하면 객체 지향 프로그래밍에서 더 많은 제어와 사용자 정의를 할 수 있습니다.

Total 0

Total 45
Number Title Author Date Votes Views
40
php formatter
siwon | 2024.11.26 | Votes 0 | Views 346
siwon 2024.11.26 0 346
39
html center 중앙정렬 tailwind
siwon | 2024.07.27 | Votes 0 | Views 713
siwon 2024.07.27 0 713
38
dropdown menu alpinejs 사용 버전
siwon | 2024.04.30 | Votes 0 | Views 782
siwon 2024.04.30 0 782
37
dropdown menu 간단 버전
siwon | 2024.04.30 | Votes 0 | Views 741
siwon 2024.04.30 0 741
36
The Standard PHP Library (SPL) is a collection of classes and interfaces that provide core functionality to PHP developers.
siwon | 2023.10.24 | Votes 0 | Views 1095
siwon 2023.10.24 0 1095
35
session 과 쿠키
siwon | 2023.10.24 | Votes 0 | Views 774
siwon 2023.10.24 0 774
34
Late Static Binding (LSB):메서드 내부에서 현재 클래스의 정적 메서드 또는 프로퍼티를 호출할 때 사용
siwon | 2023.10.24 | Votes 0 | Views 732
siwon 2023.10.24 0 732
33
PHP 예외 처리(Exception Handling)
siwon | 2023.10.10 | Votes 0 | Views 933
siwon 2023.10.10 0 933
32
php exception
siwon | 2023.10.10 | Votes 0 | Views 1214
siwon 2023.10.10 0 1214
31
예외(Exception)를 처리하기 위해 try...catch 블록을 사용하는 방법
siwon | 2023.10.10 | Votes 0 | Views 804
siwon 2023.10.10 0 804
30
Preserving Parent Class Functionality in overriding
siwon | 2023.09.26 | Votes 0 | Views 643
siwon 2023.09.26 0 643
29
oop 세부항목
siwon | 2023.09.26 | Votes 0 | Views 639
siwon 2023.09.26 0 639
28
method chaining
siwon | 2023.09.25 | Votes 0 | Views 767
siwon 2023.09.25 0 767
27
interface implements
siwon | 2023.09.19 | Votes 0 | Views 681
siwon 2023.09.19 0 681
Re:interface implements
siwon | 2023.10.24 | Votes 0 | Views 566
siwon 2023.10.24 0 566
26
abstract class : 부모 class로 사용되며 자식(extends 한)에게 abstract method를 강제함(그들만의 방식으로)
siwon | 2023.09.19 | Votes 0 | Views 638
siwon 2023.09.19 0 638
25
isset() / unset()
siwon | 2023.09.18 | Votes 0 | Views 705
siwon 2023.09.18 0 705
24
magic methods-어떤 상황이 되면 call 하지 않아도 자동으로 실행되는 메소드
siwon | 2023.09.18 | Votes 0 | Views 705
siwon 2023.09.18 0 705
23
MD(markdown) file
siwon | 2023.09.12 | Votes 0 | Views 720
siwon 2023.09.12 0 720
22
usort
siwon | 2023.08.30 | Votes 0 | Views 652
siwon 2023.08.30 0 652
21
closure=unanimous function
siwon | 2023.08.30 | Votes 0 | Views 724
siwon 2023.08.30 0 724
php 7.4에서 추가 화살표 함수 fn()=>
siwon | 2023.10.24 | Votes 0 | Views 1379
siwon 2023.10.24 0 1379
20
reference variable &
siwon | 2023.08.29 | Votes 0 | Views 714
siwon 2023.08.29 0 714
참조(reference)한 original variable의 값을 바꿔버리기 때문에 조심해서 써야함
siwon | 2023.08.30 | Votes 0 | Views 747
siwon 2023.08.30 0 747
19
PHP 변수 : 스칼라(Scalar), 복합(Composite), 그리고 리소스(Resource)
siwon | 2023.08.22 | Votes 0 | Views 792
siwon 2023.08.22 0 792
18
if : vs {}
siwon | 2023.08.22 | Votes 0 | Views 609
siwon 2023.08.22 0 609
17
null coalescing operator
siwon | 2023.08.18 | Votes 0 | Views 821
siwon 2023.08.18 0 821
16
arrary functions
siwon | 2023.08.18 | Votes 0 | Views 667
siwon 2023.08.18 0 667