Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение переменной 
:(
    Опции темы
neznajut
Дата 6.8.2012, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Более правильное название темы: Не костыльное определение переменной 


Доброе время суток,

пытаюсь написать веб по архитектуре MVC в PHP OOP. И меня интересует следующее:

Если-же у меня в фале model.php простой скрипт...
Код

class Model
{
public $menu;

function menuBox()
{
$this->menu_box[] = array();

$this->dbc->query("SELECT kategorie,podkategorie FROM menu_box");
while($v = $this->dbc->assoc())
{
$aa = explode("#",$v["podkategorie"]);
$this->menu[] = array($v["kategorie"] => $aa);
}
}
}

А затем в view (view.php) я хочу выдать переменную $this->menu, должен ли я её в заголовке класса class Model{ $public $menu } определять, даже если я ее использую только один раз? Т.е. не лучше ли её не определять, а использовать обычную переменную вместо объекта (echo $menu)?

Как лучше? 



Спасибо!
PM MAIL ICQ GTalk Jabber   Вверх
MoLeX
Дата 6.8.2012, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



а зачем тебе определять внутреннюю переменную, которая нужная только в конкретном методе?


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
neznajut
Дата 6.8.2012, 13:12 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 16.12.2007

Репутация: нет
Всего: нет



Цитата(MoLeX @ 6.8.2012,  10:48)
а зачем тебе определять внутреннюю переменную, которая нужная только в конкретном методе?

Для ясности. Потому что если я захочу использовать переменную за пределами класса, будет ясно к какому классу она принадлежит.
PM MAIL ICQ GTalk Jabber   Вверх
Sanchezzz
Дата 6.8.2012, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60




Ну подумайте немного если нужно использовать переименую то у вас парочка вариантов 

1 глобальный массивы или глобал переменные ( smile  ))) )

2 либо передавать в область шаблона $this текущего класса где шаблон был вызван в данный момент это у вас модель

3 бинд переменые  (указатели) это когда передаешь адрес переменной а не саму переменую function  foo(  &$arg1 ){ ... } ( этот способ я сам использую между гонением данных между шаблонами. 







--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
krypt3r
Дата 7.8.2012, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 3
Всего: 16



Такой вариант попробуйте:
Код

class Model {
  private $menu;
  // ...
  function getMenu() {
    return $this->menu;
  }
}

И вызывайте этот метод из контроллера, передавайте результат во вьюху.
Цитата

А затем в view (view.php) я хочу выдать переменную $this->menu

Правильно ли я вас понял, вы напрямую передаете переменную из модели во вьюху? Если так, то это не MVC.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.