2

index.php持っていて、ファイルに格納され、ファイルからクラス/home/user/public/wwwindex.php呼び出すとしましょう。Foo->bar()inc/app/Foo.class.php

Fooこの場合、クラスのbar関数でパスを取得し/home/user/public/wwwたいのですが、グローバル変数を使用したり、変数を渡したりする必要はありません。

4

4 に答える 4

14

debug_backtraceを使用して呼び出しパスを調べ、この関数を呼び出しているファイルを取得できます。

簡単な例:

class Foo {
  function bar() {    
   $trace = debug_backtrace();
   echo "calling file was ".$trace[0]['file']."\n";
  }
}
于 2008-09-26T14:21:31.673 に答える
11

これにより、実行中のスクリプトのディレクトリをより簡単に取得できませんか?

$dir=dirname($_SERVER["SCRIPT_FILENAME"])
于 2008-09-26T14:27:36.510 に答える
2

getcwd()現在の作業ディレクトリを取得します

さまざまな理由で、サード パーティのモジュール、インクルード、またはchdir().

debug_backtrace()デボンが示唆したように、あなたが探している答えです。

于 2008-09-26T14:23:31.013 に答える
1

それを見つけた。getcwd()。

于 2008-09-26T14:20:55.480 に答える