what is the purpose of require_once dirname(__FILE__) ...?

Leo Galleguillos picture Leo Galleguillos · Jan 15, 2014 · Viewed 13.6k times · Source

I am using a php library which has this code: require_once dirname(__FILE__) . '/config.php';

From what I've read, dirname(__FILE__) points to the current directory.

So wouldn't it be easier to just write require_once 'config.php';?

My only guess here is that including the dirname(__FILE__) ensures that the require_once function uses an absolute rather than relative path.

Answer

mate64 picture mate64 · Jan 15, 2014

Yes, you are right - dirname(__FILE__) ensures that the require_once function uses an absolute rather than relative path.

The __FILE__ constant represents the running script. It will return the full path and file name of the running script.

For example, if a script called database.init.php which is included from anywhere on the filesystem wants to include the script database.class.php, which lays in the same directory, you can use:

require_once dirname(__FILE__) . '/database.class.php';