Проблемы с запуском функции

uliss

Новичок
Может автору это требовалось?
PHP:
$func_name = 'test_func';
$func_name();
Хотя, такой подход удобен при коде управляемом таблицами, а впримере автора я такового не заметил.
 

demongloom

Новичок
$row['zone1']; - что мешает заменить этот кусок собственно на вызов функции напрямую, то есть show_all_news(10)?

Или имя функции в $row['zone1'] меняется каждый раз?
 

uliss

Новичок
Может оно привязано, к определенному событию, и может меняться...
Но автор, видимо, хранит молчание ;)
 

golos81

Новичок
Автор оригинала: uliss
Может автору это требовалось?
PHP:
$func_name = 'test_func';
$func_name();
Хотя, такой подход удобен при коде управляемом таблицами, а впримере автора я такового не заметил.
В поле у меня может хранится несколько названий ф-ий. Для примера я привел одно - $row['zone1'] = show_news(10). Функции, которые хранятся в полях частенько разные. Я предполагал их разбивать explode и затем через массив выводить.

В вашем примере у ф-ии нет входного параметра, а у меня он есть - (10).
 

ksnk

прохожий
а так?
PHP:
function show($s)
{
  if (preg_match('~([^\(]+)\(([^,\)]+)\)~',$s,$m))
    if (is_callable($m[1])) {
      return $m[1]($m[2]);
    }
  return $s ; 
}
show('show_news(10)');
можно понаписать прегов на всё возможное количество параметров
 

uliss

Новичок
Зачем хранить название функции вместе с параметром?
Тут явно ошибка проектирования
 

Фанат

oncle terrible
Команда форума
именно это и пытаются товарищу объяснить.
ну, те, кто поумнее, конечно.
а дурачки старательно пытаются решить его проблему.
 

golos81

Новичок
Автор оригинала: uliss
Зачем хранить название функции вместе с параметром?
Тут явно ошибка проектирования
А если хранить только название ф-ии, будет правильно?
 

lifer

Новичок
А если хранить только название ф-ии, будет правильно?
---
не надо в базе хранить название функции. в базе можешь хранить id новостей например, и передавать их обрабатівающей ф-ции.
 

golos81

Новичок
Автор оригинала: lifer
А если хранить только название ф-ии, будет правильно?
---
не надо в базе хранить название функции. в базе можешь хранить id новостей например, и передавать их обрабатівающей ф-ции.
А как же мне узнать к какой ф-ии какой id относится, ведь у меня их по несколько в поле?
 

Фанат

oncle terrible
Команда форума
lifer
ну что ты всякую фигню пишешь?

golos81
узнать просто.
функция пишется в скрипте. вместе с параметрами.
и никакой базы здесь вообще не надо.
из базы функция возьмёт новости, и всё будет на своём месте
 

golos81

Новичок
Есть ОДИН шаблон страницы с трехколоночной структурой.
Есть таблица, каждая запись которой – это страница. В таблице есть колонки: zone1, zone2, zone3. В колонке zone1 хранятся ф-ии, которые должны строить колонку 1, например, новости, баннер. Подобная ситуация с колонками 2 и 3.

Когда загружается страница, должно происходить следующее:
В шаблон страницы в каждую из колонок загружаются ф-ии из полей zone1…zone3. Не понимаю, каким образом у меня загрузится страница, если я ей никаких ф-ий не передам? Или я нафиг все неправильно спроектировали и надо переделывать?
 

Фанат

oncle terrible
Команда форума
Ты нафиг все неправильно спроектировал и надо переделывать?
Я тебе это говорю уже второй день подряд.

в базе ты должен хранить не имена функций, а имена пхп скриптов, если уж на то пошло.
 

golos81

Новичок
Автор оригинала: Фанат
Ты нафиг все неправильно спроектировал и надо переделывать?
Я тебе это говорю уже второй день подряд.

в базе ты должен хранить не имена функций, а имена пхп скриптов, если уж на то пошло.
а параметры, с которыми они должны выполняться, что с ними?
 

Фанат

oncle terrible
Команда форума
параметры - как обычно.
сколько новостей выводить на странице - из ini файла.
ид новости - из адресной строки сам возьмётся
и так далее.
 

golos81

Новичок
Автор оригинала: Фанат
в базе ты должен хранить не имена функций, а имена пхп скриптов, если уж на то пошло.
А какие в при этом будут преимущества? Не понимаю, что в базе будет show_news(10), что будет show_news.php, потом на странице сделаю require, ведь по сути то же самое...

-~{}~ 08.09.06 15:53:
 

Фанат

oncle terrible
Команда форума
преимущество в том, что база тебе в этом случае вообще не будет нужна.
и не придётся решать все те проблемы, которые перед тобой встают.
преимущество в том, что при возникновении ошибки, ты получишь осмысленное сообщение о ней, а не о том, что где-то произошла какая-то ошибка.
преимущество в том, что у тебя по-человечески будет разделены элементы программы - в скриптах код, в базе данные.
а не так, как у тебя - рулет с винегретом. в сундуке утка, в утке яйцо, в яйце снова сундук. пхп код лезет в базу, достаёт оттуда код, котрый лезет в базу и достаёт оттуда код.
 
Сверху