У меня есть переменная, которая является...
$whatever = "5865/100";
Это - текстовая переменная.
Я хочу, чтобы это вычислило 5865/100, так, чтобы я мог добавить его к другим числам и сделать вычисление.
Number_format не работает, поскольку он просто возвращается "5,865". Принимая во внимание, что я хочу, чтобы это возвратилось 58.65
Я мог сделать...
$explode=explode("/",$whatever);
if(count($explode)=="2") {
$whatever = $explode[0]/$explode[1];
}
Но это кажется довольно грязным. Существует ли более простой путь?
Оценить как выражение PHP, но сначала проверьте, содержит ли оно только цифры, операторы и пробел, и подавите любые ошибки.
if (preg_match('/^[\d\+\-\/\*\s]+$/', $s)) {
@eval('$result = ' . $s . ';');
}
Вы можете использовать функцию eval , чтобы оценить строку как код. Однако вы должны быть осторожны с тем, откуда взялся этот код, потому что он будет выполнять все, что ему передано, а не только простую математику. Если бы вы знали, что ваша строка содержит математическую формулу, вы могли бы сделать следующее
$answer = 0;
$whatever = "5865/100";
eval ('$answer = ' . $whatever . ';');
print($answer);