嗯,这是一个非常新手的问题,但找不到合适的关键字来获得答案。
我有一个向量变量 $p。
我想实现这一点:
$n = 5;
$prev = $p[$n--];
$actual = $p[$n];
$next = $p[$n++];
我想要的值应该是:
$prev = 4;
$actual = 5;
$next = 6;
取而代之的是,我得到:
$prev = 5;
$actual = 4;
$next = 4;
我知道我错过了一些东西,但我无法弄清楚。
提前致谢
自己算一下:
$prev = $p[$n - 1];
$actual = $p[$n];
$next = $p[$n + 1];
如果您必须使用递增/递减运算符(出于某种奇怪的原因),您可以使用:
$prev = $p[--$n];
$actual = $p[++$n];
$next = $p[++$n];
请注意,正如 jeremy 指出的那样,您的原始代码失败了,因为递增和递减运算符会修改变量的原始值。
在第一次搜索时:
$prev = $p[$n--]
您正在为下一个操作更改 n 的值,将其减一。在
$next = $p[$n++];
您再次增加它,因此 n 值与开始时相同。你应该按照nickb所说的去做。
您正在内联递增相同的变量,因此:
$n当您这样做时不会保持为 5$n++或$n--,您将值重新分配给$n
$n--= 4,所以现在 $n 是 4,而不是 5 所以$n++是 5,而不是 6