PHP:覆盖特征静态方法

标签 php oop traits overriding

我有一个特征,它有一个静态方法,我想重写并再次调用它...... 我试过这个:

trait MyTrait{
    static function myMethod(){ echo "Hi from my trait".PHP_EOL; }
}
class MyClass{
    use MyTrait {
        myMethod as myMethodTrait;
    }
    static function myMethod(){
        self::myMethodTrait();
        echo "Hi from my class";
    }
}
MyClass::myMethodTrait();

我有这个错误:

Fatal error: Could not find trait 0 in (...)

哪里出错了?

谢谢...

最佳答案

我刚刚尝试了这段代码,它可以正常工作。

MyClass::myMethodTrait(); // returns Hi from my trait 

MyClass::myMethod(); // returns Hi from my trait Hi from my class

严格来说,从提供的代码来看,没有错误。也许您还可以添加更多信息?

关于PHP:覆盖特征静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28606025/

相关文章:

php - 如何向 MAMP 添加其他 PHP 版本

database - 您可以在生产系统中使用对象数据库吗?

php - 如何呈现带有 .html 扩展名的 .php URL

php - 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是

php - 从用户代理中提取浏览器元素

validation - Symfony - 如何根据另一个节点值验证配置节点?

generics - 如何从盒装特征对象获取对结构的引用?

C++链表不显示String类型变量

C# 从类中获取值到 mainForm

scala - 在 Scalatest 中实现工厂