Yii:什么是行为签名?

时间:2013-08-26 16:19:15

标签: php yii yii-components

yii中行为的签名是什么?这应该是一个函数还是一个类方法? 可以提供示例代码吗?

1 个答案:

答案 0 :(得分:1)

行为没有签名,因为行为旨在将某些函数添加到类中。只有要求是从CBehavior延伸。 Like in wikidocs

class SomeClass extends CBehavior
{
    public function add($x, $y) { return $x + $y; }
}

class Test extends CComponent
{
    public $blah;
}

$test = new Test(); 
// Attach behavior
$test->attachbehavior('blah', new SomeClass);

// Now you can call `add` on class Test
$test->add(2, 5);

但是,从PHP 5.4开始,您可以使用{{3>} 原生 php实现并具有更多功能,例如上面的特征:

// NOTE: No need to extend from any base class
trait SomeClass
{
    public function add($x, $y) { return $x + $y; }
}

class Test extends CComponent
{
    // Will additionally use methods and properties from SomeClass
    use SomeClass;
    public $blah;
}

$test = new Test(); 
// You can call `add` on class Test because of `use SomeClass;`
$test->add(2, 5);

Traits