Ниже приведен код, с которым я работаю.Создание имени функции «на лету» (динамически) - PHP
function my_tab($tabs) {
// the following array will be created dynamically
$colors = array("red", "white", "blue");
foreach ($colors as $value) {
$tabs[$value] = array(
'name' => $value
);
// start creating functions
function content_for_[$value]() {
echo "this is the " .$value. " tab";
}
// stop creating functions
add_action('content_for_'.$value, 'content_for_'.$value);
}
return $tabs;
}
Как вы можете видеть, у меня есть массив, который создается динамически. Для каждого color
мне нужно создать function
. Эти функции привязаны к hooks
, а имена функций - exist
. До сих пор все, что я пытался в течение последних 6 часов приводит к ошибке, аналогичной:
"call_user_func_array() expects parameter 1 to be a valid callback, function 'content_for_green' not found or invalid function name"
Я предполагаю, что вы пытаетесь создать [крюк в Wordpress] (https://codex.wordpress.org/ Function_Reference/add_action)? Если вы подключаетесь к настраиваемому событию, ваш триггер должен передать значение '$ value' в качестве параметра. Я не эксперт Wordpress, но если вы делитесь кодом, который запускает действие, я, вероятно, могу вам помочь с некоторым примером. – RandomSeed
Это то, о чем вы просите? do_action ("content_for _ {$ nav}", $ args); –