如何在 PHP 中像这样增加变量

ana*_*nam 0 php

我有这个脚本...

//initial value

$fund = 10;
$rebate = 0.01; // constant 1 percent
$maturity = 30; //days

echo '<ul>';
echo '<li>Day1 fund: $' . $fund . '</li>';

//day1 value
$fund = incfund($fund); //should return $10.10
echo '<li>Day2 fund: $' . $fund . '</li>';

//day2 value
$fund = incfund($fund); //should return $10.20
echo '<li>Day3 fund: $' . $fund . '</li>';

//day3 value
$fund = incfund($fund); //should return $10.30
echo '<li>Day4 fund: $' . $fund . '</li>';

echo '</ul>';
//continue increasing the fund value daily until day 30...


//function to increase $fund

function incfund($x){
for($i = 0; $i<=$maturity; $i++){
$newfund = $x + $rebate;
$fund = $newfund;
return $fund;
}
}
Run Code Online (Sandbox Code Playgroud)

目前,如果我运行脚本,它将输出:

Day1 fund: $10
Day2 fund: $10
Day3 fund: $10
Day4 fund: $10
Run Code Online (Sandbox Code Playgroud)

当我真正想输出的是:

Day1 fund: $10.10
Day2 fund: $10.20
Day3 fund: $10.30
Day4 fund: $10.40
...
...
Day30 fund: $13.00
Run Code Online (Sandbox Code Playgroud)

基本上,我想要做的是计算1%的回扣并将其复合到原始基金中,然后继续复合直到到期日。

为什么我不能做我想做的事情可能是什么问题?

Ele*_*ick 5

看看你的代码

function incfund($x){
    for($i = 0; $i<=$maturity; $i++){
        $newfund = $x + $rebate;
        $fund = $newfund;
        return $fund;
    }
}
Run Code Online (Sandbox Code Playgroud)

它的真正作用

function incfund($x){
    return $x+$rebate;
}
Run Code Online (Sandbox Code Playgroud)

你应该改变什么

function incfund($x){
    global $rebate;
    return $x+$rebate;
}
Run Code Online (Sandbox Code Playgroud)

或者

function incfund($x, $rebate){
    return $x+$rebate;
}
Run Code Online (Sandbox Code Playgroud)

并更改视图层

for ($i = 1; $i <= $maturity; $i++, $fund = incfund($fund)) {
    echo '<li>Day'.$i.' fund: $' . $fund . '</li>';
}
Run Code Online (Sandbox Code Playgroud)

但是当你描述你的功能时,你的所有代码应该看起来像

//initial value

$fund = 10;
$rebate_weekdays = 0.01; // constant 1 percent
$rebate_weekend = 0.02; // constant 1 percent
$maturity = 30; //days

echo '<ul>';

// show fund and continue increasing the fund value daily until day 30...
for ($i = 1; $i <= $maturity; $i++) {
    $rebate = (is_it_weekend($i)) ? $rebate_weekend: $rebate_weekdays;
    $curfund = incfund($fund, $i, $rebate);
    echo '<li>Day'.$i.' fund: $' . $curfund . '</li>';
}

echo '</ul>';

//function to calculate current $fund    
function incfund($fund, $x, $rebate){
    return $fund * (1 + $x * $rebate);
}
Run Code Online (Sandbox Code Playgroud)

怎么查当天就可以查到。它只是使用http://php.net/mktimehttp://php.net/date