Какова роль finally?

Ответ

finally выполняется всегда, независимо от того, было ли исключение, был ли return или throw в try/catch:

function readFile(string $path): string {
    $file = fopen($path, 'r');
    try {
        $content = fread($file, filesize($path));
        return $content;
    } catch (Exception $e) {
        return '';
    } finally {
        fclose($file); // выполнится даже после return!
    }
}

Используется для: закрытия файлов/соединений, освобождения блокировок, логирования. Если finally содержит return, он перезаписывает return из try/catch (избегайте этого).

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.