كتلة finally تُنفَّذ دائمًا، سواء حدث خطأ أم لم يحدث:
$file = fopen('data.txt', 'r');
try {
$content = fread($file, 1000);
// ... process the content
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage();
} finally {
fclose($file); // always runs
}
متى أحتاجها؟
لتحرير الموارد مهما كانت النتيجة: إغلاق ملف، أو إنهاء اتصال، أو إزالة قفل، أو إرجاع حالة مؤقتة.
تُنفَّذ حتى مع return
function test() {
try {
return 'from try';
} finally {
echo 'finally runs first ';
}
}