PHP 5.6.0beta1 released

include_once

include_once deyimi belirtilen dosyayı betiğin çalışması esnasında okur ve çalıştırır. Bu deyimin çalışma biçimi include deyimi ile benzerdir, kendisiyle dahil edilmiş bir dosya betiğin başka bir yerinde tekrar dahil edilmek istenirse buna izin vermemesidir. Daha fazla bilgi için include belgesine bakabilirsiniz.

include_once deyimi, bir betiğin çalışması esnasında aynı dosyanın bir kereden fazla dahil edilme ihtimaline karşı, bu dosyanın yalnızca bir kere dahil edileceğinden emin olunmak istenirse kullanılmalıdır. Bu sayede işlev bildirimlerinin yinelenmesi, değişkenlere tekrar değer atanması gibi sorunlar ortaya çıkmaz.

Bu işlevin nasıl çalıştığı hakkında ayrıntılı bilgi edinmek için include belgesine bakınız.

Bilginize:

Büyük-küçük harf duyarlı olmayan işletim sistemlerinde (Windows gibi), require_once ve include_once deyimlerinin PHP 4'ten itibaren beklediğiniz sonucu üretmeyebileceğine dikkat edin.

Örnek 1 - Harf büyükyüğüne duyarsız işletim sistemlerinde include_once

<?php
include_once("a.php"); // bu a.php dosyasını include edecektir
include_once("A.php"); // bu yine a.php dosyasını include edecektir! (yalnızca PHP 4)
?>

Bu davranış PHP 5'te değişmiştir - öncelikle yol normalleştirilir, böylece örneğin, C:\PROGRA~1\A.php ile C:\Program Files\a.php aynı kabul edilir ve dosya yalnızca bir defa işlenir.

add a note add a note

User Contributed Notes 5 notes

up
21
roach dot scott+spam at googlemail dot com
5 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
0
emanuele at rogledi dot com
5 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");
up
0
flobee at gmail dot com
8 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
-6
webmaster AT domaene - kempten DOT de
7 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
-18
Kamil Pawelkiewicz
1 year ago
PHP can distinguish if file is a symlink while including.
I've created example.php file containing code below:

<?php
 
print __FILE__.' included';
?>

Then I've created symlink to example.php in the same directory.
Executing this code in the working directory:

<?php
 
include_once 'example.php';
  include_once
'symlink';
?>

prints only 'example.php included' instead of 2 lines.
To Top