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

PHP Interaction ระหว่างสุดท้ายและกลับมา


แนะนำตัว

มีพฤติกรรมแปลกประหลาดของ ในที่สุด block เมื่อลอง block หรือ catch block (หรือทั้งสองอย่าง) มี return คำแถลง. ปกติคำสั่ง return จะทำให้การควบคุมโปรแกรมกลับสู่ตำแหน่งที่เรียก อย่างไรก็ตาม ในกรณีของฟังก์ชันที่มีบล็อก try /catch พร้อม return คำสั่งในบล็อกสุดท้ายจะถูกดำเนินการก่อนที่จะส่งคืน

ตัวอย่าง

ในตัวอย่างต่อไปนี้ ฟังก์ชัน div() มี try - catch - ในที่สุดก็สร้าง บล็อกการลองโดยไม่มีข้อยกเว้นส่งคืนผลลัพธ์ของการแบ่ง ในกรณีที่มีข้อยกเว้น catch block จะส่งกลับข้อความแสดงข้อผิดพลาด อย่างไรก็ตาม ไม่ว่าในกรณีใด คำสั่งในบล็อกสุดท้ายจะถูกดำเนินการก่อน

ตัวอย่าง

<?php
function div($x, $y){
   try {
      if ($y==0)
         throw new Exception("Division by 0");
      else
         $res=$x/$y;;
         return $res;
      }
      catch (Exception $e){
         return $e->getMessage();
      }
      finally{
         echo "This block is always executed\n";
   }
}
$x=10;
$y=0;
echo div($x,$y);
?>

ผลลัพธ์

ผลลัพธ์ต่อไปนี้จะปรากฏขึ้น

This block is always executed
Division by 0

เปลี่ยนค่าของ $y เป็น 5 ผลลัพธ์ต่อไปนี้จะแสดงขึ้น

This block is always executed
2