Intereting Posts
Преобразуйте PNG в JPG и установите прозрачный фон в белый цвет с помощью ImageMagick и PHP Как отобразить строку таблицы mysql как столбец Laravel: невозможно создать файл миграции с командой make: migration Использование переменных $ в preg_replace в PHP Laravel Scheme Builder добавляет auto_increment ко всем целочисленным полям, которые не позволяют Заменить массив php каждый понедельник месяца в PHP PHP API Google Analytics – простой пример Предупреждение при попытке конвертировать временную метку в считываемый формат для каждого экземпляра при циклировании массива Как использовать $ .ajax () для текста поля ввода И загрузка файла? Дисконтный перевод купонов Magento Добавить параметр POST в fb: кнопка входа Форматирование результатов запроса MySQL, как если бы он запускался с консоли Удалить корневой каталог из строки пути каталога – PHP Скрипт для разбора электронных писем для вложений

PHP upcasting object

могу ли я преобразовать объект в его родительский объект?

Пример кода

class ClassA { public function foo(){ echo get_class($this); } } class ClassB extends ClassA { public function foo(){ echo get_class($this); // prints ClassB :) parent::foo(); // prints ClassB / I want ClassA :( } } $B = new ClassB(); $B->foo(); 

возможно ли это в PHP;

В моем сценарии я создаю ClassB, и я хочу переопределить функцию ClassB :: Foo (), чтобы расширить ее поведение, а затем обработать элемент управления до его родительской функции ClassA :: Foo (), но код разбивается, потому что теперь он является объектом класса. Plz не обвиняю меня в том, что «код пахнет», потому что теперь я его уродлив! ClassA из-под контроля … 🙂

Попробуйте использовать __CLASS__ Magic Constant . Он возвращает имя класса, в котором вы сейчас находитесь, независимо от того, какое наследование происходит.