2011-06-10 17 views
0

所以我有這些:如何進去的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。如何在函數內獲得5個預定義的$ timeframe值?

回答

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,但仍然工作。

+0

它返回了一個警告:警告:在 – baby 2011-06-10 05:09:24

+0

中filter_where()缺少參數2這是正確的:現在應該傳遞第二個參數。 – Nemoden 2011-06-10 05:10:52

+0

如何傳遞第二個參數? – baby 2011-06-10 05:13:52

相關問題