parent::modified_a();
Когда работаем со статическими методами, то используем parent::
Единственное когда это нужно использовать с методами экземпляра, когда мы пытаемся получить доступ к родительскому методу.
<?php
class A {
static $a = 1;
static function modified_a() {
return self::$a + 10;
}
public function hello() {
echo "Hello <br />";
}
}
class B extends A {
static function attr_test() {
echo parent::$a;
}
static function method_test() {
echo parent::modified_a();
}
public function instance_test() {
// echo $this->hello();
echo parent::hello(); // можно написать и так
}
// Перепишем hello в классе B
public function hello() {
echo "*****";
parent::hello();
echo "*****";
}
}
echo B::$a . "<br />"; // 1
echo B::modified_a() . "<br />"; //11
echo B::attr_test() . "<br />"; // 1
echo B::method_test() . "<br />"; // 11
$object = new B();
$object->instance_test(); // Hello
$object->hello();
/*
Выводит:
*****Hello
*****
*/
?>
Когда работаем со статическими методами, то используем parent::
Единственное когда это нужно использовать с методами экземпляра, когда мы пытаемся получить доступ к родительскому методу.
<?php
class A {
static $a = 1;
static function modified_a() {
return self::$a + 10;
}
public function hello() {
echo "Hello <br />";
}
}
class B extends A {
static function attr_test() {
echo parent::$a;
}
static function method_test() {
echo parent::modified_a();
}
public function instance_test() {
// echo $this->hello();
echo parent::hello(); // можно написать и так
}
// Перепишем hello в классе B
public function hello() {
echo "*****";
parent::hello();
echo "*****";
}
}
echo B::$a . "<br />"; // 1
echo B::modified_a() . "<br />"; //11
echo B::attr_test() . "<br />"; // 1
echo B::method_test() . "<br />"; // 11
$object = new B();
$object->instance_test(); // Hello
$object->hello();
/*
Выводит:
*****Hello
*****
*/
?>
Комментариев нет:
Отправить комментарий