作者 主題: 關於遞回  (閱讀 2038 次)

0 會員 與 1 訪客 正在閱讀本文。

amber80064

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
關於遞回
« 於: 2011-10-11 11:38 »
<?php
$m=$_POST['mm'];
$n=$_POST['nn'];
function multiply($m,$n)
{
   global $m,$n;
   
   if ($n==1)
      $ans=$m;
   else
      $ans=$m+multiply($m,$n-1);
      return $ans;
}
echo multiply($m,$n);
?>
<html>
<body>
<form method="POST" action="ts.php">
   <p>input m <input type="text" name="mm" size="8"></p>
   <p>input n <input type="text" name="nn" size="8"></p>
<input type="submit" value="output">
<input type="reset" value="reset">
</form>
</body>
</html>

$ans=$m+multiply($m,$n-1);我看的書裡面是這樣打
可是只要有multiply($m,$n-1) 這  就不能執行
這邊的用法哪邊有問題

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
Re: 關於遞回
« 回覆 #1 於: 2011-10-11 15:39 »
<?php
$m=$_POST['mm'];
$n=$_POST['nn'];
function multiply($m,$n)
{
   global $m,$n;
   
   if ($n==1)
      $ans=$m;
   else
      $ans=$m+multiply($m,$n-1);
      return $ans;
}
echo multiply($m,$n);
?>
<html>
<body>
<form method="POST" action="ts.php">
   <p>input m <input type="text" name="mm" size="8"></p>
   <p>input n <input type="text" name="nn" size="8"></p>
<input type="submit" value="output">
<input type="reset" value="reset">
</form>
</body>
</html>

$ans=$m+multiply($m,$n-1);我看的書裡面是這樣打
可是只要有multiply($m,$n-1) 這  就不能執行
這邊的用法哪邊有問題


將 global $m,$n; 這行刪掉
既然 $m $n 是當作參數來傳遞
就不要設為 global