Zetruger
ivan.chistyakov.name
баг или фича в классах | $this VS self::
почему при создание класса Б и вызове метода из наследуемого класса А происходит следующая вещь, а именно
если метод класса А вызывает другой метод через this, то вызывается метод из класса Б
этож бред какой-то, фактический происходит инъекция во внутреннюю логику класса А и его метода, и никакое это не переопределение
конечно это можно исправить вызывая через self::
или сделать test_qwe протектным или приватным
но черт возьми кто это придумал?
PHP:
<?php
class ca {
function qwe1() { $this->test_qwe(); }
function qwe2() { self::test_qwe(); }
function test_qwe() { echo 'A'; }
}
class cb extends ca {
function test_qwe() { echo 'B'; }
}
$b = new cb;
$b->qwe1();
$b->qwe2();
?>
если метод класса А вызывает другой метод через this, то вызывается метод из класса Б
этож бред какой-то, фактический происходит инъекция во внутреннюю логику класса А и его метода, и никакое это не переопределение
конечно это можно исправить вызывая через self::
или сделать test_qwe протектным или приватным
но черт возьми кто это придумал?