Как подавить ошибку "Деление на ноль" и установить для результата значение null для всего приложения?
Как подавить ошибку "Деление на ноль" и установить для результата значение null для всего приложения? Говоря "для всего приложения", я имею в виду, что это не для одного выражения. Вместо этого, всякий раз, когда возникает ошибка "Деление на ноль", результат устанавливается равным нулю автоматически, и никакая ошибка не будет выбрана.
Ответы
Ответ 1
Это должно сделать трюк.
$a = @(1/0);
if(false === $a) {
$a = null;
}
var_dump($a);
выходы
NULL
См. ссылки элементы управления ошибками.
ИЗМЕНИТЬ
function division($a, $b) {
$c = @(a/b);
if($b === 0) {
$c = null;
}
return $c;
}
В любом месте замените 1/0
вызовом функции division(1,0)
.
EDIT - без третьей переменной
function division($a, $b) {
if($b === 0)
return null;
return $a/$b;
}
Ответ 2
Просто как.. хорошо abc * 123-pi
$number = 23;
$div = 0;
//If it 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
}
Как функция
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;
}
Используйте
$number = mydivide(20,5)//equals four
Я не могу придумать способ установить его при разделении, но я бы использовал функцию и переименовал ее в нечто вроде "d" , так что коротко!
Ответ 3
Это ужасное решение, но, к счастью, вы не будете использовать его, потому что переменная имеет значение false
вместо null
.
function ignore_divide_by_zero($errno, $errstring)
{
return ($errstring == 'Division by zero');
}
set_error_handler('ignore_divide_by_zero', E_WARNING);
В вашем случае я бы создал функцию, которая выполняет ваше разделение для вас.
Ответ 4
Как насчет использования тернарного оператора, например:
$a = $c ? $b/$c : null;