Как передать значение переменной в функцию в PHP (WordPress) - PullRequest
0 голосов
/ 07 сентября 2011

Хорошо, у меня есть этот код:

//let's say: 
$period = 30;
if (!function_exists('filter_where')) {
    function filter_where($period,$where = '') {
    $where .= " AND post_date > '" . date('Y-m-d', strtotime("-$period days")) . "'";
    return $where;
    }
}
add_filter( 'posts_where', 'filter_where' );

Этот код не работает, поскольку в функции filter_where значение $ period не равно 30.

Как передать значение $ period (равное 30), чтобы я мог использовать его в strtotime ("- $ period days")?

Значение $ period может быть заполнено пользователем, поэтому оно может измениться на другое число, отличное от 30.

Спасибо, прежде чем.

1 Ответ

0 голосов
/ 07 сентября 2011

Вы можете использовать ключевое слово global для импорта переменных из глобального пространства имен.Подробнее читайте здесь: http://php.net/manual/en/language.variables.scope.php

//let's say: 
$period = 30;
if (!function_exists('filter_where')) {
    function filter_where($where = '') {
    global $period;
    $where .= " AND post_date > '" . date('Y-m-d', strtotime("-$period days")) . "'";
    return $where;
    }
}
add_filter( 'posts_where', 'filter_where' );

РЕДАКТИРОВАТЬ: я удалил переменную $ period из объявления вашей функции

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