在函数内部创建一个函数到一个类?

时间:2012-07-03 09:41:32

标签: php

我试图创建一些类,我想使用这种语法:

$my = new My();
$my->field()->test('test');

我知道如何做$my->test('test'),这很容易 - 但我不知道如何添加field()属性以便更轻松地理解我的班级代码。

我可以猜到它类似于一个类进入另一个类 - 扩展 - 但我不确定如此,所以如果你知道如何做类似的事情。

我确切地说,这只是为了更好地理解我的班级。我的意思是目的是对这个My类中的函数进行分类。

谢谢:)

2 个答案:

答案 0 :(得分:2)

如果你稍微打破你的PHP,你会明白发生了什么。例如,让我们这样做:

$my->field()->test('test');  

进入(澄清)。

$newObject = $my->field();
$newObject->test('test');

从这里你可以看到方法$ my-> field()的返回实际上是一个对象,你可以调用另一个方法测试。它被称为方法链,有时可能很有用。

这是一个测试用例:

class a{
    public function My(){
        return new b;
    }
}

class b{
    public function foo(){
        echo 'hello bar';
    }
}

$a = new a();
$a->My()->foo();

答案 1 :(得分:0)

为了对方法执行操作,方法需要返回一个对象。

class a {
   public function b($c){
       echo $c;
       return $this;
   }
 }

允许

$d = new a();
$d->b("foo")->b("bar");
$d->b("foo")->b("bar")->b("far")->b("tar");