1

yiiの動作の特徴は何ですか? これは関数かクラスメソッドか? サンプルコードを提供できますか?

4

1 に答える 1

1

ビヘイビアはクラスに何らかの機能を追加することを目的としているため、ビヘイビアのシグネチャはありません。唯一の要件は、から拡張することですCBehaviorwikidocsのように:

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 以降では、ネイティブのphp 実装であり、より多くの機能を備えたTraitsを使用できます。上記の特徴の例:

// 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);

特性を持つより多くの機能があります

于 2013-08-27T07:59:21.890 に答える