我的目标是将字符串中的每个空格“”转换为“%”。
这是我的功能:
<?php
$nazov = "dasa sdas da sd";
$buttonNazov = "";
for($i=0;$i<=strlen($nazov);$i++) {
if($nazov[$i] === " ") {
$buttonNazov .= "%"; // Line# 6
} else {
$buttonNazov .= $nazov[$i]; // Line#12
}
}
echo $buttonNazov;
?>
我收到输出但也有2个错误:
( ! ) Notice: Uninitialized string offset: 15 in C:\wamp\www\test.php on line 6
( ! ) Notice: Uninitialized string offset: 15 in C:\wamp\www\test.php on line 12
dasa%sdas%da%sd
答案 0 :(得分:0)
字符串$ nazov的最后一个索引是$ nazov [strlen($ nazov)-1],所以使用&lt;而不是在循环条件中的&lt; =
for($i=0;$i<strlen($nazov);$i++)
答案 1 :(得分:0)
Offset begins at 0, not at 1; so $i<strlen($nazov) and not $i<=strlen($nazov)
下面是更好的写同样的方式
<?php
$nazov = "dasa sdas da sd";
$buttonNazov = "";
$len = strlen($nazov);
for($i=0; $i<$len; $i++) {
if("" === $nazov[$i]) {
$buttonNazov .= "%";
} else {
$buttonNazov .= $nazov[$i];
}
}
echo $buttonNazov;
?>
$buttonNazov = str_replace(' ', '%', $nazov);