PHP:
class Debugger
{
protected $dateFormat;
public function __construct($dateFormat)
{
$this->dateFormat = $dateFormat;
}
function createDebugger($type) {
return function ($message) use ($type) {
$dateTime = date($this->dateFormat, time());
echo "[{$type}] [{$dateTime}] {$message}\n";
};
}
}
$debugger = new Debugger('Y-m-d H:i:s');
$infoDebugger = $debugger->createDebugger("INFO");
$infoDebugger("Das ist ein Info-Eintrag");
Der Aufruf dieses Codes erzeugt einen Fatal Error: Using $this when not in object context in
PHP:
$dateTime = date($this->dateFormat, time());
Wo liegt hier der Fehler? Ich instanziiere eine Klasse, rufe darauf die Methode createDebugger() auf und müsste innerhalb der Closure mit $this Zugriff auf die Attribute des Objekts haben.