本人是一个模式学习的新手,学习到装饰模式的时候,我想到了一个问题,我是否可以利用一个属性值$message来对内容进行一些存储,就编下了下面的代码,始终没办法找到原因,我想得到的结果是:html过滤敏感词汇过滤测试一下 但是结果却是html过滤测试一下,于是我就思考是否是没有将$msg存到$message中,但是但是为什么结果又是html过滤测试一下,中断测试也没能找到答案,所以再这里想得到各位的帮助,一起讨论讨论这段代码,<?php abstract class messageDetail { abstract function filter($msg); } class setmessage extends messageDetail { public function filter($msg) { return $msg; } } class messageHandle extends messageDetail { public $message; public $obj; public function __construct($obj) { $this -> obj = $obj; } public function filter($msg) { $this -> message = $msg; } } class htmlFilter extends messageHandle { public function filter($msg) { parent::filter($msg); return 'html过滤'.$this->message; } } class ensitiveFilter extends messageHandle { public function filter($msg) { parent::filter($msg); return '敏感词汇过滤'.$this->message; } } $obj = new htmlFilter(new ensitiveFilter(new setmessage())); echo $obj -> filter('测试一下');
添加回答
举报
0/150
提交
取消