我有一個很長的字符串列表稱爲$ stringfilter1 $ stringfilter2等所有的高達$ stringfilter50清理很長的if語句
我有另一個字符串$ reporteremail,我想打一個條件語句,從而方式如果任何$ stringfilter字符串存在於$ reporteremail中,則會執行一些代碼。目前我的代碼看起來像這樣,它的工作原理:
if (stripos($reporteremail, $stringfilter1) !== false || stripos($reporteremail, $stringfilter2) !== false || stripos($reporteremail, $stringfilter3) !== false [...]) {
runcode();
}
雖然這是非常非常長的。我在這裏把它縮短了。
我想知道是否有更乾淨,更有效的方法來做到這一點?
編輯: 我正在爲bug追蹤器寫一個插件。字符串在文本框中的另一頁上輸入。我通過運行看起來像
$t_filter = plugin_config_get('filter1');
$stringfilter1 = string_attribute($t_filter1);
這個功能,我會同意循環訪問數組將是最好的方式來做到這一點。如何將每個新字符串都推送到數組的末尾而無需將該片段寫出超過50次?
這些'$ stringfilterX'變量來自哪裏? –
這對https://codereview.stackexchange.com/會更好嗎? – ThisGuyHasTwoThumbs
您應該考慮重寫$ stringfilterX vars並將它們轉換爲數組以便使它們可迭代。通過使用$$運算符並將for語句從1到N($ pattern =「stringfilter」; for($ i = 1; $ i <= N; $ i ++)遍歷它們和vars, {$ variable_name = $ pattern。$ i; print「value in variable」。$ variable_name。「:」。$$ variable_name;})但是這絕對是恐怖的東西,也是你可以寫的最髒的代碼 –