Skip to content

PHP

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

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

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 0 | Views 498
siwon 2024.11.26 0 498
39
html center 중앙정렬 tailwind
siwon | 2024.07.27 | Votes 0 | Views 870
siwon 2024.07.27 0 870
38
dropdown menu alpinejs 사용 버전
siwon | 2024.04.30 | Votes 0 | Views 910
siwon 2024.04.30 0 910
37
dropdown menu 간단 버전
siwon | 2024.04.30 | Votes 0 | Views 856
siwon 2024.04.30 0 856
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 1323
siwon 2023.10.24 0 1323
35
session 과 쿠키
siwon | 2023.10.24 | Votes 0 | Views 862
siwon 2023.10.24 0 862
34
Late Static Binding (LSB):메서드 내부에서 현재 클래스의 정적 메서드 또는 프로퍼티를 호출할 때 사용
siwon | 2023.10.24 | Votes 0 | Views 798
siwon 2023.10.24 0 798
33
PHP 예외 처리(Exception Handling)
siwon | 2023.10.10 | Votes 0 | Views 1052
siwon 2023.10.10 0 1052
32
php exception
siwon | 2023.10.10 | Votes 0 | Views 1288
siwon 2023.10.10 0 1288
31
예외(Exception)를 처리하기 위해 try...catch 블록을 사용하는 방법
siwon | 2023.10.10 | Votes 0 | Views 876
siwon 2023.10.10 0 876
30
Preserving Parent Class Functionality in overriding
siwon | 2023.09.26 | Votes 0 | Views 705
siwon 2023.09.26 0 705
29
oop 세부항목
siwon | 2023.09.26 | Votes 0 | Views 701
siwon 2023.09.26 0 701
28
method chaining
siwon | 2023.09.25 | Votes 0 | Views 840
siwon 2023.09.25 0 840
27
interface implements
siwon | 2023.09.19 | Votes 0 | Views 753
siwon 2023.09.19 0 753
Re:interface implements
siwon | 2023.10.24 | Votes 0 | Views 634
siwon 2023.10.24 0 634
26
abstract class : 부모 class로 사용되며 자식(extends 한)에게 abstract method를 강제함(그들만의 방식으로)
siwon | 2023.09.19 | Votes 0 | Views 695
siwon 2023.09.19 0 695
25
isset() / unset()
siwon | 2023.09.18 | Votes 0 | Views 779
siwon 2023.09.18 0 779
24
magic methods-어떤 상황이 되면 call 하지 않아도 자동으로 실행되는 메소드
siwon | 2023.09.18 | Votes 0 | Views 782
siwon 2023.09.18 0 782
23
MD(markdown) file
siwon | 2023.09.12 | Votes 0 | Views 783
siwon 2023.09.12 0 783
22
usort
siwon | 2023.08.30 | Votes 0 | Views 719
siwon 2023.08.30 0 719
21
closure=unanimous function
siwon | 2023.08.30 | Votes 0 | Views 800
siwon 2023.08.30 0 800
php 7.4에서 추가 화살표 함수 fn()=>
siwon | 2023.10.24 | Votes 0 | Views 1522
siwon 2023.10.24 0 1522
20
reference variable &
siwon | 2023.08.29 | Votes 0 | Views 794
siwon 2023.08.29 0 794
참조(reference)한 original variable의 값을 바꿔버리기 때문에 조심해서 써야함
siwon | 2023.08.30 | Votes 0 | Views 806
siwon 2023.08.30 0 806
19
PHP 변수 : 스칼라(Scalar), 복합(Composite), 그리고 리소스(Resource)
siwon | 2023.08.22 | Votes 0 | Views 878
siwon 2023.08.22 0 878
18
if : vs {}
siwon | 2023.08.22 | Votes 0 | Views 666
siwon 2023.08.22 0 666
17
null coalescing operator
siwon | 2023.08.18 | Votes 0 | Views 916
siwon 2023.08.18 0 916
16
arrary functions
siwon | 2023.08.18 | Votes 0 | Views 740
siwon 2023.08.18 0 740