Junior — Middle
Subklassada o'zida ani belgilangan metodni self:: yordamida chaqirsak, nima bo'ladi?
sobes.tech AI
AIdan javob
PHPda self:: kalit soʻzi doimo yozilgan sinfga murojaat qiladi, voris sinfga emas. Agar voris sinfda self:: orqali metod chaqirilsa, u voris sinfda emas, ota sinfda aniqlangan bo‘lsa, PHP aynan voris sinfda uni topishga harakat qiladi va topa olmaydi, bu esa xatolik bilan yakunlanadi.
Misol:
class ParentClass {
public static function foo() {
echo "Parent foo";
}
}
class ChildClass extends ParentClass {
public static function bar() {
self::foo(); // ChildClassda self:: orqali foo() ni chaqirishga urinish
}
}
ChildClass::bar(); // Xato: Call to undefined method ChildClass::foo()
Ota sinf metodini chaqirish uchun parent::foo() yoki kechroq statik bog‘lanishni talab qilinsa static::foo() ishlatilishi kerak.