PHP-未定义的偏移量
下面的代码在第5行有未定义的偏移错误。 我不知道为什么会出现这种情况,我已经为此奋斗了大约一个小时。 它说它在for所在的行中,但正如我看到的语法是正确的:/PHP-未定义的偏移量,php,undefined,offset,Php,Undefined,Offset,下面的代码在第5行有未定义的偏移错误。 我不知道为什么会出现这种情况,我已经为此奋斗了大约一个小时。 它说它在for所在的行中,但正如我看到的语法是正确的:/ <?php function palindrom($broj) { $brojniz=str_split($broj); for ($x=0; $x<3; $x++) { if ($brojniz[$x] != $brojniz[5-$x]) {return;} } return
<?php
function palindrom($broj) {
$brojniz=str_split($broj);
for ($x=0; $x<3; $x++) {
if ($brojniz[$x] != $brojniz[5-$x]) {return;}
}
return($broj);
}
$n=100;
$m=$n;
while ($n<1000) {
while ($m<1000) {
$br=$m*$n;
palindrom($br);
++$m;
}
$m=100;
++$n;
}
?>
但正如我所见,语法是正确的
是的,语法是正确的。但运行时值不是。此语法也正确,但会产生错误:
$x = 1 / 0;
该行正在为数组编制索引:
if ($brojniz[$x] != $brojniz[5-$x])
在该循环中,$x
的值从0到2。因此,您正在编制这样的索引:
if ($brojniz[0] != $brojniz[5])
if ($brojniz[1] != $brojniz[4])
if ($brojniz[2] != $brojniz[3])
这个数组是从0到5的吗?如果没有,则您引用的是未定义的索引。您需要添加检查
键
s是否存在于数组中。它们确实存在,因为$br是6位数。然后打印它们并查看它们是否确实存在。谢谢您的提示。这不是6位数。问题解决了!非常感谢。它从0到5,因为$br是6个字符的数字,所以当我将该字符串转换为数组时,它应该从0开始-5@HrvojeSpajić:你确定吗?该函数的第一个调用是使用100*100
,即10000
。那是五位数。当您调试此程序时,发生错误时,$br
的值是多少?您是对的!这不是5位数,问题解决了。非常感谢。