是否可以在PHP中创建嵌套类,就像在C#中一样?

时间:2011-01-14 11:10:39

标签: c# php oop

在C#中,您可以拥有这样的嵌套类,如果您的类没有某个特定类的范围,那么这些类很有用,例如:在工厂模式中:

public abstract class BankAccount
{
  private BankAccount() {} 
  private sealed class SavingsAccount : BankAccount { ... }
  private sealed class CheckingAccount : BankAccount { ... }
  public BankAccount MakeSavingAccount() { ... }
  public BankAccount MakeCheckingAccount() { ... }
}

这可以在PHP中使用吗?

我读过它计划用于PHP 5,然后取消,然后重新计划,但无法找到明确的信息。

是否有人知道如何使用PHP 5.3创建嵌套类(另一个类范围内的类),如上面的C#示例所示?

1 个答案:

答案 0 :(得分:1)

不,这在PHP中是不可能的。类必须位于全局命名空间中;你能做的最好就是假装你的所有其他代码都不存在。

这种事在PHP中很常见;例如,PHP缺少静态初始化器,因此如果您想急切初始化类的静态成员,则必须通过从类外部调用公共方法来完成。难看。