<?php
abstract class A {
abstract function foo();
public function callingD() {
D::doSomething([$this, 'foo']);
}
}
class B extends A {
function foo() {
echo 'yay';
}
}
class D {
public static function doSomething(callable $fun) {
$fun();
}
}
$obj = new B;
$obj->callingD();
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
yay