для результатов цикла 0 - ошибка синтаксиса php? - PullRequest
0 голосов
/ 16 января 2011

Почему следующий синтаксис 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 ]

4 голосов
/ 16 января 2011

Вы пропускаете $ в c в for($i=1;$i<c;$i++) => for($i=1;$i<$c;$i++)

и пропускаете $ в i в (floatval(i) / $p); => (floatval($i) / $p);

2 голосов
/ 16 января 2011

Цикл никогда не запускается, поскольку вы сравниваете $i с неопределенной константой c.

Если вы установите error_reporting(E_ALL), вы получите следующее сообщение:

Примечание: использование неопределенной константы c - предполагается 'c' в ...

Следовательно, PHP интерпретирует c как строку 'c', и любое число больше, чем строка (таким образом, $i < c оценивается как ложное).

Измените его на $i < $c.

0 голосов
/ 16 января 2011

Вы должны также изменить цикл for:

for($i=1;$i<c;$i++){ должно быть

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

редактировать: извините, было поздно

0 голосов
/ 16 января 2011

floatval(i) должно быть floatval($i), верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...