Php if语句中str_replace的问题
在if语句中使用str_replace时遇到一些问题。我想从输出的文本中删除复数格式 我提供了一个包含在文本输出中的关键字。因此,如果我的关键字的最后一个字符是“s”,我希望从输出中去掉复数字符。例如,如果关键字是“手提包”,我想呼应我爱手提包,而不是我爱手提包。这是我想到的,但它不起作用Php if语句中str_replace的问题,php,if-statement,str-replace,substr,Php,If Statement,Str Replace,Substr,在if语句中使用str_replace时遇到一些问题。我想从输出的文本中删除复数格式 我提供了一个包含在文本输出中的关键字。因此,如果我的关键字的最后一个字符是“s”,我希望从输出中去掉复数字符。例如,如果关键字是“手提包”,我想呼应我爱手提包,而不是我爱手提包。这是我想到的,但它不起作用 <?php $keyword = "handbags"; $string = "I love $keyword's."; $last = substr($keyword, -1); if ($la
<?php
$keyword = "handbags";
$string = "I love $keyword's.";
$last = substr($keyword, -1);
if ($last == "s") {str_replace("'s", "", $string);}
echo $string;
?>
如果$last==s{$string=str_replace's,$string;}str_replace返回一个值,并且不通过引用作用于字符串。您需要将结果分配回字符串:
$string = str_replace("'s", "", $string);
这是正确的变体:
<?php
$keyword = "handbags";
$string = "I love $keyword's.";
$last = substr($keyword, -1);
if ($last == "s") {$string=str_replace("'s", "", $string);}
echo $string;
?>
您还可以使用:
$string = "I love $keyword".(substr($keyword, -1)=="s"?".":"'s.");
为您节省了几行代码:这应该可以做到
$keyword = "handbag";
$string = "I love $keyword";
$string_count = strlen($string)-1;
$string_check = substr($string,$string_count,1);
if($string_check == "s"){
$string = str_replace("s", "'s", $string);
echo "$string.";
}
else {
echo $string."'s.";
}
str_replace返回被替换的值,它不修改$string。因此,您必须执行$string=str\u替换…这里的主要缺陷是。@Tomalak哈哈哈,发现得好!:适合gravatar,所以我会放你走;请注意,除了所有格与复数s之外,这还与各种复数形式(如mices mooses和enything)不同,请参见: