用PHP

时间:2016-02-12 14:44:30

标签: php arrays

我正在尝试设置一个基本的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,这里是否还有语义问题?

干杯!

2 个答案:

答案 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

代替。

另外whilefor的嵌套也只是......很奇怪。为什么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>";
?>