В PHP получить аргументы изнутри файла, вызываемого извне - PullRequest
0 голосов
/ 21 июня 2011

У меня есть функция, которая вызывает файл шаблона и должна проверить аргумент, указанный внутри файла:

Примечание: здесь только сокращенные примеры

Внутри конфигурации.php (в классе) - Редактировать: Следует проверить, является ли $echo true и задано ли оно в шаблоне.

// Edit:
function check_cb()
{
    // The {$echo} is meant to be from inside the template
    if ( $echo === TRUE AND $inside_template === TRUE )
        return $whatever = 'Using {$echo} in a callback & from inside template is not allowed.'

    return $whatever = 'Check: ok';
}

Внутри template.php (был вызван раньше check_cb)

$echo = FALSE;
$args = array(
     'type'         => 'input'
    ,'id'           => 'input_template_UID'
    ,'label'        => 'Input Template Label'
    ,'label_sep'    => false
    ,'opt_name'     => 'abc_xyz'
    ,'value'        => 'test value'
);
example_function( $args, $echo );

Внутри другого класса

Вопрос: Как получить аргументы из файла?Это вообще возможно? Добавление: Я также мог бы изменить example_function(), но в настоящее время у меня нет хороших идей.

1 Ответ

2 голосов
/ 21 июня 2011

Просто добавьте это include_once("template.php"); в начало вашего config.php файла.Также добавьте global $echo; внутри вашей функции check_cb().

Примерно так:

include_once("template.php");
function check_cb()
{
    global $echo;
    // The {$echo} is meant to be from inside the template
    if ( $echo === false )
        return $whatever = 'no'

    return $whatever = 'yes';
}

include_once("template.php") в основном сделает видимыми все ваши функции, переменные от template.php до config.php.Но чтобы использовать переменные, определяемые вне вашей функции, вы должны использовать global keywor.

Для получения дополнительной информации о global use посмотрите здесь и здесь дляinclude_once заявление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...