Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-未定义的偏移量_Php_Undefined_Offset - Fatal编程技术网

PHP-未定义的偏移量

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

下面的代码在第5行有未定义的偏移错误。 我不知道为什么会出现这种情况,我已经为此奋斗了大约一个小时。 它说它在for所在的行中,但正如我看到的语法是正确的:/

<?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位数,问题解决了。非常感谢。