PHP scripts work relative to the current path (result of getcwd() ), and not along the path of their own file. Using __DIR__ forces you to include include relative to their own path.
To demonstrate, create the following files (and directories):
- file1.php - dir/ - file2.php - file3.php
If file2.php includes file3.php as follows:
include `file3.php`.
It will work fine if you call file2.php directly. However, if file1.php includes file2.php , the current directory ( getcwd() ) will be incorrect for file2.php , so file3.php cannot be included.
Evert
source share