Присваивание свойству класса значение по умолча

BoTa

Новичок
Присваивание свойству класса значение по умолча

Делаю вот так:

PHP:
$GLOBALS["Var"] = 1;

class CName
{
  var $Pr = $GLOBALS["Var"];

  function CName()
  {
   echo $this->Pr;
  }

}
В итоге ругается на строку "var $Pr = $GLOBALS["Var"];": "Parse error: parse error, unexpected T_VARIABLE in z:\home\simcms\www\test\index.php on line 5".

Нельзя делать так?
 

BoTa

Новичок
Автор оригинала: hermit_refined
а чем var $Pr = 1; не подходит?
Если бы небыло смысла использовать глобальную переменную в классе (да еще и в качестве свойства по умолчанию), я бы сдела именно так как вы пишите.

Автор оригинала: Garret
Раз пишет, значит нельзя.
Логично. Придется делать так:
PHP:
..

var $Pr;

..
function Constructor()
{
 $this->Pr = $GLOBALS["Var"];

..
 

hermit_refined

Отшельник
Если бы небыло смысла использовать глобальную переменную в классе
дык я и спрашиваю - какой смысл?..
знаете, что такое "по умолчанию"?
если хотите присваивать значение - передавайте его в конструктор.
 

BoTa

Новичок
Автор оригинала: hermit_refined
дык я и спрашиваю - какой смысл?..
знаете, что такое "по умолчанию"?
если хотите присваивать значение - передавайте его в конструктор.
Зачем передавать в конструктор, когда глобальную переменную можно легко использовать "внутри" класса. Единственное ограничение, как выяснилось выше, это присвоить эту переменную таким образом:
PHP:
var $Var = $GLOBALS["Var"];
Но вроде нет никакх ограничений на то чтобы создать свойство для классна "на лету":
PHP:
$this->Var = $GLOBALS["Var"];
Так смыл ее передавать в качестве параметра конструктору? Лишние действия, имхо.
 

BoTa

Новичок
Автор оригинала: Garret
Красивее, нагляднее, ИМХО.
Ее можно однажды обьявить в классе и использовать в нем, чем передавать ее каждый раз при обращении к классу. Пропадает весь смысл того что переменная глобальная.
 

Гравицапа

elbirret elcno
BoTa
Использование глобальных переменных в подобных случаях является плохим тоном, а также может привести к тому, что подобный код будет трудно поддерживать.
Прочитай какую-нибудь хорошую книгу по ООП и подобные вопросы исчезнут.

если хотите присваивать значение - передавайте его в конструктор.
-~{}~ 21.03.07 23:49:

В итоге ругается на строку "var $Pr = $GLOBALS["Var"];": "Parse error: parse error, unexpected T_VARIABLE in z:\home\simcms\www\test\index.php on line 5".

Нельзя делать так?
Также прочитай раздел мануала по php касательно использования ООП как в 4-ке таки в 5-ке.
 

alexei.lexx

Новичок
Читай основы http://www.php.net/manual/en/language.oop5.basic.php

The default value must be a constant expression, not (for example) a variable, a class member or a function call.
 
Сверху