| Summary: | why divide by zero isn't error ? | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | algor <algor> | ||||
| Component: | php | Assignee: | Alexey Gladkov <legion> | ||||
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
| Severity: | critical | ||||||
| Priority: | P2 | CC: | legion, mike | ||||
| Version: | unstable | ||||||
| Hardware: | all | ||||||
| OS: | Linux | ||||||
| Attachments: |
|
||||||
Created attachment 784 [details]
патч для исправления поведения при делении на ноль.
патч для исправления поведения при делении на ноль.
Исправлено. |
суть проблемы. php по умолчанию не считает деление на ноль ошибкой. при делении на ноль выдаётся предупреждение, и программа продолжает работать дальше, как будто так и надо. [agent_007@satellit~ ]$ rpm -q php php-4.3.11-alt0.cvs20050209 [agent_007@satellit~ ]$ /usr/bin/php -r '$a=1; $b = 0; $c=$a/$b; echo "c=$c\n";' Warning: Division by zero in Command line code on line 1 c= для примера, perl в той же ситуации: [agent_007@satellit~ ]$ perl -we '$a=1; $b=0; $c=$a/$b ; print "c=$c\n";' Illegal division by zero at -e line 1. возможно это поведение правильно (хотелось бы увидеть обоснование, почему). а пока мне приходится прикладывать патч (в аттаче). Steps to Reproduce: 1. /usr/bin/php -r '$a=1; $b = 0; $c=$a/$b; echo "c=$c\n";' Actual Results: Warning: Division by zero in Command line code on line 1 c= Expected Results: Fatal error: Division by zero in Command line code on line 1