<?php
$a = "Hello World I am Neha Singh Chouhan";
$length = 0;
do {
$length++;
}
while ($a[$length] != null);
echo "Length = ".$length."<br/>";
for ($i = $length - 1; $i >= 0; $i--) {
echo $a[$i];
}
?>
尝试计算字符串长度而不使用内置函数strlen()。
输出
注意:未初始化的字符串偏移:第7行的C:\ xampp \ htdocs \ Neha \ ProgramsFromClass \ 10_reverse_string.php中的35 长度= 35 nahuohC hgniS aheN ma ma dlroW olleH
导致通知的原因是什么?如何摆脱它?
答案 0 :(得分:0)
你的循环不正确。您开始使用$length
之前增加,然后运行字符串的结尾。因此,您正在测试偏移量1,2,3,...n
,其中n
是字符串末尾的偏移量。
由于您正在测试一个不存在的“数组”键,无论您如何看待它,即使在交换循环类型之后,您也总是会收到错误。
do / while是 NOT 用于此的循环。您需要简单的while
循环,而是使用isset()
代替:
$length = 0;
while(isset($a[$length])) { $length++; }