<?php
class Util {
private $logger;
public function __construct(){}
public function getLogger() {
return $this->logger;
}
public function setLogger($logger) {
$this->logger = $logger;
}
}
$util = new Util();
$util->setLogger(new class {
public function log($msg) { echo $msg;
}
});
$util->getLogger()->log('Phil runs very fast'); // Ioutput should be : Phil runs very fast
PD9waHAKCmNsYXNzIFV0aWwgewoKICAgIHByaXZhdGUgJGxvZ2dlcjsKCiAgICBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKXt9IAoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRMb2dnZXIoKSB7ICAgIAogICAgICAgIHJldHVybiAkdGhpcy0+bG9nZ2VyOwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRMb2dnZXIoJGxvZ2dlcikgeyAKCiAgICAgICAgJHRoaXMtPmxvZ2dlciA9ICRsb2dnZXI7CiAgICB9Cn0KCiR1dGlsID0gbmV3IFV0aWwoKTsKCiAgJHV0aWwtPnNldExvZ2dlcihuZXcgY2xhc3MgewogICAgcHVibGljIGZ1bmN0aW9uIGxvZygkbXNnKSB7CiAgICAgIGVjaG8gJG1zZzsKICAgIH0KICB9KTsKCiAgJHV0aWwtPmdldExvZ2dlcigpLT5sb2coJ1BoaWwgcnVucyB2ZXJ5IGZhc3QnKTsgLy8gSW91dHB1dCBzaG91bGQgYmUgOiBQaGlsIHJ1bnMgdmVyeSBmYXN0Cg==