У меня есть иерархия классов, представляющих элементы html. Некоторые из них могут быть несовместимы с некоторыми версиями браузера. Например, холст HTML5 не совместим с Internet Explorer до версии 9. Я хотел бы, чтобы каждый тип элемента мог знать, поддерживаются или не поддерживаются вызывающим браузером. abstract class AbstractView // Base class, doesn't represent anything. { // […]
У меня есть базовый класс A: class A { public static function a() { … } public static function b() { … } } и расширенный класс B class B extends A { public static function a() { … } public static function c() { … } } Я хотел бы иметь возможность вызвать все […]
Мне нужен класс для наследования другого класса. У меня есть статическая функция _init() в базовом классе, и я не хочу, чтобы этот метод был унаследован в производном классе. Я пробовал final ключевое слово, но оно не работает. Что мне делать?
Как вызвать дочернюю функцию из родительской статической функции? В php5.3 существует встроенный метод get_called_class() для вызова метода child из родительского класса. Но мой сервер работает с php 5.1 . Есть ли способ сделать это? Я хочу вызвать его из статической функции. Так что я не могу использовать "$ this" Поэтому я должен использовать ключевое слово […]
<?php class Base { protected static $c = 'base'; public static function getC() { return self::$c; } } class Derived extends Base { protected static $c = 'derived'; } echo Base::getC(); // output "base" echo Derived::getC(); // output "base", but I need "derived" here! ?> Итак, каково лучшее обходное решение?
Можно ли сказать, что статические свойства и методы не могут быть унаследованы в PHP? несколько примеров будут полезны.