PHP に名前空間があり、関数をクラスの外部で直接宣言できる場合でも、少なくとも静的クラス メソッドを使用することを強くお勧めします。その後、何かをハックする必要はなく、機能するように設計された名前空間を使用します。クラス付き。
これが実際の例です:
こんにちは.php
<?php
namespace Project\B;
class HelloClass {
static function hello() {
echo "Hello from hello.php!";
}
}
a.php
<?php
namespace Project\A;
require('hello.php'); // still have to require the file, unless you have an autoloader
use \Project\B\HelloClass; // import this class from this namespace
\Project\B\HelloClass::hello(); // calling it this way render the 'use' keyword obsolete
HelloClass::hello(); // or use it as it is declared
**注**:use foo as bar;
クラスの名前を変更しましょう! 例えば :
use \Project\B\HelloClass as Foo; // import this class from this namespace as Foo
Foo::hello(); // calling it this way using the 'use' keyword and alias
** アップデート **
興味深いことに、これを行うことができます:
c.php
namespace Project\C;
function test() {
echo "Hello from test!\n";
}
a.php
use \Project\C; // import namespace only
use \Project\C as Bar; // or rename it into a different local one
C\test(); // works
Bar\test(); // works too!
だから、書いuse Project\Library as L;
て呼び出すだけL\hello();
です。ここがあなたの最良の選択肢だと思います。