Классы, свойства и функции...

metton

Guest
Классы, свойства и функции...

Всем привет!
Вопрос на этот раз в следующем.
При написании класса возникла такая проблема: при присвоении свойству класса значения date ("Y-m-d") код с объектом данного класса выдаёт ошибку (что-то там со скобкой связано). Есть предположение, что класс не ест функций. Если даже это так, интересно узнать, с чем это связано.
Спасибо!..
 

.des.

Поставил пиво кому надо ;-)
связано с кривым кодом.
конструкция
PHP:
class A
{
	var $pr="";
}
$a=& new A;
$a->pr=date("Y-m-d");
echo $a->pr;
работает на ура.
 

metton

Guest
Мне просто нужно было, чтобы это было в объявлении класса:
PHP:
class A 
{ 
    var $pr=date("Y-m-d"); 
}
такое не хочет кушать...
Почему?..
 

.des.

Поставил пиво кому надо ;-)
читаем доку
Note: In PHP 4, only constant initializers for var variables are allowed. To initialize variables with non-constant values, you need an initialization function which is called automatically when an object is being constructed from the class. Such a function is called a constructor.
Classes and objects
По русски - делай это в конструкторе.
 

Manowar

Guest
Еще про классы:
1. Есть класс А. Можно ли в методах этого класса использовать переменные которые будут определятся в классах, производных то класса А ?
Сам класс А предполагается сделать корневым и его объект создаваться не будет.
---------------------------------------------
2. Есть класса В со своим конструктором
func B($var1="value1") {.......}
При создании объекта конструктор вызывается автоматически и переменные внутри конструктора инициализируются исходя из var="value1".
Когда я попользую методы с этими переменными могу ли я не разрушая объект вызвать func B($var2) и использовать переменные инициализированные исходя из var=$var2 ?
Или я гоню ?
 

.des.

Поставил пиво кому надо ;-)
1. Можно.. но вот нужно ли?
2. Тоже можно.. но не надо извращений.. сделай метод init и забей на конструктор.
 

shingrus

Guest
Автор оригинала: Manowar
Еще про классы:
1. Есть класс А. Можно ли в методах этого класса использовать переменные которые будут определятся в классах, производных то класса А ?
ты не понимаешь лснов ООП!!!! твой класс будет интерфейсом... переменные , которые ты собираешься использовать, все равно будут объявлены в твоём интерфейсе!
to .des. а зачем забивать на конструктор, он же вроде на то и введён в ооп, чтобы инизиализировать объект!
 

.des.

Поставил пиво кому надо ;-)
согласен, только не все так прозрачно с вызовом конструкторов в пхп. при многоуровневом наследовании конструкторы базовых классов придется вызывать явно.. вообщем на мой взгляд если человек не до конца понимает, что когда вызывается и вызывается ли вообще ему лучше все вызывать явно самому. :)
только из этих соображений.. :)
 

shingrus

Guest
Автор оригинала: .des.
согласен, только не все так прозрачно с вызовом конструкторов в пхп. при многоуровневом наследовании конструкторы базовых классов придется вызывать явно.. вообщем на мой взгляд если человек не до конца понимает, что когда вызывается и вызывается ли вообще ему лучше все вызывать явно самому. :)
только из этих соображений.. :)
понял тебя... да parent::parent_constructor() - это бред..., но это уже офтопик
 

Manowar

Guest
Кокретнее:
Хочу научится работать с XML.
Cоздаю класс корневой в котором будут описаны функции собственно парсера , обработка начальных и конечных элементов и даннах.
А от него уже хочу множить классы в конструкторах которых дано описание XML тегов.
Если можно сделать проще по пожайлуста пожите!
 
Сверху