Junior — Middle
Alt sinifdə, onun daxilində təyin olunmayan bir metodu self:: istifadə edərək çağırsaq, nə baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
PHP-də self:: açar sözü həmişə yazıldığı sinfə istinad edir, törəmə sinfə yox. Əgər alt sinifdə self:: vasitəsilə metod çağırılırsa və bu metod alt sinifdə deyil, valideyn sinifdə təyin olunubsa, PHP onu dəqiq olaraq alt sinifdə tapmağa çalışacaq və tapmayacaq, bu da xəta ilə nəticələnəcək.
Misal:
class ParentClass {
public static function foo() {
echo "Parent foo";
}
}
class ChildClass extends ParentClass {
public static function bar() {
self::foo(); // ChildClass-də self:: vasitəsilə foo() çağırmağa cəhd
}
}
ChildClass::bar(); // Xəta: Call to undefined method ChildClass::foo()
Valideyn sinfin metodunu çağırmaq üçün parent::foo() və ya gec statik bağlama tələb olunursa static::foo() istifadə edilməlidir.