Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > заставить работать математический оператор


Автор: GrafF812 21.5.2010, 22:55
Здравствуйте. У меня вот какой вопрос. Есть такой пример:
Код

$number1= 5;
$number2= 3;
$operator= '*';

$result = $number1.$operator.$number2;
echo $result;


В результате мне нужно получить 15, а не '5*3'. Есть ли такая возможность?

Автор: SickFxck 21.5.2010, 23:39
if / switch

Автор: bars80080 22.5.2010, 00:29
Цитата(SickFxck @  21.5.2010,  23:39 Найти цитируемый пост)
if / switch 

это лучший вариант, то есть перечислить возможные варианты операторов

но можно и так 
Код

$result = eval($number1.$operator.$number2);

Автор: GrafF812 22.5.2010, 16:29
bars80080, спасибо, однако что-то не получается:
Код

$number1= 5;
$number2= 3;
$operator= '*';

eval("\$res=\"\$number1\$operator\$number2\";");


выводит
Код

5*3

Автор: Serkys 22.5.2010, 16:44
Надо убрать экранирование у $operator

Автор: GrafF812 22.5.2010, 17:30
Код

$number1= 5;
$number2= 3;
$operator= '*';

eval("\$res=\"\$number1$operator\$number2\";");
echo $res."<br>";

все равно выводит 5*3

Автор: нуп 22.5.2010, 17:35
Код

$number1= 5;
$number2= 3;
$operator= '*';
eval("\$res=\$number1$operator$number2;");
echo $res."<br>";

Автор: GrafF812 23.5.2010, 19:22
нуп, а у меня получилось даже без экранизации:
Код

$number1= 5;
$number2= 3;
$operator= '*';
eval("$res=$number1$operator$number2;");
echo $res."<br>";

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)