让我们说
$result='first';
当我这样做时:
$result.='second';
我得到'第一秒'而不是'第一秒'。 如何在不添加这个空格的情况下进行连接?
编辑:
这就是代码。它应该将简单的字符串翻译为“飞行员字母表”。
function converting($words){
echo $words;
global $result;
$result='';
for($x=0; $x<strlen($words); $x++){
switch($words{$x}){
case ' ':
$result.=' ';
break;
case 'A':
$result.='Alfa';
break;
case 'B':
$result.='Bravo';
break;
case 'C':
$result.='Charlie';
break;
case 'D':
$result.='Delta';
break;
case 'E':
$result.='Echo';
break;
case 'F':
$result.='Foxtrot';
break;
case 'G':
$result.='Golf';
break;
case 'H':
$result.='Hotel';
break;
case 'I':
$result.='India';
break;
case 'J':
$result.='Juliett';
break;
case 'K':
$result.='Kilo';
break;
case 'L':
$result.='Lima';
break;
case 'M':
$result.='Mike';
break;
case 'N':
$result.='November';
break;
case 'O':
$result.='Oscar';
break;
case 'P':
$result.='Papa';
break;
case 'Q':
$result.='Quebec';
break;
case 'R':
$result.='Romeo';
break;
case 'S':
$result.='Sierra';
break;
case 'T':
$result.='Tango';
break;
case 'U':
$result.='Uniform';
break;
case 'V':
$result.='Victor';
break;
case 'W':
$result.='Whiskey';
break;
case 'X':
$result.='Xray';
break;
case 'Y':
$result.='Yankee';
break;
case 'Z':
$result.='Zulu';
break;
}
}
return $result;
}
该开关还添加了一些我没有定义的情况。它正在添加其他字符,比如'?'要么 '!'如果它们出现在'words'字符串中。
答案 0 :(得分:3)
虽然我无法识别您的问题(其他海报是正确的,您的代码基本上是正确的,问题必须在源字符串中),您可能需要考虑这个更简单的解决方案:
<?php
function phoneticAlphabetTranslation($word) {
$translations = [
' ' => ' ',
'a' => 'Alpha',
'b' => 'Beta',
'c' => 'Charlie',
];
return str_ireplace(array_keys($translations), array_values($translations), $word);
}
echo phoneticAlphabetTranslation('abAC');
$translations
中的每个键都将映射到其提供的字符串中的值。增加了不区分大小写的好处。如果您不希望不区分大小写,请将str_ireplace
替换为str_replace
。
答案 1 :(得分:2)
你的字符串中可能已经有了不可见的空格。
在添加到 $ result 变量
之前,尝试将字符串传递给trim$result = trim('first');
$result .= trim('second');
echo $result;
或者在加入后删除所有空格。
echo str_replace(" ", "", $result)