minte9
LearnRemember



LSB

You can't reference the called class in the context of static inheritance. LSB adds a keyword that references the class that was initially called at runtime. Static methods or properties can be access only as part of a class itself.
 
class Car
{
    public static $name = "Car";

    public static function getName($self=false)
    {
        if ($self === true) return self::$name;

        return static::$name; // Look Here
    }
}

class Toyota extends Car
{
    public static $name = "Toyota";
}

$car = new Toyota();

echo Car::$name; // Car

echo $car->name; // Notice:
    // Accessing static property Toyota::$name as non static

echo $car->getName(); // Toyota
echo $car->getName(true); // Car



  Last update: 303 days ago