<?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(( 的情况下计算字符串长度。
输出为
注意:未初始化的字符串偏移量:C:''xampp''htdocs''Neha''ProgramsFromClass''10_reverse_string.php 在第 7
行中的 35 长度 = 35 nahuohC hgniS aheN ma I dlroW olleH
是什么原因导致通知,我该如何摆脱它?
您的循环不正确。在开始使用$length
之前,您递增,并从字符串的末尾运行。因此,您正在测试偏移量,1,2,3,...n
,其中n
是字符串末尾的一个。
而且由于您正在测试不存在的"数组"键,因此无论您如何看待它,您也总是会收到错误,即使您交换了循环类型。
do/while 不是用于此目的的循环。你想要一个普通的while
循环,并改用isset()
:
$length = 0;
while(isset($a[$length])) { $length++; }