How can recursion be implemented in PHP to delete directories with files inside them?

To recursively delete directories with files inside them in PHP, we can use a recursive function that traverses through the directory structure and deletes all files and directories encountered. We can use the `unlink()` function to delete files and `rmdir()` function to delete directories. It is important to handle errors and permissions properly to ensure the deletion process is successful.

function deleteDirectory($dir) {
    if (!file_exists($dir)) {
        return true;
    }

    if (!is_dir($dir)) {
        return unlink($dir);
    }

    foreach (scandir($dir) as $item) {
        if ($item == '.' || $item == '..') {
            continue;
        }

        if (!deleteDirectory($dir . DIRECTORY_SEPARATOR . $item)) {
            return false;
        }
    }

    return rmdir($dir);
}

// Usage example
deleteDirectory('path/to/directory');