Sobes.tech
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.