final class MyClass {
public $get = array();
public $post = array();
public $cookie = array();
public $files = array();
public $server = array();
public function __construct() {
$_GET = $this->clean($_GET);
$_POST = $this->clean($_POST);
$_COOKIE = $this->clean($_COOKIE);
$_FILES = $this->clean($_FILES);
$_SERVER = $this->clean($_SERVER);
$this->get = $_GET;
$this->post = $_POST;
$this->cookie = $_COOKIE;
$this->files = $_FILES;
$this->server = $_SERVER;
}
public function clean($data) {
if (is_array($data)) {
foreach ($data as $key => $value) {
unset($data[$key]);
$data[$this->clean($key)] = $this->clean($value);
}
} else {
$data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
} return $data;
}
}
用echo回显了相关变量, new 一个 MyClass 后, 又回显一次, 没什么不同啊..就是奇怪,这些网上的代码,经常性了unset一下一些全局变量.
不是很明白.比如$_SERVER里面的,unset之后,再回显,还是跟之前一样的内容啊~
$foo = null;
unset($foo);