What are the different methods supported by PHP for transferring session IDs and how do they differ in terms of security?

When transferring session IDs in PHP, the most common methods are through cookies, URLs, and hidden form fields. Cookies are the most secure method as they are stored on the client-side and not visible in the URL or form data. Using URLs can expose session IDs to potential security risks, such as being stored in browser history or server logs. Hidden form fields are also vulnerable to attacks like Cross-Site Scripting (XSS) if not properly sanitized.

// Set session ID using cookies
session_start();

// Set session ID in a cookie
session_regenerate_id();
```

```php
// Set session ID using URLs
session_start();

// Append session ID to URLs
echo '<a href="page.php?PHPSESSID=' . session_id() . '">Link</a>';
```

```php
// Set session ID using hidden form fields
session_start();

// Store session ID in a hidden form field
echo '<form action="process.php" method="post">
      <input type="hidden" name="session_id" value="' . session_id() . '">
      <button type="submit">Submit</button>
      </form>';