Sobes.tech
Junior — Middle

Эгер подкласс ичинде аныкталбаган ыкмадан self:: аркылуу кайрсак, эмне болот?

sobes.tech AI

AIден жооп

PHPде self:: ачкыч сөзү дайыма жазылган класска шилтеме кылат, ал эми мураскор класска эмес. Эгер мураскор класста self:: аркылуу метод чакырылса жана ал мураскор класста эмес, ата-энесинин класында аныкталган болсо, PHP аны так мураскор класста табууга аракет кылат жана таба албайт, бул катага алып келет.

Мисал:

class ParentClass {
    public static function foo() {
        echo "Parent foo";
    }
}

class ChildClass extends ParentClass {
    public static function bar() {
        self::foo(); // ChildClass ичинде self:: аркылуу foo() чакырууга аракет
    }
}

ChildClass::bar(); // Ката: Call to undefined method ChildClass::foo()

Ата-энесинин классынын методун чакыруу үчүн parent::foo() же static::foo() колдонуш керек, эгер кеч статикалык байланыш керек болсо.