简单的php如果需要循环帮助需要

时间:2012-03-19 20:39:06

标签: php function

我有这样的功能

function cp_module_ranks_getRank($uid){
        return cp_module_ranks_pointsToRank(cp_getPoints($uid));
    }

它根据我设定的点返回会员等级。 例如,我的设置有

  1. 250 Points = Bronze
  2. 1000 Points = Silver
  3. 2500 Points = Gold
  4. 10000点=钻石
  5. 25000 Points = Platinum
  6. 因此,如果用户有11234个点,那么该函数会将值返回为 Diamond

    现在我想根据这个等级设置一个变量。

    $affdays是变量

    我的意思是这样的

    If user rank is Bronze $affdays = 30
    If user rank is Silver $affdays = 60
    If user rank is Gold $affdays = 90
    If user rank is Diamond $affdays = 180
    If user rank is Platinum $affdays = 360
    Default $affdays = 10
    

    感谢。

4 个答案:

答案 0 :(得分:4)

如何创建数组并查找相应的示例呢?

$rank = 'Bronze';
$rank_days = array(
  'Bronze' => 30,
  'Silver' => 60
  // etc
);

if (array_key_exists($rank, $rank_days)) {
  $affdays = $rank_days[$rank]; // 30
} else {
  $affdays = 10;
}

答案 1 :(得分:4)

您可以使用switch语句:

$user_rank = cp_module_ranks_getRank($id);

switch($user_rank) {
    case 'Bronze':
      $affdays = 30;
      break;
    case 'Silver':
      $affdays = 60;
      break;
    case 'Gold':
      $affdays = 90;
      break;
    case 'Diamond':
      $affdays = 180;
      break;
    case 'Platinum':
      $affdays = 360;
      break;
    default:
      $affdays = 10;
}

答案 2 :(得分:2)

使用switch语句

switch ($user_rank) {
   case "bronze":
      //code
   break;
   case "silver":
      //code
   break;
   default:
      $affdays = 10;
   break;
   //and so on
}

它就像一个带有多个“elseif”的If语句,它运行得更快

答案 3 :(得分:1)

以下代码可以解决这个问题:

    if (cp_module_ranks_getRank($user) === 'Bronze') {
        $affdays = 30;
    } else if (cp_module_ranks_getRank($user) === 'Silver') {
        $affdays = 60;
    } else if (cp_module_ranks_getRank($user) === 'Gold') {

    ...

    } else {
        $affdays = 10;
    }

编辑:switch语句答案远比这个