AndreyKl
Новичок
я чего-то недопонимаю в ООП?
вот код... ниже результат. Довольно неожиданный, на мой взгляд.. кто-нибудь, поясните пжл. почему при вызове протектед и приват методов всё работает как "так и надо" ? Я чего-то недопонимаю?
Called constructor with name child
Called constructor with name parent
called publicMethod, className is child
called protectedMethod, name is parent
called _privateMethod, name is parent
вот код... ниже результат. Довольно неожиданный, на мой взгляд.. кто-нибудь, поясните пжл. почему при вызове протектед и приват методов всё работает как "так и надо" ? Я чего-то недопонимаю?
PHP:
class P1 {
private $_sName;
private $_aPar;
private function _privateMethod() {
echo "called _privateMethod, name is {$this->_sName}<br>";
}
protected function protectedMethod() {
echo "called protectedMethod, name is {$this->_sName}<br>";
}
public function __construct( $_sName ) {
echo "Called constructor with name $_sName<br>";
$this->_sName = $_sName;
if( $this->_sName !== 'parent' ) {
$this->_aPar = new P1( 'parent' );
}
}
public function publicMethod() {
echo "called publicMethod, className is {$this->_sName}<br>";
if( $this->_sName !== 'parent' ) {
$this->_aPar->protectedMethod();
$this->_aPar->_privateMethod();
}
}
}
$anO = new P1( 'child' );
$anO->publicMethod();
Called constructor with name parent
called publicMethod, className is child
called protectedMethod, name is parent
called _privateMethod, name is parent