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

  • Автор темы Автор темы BoTa
  • Дата начала Дата начала

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".

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

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

var $Pr;

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

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

Но вроде нет никакх ограничений на то чтобы создать свойство для классна "на лету":
PHP:
$this->Var = $GLOBALS["Var"];

Так смыл ее передавать в качестве параметра конструктору? Лишние действия, имхо.
 
Автор оригинала: Garret
Красивее, нагляднее, ИМХО.
Ее можно однажды обьявить в классе и использовать в нем, чем передавать ее каждый раз при обращении к классу. Пропадает весь смысл того что переменная глобальная.
 
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-ке.
 
Читай основы 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.
 
Сверху