Say you have an application with an index.php
that contains:
require_once 'include/config.php';
require_once '/path_to_lib/util/all.php';
The util library also has an
include/config.php
file. In util/all.php
it has:
require_once 'include/config.php';
Which config file will
util/all.php
include?Relative paths are converted to absolute pathnames with something like:
function relativeToAbsolute($relativePath) {
return realpath(dirname($_SERVER['SCRIPT_FILENAME']) . '/' . $relativePath);
}
Since
index.php
is the script that is being executed then util/all.php
will include the config file in the application folder instead of the one from the util library folder. The solution is instead of relative includes use:
require_once dirname(__FILE__) . '/include/config.php';