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]   

> Без описания
Maskca
Отправлено: 29 Мая, 2011 - 13:36:03
Post Id


Частый гость


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


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




Здравствуйте, есть 2 класса. В одном переменной присваивается некое значение, а второй должен вывести это значение, но у меня что-то не получается, я делаю так:
PHP:
скопировать код в буфер обмена
  1.  
  2. class a{
  3.  
  4. var $data;
  5. function Data() {
  6.        
  7. $this->data="aaa";
  8.  
  9. $getdata = new b;
  10. $getdata->getData();
  11.  
  12. }
  13. }
  14. class b
  15. {
  16. function getData() {
  17. $data = new a; 
  18. echo $data->data;
  19.        
  20. }
  21. }
  22.  
  23. $a = new a;
  24. $a->Data();
  25.  
  26.  


Подскажите, как это исправить?


-----
http://view-tv[dot]ru - Бесплатное телевидение, кино, радио
 
 Top
DeepVarvar Супермодератор
Отправлено: 29 Мая, 2011 - 13:54:47
Post Id



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


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


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




Maskca внутри класса "а" вы создаете новый (другой) экземпляр класса "b", а в том создаете еще один новый экземпляр класса "а" без вызова метода Data...
Естественно переменная пуста..
 
 Top
Maskca
Отправлено: 29 Мая, 2011 - 14:50:31
Post Id


Частый гость


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


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




А как тогда сделать?
Когда еще вызываю метод дата, то не грузится


-----
http://view-tv[dot]ru - Бесплатное телевидение, кино, радио
 
 Top
OrmaJever Модератор
Отправлено: 29 Мая, 2011 - 14:54:37
Post Id



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


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




Нужна исходная задача, вам же не переменые выводить надо? Закатив глазки
Если вызывать метод data из класа Б то это бесконечный цыкл.
(Добавление)
почему например нельзя зделать так
PHP:
скопировать код в буфер обмена
  1. class a{
  2.  
  3. var $data;
  4. function Data() {
  5.        
  6. $this->data="aaa";
  7. return $this->data;
  8.  
  9. }
  10. }
  11. class b
  12. {
  13. function getData() {
  14. $data = new a;  
  15. echo $data->Data();
  16.        
  17. }
  18. }
  19.  
  20. $a = new b;
  21. $a->getData();

есть ещё куча других вариантов


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
EuGen Администратор
Отправлено: 29 Мая, 2011 - 14:58:03
Post Id


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


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


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




"Не грузится" так как, подозреваю, уходит в бесконечную рекурсию.
У Вас есть 2 разных класса, никак не связанных, Вы же хотите, чтобы без передачи параметра один класс сразу же получал свойства второго.
Можете сделать наследование, к примеру. Мне не совсем понятно, зачем для вывода использовать отдельный класс, но все же:
PHP:
скопировать код в буфер обмена
  1.  
  2. class foo
  3. {
  4.    public $data;
  5.    public function Data($data)
  6.    {
  7.       $this->data=$data;
  8.       bar::getData($this->data);
  9.    }
  10. }
  11.  
  12. class bar
  13. {
  14.    public static function getData($data)
  15.    {
  16.       echo($data);
  17.    }
  18. }
  19.  
  20. $foo = new foo();
  21. $foo->Data('baz');
  22.  


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Maskca
Отправлено: 29 Мая, 2011 - 15:06:16
Post Id


Частый гость


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


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




А если допусти переменной data присвоен массив, то как тогда сделать вывод, так как вы показали выводится только первая строка.
(Добавление)
Спасибо, все заработало


-----
http://view-tv[dot]ru - Бесплатное телевидение, кино, радио
 
 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