私は次のコードを持っています:
<?php
function calculate_string( $mathString ) {
$mathString = trim($mathString); // trim white spaces
$mathString = preg_replace("/[^0-9\(\)\+\-\*\/\.]/", "", $mathString);
return eval("return $mathString;");
}
$string1 = " (1 + 1) *3+ (2 + 2)";
echo calculate_string($string1);
$string2 = " (1 + 1) *3+* (2 + 2)";
echo calculate_string($string2);
?>
関数calculate_string()は、文字列でパラメータとして指定された数式を計算する必要があります。string1の最初の呼び出しはうまくいきます。
しかし、どうすれば数学かどうかを検出できます。文字列には数学があります。seconda呼び出しのように構文エラーが発生し、エラーの種類に応じて値を返すか、単純に何も返さない(より良い解決策)?したがって、問題は、数式に構文エラーが含まれている場合の2回目の呼び出しでのparse_errorです。
助けてください。