What are the differences between using $_GET and $_POST to retrieve input data in PHP, and when should each be used?

When retrieving input data in PHP, $_GET is used to retrieve data sent in the URL parameters, while $_POST is used to retrieve data sent in the body of an HTTP request. $_GET should be used when retrieving non-sensitive data like search queries or page filters, while $_POST should be used when submitting sensitive data like login credentials or form submissions.

// Using $_GET to retrieve input data
$search_query = $_GET['query'];

// Using $_POST to retrieve input data
$username = $_POST['username'];
$password = $_POST['password'];