tmp

Early binding 과 Late static binding

janggos 2024. 10. 5. 17:48

class BaseModel {
    public static function createSelf(): self {
        return new self();  // 초기 바인딩
    }
    
    public static function createStatic(): static {
        return new static();  // 정적 바인딩 (late static binding)
    }
}

class Post extends BaseModel {
}

$post1 = Post::createSelf();   // BaseModel 인스턴스 반환 (초기 바인딩)
$post2 = Post::createStatic(); // Post 인스턴스 반환 (정적 바인딩)