IF ELSE中的PHP函数

时间:2016-07-21 09:47:41

标签: php

我试图编写一个调用每个IF语句中的函数的PHP IF / ELSE脚本。虽然以下有效,但我不想复制代码!

任何和所有建议将不胜感激。谢谢。

PHP,尝试1 - update_usermeta已运行,但必须在每个IF语句中复制。

// Group Outputs
if ($group1 > $group2 && $group1 > $group3 && $group1 > $group4 && $group1) {
  $result = '1';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group2 > $group1 && $group2 > $group3 && $group2 > $group4 && $group2) {
  $result = '2';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group3 > $group1 && $group3 > $group2 && $group3 > $group4 && $group3) {
  $result = '3';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group4 > $group1 && $group4 > $group2 && $group4 > $group3 && $group4) {
  $result = '4';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group5 > $group1 && $group5 > $group2 && $group5 > $group3 && $group5) {
  $result = '5';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group6 > $group1 && $group6 > $group2 && $group6 > $group3 && $group6) {
  $result = '6';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group7 > $group1 && $group7 > $group2 && $group7 > $group3 && $group7) {
  $result = '7';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} elseif ($group8 > $group1 && $group8 > $group2 && $group8 > $group3 && $group8) {
  $result = '8';
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
} else {
  echo 'Error';
}

PHP,尝试2 - update_usermeta无效。 @KJaeg

// Update Profile
function update($result){
  echo $result;
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
}

// Group Outputs
if ($group1 > $group2 && $group1 > $group3 && $group1 > $group4 && $group1) {
  update('1');
} elseif ($group2 > $group1 && $group2 > $group3 && $group2 > $group4 && $group2) {
  update('2');
} elseif ($group3 > $group1 && $group3 > $group2 && $group3 > $group4 && $group3) {
  update('3');
} elseif ($group4 > $group1 && $group4 > $group2 && $group4 > $group3 && $group4) {
  update('4');
} elseif ($group5 > $group1 && $group5 > $group2 && $group5 > $group3 && $group5) {
  update('5');
} elseif ($group6 > $group1 && $group6 > $group2 && $group6 > $group3 && $group6) {
  update('6');
} elseif ($group7 > $group1 && $group7 > $group2 && $group7 > $group3 && $group7) {
  update('7');
} elseif ($group8 > $group1 && $group8 > $group2 && $group8 > $group3 && $group8) {
  update('8');
} else {
  echo 'Error';
}

PHP,正常工作 - update_usermeta正常运行。 @JayeshChitroda

// Group Outputs
$result = '';
if ($group1 > $group2 && $group1 > $group3 && $group1 > $group4 && $group1) {
  $result = '1';
} elseif ($group2 > $group1 && $group2 > $group3 && $group2 > $group4 && $group2) {
  $result = '2';
} elseif ($group3 > $group1 && $group3 > $group2 && $group3 > $group4 && $group3) {
  $result = '3';
} elseif ($group4 > $group1 && $group4 > $group2 && $group4 > $group3 && $group4) {
  $result = '4';
} elseif ($group5 > $group1 && $group5 > $group2 && $group5 > $group3 && $group5) {
  $result = '5';
} elseif ($group6 > $group1 && $group6 > $group2 && $group6 > $group3 && $group6) {
  $result = '6';
} elseif ($group7 > $group1 && $group7 > $group2 && $group7 > $group3 && $group7) {
  $result = '7';
} elseif ($group8 > $group1 && $group8 > $group2 && $group8 > $group3 && $group8) {
  $result = '8';
} else {
  echo 'Error';
}

// Update Profile
if (!empty($result)){
  update_usermeta(absint($user_ID),'foo',wp_kses_post('NO'));
  update_usermeta(absint($user_ID),'bar',wp_kses_post($result));
}

2 个答案:

答案 0 :(得分:1)

尝试:

$value = "";
if ($group1 > $group2) {
  $value = 'Value 1';
} elseif ($group2 > $group1) {
  $value = 'Value 2'; 
} elseif ($group3 > $group1) {
  $value = 'Value 3';
}

update_usermeta(absint($user_ID),'purchased',wp_kses_post('NO'));
update_usermeta(absint($user_ID),'value',wp_kses_post($value));

答案 1 :(得分:0)

与@Jayesh Chitroda的解决方案一起,你可以将他的最后两行移到一个函数中(就像你所希望的那样):

function update($val){

 if (!empty($val)){
   echo $val;

   update_usermeta(absint($user_ID),'purchased',wp_kses_post('NO'));
   update_usermeta(absint($user_ID),'value',wp_kses_post($val));
   }
}

然后你可以这样称呼它:

if ($group1 > $group2) {
  update('Value 1');
} elseif ($group2 > $group1) {
  update('Value 2'); 
} elseif ($group3 > $group1) {
  update('Value 3');
}