Php 我可以基于数组生成if-else语句吗?

Php 我可以基于数组生成if-else语句吗?,php,arrays,function,modularity,Php,Arrays,Function,Modularity,这是我目前的代码: 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(ph

这是我目前的代码:

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
块添加到代码中


这样做有可能吗?

我不确定是否能让您做到,但下面是如何稍微自动化上述操作的

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

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

不确定我是否能帮到你,但以下是你如何稍微自动化上面的内容

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

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

为什么不能用开关盒来代替?你的目标是什么?当您执行$parts=['id']时,是否要返回handlePromises(identifier_网站)?或者您有一些代码正在读取另一个代码,而该代码将生成另一个代码?@zwitterion Latter为什么不能使用switch case?您的目标是什么?当您执行$parts=['id']时,是否要返回handlePromises(identifier_网站)?或者您有一些代码正在读取另一个代码,而该代码将生成另一个代码?@zwitterion Latter什么是
?有什么介于
之间的意思吗?@MartinAJ不太清楚。我不确定您的实际参数是否只是一个示例,或者您是否为每种情况定义了一个常量(顺便说一句,如果您想更灵活一些,这不是一个好主意)。应该与您现在拥有的匹配。为了符合语法,上面的值缺少一些$s。@Calimero这是基于这个问题。我认为OP有
by
,并且
*\u网站
定义为常量。什么是
?有什么介于
之间的意思吗?@MartinAJ不太清楚。我不确定您的实际参数是否只是一个示例,或者您是否为每种情况定义了一个常量(顺便说一句,如果您想更灵活一些,这不是一个好主意)。应该与您现在拥有的匹配。为了符合语法,上面的值缺少一些$s。@Calimero这是基于这个问题。我认为OP已经被定义为常量。