如何在PHP中更容易地将整数值映射到字符串?

3 php

如何重新考虑以下代码以使其更简洁,更易于维护?

if ($row['vocation'] == 1) $vocation = "sorcerer";
if ($row['vocation'] == 2) $vocation = "druid";
if ($row['vocation'] == 3) $vocation = "paladin";
if ($row['vocation'] == 4) $vocation = "knight";

if ($row['vocation'] == 5) $vocation = "master sorcerer";
if ($row['vocation'] == 6) $vocation = "elder druid";
if ($row['vocation'] == 7) $vocation = "royal paladin";
if ($row['vocation'] == 8) $vocation = "elite knight";
else $vocation = "none";
Run Code Online (Sandbox Code Playgroud)

tho*_*ter 17

我建议使用一个数组,如下所示:

static $vocations = array(
  1 => 'sorceror',
  2 => 'druid',
  3 => 'paladin',
  4 => 'knight',
  5 => 'master sorceror',
  6 => 'elder druid',
  7 => 'royal paladin',
  8 => 'elite knight',
  );

$vocation = 
  isset($vocations[$row['vocation']]) ? $vocations[$row['vocation']] : 'none';
Run Code Online (Sandbox Code Playgroud)