<?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->$obj->filter($msg);
}
}
class ensitiveFilter extends messageHandle
{
public function filter($msg)
{
parent::filter($msg);
return '敏感词汇过滤'.$this->message;
}
}
$obj = new htmlFilter(new ensitiveFilter(new setmessage()));
echo $obj -> filter('测试一下');
Warning: Undefined variable $obj in /in/GEn5n on line 35
Warning: Undefined property: htmlFilter::$ in /in/GEn5n on line 35
Fatal error: Uncaught Error: Call to a member function filter() on null in /in/GEn5n:35
Stack trace:
#0 /in/GEn5n(49): htmlFilter->filter('\xE6\xB5\x8B\xE8\xAF\x95\xE4\xB8\x80\xE4\xB8\x8B')
#1 {main}
thrown in /in/GEn5n on line 35
Process exited with code 255.
Notice: Undefined variable: obj in /in/GEn5n on line 35
Notice: Undefined property: htmlFilter::$ in /in/GEn5n on line 35
Fatal error: Uncaught Error: Call to a member function filter() on null in /in/GEn5n:35
Stack trace:
#0 /in/GEn5n(49): htmlFilter->filter('\xE6\xB5\x8B\xE8\xAF\x95\xE4\xB8\x80\xE4\xB8\x8B')
#1 {main}
thrown in /in/GEn5n on line 35
Process exited with code 255.
Output for 7.3.32 - 7.3.33, 7.4.26
Fatal error: Uncaught Error: Call to a member function filter() on null in /in/GEn5n:35
Stack trace:
#0 /in/GEn5n(49): htmlFilter->filter('\xE6\xB5\x8B\xE8\xAF\x95\xE4\xB8\x80\xE4\xB8\x8B')
#1 {main}
thrown in /in/GEn5n on line 35
Process exited with code 255.
Output for 7.0.0 - 7.0.20
Notice: Undefined variable: obj in /in/GEn5n on line 35
Fatal error: Uncaught Error: Cannot access empty property in /in/GEn5n:35
Stack trace:
#0 /in/GEn5n(49): htmlFilter->filter('\xE6\xB5\x8B\xE8\xAF\x95\xE4\xB8\x80\xE4\xB8\x8B')
#1 {main}
thrown in /in/GEn5n on line 35
Process exited with code 255.
Notice: Undefined variable: obj in /in/GEn5n on line 35
Fatal error: Cannot access empty property in /in/GEn5n on line 35
Process exited with code 255.
Output for 5.0.4
Notice: Undefined variable: obj in /in/GEn5n on line 35
Notice: Undefined property: htmlFilter::$ in /in/GEn5n on line 35
Fatal error: Call to a member function filter() on a non-object in /in/GEn5n on line 35
Process exited with code 255.
Output for 5.0.0 - 5.0.3
Notice: Undefined variable: obj in /in/GEn5n on line 35
Notice: Undefined property: htmlFilter::$ in /in/GEn5n on line 35
Fatal error: Call to a member function filter() on a non-object in /in/GEn5n on line 35
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_CLASS in /in/GEn5n on line 2
Process exited with code 255.