<?php
class A
{
public static function foo() { return 'A'; }
}
class B extends A
{
public static function withSelf()
{ return self::foo(); }
public static function withParent()
{ return parent::foo(); }
public static function withStatic()
{ return static::foo(); }
public static function withClass()
{ return (parent::class)::foo(); }
}
echo 'Self: '.B::withSelf(), PHP_EOL,
'Parent: '.B::withParent(), PHP_EOL,
'Static: '.B::withStatic(), PHP_EOL,
'Class: '.B::withClass();