所以我有这些:
echo ('timeframe1:');echo ($timeframe);
function filter_where($where = '') {
echo ('timeframe2:');echo ($timeframe);
$where .= " AND post_date > '" . date('Y-m-d', strtotime("-$timeframe days")) . "'";
return $where;
}
echo ('timeframe3:');echo ($timeframe);
以上代码的结果是:
timeframe1: 5
timeframe2:
timeframe3: 5
问题是,如何在函数中获取$ timeframe值?如您所见,回显函数内部的$ timeframe的结果为null。如何在函数内获得预定义的$ timeframe值为5?
答案 0 :(得分:1)
使用GLOBAL
传递函数之外的变量
function filter_where($where = '') {
global $timeframe; // <---- pass it as global
echo ('timeframe2:');echo ($timeframe);
$where .= " AND post_date > '" . date('Y-m-d', strtotime("-$timeframe days")) . "'";
return $where;
}
或者您将传递$timeframe
作为参数调用到您的函数
function filter_where($where = '', $timeframe ) /* here we pass a variable into function */ {
echo ('timeframe2:');echo ($timeframe);
$where .= " AND post_date > '" . date('Y-m-d', strtotime("-$timeframe days")) . "'";
return $where;
}
通话功能:
filter_where('', $timeframe);
它不像GLOBAL
那样干净,但仍然可以使用。