Допустим, у нас есть 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 ().