如何抑制"除以零"错误并将整个应用程序的结果设置为null ?通过说"对于整个应用程序",我的意思是它不是单个表达式.相反,每当发生"除以零"错误时,结果将自动设置为空,并且不会抛出任何错误.
Igo*_*gor 20
这应该可以解决问题.
$a = @(1/0);
if(false === $a) {
$a = null;
}
var_dump($a);
Run Code Online (Sandbox Code Playgroud)
输出
NULL
Run Code Online (Sandbox Code Playgroud)
请参阅refs here 错误控件.
编辑
function division($a, $b) {
$c = @(a/b);
if($b === 0) {
$c = null;
}
return $c;
}
Run Code Online (Sandbox Code Playgroud)
在任何地方替换1/0函数调用division(1,0).
编辑 - 没有第三个变量
function division($a, $b) {
if($b === 0)
return null;
return $a/$b;
}
Run Code Online (Sandbox Code Playgroud)
简单如..好abc*123-pi
$number = 23;
$div = 0;
//If it's not 0 then divide
if($div != 0)
$result = $number/$div;//is set to number divided by x
}
//if it is zero than set it to null
else{
$result = null;//is set to null
}
Run Code Online (Sandbox Code Playgroud)
作为一个功能
function mydivide($divisior, $div){
if($div != 0)
$result = $divisor/$div;//is set to number divided by x
}
//if it is zero than set it to null
else{
$result = null;//is set to null
}
return $result;
}
Run Code Online (Sandbox Code Playgroud)
像这样使用它
$number = mydivide(20,5)//equals four
Run Code Online (Sandbox Code Playgroud)
我无法想到一种方法来设置它,只要有分区但我会使用该功能并将其重命名为"d"之类的东西,所以它很短!
这是一个可怕的解决方案,但幸运的是,你不会使用它,因为变量设置为false而不是null.
function ignore_divide_by_zero($errno, $errstring)
{
return ($errstring == 'Division by zero');
}
set_error_handler('ignore_divide_by_zero', E_WARNING);
Run Code Online (Sandbox Code Playgroud)
在你的情况下,我会创建一个功能,为你做分工.