PHP,我们都知道是非常松散的类型.该语言不要求您为函数参数或类变量指定任何类型的类型.这可能是一个强大的功能.
但有时候,它可以使调试脚本成为一种痛苦的经历.例如,将一种对象传递给需要不同类型对象的方法可能会产生错误消息,抱怨传递的对象不存在某个变量/方法.这些情况大多是烦恼.更糟糕的问题是当您使用错误类的对象初始化一个对象时,并且直到稍后在脚本执行中才会使用"错误对象".在这种情况下,您最终得到的错误要比通过原始参数的时间晚得多.
而不是抱怨我传递的内容没有特定的方法或变量,或者等待很久以后在脚本执行中为我传入的对象使用,我宁愿有一条错误消息,在我指定对象的确切位置错误的类型,抱怨对象的类型不正确或不兼容.
你如何处理代码中的这些情况?你如何检测不兼容的类型?如何在脚本中引入一些类型检查,以便我可以更容易理解错误消息?
另外,如何在Php中考虑继承时如何做到这一切?考虑:
然后,此代码的用户使用自己的具体类实现接口:
我希望ConcreteClass实例以及所有未来的未知用户定义对象也可以被SetObject接受.如何在检查正确类型时允许这样做?
实际上,对于类,您可以在PHP(5 +)中提供类型提示.
这也可以像你期望的那样正确地继承.
顺便说一句,不要在你的班级名字中加上"对象"这个词......