Я не знаю, возможно ли это вообще.
Я полностью осознаю, что если $stringname = 'Rating'
, то $stringname()
будет таким же, как вызов функции Rating()
. Я также знаю, что если $stringname = 'size'
, то ${$stringname}
будет таким же, как $size
. Мои мысли зависят от этих фактов.
Я пытаюсь сделать вызов функции XML для PHP, чтобы вставить результаты функции в некоторый текст.
Два примера этого вызова функции XML:
<Function name="ListCensors">
<Arg name="pginf" />
<Arg value="/Lib:MainPage/child::*[self::Lib:Page or self::Lib:Series]/@rating" />
<Arg value="//Gen:Ratings/Gen:Rating[contains(|InsertList|,@code)]" />
</Function>
и
<Function name="RatingImage">
<Arg value="Web_G" />
<Arg value="m" />
</Function>
Вы заметите, что они имеют разное количество аргументов (RatingImage()
имеет два , в то время как ListCensors()
имеет три), и что первый аргумент для вызова функции ListCensors()
имеет имя атрибута (pginf) вместо значения. Это связано с тем, что хотя значение атрибута передает строку, имя атрибута относится к имени переменной, уже определенной в PHP. Итак, вот PHP, который в настоящее время не работает.
$func = $maintxt_child->getAttribute('name');
$func_arg_els = $maintxt_child->getElementsByTagName('Arg');
$func(for($func_arg_el_num = 0; $func_arg_el_num < $func_arg_els->length; $func_arg_el_num++){
if($fun_arg_els->item($func_arg_el_num)->hasAttribute('value')){
$func_arg_els->item($func_arg_el_num)->getAttribute('value')
} else {
${$func_arg_els->item($func_arg_el_num)->getAttribute('name')}
}
});
То, что я пытаюсь - и не могу - осуществить, - это настроить что-то, где элемент <Function>
может обратитесь к ЛЮБОЙ функции PHP, которую я определил, и l oop через элементы Arg, чтобы отправить правильную информацию этим PHP функциям. Как бы правильно сделать это? Если это невозможно, дайте мне знать, чтобы я мог придумать разные способы ведения дел. Спасибо.