Avatar ·

如何在PHP中重写trait方法并从重写的方法中调用它?

大家好!我正在学习PHP,遇到了一个关于traits的问题。情况是这样的:我有一个`Logger` trait,其中包含一个`log($message)`方法。这个方法只是将消息输出到控制台。我想在`UserService`类中使用这个trait,但需要修改`log`方法的行为:为消息添加类名前缀。然而,在重写方法后,我无法从trait中调用原始版本。 以下是示例代码: ```php trait Logger { public function log($message) { echo "LOG: " . $message . "\n"; } } class UserService { use Logger; public function log($message) { // 想调用trait的父方法,但不知道如何做 // parent::log($message); // 错误! echo "[" . __CLASS__ . "] " . $message . "\n"; } } $service = new UserService(); $service->log("用户已创建"); ``` 我尝试过使用`parent::log()`,但不起作用——会报错。我也尝试过