<?
php
class user
implements SplSubject
{
public $lognum;
public $hobby;
protected $observers=
null;
public function __construct(
$hobby)
{
$this->lognum=
rand(1,10
);
$this->hobby=
$hobby;
$this->observers=
new SplObjectStorage();
}
public function login()
{
$this->notify();
//操作session
}
public function attach(SPLObserver
$observer)
{
$this->observers->attach(
$observer);
}
public function detach(SPLObserver
$observer)
{
$this->observers->detach(
$observer);
}
public function notify()
{
$this->observers->
rewind();
while (
$this->observers->
valid()) {
$observer=
$this->observers->
current();
$observer->update(
$this);
$this->observers->
next();
}
}
}
class secrity
implements SPLObserver
{
public function update(SplSubject
$subject)
{
if(
$subject->lognum<3
)
{
echo "这是第".
$subject->lognum."次安全登录"
;
}else
{
echo "这是第".
$subject->lognum."次登录,危险"
;
}
}
}
class ad
implements SPLObserver
{
public function update(SplSubject
$subject)
{
if(
$subject->hobby=="sports"
)
{
echo "台球赛门票预定"
;
}else
{
echo "还是好好学习吧"
;
}
}
}
$user=
new user("study"
);
$user->attach(
new secrity());
$user->attach(
new ad());
$user->
login();
?>
转载于:https://www.cnblogs.com/lizhaoyao/p/5385715.html
相关资源:数据结构—成绩单生成器
转载请注明原文地址: https://win8.8miu.com/read-1499047.html