Skip to content

PHP

Late Static Binding (LSB):메서드 내부에서 현재 클래스의 정적 메서드 또는 프로퍼티를 호출할 때 사용

Author
siwon
Date
2023-10-24 16:24
Views
1077

Late Static Binding (LSB)는 PHP에서 객체 지향 프로그래밍에서 사용되는 개념 중 하나입니다. 이것은 객체 지향 상속과 메서드 오버라이딩과 관련이 있습니다. LSB는 상위 클래스(부모 클래스)의 정적 메서드 내에서 서브 클래스(자식 클래스)의 정적 메서드 또는 프로퍼티를 호출하는 방법을 제공합니다.


이 개념은 주로 `static` 키워드를 사용하여 구현됩니다. 정적 메서드 또는 프로퍼티에 대한 상위 클래스와 서브 클래스 간의 차이를 해소하기 위해 사용됩니다.


LSB를 사용하기 위해 `static::` 키워드를 사용합니다. 이것은 메서드 내부에서 현재 클래스의 정적 메서드 또는 프로퍼티를 호출할 때 사용됩니다. 다음은 LSB의 간단한 예제입니다:


```php
class ParentClass {
    public static function whoAmI() {
        echo 'I am the parent class.';
    }
    
    public static function callWhoAmI() {
        static::whoAmI();
    }
}
class ChildClass extends ParentClass {
    public static function whoAmI() {
        echo 'I am the child class.';
    }
}
ChildClass::callWhoAmI(); // 출력: I am the child class.
```

여기서 `ParentClass`의 `callWhoAmI` 메서드 내에서 `static::whoAmI()`를 호출하면, 실제 호출될 메서드는 호출 시점의 클래스에 따라 달라집니다. 따라서 `ChildClass`에서 호출하면 `I am the child class.`가 출력됩니다.

Late Static Binding은 다중 레벨의 클래스 계층 구조에서 상위 클래스와 서브 클래스 간의 메서드 호출 동작을 조절하는 데 유용합니다.

Total 0

Total 45
Number Title Author Date Votes Views
40
php formatter
siwon | 2024.11.26 | Votes -1 | Views 967
siwon 2024.11.26 -1 967
39
html center 중앙정렬 tailwind
siwon | 2024.07.27 | Votes 0 | Views 1290
siwon 2024.07.27 0 1290
38
dropdown menu alpinejs 사용 버전
siwon | 2024.04.30 | Votes 0 | Views 1263
siwon 2024.04.30 0 1263
37
dropdown menu 간단 버전
siwon | 2024.04.30 | Votes 0 | Views 1215
siwon 2024.04.30 0 1215
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 1822
siwon 2023.10.24 0 1822
35
session 과 쿠키
siwon | 2023.10.24 | Votes 0 | Views 1184
siwon 2023.10.24 0 1184
34
Late Static Binding (LSB):메서드 내부에서 현재 클래스의 정적 메서드 또는 프로퍼티를 호출할 때 사용
siwon | 2023.10.24 | Votes 0 | Views 1077
siwon 2023.10.24 0 1077
33
PHP 예외 처리(Exception Handling)
siwon | 2023.10.10 | Votes 0 | Views 1369
siwon 2023.10.10 0 1369
32
php exception
siwon | 2023.10.10 | Votes 0 | Views 1571
siwon 2023.10.10 0 1571
31
예외(Exception)를 처리하기 위해 try...catch 블록을 사용하는 방법
siwon | 2023.10.10 | Votes 0 | Views 1141
siwon 2023.10.10 0 1141
30
Preserving Parent Class Functionality in overriding
siwon | 2023.09.26 | Votes 0 | Views 955
siwon 2023.09.26 0 955
29
oop 세부항목
siwon | 2023.09.26 | Votes 0 | Views 962
siwon 2023.09.26 0 962
28
method chaining
siwon | 2023.09.25 | Votes 0 | Views 1189
siwon 2023.09.25 0 1189
27
interface implements
siwon | 2023.09.19 | Votes 0 | Views 1030
siwon 2023.09.19 0 1030
Re:interface implements
siwon | 2023.10.24 | Votes 0 | Views 861
siwon 2023.10.24 0 861
26
abstract class : 부모 class로 사용되며 자식(extends 한)에게 abstract method를 강제함(그들만의 방식으로)
siwon | 2023.09.19 | Votes 0 | Views 959
siwon 2023.09.19 0 959
25
isset() / unset()
siwon | 2023.09.18 | Votes 0 | Views 1098
siwon 2023.09.18 0 1098
24
magic methods-어떤 상황이 되면 call 하지 않아도 자동으로 실행되는 메소드
siwon | 2023.09.18 | Votes 0 | Views 1088
siwon 2023.09.18 0 1088
23
MD(markdown) file
siwon | 2023.09.12 | Votes 0 | Views 1046
siwon 2023.09.12 0 1046
22
usort
siwon | 2023.08.30 | Votes 0 | Views 1018
siwon 2023.08.30 0 1018
21
closure=unanimous function
siwon | 2023.08.30 | Votes 0 | Views 1090
siwon 2023.08.30 0 1090
php 7.4에서 추가 화살표 함수 fn()=>
siwon | 2023.10.24 | Votes 0 | Views 3759
siwon 2023.10.24 0 3759
20
reference variable &
siwon | 2023.08.29 | Votes 0 | Views 1077
siwon 2023.08.29 0 1077
참조(reference)한 original variable의 값을 바꿔버리기 때문에 조심해서 써야함
siwon | 2023.08.30 | Votes 0 | Views 1041
siwon 2023.08.30 0 1041
19
PHP 변수 : 스칼라(Scalar), 복합(Composite), 그리고 리소스(Resource)
siwon | 2023.08.22 | Votes 0 | Views 1142
siwon 2023.08.22 0 1142
18
if : vs {}
siwon | 2023.08.22 | Votes 0 | Views 924
siwon 2023.08.22 0 924
17
null coalescing operator
siwon | 2023.08.18 | Votes 0 | Views 1236
siwon 2023.08.18 0 1236
16
arrary functions
siwon | 2023.08.18 | Votes 0 | Views 1037
siwon 2023.08.18 0 1037