Как запустить вместо одной функции другую? PHP: class A { function addComment() { идет код добавления... } } class B { function addMail() { ... } } $primer = new A(); $primer->addComment() Как сделать так чтобы при запуске функции А->addComment() выполнился не код этой функции а запустилась функция из другого класса B->addMail()?
Обзервер же не подойдет? Он же может только уведомить только о том что произошло событие (запущена функция)? --- Добавлено --- Какую функцию запускать выбирается автоматически либо оригинал либо другая функция. Делаю аля систему плагинов, плагин регистрируется вместо какой функции ему запуститься.
вы похоже пытаетесь сделать что то похожее на интерфейсы (interface)? поищите тут на форуме надавно был вопрос про них ....
Автор, а теперь давай с самого начала. Какую проблему пытаешься решить? А то на лицо "проблема X-Y". Именно проблему изначальную, а не то, как ты ее пытаешься решать.
Я пытаюсь создать систему плагинов. т.е. ели плагин регистрируется вместо какой функции (указывается вместо какой) должна выполниться именно функция из плагина.
Имя функции можно записать в переменную, и использовать переменую для вызова функции PHP: $var = "myFunc"; $var();
Окей, осваивай делегаты. В PHP они представлены в виде Closure-объектов. То есть объекты-функции, как в JS. Их можно присваивать переменным как значения. Меняешь значение такой переменной - меняешь то, что будет вызвано: PHP: <?php $call_me = null; $first_closure = function(){ echo 'First!<br>'; }; $second_closure = function(){ echo 'Second!<br>'; }; //Присваиваем первый Closure переменной $call_me и вызываем ее $call_me = $first_closure; $call_me(); //Теперь заменяем на второй и вызываем $call_me = $second_closure; $call_me(); //Вуаля! "точка вызова" одна, результаты разные.
https://php.ru/forum/threads/interface-class.64494/ это ? дык интеры чтобы прогеры не ошибались, а когда один кодишь на* они не нужны