PHP include/require: Prevent fallback in path resolution

599 views Asked by At

As helpfully stated in the documentation for include():

If the file isn't found in the include_path, include will finally check in the calling script's own directory and the current working directory before failing.

Is there any setting to prevent this and make it fail in some way instead? I want to know when my code "thinks" files should be in places they aren't. (Or can I at least add a warning when it happens?)

Is my only option to use file_exists()? That feels wrong somehow; I don't want to roll my own include function.

1

There are 1 answers

3
A Smith On

Hold on, all you have to do is provide a file path yourself if you don't want to have the default "helpful" behavior applied.

From the PHP manual...

Files are included based on the file path given or, if none is given, the include_path specified.

and

If a path is defined — whether absolute (starting with a drive letter or \ on Windows, or / on Unix/Linux systems) or relative to the current directory (starting with . or ..) — the include_path will be ignored altogether. For example, if a filename begins with ../, the parser will look in the parent directory to find the requested file.