<?php
class A {
public function __call($method, $args) {
echo "A->$method\n";
}
public static function __callStatic($method, $args) {
echo "A::$method\n";
}
}
class B extends A {
public function test1() {
A::test1(); // A->test1 because A is related to B and test1 is non-static
}
public static function test2() {
A::test2(); // A::test2 because A is related to B and test2 is static
}
}
class C {
public function test3() {
A::test3(); // A::test3 because A is not related to C
}
public static function test4() {
A::test4(); // A::test4 because A is not related to C
}
}
$b = new B();
$b->test1();
$b::test2();
$c = new C();
$c->test3();
$c::test4();
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
A->test1
A::test2
A::test3
A::test4