PHP 为什么不把类或者类构造器当作一种数据类型使用?


Author: Kimmy

PHP 为什么不把类或者类构造器当作一种数据类型使用?

知乎链接


个人理解。

Duck Typing 或者 Dynamic Typing 的情况下,实际并不需要把类型信息携带上,完全可以一把梭地写代码,反正只要该对象行为满足我预期就好了。

只有一些场景是动态构造该类的实例或者动态改造该类型。这种纯在运行时的操作通过Reflection和运行时丰富的扩展也能够满足。只是PHP没有提供一种直接的形式获取该“类”对象(class object),而是要通过类名来从运行时拿到相关信息(zend_class_entry)。

如果预期是像Hack那种编译期类型检查和约束,怕是得整个重写PHP编译器了。

创建时间:2019-04-10 最近更新时间:2023-11-03