PHP,类里面的类,bug?

时间:2012-04-03 13:01:50

标签: php oop class include

B.php:

   class B
   {
   function show() { echo 'works'; }
   }

A.php

class A
{

 public static function defineB()
 {
  include "b.php";
 }

}


A::defineB();
$b = new B;
var_dump($b);

对象(B)#1(0){},

如果没有A :: defineB(); - 致命错误:未找到“B”类, 如果定义类而不包含另一个文件 - 致命错误:类声明可能不是嵌套的,

是bug吗?

2 个答案:

答案 0 :(得分:3)

这不是错误,它是默认和正确的行为。

您应该在使用之前包含文件。如果这给您带来太多痛苦,您可以在代码的开头使用http://www.php.net/manual/en/language.oop5.autoload.phphttp://www.php.net/manual/en/function.spl-autoload-register.php

答案 1 :(得分:0)

在PHP中,你不能嵌套类(如在Java中) - 所以你得到“类声明可能没有嵌套”。关键词是名称空间。在类B的方法中包含类A不会影响仍然是......“A”而不是“B \ A”,“BA”或某事物的类A的名称。 :)