Reputation: 759
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?
Upvotes: 20
Views: 11919
Reputation: 905
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
Upvotes: 3
Reputation: 1089
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.
require_once()
in your script.
Upvotes: 1
Reputation: 649
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
Upvotes: 2
Reputation: 449385
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
.
Upvotes: 26
Reputation: 12706
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.
Upvotes: 4