2017-09-27 92 views
0

這裏是我當前的代碼:我可以根據數組創建if-else語句嗎?

if (by == 'id') { 
    handlePromises(identifier_websites) 

} else if (by == 'name'){ 
    handlePromises(names_websites) 

} else if (by == 'email') { 
    handlePromises(email_websites) 

} else if (by == 'phone') { 
    handlePromises(phone_websites) 
} 

現在我想讓它多一點模塊化(功能)。我的意思是,我要讓上面的整個代碼基於這樣的一個數組:

$parts = ['id', 'name', 'email', 'phone']; 

所以,如果我一個項目添加到該數組,然後自動一個else if塊應該被添加到基於代碼該項目。

這樣做有可能嗎?

+0

爲什麼不能使用開關盒呢? –

+1

你的目標是什麼?當你做$ parts = ['id']時,你想返回handlePromises(identifier_websites)?或者你有一些代碼正在讀取另一個將生成另一個代碼的代碼? – zwitterion

+0

@zwitterion後者 –

回答

3

不知道如果我得到你,但這裏是如何輕鬆地自動化以上。

$parts = [ 
    'id' => identifier_websites, 
    'name' => names_websites, 
    'email' => emails_websites, 
    'phone' => phone_websites 
]; 

foreach ($parts as $cond => $params) { 
    if (by == $cond) { 
     handlePromises($params); 
     break; 
    } 
} 
+0

什麼是''?在<<>'之間有什麼具體的含義? –

+0

@MartinAJ不是。我不確定你的實際參數是否僅僅是一個例子,或者你是否確實爲每個案例定義了一個常數(如果你想變得更加靈活,不是一個好主意)。應該匹配你現在擁有的東西。 – apokryfos

+0

謝謝,upvote –