如果条件X适用,则替换定义的字符

时间:2015-08-23 16:47:26

标签: php

我有以下php行:

define("CITY_NAME", $city->originalCityname);

显示城市名称(例如:"Rome")。

如果originalCityname"Rome"或以" (Italy)"结尾,我想添加"Rome (Italy)",以便它显示"Rome"而不只是m_

我怎样才能在php中实现这个目标?

修改

谢谢大家!如果“罗马”是字符串的一部分怎么样?例如“城镇名称 - 罗马”改为“城镇名称 - 罗马(意大利)”?如果值“ENDS”与“罗马”,我可以添加“(意大利)”吗?再次感谢!

2 个答案:

答案 0 :(得分:1)

定义后不能更改常量。 所以你必须设置一次值:

if($city->originalCityname == "Rome") {
    define("CITY_NAME", $city->originalCityname)." (Italy)";
} else {
    define("CITY_NAME", $city->originalCityname);
}

编辑:如果您需要检查值是否以“罗马”结尾,请使用:

if(substr($city->originalCityname, -4) == "Rome") {
    define("CITY_NAME", $city->originalCityname)." (Italy)";
} else {
    define("CITY_NAME", $city->originalCityname);
}

编辑:如果您需要检查值是以“罗马”或“米兰”(添加意大利)或“伦敦”(添加英国)结束,请使用:

if(substr($city->originalCityname, -4) == "Rome" or substr($city->originalCityname, -5) == "Milan") {
    define("CITY_NAME", $city->originalCityname)." (Italy)";
} elseif(substr($city->originalCityname, -6) == "London") {
    define("CITY_NAME", $city->originalCityname)." (United Kingdom)";
} else {
    define("CITY_NAME", $city->originalCityname);
}

在您要求进一步变化之前,请阅读manual

答案 1 :(得分:1)

你可以这样做:

if($city->originalCityname)
  $city->originalCityname .= '(Italy)';

如果您希望$city->originalCityname包含罗马:

if(strpos($city->originalCityname,'Rome') !== false)
{
    $city->originalCityname .= ' (Italy)';
}