Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

PHP ArithmeticError


แนะนำตัว

ข้อผิดพลาดทางคณิตศาสตร์ คลาสสืบทอดมาจาก ข้อผิดพลาด ระดับ. ข้อผิดพลาดประเภทนี้อาจเกิดขึ้นขณะดำเนินการทางคณิตศาสตร์บางอย่าง สถานการณ์หนึ่งคือพยายามดำเนินการกะระดับบิตด้วยจำนวนเงินติดลบ ข้อผิดพลาดนี้เกิดขึ้นเมื่อเรียกใช้ intdiv() ฟังก์ชันส่งผลให้มีค่าเกินขอบเขตที่ถูกต้องของจำนวนเต็ม

ตัวอย่างข้อผิดพลาดทางคณิตศาสตร์

ในตัวอย่างต่อไปนี้ มีความพยายามที่จะใช้ตัวดำเนินการกะไบนารีกับตัวถูกดำเนินการเชิงลบ ซึ่งส่งผลให้เกิดข้อผิดพลาดทางคณิตศาสตร์

ตัวอย่าง

<?php
try {
   $a = 10;
   $b = -3;
   $result = $a << $b;
}
catch (ArithmeticError $e) {
   echo $e->getMessage();
}
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

Bit shift by negative number

หากโทรไปที่ intdiv() ฟังก์ชันส่งผลให้จำนวนเต็มไม่ถูกต้อง ArithmeticError ถูกส่งออกไป ตามที่แสดงในตัวอย่างด้านล่าง จำนวนเต็มขั้นต่ำที่อนุญาตใน PHP (PHP_INT_MIN ) ไม่สามารถหารด้วย -1

ตัวอย่าง

<?php
try {
   $a = PHP_INT_MIN;
   $b = -1;
   $result = intdiv($a, $b);
   echo $result;
}
catch (ArithmeticError $e) {
   echo $e->getMessage();
}
?>

ผลลัพธ์

สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้ -

Division of PHP_INT_MIN by -1 is not an integer