繁体   English   中英

PHP,如果其他条件不起作用

[英]php if else condition not working

$user_ip = getenv('REMOTE_ADDR');

$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));

$city = $geo["geoplugin_city"];

$region = $geo["geoplugin_regionName"];

$country = $geo["geoplugin_countryName"];

$continent = $geo["geoplugin_continentCode"];

$continent1 = $continent;

echo "IP: " .$user_ip. "<br>";

echo "City: " .$city. "<br>";

echo "Region: " .$region. "<br>";

echo "Country: " .$country. "<br>";

echo "Continent: " .$continent1. "<br>";

该代码用于获取IP和位置详细信息。

在这里,我的问题是,我正在成为AS,EU,NA,SA等大洲

我需要将AS更改为亚洲,将EU更改为欧洲,将NA更改为北美,将SA更改为南美。 如何为此使用if else条件?

尝试这个 -

switch ($continent1) {
    case "AS":
        $continent1 = 'Asia';
        break;
    case "EU":
        $continent1 = 'Europe';
        break;
    case "NA":
        $continent1 = 'North America';
        break;
    default:
        $continent1 = '';
}

如果数据库中没有此内容,则可以尝试以下操作:

$arr_continent = array('AS'=>'Asia','EU'=>'Europe','NA'=>'North America','SA'=>'South America');
echo "Continent: " .$arr_continent[$continent1]. "<br />";

比switch语句整洁得多! ;)

switch ($continent)
{
    case "AS":
        $continent1 = 'Asia';
        break;
    case "EU":
        $continent1 = 'Europe';
        break;
    case "NA":
        $continent1 = 'North America';
        break;
    // rest of codes
}

Php开关声明

您可以创建函数,而无需使用if / elseswitch语句

<?php 
   function get_continent($continent_name){
      $arr = array(
        "AS" => 'Asia',
        "EU" => 'Europe',
        "NA" => 'North America',
        "SA" => 'South America'
        // and define more keys and value pair of continent short and full name
        );

      return ($arr[$continent_name]!="") ? $arr[$continent_name] : "N/A" ;
   }

   echo get_continent("EU");

   // output - Europe
   ?>

如果您需要一次又一次地执行类似的任务,此代码还将提高重用能力

您可以在$continent1变量上使用switch方法将值替换为所需的值

switch($continent1)
{
    case 'AS':
       echo "Continent: Asia";
      break;
    case 'EU':
       echo "Continent: Europe";
       break;
    case 'NA':
       echo "Continent: North America";
       break;
    case 'SA':
       echo "South America";
       break;
    default:
       echo "nothing matched"
      break;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM