PHP 5.6.29 Released

include_once

(PHP 4, PHP 5, PHP 7)

A declaração include_once inclui e avalia o arquivo informado durante a execução do script. Este é um comportamento similar a declaração include, com a única diferença que, se o código do arquivo já foi incluído, não o fará novamente, e o include_once retornará TRUE. Como o nome sugere, o arquivo será incluído somente uma vez.

O include_once pode ser utilizado em casos em que o mesmo arquivo pode ser incluído e valiado mais de uma vez durante uma execução de um script em particular, neste caso, ajudará a evitar problemas como redefinição de funções, reatribuição de valores de variáveis, e etc.

Veja a documentação da declaração include para informações sobre como essa função funciona.

Nota:

No PHP 4, as funcionalidades _once diferem em sistemas operacionais case-insensitive (como o Windows), por exemplo

Exemplo #1 Uso do include_once em um SO case insensitive no PHP 4

<?php
include_once "a.php"// this will include a.php
include_once "A.php"// this will include a.php again! (PHP 4 only)
?>

Este comportamento foi modificado no PHP 5, por exemplo, no Windows o caminho é normalizados primeiro, então isto C:\PROGRA~1\A.php e o mesmo que C:\Program Files\a.php e o arquivo é incluído somente uma vez.

add a note add a note

User Contributed Notes 6 notes

up
167
roach dot scott+spam at googlemail dot com
8 years ago
If you include a file that does not exist with include_once, the return result will be false.

If you try to include that same file again with include_once the return value will be true.

Example:
<?php
var_dump
(include_once 'fakefile.ext'); // bool(false)
var_dump(include_once 'fakefile.ext'); // bool(true)
?>

This is because according to php the file was already included once (even though it does not exist).
up
-8
xcl_rockman at qq dot com
1 year ago
config.php
<?php
return array("test">1);

-------------
//first
$config = include_once("config.php");
var_dump($config);

$config = include_once("config.php");
var_dump($config);

-------------------
output will be
array(
   
"test"=>1,
)

nothing
up
-17
1083706899 at qq dot com
1 year ago
require_once() can check the file if once include ,or the file is wrong will tell a error and quit the script.
up
-33
webmaster AT domaene - kempten DOT de
10 years ago
Since I like to reuse a lot of code it came handy to me to begin some sort of library that I stored in a subdir
e.g. "lib"

The only thing that bothered me for some time was that although everything worked all IDEs reported during editing
these useless warnings "file not found" when library files included other library files, since my path were given all relative to the corresponding document-root.

Here is a short workaround that makes that gone:

<?php
// Change to your path

if(strpos(__FILE__,'/lib/') != FALSE){
   
chdir("..");
}
include_once (
'./lib/other_lib.inc');
// ... or any other include[_once] / require[_once]
?>

just adjust the path and it will be fine - also for your IDE.

greetings
up
-40
flobee at gmail dot com
11 years ago
i already had a discussion with several people about "not shown errors"
error reporting and all others in php.ini set to: "show errors" to find problems:
the answer i finally found:
if you have an "@include..." instead of "include..." or "require..('somthing') in any place in your code
all following errors are not shown too!!!

so, this is actually a bad idea when developing because paser errors will be droped too:
<?php
if(!@include_once('./somthing') ) {
    echo
'can not include';
}
?>

solution:
<?php
if(!@file_exists('./somthing') ) {
    echo
'can not include';
} else {
   include(
'./something');
}
?>
up
-53
emanuele at rogledi dot com
8 years ago
For include_once a file in every paths of application we can do simply this

include_once($_SERVER["DOCUMENT_ROOT"] . "mypath/my2ndpath/myfile.php");
To Top