Автор Тема: GLOBALS & class\'ы  (Прочитано 3735 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
GLOBALS & class\'ы
« : 26 Июля 2002, 14:41:05 »
Ребята (и девчата), как в классах использовать глобальные переменные?
пишу
class Template {
var $m_rootDir=$GLOBALS[\'DOCUMENT_ROOT\']."/tpl";
.......

Пишет:
Parse error: parse error in d:\\web\\work\\lib\\template.phl on line 3
Fatal error: Cannot instantiate non-existent class: template in d:\\web\\work\\board.php on line 70

Пишу
class Template {
global $DOCUMENT_ROOT;
var $m_rootDir=$DOCUMENT_ROOT.".";

Пишет:
Parse error: parse error, expecting `T_OLD_FUNCTION\' or `T_FUNCTION\' or `T_VAR\' or `\'}\'\' in d:\\web\\work\\lib\\template.phl on line 3
Fatal error: Cannot instantiate non-existent class: template in d:\\web\\work\\board.php on line 70


Что делать???
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
GLOBALS & class\'ы
« Ответ #1 : 26 Июля 2002, 15:22:10 »

class Template
{
var 
$m_rootDir = \'\';

function Template($szRootDir = \'\')
{
GLOBAL $HTTP_SERVER_VARS;

if(empty($szRootDir))
{
$this->m_rootDir = $HTTP_SERVER_VARS["DOCUMENT_ROOT"];
}
else
{
$this->m_rootDir = $szRootDir;
}
}
...
} // }} class

+ еще 999 способов решить эту проблему.
AS IS...

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
GLOBALS & class\'ы
« Ответ #2 : 26 Июля 2002, 15:41:14 »
Точно!!!
Чёт ступил малость.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
GLOBALS & class\'ы
« Ответ #3 : 26 Июля 2002, 15:41:33 »
В случае с DOCUMENT_ROOT вообще можно не глобализовать, а использовать getenv(\'DOCUMENT_ROOT\')
После трех дней без программирования жизнь становится бессмысленной.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
GLOBALS & class\'ы
« Ответ #4 : 26 Июля 2002, 15:47:41 »
GotZfild
Ага, а еще можно  использовать $_SERVER - который уже глобализован.
Про количество способов я уже писал
:)
AS IS...

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
GLOBALS & class\'ы
« Ответ #5 : 26 Июля 2002, 15:59:13 »
Цитировать
использовать getenv(\'DOCUMENT_ROOT\')

Пробовал
var $m_rootDir=getenv(\'DOCUMENT_ROOT\')."/tpl";
Не получилось.

Ну я уже всё решил пасибо всем.

class Template {
function 
Template ($dir="") {
global 
$DOCUMENT_ROOT;
if (
$dir==""$dir=$DOCUMENT_ROOT."templates/";


Цитировать
Про количество способов я уже писал

Точно!
Просто, что-то поленился малость.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Tankist

  • Типа на танке
  • Старожил
  • ****
  • Сообщений: 461
  • +0/-0
  • 2
    • Просмотр профиля
GLOBALS & class\'ы
« Ответ #6 : 26 Июля 2002, 17:06:06 »
Цитировать
$_SERVER

PHP 4.1.0 и выше
Хотя у всех уже давным давно стоит 4.2.1
Удачи

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
GLOBALS & class\'ы
« Ответ #7 : 29 Июля 2002, 09:32:45 »
Цитировать
Хотя у всех уже давным давно стоит 4.2.1

Он дырявый.
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
GLOBALS & class\'ы
« Ответ #8 : 29 Июля 2002, 10:29:59 »
Цитировать
if ($dir=="") $dir=$DOCUMENT_ROOT."templates/";

Кстати, по ходу у тебя в этом месте ошибка. Ты уверен, что тут не $this->dir должно стоять?

З.Ы. Уж сколько раз твердили миру - члены класса должны инициализироваться в конструкторе
TANSTAAFL

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
GLOBALS & class\'ы
« Ответ #9 : 29 Июля 2002, 10:34:58 »
Цитировать
Ты уверен, что тут не $this->dir должно стоять?

А что это меняет? ..... написал что попало... работает.... кул.....
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
GLOBALS & class\'ы
« Ответ #10 : 29 Июля 2002, 10:38:16 »
Цитировать
написал что попало... работает.... кул.....

Ээээ.... Ты, случаем, в разработке маздаев не участвовал? ;)

А я это к тому, что если у тебя $dir - это член класса ( в исходном примере он, кажись, $m_rootDir назывался), то нифига ты его не проинициализируешь
TANSTAAFL

Оффлайн Alexandr

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 865
  • +0/-0
  • 0
    • Просмотр профиля
    • http://gtp.hobi.ru
GLOBALS & class\'ы
« Ответ #11 : 29 Июля 2002, 10:49:42 »
Цитировать
Ээээ.... Ты, случаем, в разработке маздаев не участвовал?

[off]
Да так прикалываюсь....  Настроение хреновое:
сижу на работе, жара жуткая, похмелье легкое......
Да не плохо погуляли в ночь с пятницы на понедельник.....
[/off]
Цитировать
то нифига ты его не проинициализируешь

Да фиг знает. Я класс Бритвы взял. Работает. А в тонкости переинициализации переменных не вдавался....
Kiss my CSS
Pусские gtp gp3 ( midi + tab ) -   - Все для Авто.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28