Преобразование сторковой переменной

W1
На сайте с 08.06.2010
Offline
13
580

Есть строковая переменная X, ей присвоено значение Y*Z

Необходимо заставить php-машину присвоить ей значение призведения числовых переменных Y и Z.

Может есть функция?

vandamme
На сайте с 30.11.2008
Offline
675
#1

а чем вам Преодразование сторковой переменной не понравилось?

[umka]
На сайте с 25.05.2008
Offline
456
#2
vandamme:
а чем вам Преодразование сторковой переменной не понравилось?

Видимо, при преодразовании часть данных искажается :)

wmv1995:
Есть строковая переменная X, ей присвоено значение Y*Z
Необходимо заставить php-машину присвоить ей значение призведения числовых переменных Y и Z.

Может есть функция?

eval. Только аккуратно.

Лог в помощь!
jokerov
На сайте с 18.07.2008
Offline
102
#3
wmv1995:
Есть строковая переменная X, ей присвоено значение Y*Z
Необходимо заставить php-машину присвоить ей значение призведения числовых переменных Y и Z.

Может есть функция?

Ну есть тут одна функция, shkolotaMultiplication называется.

function shkolotaMultiplication($str,$z,$y){

$str = explode("*", $str);
$strZ = "$".$str[0];
$strY = "$".$str[1];
eval("\$p = \"$strZ\" * \"$strY\";");
return $p;
}

А вызывать так:

shkolotaMultiplication("z*y",10,6); // Вернёт 60
W1
На сайте с 08.06.2010
Offline
13
#4

Спасибо! Разобрался

wmv1995 добавил 13.03.2011 в 14:13

А если формула будет иметь больше действий? Например, A=((B+C)*D)/E

Мне нужна функция для любой формулы.

Может заставить PHP генерировать фрагмент кода и вызывать через eval()?

jokerov
На сайте с 18.07.2008
Offline
102
#5
wmv1995:
Спасибо! Разобрался

wmv1995 добавил 13.03.2011 в 14:13
А если формула будет иметь больше действий? Например, A=((B+C)*D)/E
Мне нужна функция для любой формулы.


$B = 2;
$C = 3;
$D = 4;
$E = 5;
$formula = "A=((B+C)*D)/E;";
$formula = preg_replace("/[a-zA-Z]/i", "\$$0", $formula);
eval($formula);
echo $A;

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий