If I have an index.php file that includes inc/footer.php I would write:
include 'inc/footer.php';
If I want to include another file inside footer.php, I must do it relative to the index.php file (the one that is including it). This may not be a problem, but what about if I want to include index.php from an entire different location?
I understand that there are several methods to achieve this like defining an absolute path or using dirname(__FILE__).
This is something that has never been a real problem since one way or another I always figured it out but that I always wondered how exactly includes work in php.
Can someone explain me exaclty what is going on under the hood?
This may help: (from http://php.net/manual/en/function.include.php)
Your question states:
This is true only if the filepath you are trying to
include()starts with./or../. If you need to include a file above the current file using a relative path, you can (as you suggested) use:If you define an absolute path, you can also add this to the current include_path:
You can then do all your includes relative to ‘/absolute/path/’.