Проблема в следующем: существует класс PHP: class Reg Implements ArrayAccess{ public $vars = array(); function set($key,$var){ $this->vars[$key]=$var; return true; } function get($key){ if(!isset($this->vars[$key])){ return null; } return $this->vars[$key]; } function remove($key){ unset($this->vars[$key]); } function offsetExists($offset){ return isset($this->vars[$offset]); } function offsetGet($offset){ return $this->get($offset); } function offsetSet($offset, $value){ $this->set($offset, $value); } function offsetUnset($offset){ unset($this->vars[$offset]); } } остальные классы сохраняют его обьект PHP: private $reg; function __construct($reg){ $this->reg = $reg; } при обращении к переменным класса всё нормально, но когда посылаю пост переменную, он не хочет сохранятся PHP: function A(){ if (isset($_POST['text'])){ $this->reg['text'] = $_POST['text']; } Не могу понять куда она девается, кто-нибудь сталкивался с такой проблемой? ?
PHP: function A(){ if (isset($_POST['text'])){ $this->reg['text'] = $_POST['text']; } var_dump($_POST); var_dump($this->reg); покажи результат
PHP: array(1) { ["text"]=> string(3) "123" } object(Reg)#1 (1) { ["vars"]=> array(1) { ["text"]=> int(123)
Я кажется понял, при создании обьекта с таким же именем, старый обьект удаляется? Например: PHP: //файл file.php <?php class C{ public $b; } $a = new C; echo $a->b; ?> //file2.php <?php $a->b = 'abc'; header("Location: file.php"); ?> Ничего не выведет?
$regthis = new Reg; 1. function A($data){ $data = $_POST; 2. if (isset($data['text'])){ 3. $regthis->reg = $data['text']; 4. } если эту функцию пользуешь в классе , обрати внимание на private $reg;