for循环结果0 - php语法错误?

时间:2011-01-15 21:22:16

标签: php syntax for-loop

为什么以下php语法产生0?注意:所有其他变量都已赋值。

    $p=  $_POST["arate"]/$srate; //A
    $c= $_POST["capacity"];
    $s= 0.0;

    for($i=1;$i<c;$i++){
    $s= (1.0 + $s) * (floatval($i) / $p);
    }
    ?>
    <?php echo $s; ?>

4 个答案:

答案 0 :(得分:4)

$ =&gt;中的c错过了for($i=1;$i<c;$i++) for($i=1;$i<$c;$i++)

$ =&gt;中的i

并且遗失(floatval(i) / $p); (floatval($i) / $p);

答案 1 :(得分:2)

循环永远不会运行,因为您将$i与未定义的常量c进行比较。

如果您设置error_reporting(E_ALL),则会收到以下消息:

  

注意:使用未定义的常量c - 在...中假定为'c'

因此,PHP将c解释为字符串'c',并且任何数字都大于字符串(因此,$i < c的计算结果为false)。

将其更改为$i < $c

答案 2 :(得分:0)

floatval(i)应为floatval($i),对吧?

答案 3 :(得分:0)

你也应该改变你的for循环:

for($i=1;$i<c;$i++){ 应该是

 for($i=1;$i<$c;$i++){

编辑:对不起,已经晚了