1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
$filter無法在函數(shù)內(nèi)部訪問。
$filter = new Filter(); //<--- filter is here, in the outer scope
function handleGoodMessage($chatId, $text) {
$report = "Message '".$text."' passed the filters.\nID: ".$filter->getID($text);
//this scope is inside the function, $filter does not exist here
sendMsg($chatId, $report);
}
這在測(cè)試中有效,因?yàn)槟桓姆秶?。你需?filter傳入
- - - 更新 - -
就我個(gè)人而言,我總是依賴注入而不是使用,globals所以我的偏好是重新定義函數(shù),如下所示:
function handleGoodMessage($chatId, $text, $filter) {
$report = "Message '".$text."' passed the filters.\nID: ".$filter->getID($text);
sendMsg($chatId, $report);
}
我可能(冒著讓某些人不安的風(fēng)險(xiǎn))將其getID定義為 a static function,因?yàn)樗]有真正交互任何東西,沒有使用任何成員變量,只是處理一個(gè)字符串并返回它。那么global你可以說,而不是注入它,或者使用它
function handleGoodMessage($chatId, $text) {
$report = "Message '".$text."' passed the filters.\nID: ".Filter::getID($text);
sendMsg($chatId, $report);
}
- 1 回答
- 0 關(guān)注
- 117 瀏覽
添加回答
舉報(bào)