Что то не получается, вот тут написал но, как обычный класс работает, а как arrayAccess нет
<?php
/*Глобальный контейнер, используется вместо глобальных переменных, более безапасен и удобен*/
/*
*Registry
*/
class Registry implements ArrayAccess{
/*Контейнер*/
private $vars=array();
/*save cont
Удалён array;
Удалён array;
save global*/
function set($key, $var){
if(isset($this->vars[$key])==true){
/*error*/
throw new Expection(\'Unable to set var `\'.$key.\'`. Already set.\');
}
/*save*/
return $this->vars[$key]=$var;
}
/*get cont
Удалён array key
get global*/
function get($key){
if(isset($this->vars[$key])==false){
return null;
}
return $this->vars[$key];
}
/*unset
key->key array unset
unset key*/
function uset($key){
if(isset($this->vars[$key])==false){
/*error*/
return null;
}
uset($this->vars[$key]);
}
/*----function arrayAccess*/
function offsetSet($offset, $value){
$this->set($offset, $value);
}
function offsetGet($offset){
$this->get($offset);
}
function offsetUnset($offset){
$this->unset($offset);
}
function offsetExists($offset){}
/*the end function arrayAccess*/
}
?>
вот так работает
<?php
$registry=new Registry;
$registry->set(\'name\', \'profiwm\');
echo $registry->get(\'name\');
?>
так нет
<?php
$registry= new Registry;
$registry[\'name\']=\'profiwm\';
echo $registry[\'name\'];
?>