Передача выражения через переменную

KolyaA

Guest
Передача выражения через переменную

Имеется такой код

$expression = "$b[p1]*$b[p0]";

while($b=mysql_fetch_assoc($result))
{
$ID=$b[ID];
$CName[$ID]=$expression;
}

Как сделать чтобы в массив $CName
заносилась не строка "$b[p1]*$b[p0]", а
результат нужного выражения?
 

KolyaA

Guest
Попробовал так не получается
Если рассмотреть пример из PHP Documentation

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

то меня интересует следующее:
Допустим у меня в этом примере $name='3*5'
Как сделать чтобы получить: This is a cup with my 15 in it.
И вообще это возможно?
 

Сергей123

Новичок
Показал бы как пробовал-то...
PHP:
$name = '3*5';
eval("echo $name;"); # 15
eval("\$str = $name*2;"); # 30
echo $str;
 

SiMM

Новичок
KolyaA, а что ты вообще хочешь? Судя по приведённому тобою вначале коду, сдаётся мне, что твою задачу правильнее решать средствами MySQL. Что касается второго примера,
PHP:
eval('$x=3*5;');
echo $x;
но скорее всего задачу можно (и нужно) решить по другому.
 

KolyaA

Guest
Все, Спасибо, я понял в чем дело - надо делать так
eval("\$CName[\$ID]=$expression;");
а я делал так
eval("\$CName[\$ID]=\$expression;");

Насчет того что в данном случае эту задачу можно решить с помощью
MySQL, это правда, но мне было нужно общее решение. Тоже спасибо.
 
Сверху