我目前正在开发一个php框架,我必须存储$_SERVER
,$_GET
,$_POST
等变量......
但是当我调用$GLOBALS["_SERVER"]
时,我得到未定义的索引错误。这是不可能的,因为$_SERVER
是一个预定义的变量..对吗?
但是当我在代码$_SERVER
的开头调用$GLOBALS["_SERVER"]
时,就会定义。
你们都错了我想要使用$ GLOBALS因为以下类,
class Base_Infrastructure{
function __construct(){
$name = '_'.strtoupper(str_replace(__NAMESPACE__."\\","",get_called_class()));
foreach($GLOBALS[$name] as $i => $v){
$this->{$i} = $v;
}
}
private function dispatch(){
$name = '_'.strtoupper(str_replace(__NAMESPACE__."\\","",get_called_class()));
$GLOBALS[$name] = $this;
return true;
}
function get($name){
if(isset($this->{$name})&&!empty($this->{$name})){
return $this->{$name};
}
}
function set($name,$value){
$this->{$name} = $value;
$this->dispatch();
return true;
}
function remove($name){
unset($this->{$name});
$this->dispatch();
return true;
}
}
class Server extends Base_Infrastructure{}
class Post extends Base_Infrastructure{}
class Get extends Base_Infrastructure{}
class Session extends Base_Infrastructure{}
class Cookie extends Base_Infrastructure{
function set($name,$value){
$config = $GLOBALS['CONFIG']['cookie'];
$this->{$name} = $value;
setcookie($name,$value,time()+$config['expire'],$config['path']);
}
function remove($name){
$config = $GLOBALS['CONFIG']['cookie'];
unset($this->{$name});
setcookie($name,null,time()-$config['expire'],$config['path']);
}
}
class Files extends Base_Infrastructure{}
我认为除非我逐一定义每个班级,否则别无他法......
答案 0 :(得分:2)
我找到了! 问题出在php.ini文件中
选项
auto_globals_jit =开 应该是“关闭”
答案 1 :(得分:0)
检查var_dump($GLOBALS)
- 也许你已经在某处覆盖了你的$ GLOBALS。
答案 2 :(得分:0)
使用$ _SERVER并解决问题