PHP if-else语句

PHP if-else语句,php,Php,我们有变量$country,它可以给出约50个不同的值 和变量$id 我们应该做的是为与$country值相对应的$id提供一个值,如: if ($country = 'USA') { $id = 'usa_type'; } else if ($country = 'France') { $id = 'france_type'; } else if ($country = 'German') { $id = 'german_type'; } else if ($country = 'Spain'

我们有变量
$country
,它可以给出约50个不同的值

和变量
$id

我们应该做的是为与
$country
值相对应的
$id
提供一个值,如:

if ($country = 'USA') { $id = 'usa_type'; }
else if ($country = 'France') { $id = 'france_type'; }
else if ($country = 'German') { $id = 'german_type'; }
else if ($country = 'Spain') { $id = 'spain_type'; }
...
...
...
else if ($country = 'Urugway') { $id = 'urugway_type'; }
else { $id = 'undefined'; }
else if
语句每次重复,其他数据是典型的

有没有办法缩短代码

比如:


谢谢。

使用
开关
控制结构。这将使您的代码更短


看看你的例子,你可以这样做

$id = strtolower($country) + '_type';

您可以从
$country
创建
$id

$id = strtolower($country) . '_type';
如果首先需要确定
$country
的有效性,请将所有国家/地区放入一个数组中,然后使用确定
$country
是否有效:

$countries = array('USA', 'France', 'Germany', 'Spain', 'Uruguay');
if (in_array($country, $countries)) {
    $id = strtolower($country) . '_type';
}

将所有国家/地区和代码按如下方式放置在数组中:

$countries = array( "0" => array("country_name" => "usa", 
                                 "country_type" => "001" ) ,

                    "1" => array("country_name" => "uae", 
                                 "country_type" => "002" ),

                    -----------------------------
                    -----------------------------

                  );
然后使用循环比较国家名称,然后获取国家id

$country = "usa";

for( $i = 0; $i < count($countries); $i++ ) {
   if( $country == $countries[$i]["country_name"] ){
      $id = $countries[$i]["country_type"];
      break;
   }
}

echo $id;
$country=“美国”;
对于($i=0;$i
或者您可以创建一个数组

$country_to_id = array(
  "USA" => "usa_type",
  "Spain" => "spain_type_or_whatever",
  ....
);
$country_id = (array_key_exists($country,$country_to_id)) ? $country_to_id[$country] : 'undefined';

开关较短?有这么多破绽的陈述?为什么这么重要?有时,如果较短的代码更难理解,而且非常复杂,有可能出现bug,那么使用较长的代码是值得的。
$country_to_id = array(
  "USA" => "usa_type",
  "Spain" => "spain_type_or_whatever",
  ....
);
$country_id = (array_key_exists($country,$country_to_id)) ? $country_to_id[$country] : 'undefined';