0

我不知道如何解释这个问题,所以可能瓷砖不匹配。

    Class a {
       function b{
         return $this;
       }
       function c{
         return $this;
       }
    }

如果我有这样的班级结构,我可以做到

$a = new a();
$a->b()->c();

我想知道我怎样才能知道函数没有像 一样继续$a->b();,然后我返回 $retuslt 而不是 $this。

Class a {
   function b{

     //if not continued
     return $result;

     //if continued
     return $this;

   }
   function c{
     return $this;
   }
}

这可能吗?非常感谢您!!

4

1 回答 1

2

这不可能。你不会知道方法内部对返回做了什么。但是,您可以传递一个返回值,例如:

Class a {
   function b(&$return){
     // do something 
     $return = 'some value';
     return $this;
   }
   function c(){
     return $this;
   }
}



$a = new a();
$a->b($returnFromB)->c();
echo $returnFromB; // 'some value'
于 2013-11-11T02:21:52.390 回答