PHP,如何通過零捕獲除法?我有一個必須動態(tài)創(chuàng)建的大型數(shù)學(xué)表達式。例如,一旦我解析了“某事”,結(jié)果將是一個字符串,如:"$foo+$bar/$baz";。所以,為了計算該表達式的結(jié)果,我正在使用eval函數(shù)......這樣的事情:eval("\$result = $expresion;");echo "The result is: $result";這里的問題是,有時我會得到錯誤,表示存在除零的錯誤,而且我不知道如何捕獲該異常。我嘗試過這樣的事情:eval("try{\$result = $expresion;}catch(Exception \$e){\$result = 0;}");echo "The result is: $result";要么:try{
eval("\$result = $expresion;");}catch(Exception $e){
$result = 0;}echo "The result is: $result";但它不起作用。那么,如果存在除零值,我怎么能避免我的應(yīng)用程序崩潰?編輯:首先,我想澄清一下:表達式是動態(tài)構(gòu)建的,所以如果分母為零,我不能只評估它。那么......關(guān)于Mark Baker的評論,讓我舉個例子。我的解析器可以構(gòu)建這樣的東西:"$foo + $bar * ( $baz / ( $foz - $bak ) )"解析器逐步構(gòu)建字符串而不用擔心變量的值...所以在這種情況下如果$foz == $bak實際上除以零:$baz / ( 0 )。另一方面,正如皮特建議的那樣,我嘗試過:<?php
$a = 5;$b = 0;if(@eval(" try{ \$res = $a/$b; } catch(Exception \$e){}") === FALSE)
$res = 0;echo "$res\n";?>但它沒有打印任何東西。
PHP,如何通過零捕獲除法?
慕運維8079593
2019-08-28 15:10:06