我尝试了以下方法,它似乎不起作用
if ($word[$index] >= 'a' && $word[$index] <= 'z') {
$word[$index] = $word[$index] - 'a' + 'A';
} else if ($word[$index] >= 'A' && $word[$index] <= 'Z') {
$word[$index] = $word[$index] - 'A' + 'a';
}
这里有什么问题吗?达到预期结果的最佳方法是什么?
我尝试了以下方法,它似乎不起作用
if ($word[$index] >= 'a' && $word[$index] <= 'z') {
$word[$index] = $word[$index] - 'a' + 'A';
} else if ($word[$index] >= 'A' && $word[$index] <= 'Z') {
$word[$index] = $word[$index] - 'A' + 'a';
}
这里有什么问题吗?达到预期结果的最佳方法是什么?
看起来你试图颠倒案件?
$word = strtolower($word) ^ strtoupper($word) ^ $word;
如果您想反转字符串中所有字母的大小写,这是一种可能的方法:
$test = 'StAcK oVeЯfLoW';
$letters = preg_split('/(?<!^)(?!$)/u', $test );
foreach ($letters as &$le) {
$ucLe = mb_strtoupper($le, 'UTF8');
if ($ucLe === $le) {
$le = mb_strtolower($le, 'UTF8');
}
else {
$le = $ucLe;
}
}
unset($le);
$reversed_test = implode('', $letters);
echo $reversed_test; // sTaCk OvEяFlOw
如果要更改整个字符串的大小写,请尝试:strtoupper( $string )
或strtolower( $string )
. 如果您只想更改字符串首字母的大小写,请尝试:ucfirst( $string)
或lcfirst( $string )
.
还有str_replace()
, 区分大小写。您可以执行类似str_replace( 'a', 'A', $string );
将所有小写字母“a”替换为大写字母“A”的操作。
您可能想查看php 字符串函数的列表。