少し驚くべきことに、これは問題なく動作するようです。含まれているコードは Baz::bork() のスコープ内で実行されますが、コードは単純にクラスを定義しており、クラスはグローバルです。したがって、定義されたクラスになります。
ファイル: Foo.php:
<?PHP
class Foo{
function bar(){
echo "Hello from Foo::bar()!\n";
}
}
ファイル: Baz.php:
<?PHP
class Baz{
function bork(){
require_once "Foo.php";
$f = new Foo();
$f->bar();
}
}
echo "testing internal definition:\n";
$b = new Baz();
$b->bork();
echo "\ntesting in global scope:\n";
$f = new Foo();
$f->bar();
echo "\nall done\n";
出力:
$ php Baz.php
testing internal definition:
Hello from Foo::bar()!
testing in global scope:
Hello from Foo::bar()!
all done
さて、このようにやりたいと思う場所はあまり思いつきません。人々は通常、クラス定義の外にあるクラスファイルの先頭で、可能な依存関係を require_once() します。