Поддержка Проблемы и решения функции с одинаковыми именами

  • Есть к примеру 2 плагина. В их php файлах есть 2 разные функции с одним именем. Будет ли WP корректно работать при активации обоих плагинов (и сами плагины)?

    • Тема изменена 7 лет, 6 месяцев назад пользователем ☭Gu.
Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Yuri

    (@yube)

    Нет, конечно. В php недопустимо повторное определение функции. Однако, если функции являются методами объектов разных классов, то имена могут совпадать.

    т.е. понимаю так, что при активизации плагинов и старте сайта создается как-бы один виртуальный кусок кода, который отрабатывает и повторы в именах не допустимы?

    еще вопросы.
    1. можно ли определить какую-то переменную(или константу) в началае плагина и ее прибавлять к названию всех функций?
    типа

    const MyAddName='MyNic';
    function My1Func.MyAddName() {...};
    function My2Func.MyAddName() {...};
    // и потом вызывать функции как My1FuncMyNic()
    

    или что-то подобное?

    2. допустим я делаю стандартную заготовку для нескольких плагинов, часть функций у них одинаковая, можно ли эту часть с одинаковыми функциями вынести в отдельный файл и им пользоваться в своих плагинах? типа dll. фича с include наверное не сработает, т.к. файл вставится во все плагины перед компиляцией, что равнозначно одинаковым функциям в топике? как быть?

    • Ответ изменён 7 лет, 6 месяцев назад пользователем ☭Gu.
    • Ответ изменён 7 лет, 6 месяцев назад пользователем ☭Gu.
    Модератор Yuri

    (@yube)

    создается как-бы один виртуальный кусок кода

    не как бы и не виртуальный, а вполне себе полноценный сценарий, который затем и исполняется интерпретатором php.

    можно ли определить какую-то переменную(или константу)

    Можно использовать ООП.

    фича с include наверное не сработает,

    У include есть родственники, позволяющие предотвратить повторное подключение одного и того же файла. Кроме того, можно использовать function_exists(). Также широко практикуется такая штука, как фреймворк для плагинов, в котором определены функции, используемые всем семейством плагинов.

    Если Вы собрались программировать на php, то почему бы Вам не начать с изучения матчасти? Все-таки тут форум по wordpress, а не по php.

    спасибо

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «функции с одинаковыми именами» закрыта для новых ответов.