Table of Contents
- Introduction to Include and Require
- Syntax of
include - Syntax of
require - Key Differences Between
includeandrequire - Using
include_onceandrequire_once - Best Practices for Using Include and Require
- Conclusion
Introduction to Include and Require
In PHP, the include and require statements are used to insert the content of one PHP file into another. These statements are crucial for building modular applications by organizing your code into reusable components.
When you build larger PHP applications, you often find it useful to separate your code into multiple files for better readability and maintainability. The include and require statements allow you to easily include other PHP files, such as header files, configuration files, or libraries, into your script.
In this module, we will dive deep into the include and require statements, explain their syntax and differences, and explore how to use them in a real-world context.
Syntax of include
The include statement is used to include the contents of one PHP file into another. If the file is not found, PHP will produce a warning, but the script will continue executing.
Syntax:
include 'filename.php';
- filename.php: The path to the file that you want to include. This can be an absolute or relative path.
Example:
<?php
// Including the header.php file
include 'header.php';
echo "Welcome to my website!";
?>
In this example, the contents of header.php will be inserted at the location of the include statement, allowing you to reuse the header code on multiple pages.
Syntax of require
The require statement works similarly to include, but there’s a key difference. If the specified file is not found, require will produce a fatal error and stop the execution of the script. This is useful for critical files that your application cannot function without, such as configuration or essential library files.
Syntax:
require 'filename.php';
- filename.php: The path to the file that you want to include, just like with
include.
Example:
<?php
// Requiring the config.php file
require 'config.php';
echo "Configuration loaded successfully!";
?>
In this case, if the config.php file is missing or inaccessible, the script will stop executing, which is often desirable when dealing with essential files.
Key Differences Between include and require
Although both include and require are used to include files, they behave slightly differently in terms of error handling:
include: If the file is not found, it only issues a warning (E_WARNING) and the script continues to run. This makes it suitable for non-essential files that your application can still work without.require: If the file is not found, it issues a fatal error (E_COMPILE_ERROR) and the script stops executing immediately. This is used for critical files that are necessary for the application’s operation.
Here’s a comparison:
| Statement | Error on failure | Script Execution | Typical Use Case |
|---|---|---|---|
include | Warning (E_WARNING) | Continues | For non-essential files (e.g., templates, partials) |
require | Fatal error (E_COMPILE_ERROR) | Stops execution | For essential files (e.g., configuration, database connection) |
Example:
<?php
// Example with include
include 'nonexistent_file.php'; // Warning, script continues
// Example with require
require 'nonexistent_file.php'; // Fatal error, script stops
?>
If nonexistent_file.php does not exist, the include statement will simply produce a warning, but the script will continue. However, the require statement will cause a fatal error, and the script will terminate.
Using include_once and require_once
PHP also provides include_once and require_once, which ensure that a file is included only once. This can help prevent issues like redeclaring functions, classes, or variables if the same file is included multiple times.
Syntax:
include_once 'filename.php';
require_once 'filename.php';
- Both statements work similarly to their counterparts (
includeandrequire), but they check if the file has already been included before. If it has, it will not be included again.
Example:
<?php
include_once 'header.php'; // Included only once, even if this line is repeated
require_once 'config.php'; // Will be included once, even if repeated
?>
The include_once and require_once statements are useful when including files in large projects, especially in cases where the same file might be included multiple times (for instance, including a configuration file or database connection file in multiple scripts).
Best Practices for Using Include and Require
- Use
requirefor Critical Files:- Always use
requireorrequire_oncefor files that are essential for the application to work (e.g., database connection files, configuration files, essential class files). This ensures that the script halts if a critical file is missing, preventing potential errors.
- Always use
- Use
includefor Non-Critical Files:- Use
includeorinclude_oncefor files that are optional or not critical to the operation of the script (e.g., page templates, header/footer files). This allows the script to continue running even if these files are missing.
- Use
- Organize Your Files Logically:
- Organize your PHP files into directories that make sense, and use relative or absolute paths accordingly. For example, place all configuration files in a
config/directory and include them withrequire_onceto ensure they’re only included once.
- Organize your PHP files into directories that make sense, and use relative or absolute paths accordingly. For example, place all configuration files in a
- Avoid Repeated Includes:
- If you’re including files multiple times in different parts of the application, always use
include_onceorrequire_onceto prevent potential issues with function redeclaration or class redefinition.
- If you’re including files multiple times in different parts of the application, always use
- Use Autoloading:
- In modern PHP development, autoloading is often a better alternative to using
includeandrequirestatements for class files. Autoloaders automatically load classes when needed, which helps keep the codebase clean and reduces the number ofincludeandrequirestatements in the code.
- In modern PHP development, autoloading is often a better alternative to using
Conclusion
The include and require statements are fundamental tools for modularizing PHP code. While include is used for non-essential files and allows the script to continue running if the file is not found, require is used for essential files, halting the script if the file cannot be included. Using include_once and require_once helps prevent the same file from being included multiple times.

