Включение функции по имени переменной.

Arxangel

Новичок
Включение функции по имени переменной.

Всем здравствуйте! Без особых прелюдий перейду к делу:
Имеется некий набор самописных функций. Пусть это будут функции
PHP:
 x(), y(), z();
Через _GET передаётся переменная s, которая равна x, y либо z.
Вопрос: как сказать скрипту, что нужно, допустим, при
PHP:
s="x"
вывести функцию x()?
Вариант с
PHP:
 if(s == "x")
- мало подходит, т.к. функций больше чем три, и имеется малая доля вероятности, что некоторые функции мне не будут известны заранее.

Всем спасибо за внимание, просьба ногами не бить если что.
 

DiMA

php.spb.ru
Команда форума
ты не должен хотеть так делать:

$s()

а если сделаешь - будешь идиотом
 

Arxangel

Новичок
Автор оригинала: DiMA
ты не должен хотеть так делать:

$s()

а если сделаешь - будешь идиотом
1. - я о таком варианте даже и не заикаюсь, не то что использовать его.
2. - попрошу без оскорблений.

-~{}~ 18.04.09 12:04:

Автор оригинала: *****
на редкость дебильная идея
Что вам в ней тек не нравится, и как вы можете предложить действовать иначе? Можно, конечно, попытаться подключить по тем-же данным файл с данным названием (x.php, y.php, z.php) но, ИМХО, возни будет столько-же.
 

Фанат

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

-~{}~ 18.04.09 12:06:

подключить по тем-же данным файл с данным названием
O MEIN GOTT!!!
 

Arxangel

Новичок
это элементарно, потому что я не единственный человек в команде, и кому-то может понадобиться внести новую функцию
 

Фанат

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

-~{}~ 18.04.09 12:09:

боже мой, так вас еще и команда целая. и все пишут такое вот?
 

Arxangel

Новичок
Все функции будут многоразовыми, а информатику я и так знаю.
Есть более существенные советы?
 

Фанат

oncle terrible
Команда форума
приведи же скорее пример такой многоразовой функции!
 

Arxangel

Новичок
Вот, маленький пример:
PHP:
function po(){
		$res = mysql_query("SELECT * FROM po");
		if(!$res)
			{
  			echo "Ошибка БД” - ".mysql_error()."<br>";
  			echo $sql;
			exit();
			}

			if($p == 0)
				{
				echo"<table>";
				while($data=mysql_fetch_array($res))
					{
					echo"
						<tr>
						<td>
						<a href=po/".$data[name]." target='_blank'>
						<img src=pr/".$data[name]."  >
						</td>
						<td>
						$data[desc]
						</td>
						</tr>";
					}
					echo"</table>";
				}
}
Скрипт сыроват, но, надеюсь, суть ясна.
 

Фанат

oncle terrible
Команда форума
какая чудесная функция!
и сколько же раз она выполняется в скрипте?
 

Фанат

oncle terrible
Команда форума
не. чудесная - это слабо. Гениальная! Вот достойное определение.
какая стройность! какая логичность!
имя функции - po, имя таблицы в бд - тоже po
представляю, сколько у меня было бы функций по такому принципу

-~{}~ 18.04.09 12:36:

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

pilot911

Новичок
идея изначально неправильная

должны быть общие функции, которые работают непосредственно с БД

и должны быть классы с функциями, которые работают непосредственно со своими данными - эти классы называются моделями, например
 

Arxangel

Новичок
в данном примере все имена переменных, баз, и т.д. упрощены. Да и суть вопроса не в том.
P.S.: я же говорю, скрипт - сырой.

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

-~{}~ 18.04.09 12:41:

pilot911
Наконец я услышал (вернее прочитал) что-то более связное.
 

Фанат

oncle terrible
Команда форума
Ну вот в твоем скрипте, который пишут программисты, функция po() вызывается сколько раз?
 

DiMA

php.spb.ru
Команда форума
function po(){
$res = mysql_query("SELECT * FROM po");
if(!$res)
{
echo "Ошибка БД” - ".mysql_error()."<br>";
echo $sql;
exit();
}

Какой дебилоид писал код? Переменной $sql не существует.

<a href=po/".$data[name]." target='_blank'>
<img src=pr/".$data[name]." >

про htmlspecialchars + ".." не слышал?
 
Сверху