我们目前使用以下PHP代码来定位(更改)多个变量。虽然这有效,但有没有办法缩短它?我猜有一个更短的方法,但我们没有任何PHP知识。
if($form_id == 10767){
if($data['element_id'] == 13){
if(empty($data['value'])){
$data['value'] .= '';
}else{
$data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>';
}
}
}
if($form_id == 10767){
if($data['element_id'] == 14){
if(empty($data['value'])){
$data['value'] .= '';
}else{
$data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>';
}
}
}
if($form_id == 10767){
if($data['element_id'] == 16){
if(empty($data['value'])){
$data['value'] .= '';
}else{
$data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>';
}
}
}
if($form_id == 10767){
if($data['element_id'] == 17){
if(empty($data['value'])){
$data['value'] .= '';
}else{
$data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>';
}
}
}
我认为可以将这些element_id组合成一行,而不是单独定位它们,对吧?
这样的事情:
if($data['element_id'] == 13,14,16,17)
我自己尝试过一些事情,但每次出错或打破事情。
先谢谢你。
答案 0 :(得分:2)
您目前多次使用相同的if语句,这是不需要的: 然后你应该查看documentation about "if"和Logical Operators,你会发现如何写“或”:
if($form_id == 10767){
if($data['element_id'] == 13 || $data['element_id'] == 14 || ...etc... ){
if(!empty($data['value'])){
$data['value'] = '<p style="font-size:13px;">'.$data['value'].'</p>';
}
}
}
我还删除了空$data['value'] .= '';
,因为它没有做任何事情。 (注意!
之前的empty()
,这意味着它会验证值 是否为空。)
答案 1 :(得分:2)
如果您将目标加载到数组中,然后我们in_array(needle, haystack)
,则可以轻松将其缩小。
使用三元运算符代替IF,可以进一步减少。
$target_ids = array(13,14,16,17);
if($form_id == 10767){
if( in_array($data['element_id'], $target_ids)) {
$data['value'] = empty($data['value']) ? '' : '<p style="font-size:13px;">'.$data['value'].'</p>';
}
}