Имена динамических функций

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

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

function loadMeta($postname){
    add_action( 'init', 'register_post_type_' . $postname );

         //this doesn't work:
   function register_post_type_ . $postname() { 
       //dothis
   }
}

Для фона я пытаюсь создать пользовательские типы сообщений в Wordpress с функцией многократного использования. Таким образом, я могу создавать пользовательские типы сообщений с функцией, подобной той, что указана ниже.

$postname = 'portfolio';
loadMeta($postname);
$postname = 'news';
loadMeta($postname);

Может ли кто-нибудь сказать мне правильный способ сделать это?

Я не знаю crapress, но если вы можете передать метод объекта, то определите метод __call в классе.

AbraCadaver 23.05.2019 17:54

вы не можете, насколько мне известно, создать функцию внутри функции, вам придется передать ее

treyBake 23.05.2019 17:57

тестирование подтверждает, что вы можете объявить функцию... в функции... это нелепо XD

treyBake 23.05.2019 17:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

поэтому я думаю, что вы можете использовать анонимный

function loadMeta($postname){
    add_action( 'init', function() use ($postname) {
...
});

Другие вопросы по теме