'What is the difference between PHP require and include?

I know the basic usage of PHP require, require once, include and include once. But I am confused about when I should use them.

Example: I have 3 files, eg: settings.php, database.php, and index.php.

In database.php file, i wrote:

require_once 'settings.php';

and then in index.php, i wrote:

require_once 'settings.php';
require_once 'database.php';

so I load settings.php two times, is this okay? Any tips using these functions?

php


Solution 1:[1]

  • include includes a file and throws a warning if the file was not found.

  • require includes a file and throws a fatal error if the file was not found.

  • include_once and require_once do the same thing, but only if the file was not already loaded.

However, the need for one of the _once functions is usually a sign of bad design. You should build your scripts in a way that clearly defines what gets included where.

Choose one place for settings.php to get included - probably index.php. There should be no need to additionally include it in database.php.

Solution 2:[2]

You don't load settings.php two times, as per PHP documentation on require_once;

The require_once() statement is identical to require() except PHP will check if the file has already been included, and if so, not include (require) it again.

Solution 3:[3]

The difference between include() and require() arises when the file being included cannot be found: include() will raise a warning (E_WARNING) and the script will continue, whereas require() will raise a fatal error (E_COMPILE_ERROR) and halt the script. If the file being included is critical to the rest of the script running correctly then you need to use require().

For more details : Difference between Include and Require in PHP

Solution 4:[4]

  • require
    when the file is required by your application, e.g. an important message template or a file containing configuration variables without which the app would break.

  • require_once
    when the file contains content that would produce an error on subsequent inclusion, e.g. function important() { /* important code */} is definitely needed in your application but since functions cannot be redeclared should not be included again.

  • include when the file is not required and application flow should continue when not found, e.g.
    great for templates referencing variables from the current scope or something

  • include_once
    optional dependencies that would produce errors on subsequent loading or maybe remote file inclusion that you do not want to happen twice due to the HTTP overhead

Solution 5:[5]

Difference:-

include() Fetch data and load contain in current file and also load same file more than one time.

include_once() work same as include() but we use include_once() if a file has already been included, it will not be included again. if use same file as multiple time in Like:- include_once 'setting.php'; use second time include_once 'settting.php'; ignore them.

require() work same as include().

require_once() if file has already included, it will not be included again.

include() and include_once() produce warning and script will continue.

require() and require_once() produce fatel error and stop the script.

Better to use

require_once() in your script.

Solution 6:[6]

require_once would check if the file is already included and not include it again, so don't worry it won't load settings.php twice.

Solution 7:[7]

if your file is important, I think you should use "require",
but if not, i always use include, like peka's answered
require includes a file and throws a fatal error if the file was not found.

Solution 8:[8]

include_once and require_once use in Php for add one page to another page example:you want to add database connection page conn.php in edit page edit.php you can use it. But there is different between include_once and require_once if include_once function get any error it will be warning you and execute the code but require_once function find any error it will stop the script and do not execute the code .

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2
Solution 3
Solution 4
Solution 5
Solution 6
Solution 7
Solution 8