LINUX.ORG.RU

В PHP константы и статические поля/методы наследуются?

 


0

1

Классы First,Second,Third. Second наследуется от First, а Third от Second.

Логика такова(предположения):
1)В памяти в объект попадают всё из First
2)Добавляем к предыдущему результату все из Second (перезаписываем если имена свойств и методов совпадают)
3)Добавляем к предыдущему результату все из Third (перезаписываем если имена свойств и методов совпадают)

self же указывает на текущий класс?

class First {
		private const MY_CONST_1 = 'Константа MY_CONST_1 из класса First';
		protected const MY_CONST_2 = 'Константа MY_CONST_2 из класса First';
		public static $test = 'Статическое свойство test из класса First<br>';
}

class Second extends First {
		public function getMyConst(){
			echo 'Вызов метода getMyConst из класса Second<br>';
			echo self::MY_CONST_2 . '<br>';
			echo self::$test . '<br>';
		}
}

class Third extends Second {}

(new Third())->getMyConst();

Ответ на: комментарий от sjinks

Вызов метода getMyConst из класса Second<br>Константа MY_CONST_2 из класса First<br>Статическое свойство test из класса First<br><br>

sjinks ★★★
()

Не забудьте про позднее статическое связывание для статических методов класса.

fman2
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.