Skip to content

PHP

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

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

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 44
Number Title Author Date Votes Views
39
html center 중앙정렬 tailwind
siwon | 2024.07.27 | Votes 0 | Views 351
siwon 2024.07.27 0 351
38
dropdown menu alpinejs 사용 버전
siwon | 2024.04.30 | Votes 0 | Views 471
siwon 2024.04.30 0 471
37
dropdown menu 간단 버전
siwon | 2024.04.30 | Votes 0 | Views 426
siwon 2024.04.30 0 426
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 695
siwon 2023.10.24 0 695
35
session 과 쿠키
siwon | 2023.10.24 | Votes 0 | Views 540
siwon 2023.10.24 0 540
34
Late Static Binding (LSB):메서드 내부에서 현재 클래스의 정적 메서드 또는 프로퍼티를 호출할 때 사용
siwon | 2023.10.24 | Votes 0 | Views 553
siwon 2023.10.24 0 553
33
PHP 예외 처리(Exception Handling)
siwon | 2023.10.10 | Votes 0 | Views 572
siwon 2023.10.10 0 572
32
php exception
siwon | 2023.10.10 | Votes 0 | Views 1008
siwon 2023.10.10 0 1008
31
예외(Exception)를 처리하기 위해 try...catch 블록을 사용하는 방법
siwon | 2023.10.10 | Votes 0 | Views 607
siwon 2023.10.10 0 607
30
Preserving Parent Class Functionality in overriding
siwon | 2023.09.26 | Votes 0 | Views 475
siwon 2023.09.26 0 475
29
oop 세부항목
siwon | 2023.09.26 | Votes 0 | Views 478
siwon 2023.09.26 0 478
28
method chaining
siwon | 2023.09.25 | Votes 0 | Views 539
siwon 2023.09.25 0 539
27
interface implements
siwon | 2023.09.19 | Votes 0 | Views 461
siwon 2023.09.19 0 461
Re:interface implements
siwon | 2023.10.24 | Votes 0 | Views 399
siwon 2023.10.24 0 399
26
abstract class : 부모 class로 사용되며 자식(extends 한)에게 abstract method를 강제함(그들만의 방식으로)
siwon | 2023.09.19 | Votes 0 | Views 473
siwon 2023.09.19 0 473
25
isset() / unset()
siwon | 2023.09.18 | Votes 0 | Views 486
siwon 2023.09.18 0 486
24
magic methods-어떤 상황이 되면 call 하지 않아도 자동으로 실행되는 메소드
siwon | 2023.09.18 | Votes 0 | Views 483
siwon 2023.09.18 0 483
23
MD(markdown) file
siwon | 2023.09.12 | Votes 0 | Views 521
siwon 2023.09.12 0 521
22
usort
siwon | 2023.08.30 | Votes 0 | Views 487
siwon 2023.08.30 0 487
21
closure=unanimous function
siwon | 2023.08.30 | Votes 0 | Views 544
siwon 2023.08.30 0 544
php 7.4에서 추가 화살표 함수 fn()=>
siwon | 2023.10.24 | Votes 0 | Views 835
siwon 2023.10.24 0 835
20
reference variable &
siwon | 2023.08.29 | Votes 0 | Views 544
siwon 2023.08.29 0 544
참조(reference)한 original variable의 값을 바꿔버리기 때문에 조심해서 써야함
siwon | 2023.08.30 | Votes 0 | Views 577
siwon 2023.08.30 0 577
19
PHP 변수 : 스칼라(Scalar), 복합(Composite), 그리고 리소스(Resource)
siwon | 2023.08.22 | Votes 0 | Views 583
siwon 2023.08.22 0 583
18
if : vs {}
siwon | 2023.08.22 | Votes 0 | Views 451
siwon 2023.08.22 0 451
17
null coalescing operator
siwon | 2023.08.18 | Votes 0 | Views 553
siwon 2023.08.18 0 553
16
arrary functions
siwon | 2023.08.18 | Votes 0 | Views 459
siwon 2023.08.18 0 459
15
http request form method GET POST
siwon | 2023.08.17 | Votes 0 | Views 514
siwon 2023.08.17 0 514