Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как присвоить результат выполнения функции переменной в классе
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Как присвоить результат выполнения функции переменной в классе

Страниц (1): [1]
 

1. Ley4ik_Russia - 23 Апреля, 2012 - 06:20:04 - перейти к сообщению
в общем делаю вот так:
Спойлер (Отобразить)


Нужно для того чтобы если не будет передан параметр функции, она напечатала дефолтное значение:

Спойлер (Отобразить)

Ожидалось что просто выведет:


соответственно если пользователь укажет год, то он будет выведен

Спойлер (Отобразить)

Ожидаемый результат:
Спойлер (Отобразить)


Вот ошибка:
Parse error: syntax error, unexpected '(', expecting ',' or ';' in ...
2. EuGen - 23 Апреля, 2012 - 09:05:47 - перейти к сообщению
Ley4ik_Russia
В качестве значений, задаваемых по-умолчанию, возможно указывать только константные данные, то есть данные, значение которых определено в момент присвоения. Поэтому функции недопустимы в таких выражениях.
Поэтому - задавайте значение в конструкторе, например так:
PHP:
скопировать код в буфер обмена
  1. function __construct($sDate=null)
  2. {
  3.    $this->Year=isset($sDate)?$sDate:date('Y');
  4. }
3. Ley4ik_Russia - 04 Мая, 2012 - 14:29:50 - перейти к сообщению
у меня в файл попадает переменная $var, т.е. я так же не смогу присвоить ее значение переменной класса??
Вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $var = '123';
  3. Class A{
  4. var $qwe = $var;
  5.  
  6. Function __construct{
  7. echo $this->qwe;
  8. }
  9. }
  10.  


или в этом случае переменная $var просто должна быть определена в момент вызова объекта?
4. DeepVarvar - 04 Мая, 2012 - 15:05:54 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $var = '123';
  2.  
  3. class A {
  4.  
  5. private $qwe;
  6.  
  7.   public function setValue($var = null) {
  8.     $this->qwe = !is_null($var) ? $var : "default";
  9.   }
  10.  
  11.   public function getValue() {
  12.     return $this->qwe;
  13.   }
  14.  
  15. }
  16.  
  17. $obj = new A;
  18. $obj->setValue($var);
  19. echo $obj->getValue();
  20. $obj->setValue();
  21. echo $obj->getValue();

(Добавление)
Ley4ik_Russia пишет:
var $qwe
Deprecated и скоро будет вызывать ошибку. Используйте явное указание типа свойства: private, public, potected, static.
Ley4ik_Russia пишет:
Function
Правильнее будет в нижнем регистре: function.

 

Powered by ExBB FM 1.0 RC1