2017-03-24 6 views
-1

私は私のコードで計算を行うにしようとしていますし、それが関数名は

Fatal error: Function name must be a string on line 3 


function compound_interest($compound_interest, $compound_interest_f, $investment, $interest_rate, $years, $compoundMonthly, $future_value_f, $future_value) { 
    if (isset($compoundMonthly)) { 
     $compoundMonthly = 'Yes'; 
     $compound_interest = ($investment(1 + $interest_rate/12)^(12 * $years) - $investment); 
     $compound_interest_f = '$' . number_format($compound_interest, 2); 
     return $compound_interest_f; 
    } else { 
     $compoundMonthly = 'No'; 
     $future_value = ($future_value + ($future_value * $interest_rate * .01)); 
     $future_value_f = '$' . number_format($future_value, 2); 
     return $future_value_f; 
    } 
} 

のエラーを思い付くだけがその行のコードでは、計算を行うためにしようとしているPHP関数の計算上の文字列でなければなりません。文字列を印刷しません。私はここで行方不明の何か?

+2

'$ investment(1 + $ interest_rate/12)はどのような計算が行われますか?それらの間には算術演算子が必要です。 – Barmar

+3

演算子を使用しないと、 '$ investment'を関数として呼び出そうとしているようです。 – Barmar

+2

また、 '^'はPHPでは指数関数ではないので、 'pow()'関数を呼び出す必要があります。 – Barmar

答えて

1

乗算には*演算子がありません。これがなければ、$investmentを関数として呼び出そうとしていますが、数値が含まれています。そして累乗を行うにはpow()関数を使う必要があります。 ^はビット単位のXORです。

$compound_interest = $investment * pow((1 + $interest_rate/12), 12 * $years) - $investment; 
+0

ありがとう!私は文字通りの数学を考えていました。ハッ!いい答え! – HawkBlade124