在用PHP编写类对象时,类中可不可以编写递归函数啊?
我写了一个,?php
class digui
{
  function rev($str)
  {
    if(strlen($str)>0) 
        rev(substr($str,1));
    echo substr($str,0,1);
    return;
  }
}
$d=new digui();
$d->rev('12345');
?>
编译的时候总出现函数求未定义,,,
为什么????????????????

解决方案 »

  1.   

    <?php 
    class digui 

      public function rev($str) 
      { 
        if(strlen($str)>0)  
            $this->rev(substr($str,1)); 
        echo substr($str,0,1); 
        return; 
      } 
    } $d=new digui(); 
    $d->rev('12345'); 
    ?>
      

  2.   

    对象里面要调用方法是需要加$this或self的<?php 
    class digui 

      public function rev($str) 
      { 
        if(strlen($str)>0) 
            //下面这两个都可以 
            //$this->rev(substr($str,1)); 
            self::rev(substr($str,1));
        echo substr($str,0,1); 
        return; 
      } 
    } $d=new digui(); 
    $d->rev('12345'); 
    ?>
      

  3.   

    <?php 
    class digui 

      function rev($str) 
      { 
        if(strlen($str)>0)  
            $this->rev(substr($str,1)); 
        echo substr($str,0,1); 
        return; 
      } 

    $d=new digui(); 
    $d->rev('12345'); 
    ?>