Abstract class in php 调用自己的静态方法 ($this vs self)

Abstract class in php calling its own static method ($this vs self)

我想知道抽象phpclass中哪个关键字是正确的,当我调用它自己的静态函数时

这是简化的代码,我已经测试了两个关键字 - 都有效,但哪一个在技术上是正确的?

<?php
abstract class B extends A{
    function a(){
        self::b("test"); //'self::' vs '$this->'
    }

    static function b($string){
        echo "test";
    }
}
?>

据我了解,如果函数是静态的,它应该在其自身 class 中使用 self 来调用静态函数。此外,抽象意味着不可能有那个 class 的实例,所以 $this 不会是无效的,即使它在没有警告的情况下工作?

谢谢

这个问题与可能的重复问题不同,因为我使用的抽象 classes 不能有自己的实例。我了解 self 和 this 之间的区别,但是在这种特定情况下使用哪个是我试图找出的,因为这两种情况都有效。

使用self,class是否为abstract都一样。 $this 是 class 的实例,如果它已通过具体的子 class 实例化,它也适用于 abstract class。