Допустим, у нас есть index.php и он хранится в /home/user/public/www а index.php вызывает класс Foo->bar() из файла inc/app/Foo.class.php .
Я хотел бы, чтобы функция bar в классе Foo путь /home/user/public/www в этом экземпляре – я не хочу использовать глобальную переменную, передавать переменную и т. Д.
Разве это не облегчит вам работу с каталогом сценария?
$dir=dirname($_SERVER["SCRIPT_FILENAME"])
Вы можете использовать debug_backtrace, чтобы посмотреть на вызывающий путь и получить файл, вызывающий эту функцию.
Короткий пример:
class Foo { function bar() { $trace = debug_backtrace(); echo "calling file was ".$trace[0]['file']."\n"; } }
getcwd() получает текущий рабочий каталог
Он может быть изменен по разным причинам сторонними модулями, включает или даже ваш собственный код, chdir() .
debug_backtrace() поскольку предложенный Devon – это ответ, который вы ищете.
Найди его. getcwd ().