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