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.
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...
and