What best practices should be followed for error handling in PHP scripts, especially in production environments?

Error handling in PHP scripts in production environments is crucial to ensure that errors are logged and handled gracefully without revealing sensitive information to users. Best practices include using try-catch blocks to catch exceptions, logging errors to a secure file or database, and displaying user-friendly error messages. Additionally, setting error reporting levels to only display errors and warnings can help prevent potential security vulnerabilities.

<?php

// Set error reporting level
error_reporting(E_ERROR | E_WARNING);

// Custom error handler function
function customErrorHandler($errno, $errstr, $errfile, $errline) {
    // Log error to a file or database
    error_log("Error: $errstr in $errfile on line $errline");
    
    // Display user-friendly error message
    echo "An error occurred. Please try again later.";
}

// Set custom error handler
set_error_handler("customErrorHandler");

// Example code that may throw an error
$var = 5;
echo $var / 0;

?>