有一段php代碼模擬鉤子機制
class Ball{
public $people;
public function down(){
echo "ball is downing ";
//注冊事件
$this->people=new Hook();
$this->people->add("man");
$this->people->add("woman");
}
public function do(){
$this->people->exec();
}
}
// 鉤子的定義
class Hook{
private $hooklist = null ;
// 添加
public function add($people){
$this->hooklist[] = new $people();
}
// 觸發(fā)事件
public function exec(){
foreach($this->hooklist as $people){
$people->act();
}
}
}
// 鉤子實現(xiàn)
class man{
public function act(){
echo 'nothing';
}
}
class woman{
public function act(){
echo 'oh my god ';
}
}
$ball = new Ball();
$ball ->down();
$ball ->do();
這里的new $people()是一種什么用法?
沒有這個people類哈
public function add($people){
$this->hooklist[] = new $people();
}
2 回答

茅侃侃
TA貢獻1842條經(jīng)驗 獲得超21個贊
$people = 'man';
,new $people();
相當于new man();
$people = 'woman';
,new $people();
相當于new woman();
- 2 回答
- 0 關(guān)注
- 455 瀏覽
添加回答
舉報
0/150
提交
取消