Quick actions

cmd+k|ctrl+k

Navigation

Languages

PHP self vs static

Snippet info

Language

Php

Visibility

public

Author

atomicptr

Created

2021-03-16T13:48:00.506989Z

Updated

2021-03-16T13:48:00.506989Z

<?php

class A {
    public static function getStuff() {
        return self::myStuff();
    }
    
    protected static function myStuff() {
        return "A::myStuff";
    }
}

class B extends A {
    protected static function myStuff() {
        return "B::myStuff";
    }
}

echo "### self::... (static call)\n";
var_dump(A::getStuff());
var_dump(B::getStuff());

class A2 {
    public static function getStuff() {
        return static::myStuff();
    }
    
    protected static function myStuff() {
        return "A::myStuff";
    }
}

class B2 extends A2 {
    protected static function myStuff() {
        return "B::myStuff";
    }
}

echo "\n### static::... (dynamic call)\n";
var_dump(A2::getStuff());
var_dump(B2::getStuff());
INFO