Bir metin değişkenin matematik toplamı mı?

2 Cevap php

Ben bir değişken var ...

$whatever = "5865/100";

Bu, metin değişkendir.

Ben diğer numaraları eklemek ve bir hesaplama yapmak, böylece ben, bu 5865/100 hesaplamak istiyorum.

Sadece "5865" döner gibi number_format, çalışmıyor. Ben 58,65 dönmek istiyorum Oysa

Yapabileceğim ...

$explode=explode("/",$whatever);
if(count($explode)=="2") {
    $whatever = $explode[0]/$explode[1];
}

Ama oldukça dağınık görünüyor. Basit bir yolu var mı?

2 Cevap

PHP ifadesi olarak değerlendirmek, ancak yalnızca basamak ve operatörleri ve boşluk içerir ilk onay ve eğer hataları bastırmak.

if (preg_match('/^[\d\+\-\/\*\s]+$/', $s)) {
  @eval('$result = ' . $s . ';');
}

Sen kod olarak bir dize değerlendirmek için eval işlevini kullanabilirsiniz. Ancak, bunu sadece basit matematik, kendisine iletilen bir şey değil, yürütmek, çünkü bu kod nereden geldiğini olarak dikkatli olmak gerekir. Eğer dize bir matematiksel formül içerdiği bilseydiniz, aşağıdakileri yapabilirsiniz

$answer = 0;
$whatever = "5865/100";

eval ('$answer = ' . $whatever . ';');
print($answer);