}
}
}
// 观察者抽象类
class
Observer
implements
SplObserver{
//显示消息提示
public
function
showMessage(SplSubject
$obj
){
$user
=
$obj
->getName();
if
(
$user
==='admin'){
echo
'您好, ',
$user
,'欢迎您进入管理后台<br/>';
}
else
{
echo
"你好, '$user' 你已经被添加到了用户列表<br/>";
}
}
//这是继承父类的抽象方法
public
function
update(SplSubject
$subject
) {}
//显示个人年龄
public
function
showAge(
$name
,
$age
){
echo
"<script>alert('$name 的年龄是: $age')</script>";
}
}
$subject
=
new
Observed();
//生成一个被观察者对象
$observer
=
new
Observer();
//生成一个观察者对象
$subject
->attach(
$observer
);
//把观察者传入到被观察中去
$subject
->setName('张三');
//
调用 setName 方法
/*
*
通过面的 setName
就会调用 $this->notify();
*
通过调用 $this->notify()
就会调用 $observer->showMessage($this)方法,
*
即每个观察者对象的 showMessage($obj)方法;
*/
$subject
->setName('admin');
$subject
->setAge(24);