What is "late static binding" and how does it relate to the code provided?

Late static binding in PHP allows a child class to reference its own class name using the `static` keyword, rather than the `self` keyword which would reference the parent class. This is useful when you want to access static properties or methods from the child class. In the provided code, the issue is related to accessing static properties from the parent class using the `self` keyword, which does not work as intended when called from the child class. To fix this, we should use the `static` keyword instead of `self` to ensure late static binding.

class ParentClass {
    protected static $property = 'Parent';

    public static function getProperty() {
        return static::$property;
    }
}

class ChildClass extends ParentClass {
    protected static $property = 'Child';
}

echo ChildClass::getProperty(); // Output: Child