как в массиве прописать переменную

Frenk

Guest
как в массиве прописать переменную

Итак, есть класс
class page
var $buttons = array( "$title" => "index.php",
"Новости" => "http://www.xnew.ru",
);

Перед этим инклюдится ф-л с переменными (в зависимости от языка)

Ну вот. Ошибка:
Parse error: parse error, expecting `')'' in x:\home\xnew.ru\firm\classes.cls.php on line 23

23 строка - var $buttons = array( "$title" => "index.php",

т.е. не берет он переменную $title.
Как быть?
 

Verk

Guest
Вроде как правильно тут все, ищи ошибку выше или делай, например, вот так

PHP:
$lang=array();
$lang[$Logout] = 'Logout';
$lang[$Name] = 'Name';
 

tony2001

TeaM PHPClub
PHP:
var $buttons = array( "$title" => "index.php",
"Новости" => "http://www.xnew.ru",
);
запятую во второй строке убери
 

Verk

Guest
запятая вроде как некритична,
попробовал, у меня работает с этой запятой
 

Frenk

Guest
Млин.
Ну н еработает это в классе!
Т.е. если просто в файле, к примеру:
$title='круто';
$buttons = array( $title => "index.php",
"Новости" => "http://www.xnew.ru",
"Соглашения" => "contact.php",
"Связь" => "services.php",
"Представители" => "services.php",
"Приглашаем" => "map.php"

);
То все ОК! Но вот в классе ведь так пишем, т.е. объявляем переменную:
class page
{
var $buttons = array( $title => "index.php",
"Новости" => "http://www.xnew.ru",
"Соглашения" => "contact.php",
"Связь" => "services.php",
"Представители" => "services.php",
"Приглашаем" => "map.php"

);
Ну и т.д., класс пошел.
В этом случае не пашет!!!
 

Verk

Guest
я человек далекий от ООП в PHP, но по теории такие фокусы с переменными нужно через конструктор решать при создании объекта.
 

Frenk

Guest
Хм. Дело в том, что это родительский класс, а все остальные обращаются к нему.
Так вот и хотелось-бы, чтобы объявленные переменные(атрибуты класса) были доступны без лишних телодвижений для последующих классов.
Мысли есть?
 

Frenk

Guest
Да, тормознул я.
Ну, пришлось везде еще и конструктор запускать.
Теперь ОК!
 

tony2001

TeaM PHPClub
стоп.
что еще за переменные в объявлении атрибутов класса ?
...var $buttons = array( $title => "index.php",...
 

Frenk

Guest
Я и говорю - тормознул... Сорри...
Сделал конструктор, который и объявляет все переменные, $buttons в том числе, в зависимости от установленного языка.
 

Verk

Guest
вынеси куда-нибудь из класса объявление массива $buttons (оставь в классе только переменную), а как будешь заводить объект передай конструктору указатель на массив
 

Frenk

Guest
Не экономично. Классов, родителем которых является Page - море.
Лучше в этом родительском сделать конструктор, а при объявлении новых классов его запускать.
Я пока так и сделал.
 
Сверху