我一直在用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的子類」... – Izkata 2012-02-22 21:16:39
除了你的旁邊,我認爲你正在尋找'內部類',並且這裏有一個類似的鏈接問題:http://stackoverflow.com/questions/4351782/how-do-i-use-inner-classes-in-php簡短回答是'不' – 2012-02-22 21:19:38
它也被稱爲「嵌套類」。 – linepogl 2012-02-22 21:20:19