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 :: По поводу использования class

 PHP.SU

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


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

> Описание: Хотелось бы уточнить как получить массив из класса
Djin_dj
Отправлено: 04 Августа, 2010 - 12:38:05
Post Id



Частый гость


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


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




есть класс Create_Menu - создает запросы исходя из переданной в него переменной $type в функции формирования запроса происходит вызов следующего класса $NewArray = new Array_Menu($query);
есть класс Array_Menu - создает запросы исходя из переданной в него переменной $query в функции выборки данных из БД с сохранением в переменную $array происходит вызов следующего класа для отображения $NewShow = new Show_Class($array)
соответственно класс Show_Class выводит преобразованные значения $array. То есть выполняет echo $array[x]

Что же мне надо, чтобы выводилось не на печать (echo), а чтобы каким нибудь образом сделать return $array в код скрипта. Причем этот ретурн должен быть выполнен из класса Show_Class без его отображения на экран.
 
 Top
Саныч Модератор
Отправлено: 04 Августа, 2010 - 13:28:43
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Djin_dj пишет:
Что же мне надо, чтобы выводилось не на печать (echo), а чтобы каким нибудь образом сделать return $array в код скрипта.

Ну так и замените echo на return


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Djin_dj
Отправлено: 04 Августа, 2010 - 13:35:35
Post Id



Частый гость


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


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




Саныч пишет:
Ну так и замените echo на return

так в том то и дело что первый класс вызывает второй, второй вызывает третий, и третий выводит результат
в скрипте то я делаю следующим образом:
PHP:
скопировать код в буфер обмена
  1.  
  2. include_once('Menu.Class.php');
  3. $NewMenu = new Menu_Class('Group');
  4.  

то есть этот первый класс создает запрос и отправляет его во второй класс, а второй класс результат передает в третий класс, и если я напишу return в третьем классе то куда он его отретунит во второй!?
 
 Top
Саныч Модератор
Отправлено: 04 Августа, 2010 - 13:39:37
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


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




Djin_dj пишет:
то есть этот первый класс создает запрос и отправляет его во второй класс, а второй класс результат передает в третий класс, и если я напишу return в третьем классе то куда он его отретунит во второй!?

ну по идеи, если ваш третий класс вызывается из второго, то и результат должен прийти во второй... по крайней мере, я это так понимаю...


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
JustUserR
Отправлено: 04 Августа, 2010 - 15:45:17
Post Id



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


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


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




Djin_dj пишет:
То есть этот первый класс создает запрос и отправляет его во второй класс, а второй класс результат передает в третий класс, и если я напишу return в третьем классе то куда он его отретунит во второй!?
Конечно при использовании оператора new не получится одновременно создать требуемый объект и заодно вернуть определенную строку - но вы можете внутри реализации последнего из классов по вызываемой иерархии сделать специальную переменную в которой будет соответствующее сохраняться строковое значение - а в каждом из классов сделать метод который позволяет возвращать определенное получаемое значение И потом когда вам нужно будет получить требуемую строку то вы вызовите метод из экземпляра первого класса - который в свою очередть запустит по цепочке вызов методов из других классов и в конце вернет нужное значение
Примерный PHP-код такого проксирующего метода в промежуточных классах может быть следующим function ret($val) {return $this->inner_obj->ret($val); } - а в самом последнем класса где хранится реальное свойства может быть таким function ret($val) {eval("return \$this->$val"); } Таким образом для получения свойства my_property из самого вложенного класса можно использовать такую конструкцию - $my_property=$NewMenu.ret("my_prorerty")


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB