What are the best practices for handling user input validation and sanitization in PHP functions?

User input validation and sanitization are crucial steps in preventing security vulnerabilities such as SQL injection, cross-site scripting (XSS), and other attacks. To handle user input safely in PHP functions, always validate input against expected data types, lengths, and formats, and sanitize input to remove any potentially harmful characters or code.

// Example of validating and sanitizing user input in a PHP function
function process_input($input) {
    // Validate input against expected data type
    if (!is_string($input)) {
        return false;
    }
    
    // Sanitize input to remove potentially harmful characters
    $sanitized_input = filter_var($input, FILTER_SANITIZE_STRING);
    
    return $sanitized_input;
}

// Usage example
$user_input = $_POST['user_input'];
$processed_input = process_input($user_input);

if ($processed_input) {
    // Proceed with safe input
} else {
    // Handle invalid input
}