Мне было интересно, какое ключевое слово является правильным в абстрактном классе php, когда я вызываю его собственную статическую функцию.
Вот упрощенный код, и я протестировал оба ключевых слова — оба работают, но какое из них технически правильное?
<?php
abstract class B extends A{
function a(){
self::b("test"); //'self::' vs '$this->'
}
static function b($string){
echo "test";
}
}
?>
Насколько я понимаю, если функция статическая, она должна использовать себя в своем собственном классе для вызова статических функций. Также абстракция означает, что не может быть экземпляра этого класса, поэтому не будет ли $this недействительным, даже если он работал без предупреждений?
Спасибо
Этот вопрос отличается от возможного дубликата, потому что я использую абстрактные классы, которые не могут иметь собственных экземпляров. Я понимаю разницу между self и this, но я пытался выяснить, какой из них использовать в данном конкретном случае, поскольку оба случая работают.