目前共有2篇帖子。 內容轉換:不轉換▼
 
點擊 回復
295 1
PHP5.4中的trait語句可以支持類的多重繼承
一派護法 十九級
1樓 發表于:2016-7-6 22:59
<?php
trait student {
    public $name;
    public function say() {
        printf('I\'m %s. ', $this->name);
    }
    
    public function eat() {
        printf('<br>%s', __TRAIT__);
    }
}

trait person {
    public $age;
    public $birthday;
    
    public function eat() {
        echo '<br>I don\'t like eating.';
    }
}

trait animal {
    public function eat() {
        echo '<br>What?';
    }
}

class super {
    use student, person, animal {
        student::say as private _say;
        student::eat insteadof person, animal;
    }
    public function say() {
        $this->_say();
        printf('<br>I\'m %d years old. ', $this->age);
    }
}

$s = new super();
$s->name = 'Tom';
$s->age = 15;
$s->say();
$s->eat();
一派護法 十九級
2樓 發表于:2016-7-6 23:00
但是,trait不能用來直接創建對象。
例如不能:
$a = new animal();

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:295 回複數:1
評論數: ?
作者: 巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-7-6 23:00
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。