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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как присвоить результат выполнения функции переменной в классе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Ley4ik_Russia
Отправлено: 23 Апреля, 2012 - 06:20:04
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Март 2011  


Помог: 1 раз(а)




в общем делаю вот так:
Спойлер (Отобразить)


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

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

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


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

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

Ожидаемый результат:


Вот ошибка:
Parse error: syntax error, unexpected '(', expecting ',' or ';' in ...

(Отредактировано автором: 23 Апреля, 2012 - 06:27:02)



-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
EuGen Администратор
Отправлено: 23 Апреля, 2012 - 09:05:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Ley4ik_Russia
В качестве значений, задаваемых по-умолчанию, возможно указывать только константные данные, то есть данные, значение которых определено в момент присвоения. Поэтому функции недопустимы в таких выражениях.
Поэтому - задавайте значение в конструкторе, например так:
PHP:
скопировать код в буфер обмена
  1. function __construct($sDate=null)
  2. {
  3.    $this->Year=isset($sDate)?$sDate:date('Y');
  4. }


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Ley4ik_Russia
Отправлено: 04 Мая, 2012 - 14:29:50
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Март 2011  


Помог: 1 раз(а)




у меня в файл попадает переменная $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 просто должна быть определена в момент вызова объекта?

(Отредактировано автором: 04 Мая, 2012 - 14:31:30)



-----
Ubuntu Server 12.04.2 LTS, Apache2, PHP5, MySQL5
 
 Top
DeepVarvar Супермодератор
Отправлено: 04 Мая, 2012 - 15:05:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




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.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB