Как пример допустим модуль главной страницы обращается к модулю новостей что бы достать последние 10 новостей.
Я рассматриваю как вариант решения,модули основывать на функциях то есть:
function news ($ret=0)
{
//бла бла бла
$mas_new['var1']="Все данные заключать в массивы";
if($ret) {
return $mas_new; //если передаёться параметр к функци отдавать данные
}
else {
include news.tpl; // если без параметра инклудим шаблон и там выводим массив
}
}
как вы относитесь к такому варианту ? меня смущает то что огромное количество данных будет по несколько раз присваиваться новым массивам.
Да и вопрос, что больше создаёт нагрузку массивы или переменные ?
Спустя 17 минут, 51 секунда (26.04.2010 - 10:46) sergeiss написал(а):
А ты не возвращай массивы через return, а передавай как параметр по ссылке. Тогда будет передаваться не объект целиком, а только его адрес (ну, или почти так). И ты не будешь гонять туда-сюда кучу данных.
Спустя 7 минут, 12 секунд (26.04.2010 - 10:53) Gradus написал(а):
return &$mas_new;
Так всмысле ?
$get_news=&news(1);
никогда так не пробывал
Спустя 14 минут, 4 секунды (26.04.2010 - 11:08) Gradus написал(а):
плохой из меня пыхник выше описаное не работает, вот так работает
или так
sergeiss, я тебя правильно понял ?
return $mas_new;
или так
$ret=&$mas_new;
return $ret;
sergeiss, я тебя правильно понял ?
Спустя 2 минуты, 50 секунд (26.04.2010 - 11:10) sergeiss написал(а):
Нифига ты не понял....
$arr=array();
set_param( $arr );
var_dump( $arr );
.....
function set_param( &$a )
{
$a[0]='oskldufjolsjflka';
$a[1]=345;
$a['last']='last string in array';
// return - не надо!!!!
}
Спустя 5 минут, 40 секунд (26.04.2010 - 11:16) Gradus написал(а):
ёшкин батя, во дела Спасибо , спасибо )
Спустя 29 минут, 54 секунды (26.04.2010 - 11:46) DedMorozzz написал(а):
sergeiss, спасибо! Качественная конструкция. Только вот возник вопрос, а в обычной, бытовой ситуации, что быстрее: ретёрн или присвоение(&) ??
Спустя 1 час, 9 минут, 3 секунды (26.04.2010 - 12:55) sergeiss написал(а):
Цитата (DedMorozzz @ 26.04.2010 - 12:46) |
Только вот возник вопрос, а в обычной, бытовой ситуации, что быстрее: ретёрн или присвоение(&) ?? |
Давай думать будем
В случае использования ссылки объект создается до вызова функции, т.е. один раз. Потом только происходит присвоение величины.
В случае возврата параметра будет создан полноценный объект, копия которого будет присвоена переменной на принимающей стороне.
Во втором случае больше операций, и чем сложнее объект, тем дольше будет это всё делаться. Вот только вопрос - насколько эта разница велика, чтобы "париться"? В языке Си, когда делаешь какое-то приложение, критичное по времени исполнения, разница может быть существенно. А на ПХП... Я не уверен, что стОит париться сильно. По крайней мере в случае одной простой переменной (двух, трех...) я точно не заморачиваюсь.
_____________
ДАВАЙ ДЕНЬГИ
R543264623869