PHP中优雅嵌套的类 - 任何建议?

时间:2014-01-28 23:44:34

标签: php class nested-class

我有一种方法可以在Php中定义嵌套类,但它非常原始。

class foo {

  function define_new_class($class, $code) {
    if (!class_exists($class)) {
      $definition = eval($code);
    }
  }

  function bar() {
    $new_class = "boo";
    $this->define_new_class($new_class, "class $new_class {}");
    $obj = new $new_class();

    echo "Current class: " . get_class($this) . "\n"; // foo
    echo "\$obj class: " . get_class($obj) . "\n"; // boo
  }
}

$foo = new foo();
$foo->bar();

是否有可能以优雅的方式完成同样的工作?

1 个答案:

答案 0 :(得分:0)

由于无法定义真正的嵌套类: 而不是使用嵌套类,您可以创建另一个以OuterClass名称开头的类:

class OuterClass {
   ...stufs...
}
class OuterClass_InnerClass {
   ...stufs...
}

或使用名称空间

class OuterClass {
   ...stufs...
}
class \OuterClass\InnerClass {
   ...stufs...
}