Forum Webscript.Ru
Программирование => PHP => Тема начата: Alexandr от 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
Что делать???
-
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 способов решить эту проблему.
-
Точно!!!
Чёт ступил малость.
-
В случае с DOCUMENT_ROOT вообще можно не глобализовать, а использовать getenv(\'DOCUMENT_ROOT\')
-
GotZfild
Ага, а еще можно использовать $_SERVER - который уже глобализован.
Про количество способов я уже писал
:)
-
использовать getenv(\'DOCUMENT_ROOT\')
Пробовал
var $m_rootDir=getenv(\'DOCUMENT_ROOT\')."/tpl";
Не получилось.
Ну я уже всё решил пасибо всем.
class Template {
function Template ($dir="") {
global $DOCUMENT_ROOT;
if ($dir=="") $dir=$DOCUMENT_ROOT."templates/";
Про количество способов я уже писал
Точно!
Просто, что-то поленился малость.
-
$_SERVER
PHP 4.1.0 и выше
Хотя у всех уже давным давно стоит 4.2.1
-
Хотя у всех уже давным давно стоит 4.2.1
Он дырявый.
-
if ($dir=="") $dir=$DOCUMENT_ROOT."templates/";
Кстати, по ходу у тебя в этом месте ошибка. Ты уверен, что тут не $this->dir должно стоять?
З.Ы. Уж сколько раз твердили миру - члены класса должны инициализироваться в конструкторе
-
Ты уверен, что тут не $this->dir должно стоять?
А что это меняет? ..... написал что попало... работает.... кул.....
-
написал что попало... работает.... кул.....
Ээээ.... Ты, случаем, в разработке маздаев не участвовал? ;)
А я это к тому, что если у тебя $dir - это член класса ( в исходном примере он, кажись, $m_rootDir назывался), то нифига ты его не проинициализируешь
-
Ээээ.... Ты, случаем, в разработке маздаев не участвовал?
[off]
Да так прикалываюсь.... Настроение хреновое:
сижу на работе, жара жуткая, похмелье легкое......
Да не плохо погуляли в ночь с пятницы на понедельник.....
[/off]
то нифига ты его не проинициализируешь
Да фиг знает. Я класс Бритвы взял. Работает. А в тонкости переинициализации переменных не вдавался....