如何解决如何在PHP wordpress中获取函数代码中变量的预定义值
|| 所以我有这些: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?
解决方法
使用
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);
它虽然不像variant2 variant的变体那么干净,但是仍然可以使用。