【发布时间】:2012-03-13 06:33:32
【问题描述】:
我一直在 Java 中做这种类型的事情,我正在尝试弄清楚它是否可以在 PHP 中实现。如果可能的话,我希望语法看起来像这样,但我想知道是否有一些特殊的方法可以做到这一点(如果可能的话)。
class Foo {
public static class FooBarException extends Exception {
}
public static class BarBazException extends Exception {
}
public function DoSomething() {
try {
// Calls to other class methods that can
// throw FooBarException and BarBazException
} catch (self::FooBarException $e) {
// Stuff..
}
}
}
$bang = new Foo();
try {
$bang->DoSomething();
} catch (Foo::BarBazException $e) {
// Stuff..
}
【问题讨论】:
-
顺便说一句,我忘记了是否有任何语言的实际名称。我以为是“子类”,但那会被用作“FooBarException 是 Exception 的子类”...
-
除此之外,我认为您正在寻找“内部课程”,这里有一个类似问题的链接:stackoverflow.com/questions/4351782/… 简短回答是“否”
-
也叫“嵌套类”。
-
@watcher 和 linepogl - 谢谢,这就是我找不到重复项的原因。 “成员班级”在搜索中一直被视为“班级成员”......