2010-04-24 62 views
4

请问任何人请告诉我如何运行这个课程。我收到致命错误:致命错误:调用未定义功能readnumber()在E:\ Program Files文件\ XAMPP \ htdocs中\ numberToWords \ numberToWords.php上线20同时也让输入120问题调用方法在PHP中相同的方法?

<?php 
    class Test 
    { 
     function readnumber($num, $depth) 
     { 
      $num = (int)$num; 
      $retval =""; 

      if ($num < 0) // if it's any other negative, just flip it and call again 

       return "negative " + readnumber(-$num, 0); 
      if ($num > 99) // 100 and above 
      { 
       if ($num > 999) // 1000 and higher 
        $retval .= readnumber($num/1000, $depth+3); 
       $num %= 1000; // now we just need the last three digits 
       if ($num > 99) // as long as the first digit is not zero 
        $retval .= readnumber($num/100, 2)." hundred\n"; 
       $retval .=readnumber($num%100, 1); // our last two digits      
      } 
      else // from 0 to 99 
      { 
       $mod = floor($num/10); 
       if ($mod == 0) // ones place 
       { 
        if ($num == 1) $retval.="one"; 
        else if ($num == 2) $retval.="two"; 
        else if ($num == 3) $retval.="three"; 
        else if ($num == 4) $retval.="four"; 
        else if ($num == 5) $retval.="five"; 
        else if ($num == 6) $retval.="six"; 
        else if ($num == 7) $retval.="seven"; 
        else if ($num == 8) $retval.="eight"; 
        else if ($num == 9) $retval.="nine"; 
       } 
       else if ($mod == 1) // if there's a one in the ten's place 
       { 
        if ($num == 10) $retval.="ten"; 
        else if ($num == 11) $retval.="eleven"; 
        else if ($num == 12) $retval.="twelve"; 
        else if ($num == 13) $retval.="thirteen"; 
        else if ($num == 14) $retval.="fourteen"; 
        else if ($num == 15) $retval.="fifteen"; 
        else if ($num == 16) $retval.="sixteen"; 
        else if ($num == 17) $retval.="seventeen"; 
        else if ($num == 18) $retval.="eighteen"; 
        else if ($num == 19) $retval.="nineteen"; 
       } 
       else // if there's a different number in the ten's place 
       { 
        if ($mod == 2) $retval.="twenty "; 
        else if ($mod == 3) $retval.="thirty "; 
        else if ($mod == 4) $retval.="forty "; 
        else if ($mod == 5) $retval.="fifty "; 
        else if ($mod == 6) $retval.="sixty "; 
        else if ($mod == 7) $retval.="seventy "; 
        else if ($mod == 8) $retval.="eighty "; 
        else if ($mod == 9) $retval.="ninety "; 
        if (($num % 10) != 0) 
        { 
         $retval = rtrim($retval); //get rid of space at end 
         $retval .= "-"; 
        } 
        $retval.=readnumber($num % 10, 0); 
       } 
      } 

      if ($num != 0) 
      { 
       if ($depth == 3) 
        $retval.=" thousand\n"; 
       else if ($depth == 6) 
        $retval.=" million\n"; 
       if ($depth == 9) 
        $retval.=" billion\n"; 
      } 
      return $retval; 
     } 

    } 

    $objTest = new Test(); 

    $objTest->readnumber(120,0); 
    ?> 
+0

奇怪的是,一切似乎都很好...... – Sarfraz 2010-04-24 12:47:02

+0

当然是。但我不知道它是什么问题。 – Fero 2010-04-24 12:48:36

+1

您正在使用该类的'readnumber'函数,而不是在出现'$ this-> readnumber'时尝试此操作。 – Sarfraz 2010-04-24 12:54:28

回答

3

你正在使用readnumber功能的类本身,试试这个,而不是它出现的地方$this->readnumber