如何在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的变体那么干净,但是仍然可以使用。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...