PHP is a powerful scripting language, but it can sometimes be prone to errors. Understanding common PHP errors, warnings, and notices can help you debug your code more effectively. This guide covers the most frequently encountered PHP errors, their causes, and examples of how to avoid them.
1. Parse Error (Syntax Error)
Description: This occurs when there is a syntax mistake in the PHP code, such as a missing semicolon, unmatched braces, or incorrect usage of PHP syntax.
Example:
echo "Hello, world!" // Missing semicolon
2. Fatal Error
Description: A fatal error occurs when PHP encounters a critical problem that it cannot recover from, causing script execution to stop immediately. Common causes include calling an undefined function, requiring a missing file, or running out of memory.
Example:
non_existent_function(); // Function does not exist
3. Warning
Description: Warnings are non-fatal errors that do not stop script execution. They usually indicate potential issues like including a missing file or using an undefined variable.
Example:
include('non_existent_file.php'); // File does not exist
4. Notice
Description: Notices are minor issues that PHP encounters but can continue executing the script. They often occur when accessing an undefined variable or using deprecated features.
Example:
echo $undefined_variable; // Variable not defined
5. Undefined Variable Notice
Description: Triggered when a variable is used without being initialized first.
Example:
echo $myVar; // $myVar is not defined
6. Division by Zero Warning
Description: This occurs when there is an attempt to divide a number by zero, which is mathematically undefined.
Example:
$result = 10 / 0; // Division by zero
7. Deprecated Function Warning
Description: This warning is raised when using a function or feature that has been marked as deprecated in the current version of PHP. Deprecated functions may be removed in future versions.
Example:
mysql_connect('localhost', 'user', 'password'); // Deprecated in favor of mysqli or PDO
8. Memory Exhausted Fatal Error
Description: This error occurs when a PHP script tries to allocate more memory than allowed by the PHP configuration (memory_limit
).
Example:
$array = array_fill(0, 100000000, 'test'); // Large memory allocation
9. Headers Already Sent Warning
Description: This occurs when there is an attempt to send HTTP headers after output has been sent to the browser. It often happens if there’s any whitespace or text before header()
or setcookie()
functions.
Example:
echo "Hello";
header("Location: http://example.com"); // Error: headers already sent
10. Call to Undefined Function Fatal Error
Description: This error occurs when attempting to call a function that doesn’t exist or has not been defined within the script or its included files.
Example:
nonExistentFunction(); // Function does not exist
11. Invalid Argument Warning
Description: This happens when a function receives an argument that is not of the expected type or value.
Example:
strpos("Hello", 5); // 5 is not a valid argument type for strpos
12. Uncaught Exception Fatal Error
Description: Occurs when an exception is thrown but not caught within a try-catch
block, causing the script to terminate.
Example:
throw new Exception("An error occurred"); // Uncaught exception
13. TypeError
Description: Raised when a value does not match the expected type declared in a function argument, return value, or property type declaration.
Example:
function add(int $a, int $b) {
return $a + $b;
}
echo add(5, 'test'); // TypeError: Argument 2 must be of type int, string given
14. Fatal Error: Allowed Memory Size Exhausted
Description: This occurs when a script attempts to allocate more memory than what is allowed by the memory_limit
directive.
Example:
ini_set('memory_limit', '128M');
$array = array_fill(0, 100000000, 'Hello'); // May cause memory exhaustion
15. Undefined Index Notice
Description: Triggered when trying to access an array index that doesn’t exist.
Example:
$array = ['a' => 1, 'b' => 2];
echo $array['c']; // Undefined index: c
16. Class Not Found Fatal Error
Description: This error occurs when attempting to instantiate or reference a class that has not been defined or included.
Example:
$obj = new NonExistentClass(); // Class does not exist
17. Cannot Modify Header Information Warning
Description: Raised when trying to send a header after some output has already been sent. This is common when trying to use header()
after an echo or HTML content.
Example:
echo "Content";
header("Location: http://example.com"); // Warning: Cannot modify header information
18. Uncaught Error: Call to a Member Function
Description: This error occurs when attempting to call a method on a variable that is not an object.
Example:
$var = null;
$var->method(); // Error: Call to a member function on a non-object