다소 놀랍게도 이것은 잘 작동하는 것 같습니다. 포함 된 코드는 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()합니다.
다음 문장이 왜 차단됩니까? – zneak
그것은 모든 코드를 모양에서 제외시킬 것입니다. 클래스가 함수 안에 붙여 넣어지고 있습니다. –
@jera : 그것은 어떻게되지 않습니다. 내 대답에 이것을 말했지만, 여기에 그것을 강화할 것입니다 : 오류/오작동으로 인해 이것이 사실이라고 믿게됩니까? 그렇다면 문제의 원인을 바로 잡을 수 있도록 자세한 정보를 제공해주십시오. – icio