有一段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();
}
// 触发事件
public function exec(){
foreach($this->hooklist as $people){
$people->act();
}
}
}
// 钩子实现
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 回答
![?](http://img1.sycdn.imooc.com/533e4d470001a00a02000200-100-100.jpg)
茅侃侃
TA贡献1842条经验 获得超21个赞
$people = 'man';
,new $people();
相当于new man();
$people = 'woman';
,new $people();
相当于new woman();
- 2 回答
- 0 关注
- 442 浏览
添加回答
举报
0/150
提交
取消