Проблема с классами - это ВЕСЬМА странно

agx

Программер :-)
Проблема с классами - это ВЕСЬМА странно

Странность заключается вот в чем:
У меня есть класс

class test
{
var $atr1='v1';
var $atr2='v2';
function test()
{
$this->$atr1="v1";
$this->$atr2="v2";
echo 'атрибут 1: '.$this->$atr1.'<br/>';
echo 'атрибут 2: '.$this->$atr2.'<br/>';
}
}

Вызов конструктора
$ob= new test();
Генерирует вывод
атрибут 1: v2
атрибут 2: v2

Не подскажете, в чем дело?:confused:

-~{}~ 10.10.04 00:43:

Забыл добавить, PHP v 4.3.0
 

Oscar

Новичок
agx
Не знаю, как именно в PHP конструкторы реализованы, но в каких-то других языках программирования метод с именем класса и есть конструктор.

Наверное и тут так.

-~{}~ 09.10.04 22:48:

agx

Constructors
 

agx

Программер :-)
Дело в том, что тут даже не в конструкторе дело, код

class test
{
var $atr1;
var $atr2;
}

$ob= new test();
$ob->$atr1="v1";
$ob->$atr2="v2";
echo $ob->$atr1.'<br/>'.$ob->$atr2.'<br/>';

генерирует ТО ЖЕ САМОЕ, хотя очевидно, что значения атрибутав заданы различными. Получается какое-то объединение, значение одного атрибута записывается поверх другого!
 

kolemming

Новичок
Сейчас меня опять отцы этого форума начнут критиковать, но вот так надо!


class test
{
var $atr1='v1';
var $atr2='v2';
function test()
{
$this->atr1="v1";
$this->atr2="v2";
echo 'атрибут 1: '.$this->atr1.'<br/>';
echo 'атрибут 2: '.$this->atr2.'<br/>';
}
}


$ob= new test();


Не надо после $this-> знак $ ставить ...
 

agx

Программер :-)
Спасибо!

P.S. Блин, всегда так - надо было внимательнее книжку читать!
 
Сверху