Division by zero
Доброго времени суток. Выдает ошибку Division by zero, насколько я понял связанна она с делением на ноль. Вод код с со строкой на которую ругается (в данном случаи 13), на ноль вроде ничего не делится.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function page($k_page = 1) { $page = 1; if (isset($_GET['page'])) { if ($_GET['page'] == 'end') $page = intval($k_page); elseif (is_numeric($_GET['page'])) $page = intval($_GET['page']); } if ($page 1) $page = 1; if ($page > $k_page) $page = $k_page; return $page; } function k_page($k_post = 0, $k_p_str = 10) { if ($k_post != 0) { $v_pages = ceil($k_post/$k_p_str); return $v_pages; } else { return 1; } }
Самое интересное ошибка пропадает при обновление страницы и возвращается при очистке кеша, что за чудеса?)
Division by zero
Доброго времени суток, программа должна выводить случайное число из диапазона к примеру от 0 до.
Division by zero
Проблема в функции, не могу понять где именно является деление на 0, чтобы исправить проблему. Код.
division be zero
Здравствуйте! Такая проблема: при выполнении вот этой процедуры procedure Rat.reduce(var.
З.Ы. Но это костыль, надо смотреть и разбираться, почему передается ноль вместо нужного количества — а для этого надо видеть код вызова функции
Добавлено через 1 минуту
KOPOJI,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
include 'system/mysql.php'; include 'system/sys_func.php'; $title = 'Каталог сайтов'; if (!isset($_SESSION['user_id'])) { if (mysql_real_escape_string($_GET['login']) && mysql_real_escape_string($_GET['pass'])) { $login = mysql_real_escape_string($_GET['login']); $pass = mysql_real_escape_string($_GET['pass']); if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1"), 0)) { $user = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1")); setcookie('login', $login, time()+60*60*24*14); setcookie('pass', in_md5($pass), time()+60*60*24*14); $_SESSION['user_id'] = $user['id']; header('Location: /pages/personal/'); exit; } else { include 'system/head.php'; echo ' Повторить попытку входа На главную'; include 'system/foot.php'; exit; } } } if (isset($_GET['logout'])) { if (isset($_SESSION['user_id'])) { unset($_SESSION['user_id']); setcookie('login'); setcookie('pass'); mysql_query("UPDATE `users` SET `time_last` = ". (time()-600) ." WHERE `id` = '". $user['id'] ."' LIMIT 1"); header('Location: /'); exit; } } include_once 'system/head.php'; echo ''; $c_d = mysql_result(mysql_query("SELECT COUNT(*) FROM `site` WHERE `block` = '0'"), 0); if (isset($user)) $p_page = $user['p_page']; else $p_page = '10'; $k_page = k_page($c_d, $p_page); $page = page($k_page); $start = $p_page*$page-$p_page; $query = mysql_query("SELECT * FROM `site` WHERE `block` = '0' ORDER BY `out1` DESC LIMIT $start, ". $p_page); while ($post = mysql_fetch_assoc($query)) { echo '; echo ''; if (is_file(H.'files/image-'.$post['photos'] .'.gif')){ echo ''; } else { echo ''; } echo ''; echo '. $post['id'] .'">'. output($post['name']) .' . $post['out1'] .' / из: '. $post['in1'] .' '. output($post['opis']) .' . $post['id'] .'">'. output($post['url']) .' '; }if ($k_page > 1) str('?', $k_page, $page); echo' » Статистика'; $n_n = mysql_result(mysql_query("SELECT COUNT(*) FROM `news` WHERE `time` > '". (time()-86400) ."'"), 0); if ($n_n == 0) { $n_n = NULL; } else { $n_n = '. $n_n .''; } echo '» Новости '.$n_n.' '; include 'system/foot.php'; ?> DivisionByZeroError
DivisionByZeroError is thrown when an attempt is made to divide a number by zero.
Class synopsis
User Contributed Notes 4 notes
Use of arithmetic operator / does not throw an exception in php 7, while it does in php 8.
try echo intdiv ( 2 , 0 );
> catch ( DivisionByZeroError $e ) echo «Caught DivisionByZeroError!\n» ;
>
try echo ( 2 / 0 );
> catch ( DivisionByZeroError $e ) echo «Caught DivisionByZeroError!\n» ;
>
?>
# php 7
$ php test.php
caught division by zero for intdiv()
PHP Warning: Division by zero in test.php on line 10
PHP Stack trace:
PHP 1. () test.php:0
Warning: Division by zero in test.php on line 10
Call Stack:
0.0740 417272 1. () test.php:0
caught division by zero for intdiv()
caught division by zero for /
Note that on division by zero 1/0 and module by zero 1%0 an E_WARNING is triggered first (probably for backward compatibility with PHP5), then the DivisionByZeroError exception is thrown next.
The result is, for example, that if you set the maximum level of error detection with error_level(-1) and you also map errors to exception, say ErrorException, then on division by zero only this latter exception is thrown reporting «Division by zero». The result is that a code like this:
// Set a safe environment:
error_reporting (- 1 );
// Maps errors to ErrorException.
function my_error_handler ( $errno , $message )
try echo 1 / 0 ;
>
catch( ErrorException $e ) echo «got $e » ;
>
?>
allows to detect such error in the same way under PHP5 and PHP7, although the DivisionByZeroError exception is masked off by ErrorException.
This error is thrown only for integer division — this is when using «intdiv» function or «%» operator. In all cases you will get an E_WARNING when dividing by zero.
class MathOperation extends Error
protected $n = 10 ;
?php
// Try to get the Division by Zero error object and display as Exception
public function doArithmeticOperation (): string
try $value = $this -> n % 0 ;
> catch ( DivisionByZeroError $e ) return $e -> getMessage ();
>
>
>
$mathOperationObj = new MathOperation ();
echo $mathOperationObj -> doArithmeticOperation ();
- Predefined Exceptions
- Exception
- ErrorException
- Error
- ArgumentCountError
- ArithmeticError
- AssertionError
- DivisionByZeroError
- CompileError
- ParseError
- TypeError
- ValueError
- UnhandledMatchError
- FiberError
Division Operator Throws Exception When Dividing Number by Zero in PHP 8.0
The division operator ( / ) is an arithmetic operator that allows to divide one number by another. This operator returns a floating-point number, unless both operands are integers. In this case, an integer is returned.
In all PHP 7 versions, the division operator has inconsistent behavior when dividing a number by zero. The modulo operator ( % ) throws a DivisionByZeroError when modulo by zero is performed:
Fatal error: Uncaught DivisionByZeroError: Modulo by zero in main.php:3
However, the division operator emits a warning and returns +INF , -INF or NAN .
In PHP 7 example will output:
Warning: Division by zero in main.php on line 3 INF
Since PHP 8.0, the division operator throws an exception when dividing a number by zero.
If we run this code snippet in PHP 8.0 or newer versions, we will get a DivisionByZeroError :
Fatal error: Uncaught DivisionByZeroError: Division by zero in main.php:3
Related
PHP supports type declarations that can be used for parameters, return values, and properties. However.
Division by zero
Доброго времени суток. Выдает ошибку Division by zero, насколько я понял связанна она с делением на ноль. Вод код с со строкой на которую ругается (в данном случаи 13), на ноль вроде ничего не делится.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function page($k_page = 1) { $page = 1; if (isset($_GET['page'])) { if ($_GET['page'] == 'end') $page = intval($k_page); elseif (is_numeric($_GET['page'])) $page = intval($_GET['page']); } if ($page 1) $page = 1; if ($page > $k_page) $page = $k_page; return $page; } function k_page($k_post = 0, $k_p_str = 10) { if ($k_post != 0) { $v_pages = ceil($k_post/$k_p_str); return $v_pages; } else { return 1; } }
Самое интересное ошибка пропадает при обновление страницы и возвращается при очистке кеша, что за чудеса?)
Division by zero
Доброго времени суток, программа должна выводить случайное число из диапазона к примеру от 0 до.
Division by zero
Проблема в функции, не могу понять где именно является деление на 0, чтобы исправить проблему. Код.
division be zero
Здравствуйте! Такая проблема: при выполнении вот этой процедуры procedure Rat.reduce(var.
З.Ы. Но это костыль, надо смотреть и разбираться, почему передается ноль вместо нужного количества — а для этого надо видеть код вызова функции
Добавлено через 1 минуту
KOPOJI,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
include 'system/mysql.php'; include 'system/sys_func.php'; $title = 'Каталог сайтов'; if (!isset($_SESSION['user_id'])) { if (mysql_real_escape_string($_GET['login']) && mysql_real_escape_string($_GET['pass'])) { $login = mysql_real_escape_string($_GET['login']); $pass = mysql_real_escape_string($_GET['pass']); if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1"), 0)) { $user = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `login` = '". $login ."' AND `pass` = '". in_md5($pass) ."' LIMIT 1")); setcookie('login', $login, time()+60*60*24*14); setcookie('pass', in_md5($pass), time()+60*60*24*14); $_SESSION['user_id'] = $user['id']; header('Location: /pages/personal/'); exit; } else { include 'system/head.php'; echo ' Повторить попытку входа На главную'; include 'system/foot.php'; exit; } } } if (isset($_GET['logout'])) { if (isset($_SESSION['user_id'])) { unset($_SESSION['user_id']); setcookie('login'); setcookie('pass'); mysql_query("UPDATE `users` SET `time_last` = ". (time()-600) ." WHERE `id` = '". $user['id'] ."' LIMIT 1"); header('Location: /'); exit; } } include_once 'system/head.php'; echo ''; $c_d = mysql_result(mysql_query("SELECT COUNT(*) FROM `site` WHERE `block` = '0'"), 0); if (isset($user)) $p_page = $user['p_page']; else $p_page = '10'; $k_page = k_page($c_d, $p_page); $page = page($k_page); $start = $p_page*$page-$p_page; $query = mysql_query("SELECT * FROM `site` WHERE `block` = '0' ORDER BY `out1` DESC LIMIT $start, ". $p_page); while ($post = mysql_fetch_assoc($query)) { echo '; echo ''; if (is_file(H.'files/image-'.$post['photos'] .'.gif')){ echo ''; } else { echo ''; } echo ''; echo '. $post['id'] .'">'. output($post['name']) .' . $post['out1'] .' / из: '. $post['in1'] .' '. output($post['opis']) .' . $post['id'] .'">'. output($post['url']) .' '; }if ($k_page > 1) str('?', $k_page, $page); echo' » Статистика'; $n_n = mysql_result(mysql_query("SELECT COUNT(*) FROM `news` WHERE `time` > '". (time()-86400) ."'"), 0); if ($n_n == 0) { $n_n = NULL; } else { $n_n = '. $n_n .''; } echo '» Новости '.$n_n.' '; include 'system/foot.php'; ?>