我正在尝试设置一个基本的PHP代码,用于扫描数字并计算某些条件的总数。在这里,我说我要添加100到200之间的所有数字,即偶数和5的倍数。为此,我想我可以先将这些数字放入数组中,然后将数组相加。
这样的事情:
<?php
$total = 0;
$naturalNumber = array();
$naturalNumber[] = $i;
while ($i % 2 == 0 && $i % 5 == 0) {
for($i>=100; $i <=200; $i++) {
$naturalNumber[] = $i;
$total = array_sum($naturalNumber);
}
}
echo "<p>$total</p>";
?>
但是发生错误:cannot use [] for reading
,这里是否还有语义问题?
干杯!
答案 0 :(得分:4)
您的for
循环不正确:
for($i>=100; $i <=200; $i++) {
^^
for
的第一个参数应该是一个值的赋值,你没有这样做,你只是测试$i
是否大于100,这不是感。 $i
从未被定义过,因此您有效地尝试迭代(null >= 100) -> 200
- &gt; false -> 200
- &gt; 0 -> 200
。
你想要
for($i = 100; $i <=200; $i++) {
^---note this
代替。
另外while
和for
的嵌套也只是......很奇怪。为什么while
首先出现?您只需要for
循环和if
内部进行各种%
测试。
答案 1 :(得分:0)
作为“@Marc B”Sir先生清楚地解决了这个问题,但我想分享自己的观点。 你也可以这样做,
<?php
$total = 0;
$naturalNumber = array();
//array_push($naturalNumber, $i);
for($i=100; $i <=200; $i++) {
if ($i % 2 == 0 && $i % 5 == 0) {
array_push($naturalNumber, $i);
}
}
$total = array_sum($naturalNumber);
echo "<p>$total</p>";
?>